独立成分分析

From Ufldl

Jump to: navigation, search
 
Line 1: Line 1:
-
独立成分分析(Independent Component Analysis)
+
== 概述 ==
-
'''初译''':@袁贞明
+
试着回想一下,在介绍[[Sparse Coding | 稀疏编码算法]]中我们想为样本数据学习得到一个超完备基(over-complete basis)。具体来说,这意味着用稀疏编码学习得到的基向量之间不一定线性独立。尽管在某些情况下这已经满足需要,但有时我们仍然希望得到的是一组线性独立基。独立成分分析算法(ICA)正实现了这一点。而且,在 ICA 中,我们希望学习到的基不仅要线性独立,而且还是一组标准正交基。(一组标准正交基 <math>(\phi_1, \ldots \phi_n)</math> 需要满足条件:<math>\phi_i \cdot \phi_j = 0</math>(如果 <math>i \ne j</math>)或者 <math>\phi_i \cdot \phi_j = 1</math>(如果 <math>i = j</math>))
-
'''一审''':@晓风_机器学习
 
-
 
-
== 概述 ==
 
-
试着回想一下,在介绍稀疏编码算法中我们想为样本数据学习得到一个超完备基(over-complete basis)。具体来说,这意味着用稀疏编码学习得到的基向量之间不一定线性独立。尽管在某些情况下这已经满足需要,但有时我们仍然希望得到的是一组线性独立基。独立成分分析算法(ICA)正实现了这一点。而且,在ICA中,我们希望学习到的基不仅要线性独立,而且还是一组标准正交基。(一组标准正交基<math>(\phi_1, \ldots \phi_n)</math>需要满足条件:<math>\phi_i \cdot \phi_j = 0</math>(如果<math>i \ne j</math>)或者<math>\phi_i \cdot \phi_j = 1</math>(如果<math>i = j</math>))
+
与稀疏编码算法类似,独立成分分析也有一个简单的数学形式。给定数据 x,我们希望学习得到一组基向量――以列向量形式构成的矩阵 <math>W</math>,其满足以下特点:首先,与稀疏编码一样,特征是稀疏的;其次,基是标准正交的(注意,在稀疏编码中,矩阵 <math>A</math> 用于将特征 <math>s</math> 映射到原始数据,而在独立成分分析中,矩阵 <math>W</math> 工作的方向相反,是将原始数据 <math>x</math> 映射到特征)。这样我们得到以下目标函数:
-
与稀疏编码算法类似,独立成分分析也有一个简单的数学形式。给定数据x,我们希望学习得到一组基向量――以列向量形式构成的矩阵<math>W</math>,其满足以下特点:首先,与稀疏编码一样,特征是稀疏的;其次,基是标准正交的(注意,在稀疏编码中,矩阵<math>A</math>用于将特征<math>s</math>映射到原始数据,而在独立成分分析中,矩阵<math>W</math>工作的方向相反,是将原始数据<math>x</math>映射到特征)。这样我们得到以下目标函数:
 
:<math>
:<math>
J(W) = \lVert Wx \rVert_1  
J(W) = \lVert Wx \rVert_1  
</math>
</math>
-
由于<math>Wx</math>实际上是描述样本数据的特征,这个目标函数等价于在稀疏编码中特征<math>s</math>的稀疏惩罚项。加入标准正交性约束后,独立成分分析相当于求解如下优化问题:
+
 
 +
由于 <math>Wx</math> 实际上是描述样本数据的特征,这个目标函数等价于在稀疏编码中特征 <math>s</math> 的稀疏惩罚项。加入标准正交性约束后,独立成分分析相当于求解如下优化问题:
:<math>
:<math>
Line 22: Line 19:
\end{array}  
\end{array}  
</math>
</math>
 +
   
   
与深度学习中的通常情况一样,这个问题没有简单的解析解,而且更糟糕的是,由于标准正交性约束,使得用梯度下降方法来求解该问题变得更加困难――每次梯度下降迭代之后,必须将新的基映射回正交基空间中(以此保证正交性约束)。
与深度学习中的通常情况一样,这个问题没有简单的解析解,而且更糟糕的是,由于标准正交性约束,使得用梯度下降方法来求解该问题变得更加困难――每次梯度下降迭代之后,必须将新的基映射回正交基空间中(以此保证正交性约束)。
-
实践中,在最优化目标函数的同时施加正交性约束(如下一节正交性 ICA 中讲到的)是可行的,但是速度慢。在标准正交基是不可或缺的情况下,标准正交ICA的使用会受到一些限制。(哪些情况见:[[TODO]] )
+
 
 +
 
 +
