独立成分分析
From Ufldl
Line 12: | Line 12: | ||
'''译文''': | '''译文''': | ||
- | + | ||
+ | 如果你还记得,在稀疏编码中我们希望为数据学习一个过完备基(over-complete basis).具体来说,这意味着我们在稀疏编码中学习的基向量不一定是线性独立的.虽然在某些情况下这是可以的,但有时我们希望学习一个线性独立基.这正是我们在独立成份分析(ICA)中要做的.而且,在ICA中,我们希望学习的不仅是线性独立基,而且是标准正交基.(一个标准正交基是一个基<math>(\phi_1, \ldots \phi_n)</math>,满足<math>\phi_i \cdot \phi_j = 0</math> if <math>i \ne j</math> and <math>1</math> if <math>i = j</math>). | ||
'''一审''': | '''一审''': | ||
- | + | ||
+ | 如果你还记得,在稀疏编码中我们希望为数据学习一个过完备基(over-complete basis).具体来说,这意味着在稀疏编码中学习到的基向量之间不一定线性独立.尽管在某些情况下这已经满足需要,但有时我们仍然希望得到一组线性独立基.例如在独立成份分析(ICA)中,这正是我们想要的.而且,在ICA中,我们希望学习到的基不仅要线性独立,而且还是一组标准正交基.(一个标准正交基<math>(\phi_1, \ldots \phi_n)</math>需要满足条件:<math>\phi_i \cdot \phi_j = 0</math> if <math>i \ne j</math> and <math>1</math> if <math>i = j</math>). | ||
'''原文''': | '''原文''': | ||
Line 27: | Line 29: | ||
'''译文''': | '''译文''': | ||
- | + | 和稀疏编码一样,独立成分分析有一个简单的数学形式.给定数据x,我们希望学习一个基向量集合,表示成一个矩阵W的列向量,其满足以下特点:首先,和稀疏编码一样,特征是稀疏的;其次,基是一个“标准正交”基.(注意,在稀疏编码中,矩阵A用于将特征s映射到“原始数据”,而在独立成分分析中,矩阵W工作的方向相反,是将“原始数据”x映射到“特征”).这样我们得到以下目标函数: | |
J(W)=‖Wx‖_1 | J(W)=‖Wx‖_1 | ||
'''一审''': | '''一审''': | ||
- | + | 和稀疏编码类似,独立成分分析也有一个简单的数学形式.给定数据x,我们希望学习到一组基向量,以列向量的形式构成矩阵W,其满足以下特点:首先,和稀疏编码一样,特征是稀疏的;其次,基是标准正交的(注意,在稀疏编码中,矩阵A用于将特征s映射到原始数据,而在独立成分分析中,矩阵W工作的方向相反,是将原始数据x映射到特征).这样我们得到以下目标函数: | |
J(W)=‖Wx‖_1 | J(W)=‖Wx‖_1 | ||
Line 50: | Line 52: | ||
'''译文''': | '''译文''': | ||
- | + | 这个目标函数等价于在稀疏编码中施加在特征s上的稀疏性惩罚,因为Wx正是表达数据的特征.我们加入标准正交约束来求解独立成分分析的全优化问题: | |
minimize ‖Wx‖_1 s.t. WW^T=1 | minimize ‖Wx‖_1 s.t. WW^T=1 | ||
'''一审''': | '''一审''': | ||
- | + | 由于Wx实际上是描述数据的特征,这个目标函数等价于在稀疏编码中在特征s上加上稀疏惩罚.加入标准正交性约束后,独立成分分析相当于求解如下优化问题: | |
minimize ‖Wx‖_1 | minimize ‖Wx‖_1 | ||
s.t. WW^T=I | s.t. WW^T=I | ||
Line 66: | Line 68: | ||
'''译文''': | '''译文''': | ||
- | 与在deep | + | 与在deep learning中的通常情况一样,这个问题没有简单的解析解,而且情况变得更糟,正交规范化约束使得难以用梯度下降来优化求解目标——每次梯度下降迭代必须跟着一步将新的基映射回正交规范基空间中(因此来强制约束). |
'''一审''': | '''一审''': | ||
- | 与在deep | + | 与在deep learning中的通常情况一样,这个问题没有简单的解析解.而且由于标准正交性约束,使得用梯度下降方法来求解该问题变得更加困难,因为每一轮迭代中,在梯度下降迭代之后,必须将新的基映射回正交基空间中(以此保证正交性约束). |
'''原文''': | '''原文''': | ||
Line 78: | Line 80: | ||
'''译文''': | '''译文''': | ||
- | + | 在实践中,对目标函数优化的同时施加标准正交约束(正如在Orthonormal ICA 中描述的)是可行的,但是速度慢.因此,标准正交ICA的使用受限于必须得到一个标准正交基的条件.(TODO: 什么条件) | |
'''一审''': | '''一审''': | ||
- | + | 在实践中,在最优化目标函数的同时施加正交性约束(在下一节Orthonormal ICA 中描述的)是可行的,但是速度慢.由于获取正交基的重要性,标准正交ICA的使用受限于一些条件.(TODO: 什么条件) | |
== Orthonormal ICA 标准正交ICA == | == Orthonormal ICA 标准正交ICA == | ||
Line 100: | Line 102: | ||
'''译文''': | '''译文''': | ||
- | + | 标准正交ICA的目标函数是: | |
minimize ‖Wx‖_1 s.t. WW^T=1 | minimize ‖Wx‖_1 s.t. WW^T=1 | ||
- | + | 通过观察可知,约束WW^T=I隐含着另外两个约束. | |
'''一审''': | '''一审''': | ||
- | + | 标准正交ICA的目标函数是: | |
minimize ‖Wx‖_1 s.t. WW^T=I | minimize ‖Wx‖_1 s.t. WW^T=I | ||
- | + | 通过观察可知,约束WW^T=I隐含着另外两个约束. | |
'''原文''': | '''原文''': | ||
Line 120: | Line 122: | ||
'''译文''': | '''译文''': | ||
- | + | 首先,因为我们正在学习一个标准正交基,所以我们学习的基向量的个数必须小于输入的维度.在实践中,这意味着不能象我们通常在稀疏编码中一样来学习过完备基. | |
- | + | 第二,数据必须是无正则项的ZCA白化(即,ε设置为0).(TODO为什么必须这样做?) | |
- | + | 因此,在我们开始优化标准ICA目标函数之前,必须确保我们的数据已经被白化 . | |
'''一审''': | '''一审''': | ||
- | + | 第一,因为要学习到一组标准正交基,所以基向量的个数必须小于输入数据的维度.在实践中,这意味着不能像通常在稀疏编码中所做的那样来学习过完备基(over-complete bases). | |
- | + | 第二,数据必须经过无正则项ZCA白化(也即ε设为0).(TODO为什么必须这样做?) | |
- | + | 也即,在优化标准正交ICA目标函数之前,必须确保数据被白化过,并且学习的是一组不完备基(under-complete basis). | |
'''原文''': | '''原文''': | ||
Line 144: | Line 146: | ||
'''译文''': | '''译文''': | ||
- | + | 然后,为了优化目标,我们可以使用梯度下降法,在梯度下降的每一步中增加投影步骤,以满足标准正交约束.因此,这个过程如下: | |
- | + | 重复直到完成: | |
1. W←W-α∇_W ‖Wx‖_1 | 1. W←W-α∇_W ‖Wx‖_1 | ||
- | 2. W←〖proj〗_U | + | 2. W←〖proj〗_U W,其中U是满足WW^T=I的矩阵空间.在实际中,学习速率α是可变的,使用一个线搜索算法来加速梯度.投影步骤通过设置W←〖(WW^T)〗^(-1/2) W来完成,这实际上可以看成就是ZCA白化(TODO解释为什么这就象ZCA白化). |
'''一审''': | '''一审''': | ||
- | + | 然后,为了优化目标,我们可以使用梯度下降法,在梯度下降的每一步中增加投影步骤,以满足标准正交约束.过程如下: | |
- | + | 重复直到完成: | |
1. W←W-α∇_W ‖Wx‖_1 | 1. W←W-α∇_W ‖Wx‖_1 | ||
- | 2. W←〖proj〗_U | + | 2. W←〖proj〗_U W,其中U是满足WW^T=I的矩阵空间.在实际中,学习速率α可以通过使用一个一维搜索来调整,以改变下降速度.投影步骤通过更新W←〖(WW^T)〗^(-1/2) W来完成,这一步也可以看成是ZCA白化(TODO解释为什么这类似ZCA白化). |
== Topographic ICA 拓扑ICA == | == Topographic ICA 拓扑ICA == | ||
Line 164: | Line 166: | ||
'''译文''': | '''译文''': | ||
- | + | 就像稀疏编码,独立成分分析可以被修改成一个拓扑变量加上一个拓扑代价项. | |
'''一审''': | '''一审''': | ||
- | + | 和稀疏编码类似,独立成分分析可以修改为在一个拓扑变量加上一个拓扑代价项. |