再谈雅克比矩阵---在feature learning中的作用

     上次谈了雅克比矩阵以及雅克比行列式,这次我们继续讨论。既然是机器学习下面来谈论,于是就要结合着机器学习的背景来谈论了。

     这里涉及到的是无监督学习下的特征学习的问题,主要是参考了文章:Contractive Auto-Encoders: Explicit Invariance During Feature Extraction。这个篇文章对于auto encoder进行了改进,提出了对原有的auto encoder或者改进的正则化的auto-encoder的目标函数:

将等号右边的正则项(用来惩罚系数用的,防止过拟合,以及涉及到奥卡姆剃刀原理,其实我也只是懂一点),换成了F范数下的雅克比矩阵的形式,得到下面的公式:

,惩罚项的形式为这个就是F 范数下的雅克比矩阵。

很抱歉直接上公式,现在开始解释一下这些参数的意思。在这里,h=f(x) 是编码函数,y=g(h) 是解码函数,都是采用的sigma函数:


x是输入特征,是需要编码的特征。W是线性转换矩阵,b是偏置向量。L是损失函数,用来评价经过编码之后再经过解码之后得到的输出与原来的输入之间的差异,一般采用误差平方和的形式,于是现在我们大体上了解了第一个公式(公式5)的意思了。

介绍完背景之后,考虑我们为什么引入雅克比矩阵呢?在文章中作者说了通过引入雅克比矩阵的F 范数来促使学到的特征具有局部不变性。Auto-encoder最初是用来做数据降维的,但是在这里做的是一个类似数据升维的效果。我们将原始的输入特征经过编码之后得到高维的特征(采用过完备的一组基来表达),意思是获得了原始的输入空间下的高维的流形。通过采用雅克比矩阵就使得每一个在高维流形上的点(也就是学到的特征)具有局部不变性。这个可以通过计算局部流形的一阶导数获得,于是就出现了雅克比矩阵。


 作者在文章中提到,高维的雅克比矩阵包含方向信息,各个方向上的contraction是不同的,这个可以通过对雅克比矩阵做SVD体现出来。 在得到雅克比矩阵之后,我们需要体现出不变性,也就是说我们原始的数据空间经过contract之后仍然在各个方向上具有Isotropic。

   从几何角度来理解的话就是,特征的robustness 可以看做是把输入空间映射到特征空间的时候,输入空间的contraction。

你可能感兴趣的:(机器学习)