实践中,在最优化目标函数的同时施加正交性约束(如下一节[[Independent Component Analysis#Orthonormal ICA | 正交ICA]]中讲到的)是可行的,但是速度慢。在标准正交基是不可或缺的情况下,标准正交ICA的使用会受到一些限制。(哪些情况见:[[TODO]] )
 +
 
== 标准正交ICA ==
== 标准正交ICA ==
标准正交ICA的目标函数是:
标准正交ICA的目标函数是:
 +
:<math>
:<math>
\begin{array}{rcl}
\begin{array}{rcl}
Line 35: Line 37:
\end{array}  
\end{array}  
</math>
</math>
 +
通过观察可知,约束<math>WW^T = I</math>隐含着另外两个约束:
通过观察可知,约束<math>WW^T = I</math>隐含着另外两个约束:
-
第一,因为要学习到一组标准正交基,所以基向量的个数必须小于输入数据的维度。具体来说,这意味着不能像通常在稀疏编码中所做的那样来学习得到超完备基(over-complete bases)。
 
-
第二,数据必须经过无正则ZCA白化(也即,<math>\epsilon</math>设为0)。(为什么必须这样做?见[[TODO]])
 
-
因此,在优化标准正交ICA目标函数之前,必须确保数据被白化过,并且学习的是一组不完备基(under-complete basis)。
 
-
'''原文''':
 
-
Following that, to optimize for the objective, we can use gradient descent, interspersing gradient descent steps with projection steps to enforce the orthonormality constraint. Hence, the procedure will be as follows:
+
第一,因为要学习到一组标准正交基,所以基向量的个数必须小于输入数据的维度。具体来说,这意味着不能像通常在[[Sparse Coding: Autoencoder Interpretation | 稀疏编码]]中所做的那样来学习得到超完备基(over-complete bases)。
-
Repeat until done:
+
第二,数据必须经过无正则[[Whitening | ZCA白化]](也即,<math>\epsilon</math>设为0)。(为什么必须这样做?见[[TODO]])
-
<ol>
+
-
<li><math>W \leftarrow W - \alpha \nabla_W \lVert Wx \rVert_1</math>
+
-
<li><math>W \leftarrow \operatorname{proj}_U W</math> where <math>U</math> is the space of matrices satisfying <math>WW^T = I</math>
+
-
</ol>
+
-
In practice, the learning rate <math>\alpha</math> is varied using a line-search algorithm to speed up the descent, and the projection step is achieved by setting <math>W \leftarrow (WW^T)^{-\frac{1}{2}} W</math>, which can actually be seen as ZCA whitening ([[TODO]] explain how it is like ZCA whitening).
+
 
 +
因此,在优化标准正交ICA目标函数之前,必须确保数据被白化过,并且学习的是一组不完备基(under-complete basis)。
然后,为了优化目标函数,我们可以使用梯度下降法,在梯度下降的每一步中增加投影步骤,以满足标准正交约束。过程如下:
然后,为了优化目标函数,我们可以使用梯度下降法,在梯度下降的每一步中增加投影步骤,以满足标准正交约束。过程如下:
 +
 +
重复以下步骤直到完成:
重复以下步骤直到完成:
<ol>
<ol>
Line 61: Line 59:
</ol>
</ol>
-
在实际中,学习速率<math>\alpha</math>是可变的,使用一个线搜索算法来加速梯度.投影步骤通过设置<math>W \leftarrow (WW^T)^{-\frac{1}{2}} W</math>来完成,这实际上可以看成就是ZCA白化(TODO:解释为什么这就象ZCA白化).
 
 +
在实际中,学习速率<math>\alpha</math>是可变的,使用一个线搜索算法来加速梯度.投影步骤通过设置<math>W \leftarrow (WW^T)^{-\frac{1}{2}} W</math>来完成,这实际上可以看成就是ZCA白化([[TODO]]:解释为什么这就象ZCA白化).
-
'''一审''':
 
-
然后,为了优化目标,我们可以使用梯度下降法,在梯度下降的每一步中增加投影步骤,以满足标准正交约束.过程如下:
 
-
重复直到完成:
 
-
<ol>
 
-
<li><math>W \leftarrow W - \alpha \nabla_W \lVert Wx \rVert_1</math>
 
-
<li><math>W \leftarrow \operatorname{proj}_U W</math>, 其中<math>U</math>是满足<math>WW^T = I</math>的矩阵空间.
 
-
</ol>
 
-
在实际中,学习速率<math>\alpha</math>可以通过使用一个一维搜索来调整,以改变下降速度. 投影步骤通过更新<math>W \leftarrow (WW^T)^{-\frac{1}{2}} W</math>来完成,这一步也可以看成是ZCA白化(TODO:解释为什么这类似ZCA白化).
+
== 拓扑ICA ==
 +
 
 +
 
 +
与[[Sparse Coding: Autoencoder Interpretation | 稀疏编码算法]]类似,加上一个拓扑代价项,独立成分分析法可以修改成具有拓扑性质的算法。
-
== Topographic ICA 拓扑ICA ==
 
-
'''原文''':
+
==中英文对照==
-
Just like [[Sparse Coding: Autoencoder Interpretation | sparse coding]], independent component analysis can be modified to give a topographic variant by adding a topographic cost term.
+
:独立成分分析    Independent Component Analysis
 +
:稀疏编码算法    Sparse coding  
 +
:超完备基        Over-complete basis
 +
:标准正交基      Orthonormal basis
 +
:稀疏惩罚项      Sparsity penalty
 +
:梯度下降法      Gradient descent
 +
:白化            Whitened
 +
:不完备基        Under-complete basis
 +
:线搜索算法      Line-search algorithm
 +
:拓扑代价项      Topographic cost term  
-
'''译文''':
 
-
就像稀疏编码,独立成分分析可以被修改成一个拓扑变量加上一个拓扑代价项.
+
==中文译者==
 +
袁贞明(zmyuan@hznu.edu.cn),晓风(xiaofeng.zhb@alibaba-inc.com), 林锋(xlfg@yeah.net)
-
'''一审''':
 
-
和稀疏编码类似,独立成分分析可以修改为在一个拓扑变量加上一个拓扑代价项.
+
{{Languages|Independent_Component_Analysis|English}}

Latest revision as of 04:37, 8 April 2013

Personal tools