首页 > 代码库 > [翻译博文]线性隐层单元并不存在
[翻译博文]线性隐层单元并不存在
译自:Don‘t Interpret Linear Hidden Units, they do not exist!
http://building-babylon.net/2016/10/19/dont-interpret-linear-hidden-units-they-dont-exist/
已经训练好了模型,很自然的想到该如何理解该模型。数据点最大化隐层单元的激活函数,将数据点输入特征视为指示哪个单元来重组。下面是对隐层单元的误解:
- 隐层没有非线性单元;
- 层间权重无约束;
- 采用(随机)梯度下降或类似算法训练模型;
在这样的情形下,我们需要将隐式的特征空间视为一个整体。
考虑对矩阵的分解,固定维度,将分解为矩阵的乘积。 模型的参数是一对具有合适维度的矩阵,输入向量x通过隐层后的像为。从隐层单元的激活函数的角度来看,固定了隐层特征空间的坐标系统,用来度量沿着每个坐标轴的向量的位移。若对应选定的坐标系统的单位向量,则内积沿着每个坐标轴所产生的位移可以分别用来度量。
下面,我们要证明:若是对隐层特征空间的任意旋转变换,那么模型参数与一样可能会导致给定矩阵X的分解,而发生的概率仅仅取决于梯度下降的随机初始化。因此,隐层激活函数也有可能用来定义。隐层单元激活函数与确实不同。既然是正交变换,那么。模型参数(即与)的不确定性与坐标系统方向(即与)的不确定性是一样的。选择坐标基是完全任意的,所以隐层单元的激活函数也是无意义的。
更一般化的情形,当是一个隐层特征空间的正交变换时,上面的证明也是成立,例如是旋转与反射的组合。
上述思想并不新鲜,因为Szegedy等人曾经采用实验验证隐层单元的解释。我们逐步来展示他们关于word2vec的陈述。
给定矩阵以及维度,矩阵分解的任务就是要学到与两个矩阵,使得其乘积能尽可能逼近原始的矩阵。 参数空间由矩阵与中所有的元素构成。
parameter vector:
换个角度来讲,隐层的特征空间是维空间,包含了与的列向量构成。
采用梯度下降训练矩阵分解模型时,通常需要使用误差函数的梯度(优化目标的梯度)来重复更新模型参数。 例如,误差函数可以是如下形式:
值得注意的是,这种误差函数并不直接依赖于或,而是只依赖于两者的乘积,也就是说乘积与矩阵的近似程度。由于误差函数仅依赖于输入和输出,所以这一点对任何形式的误差函数都成立。
隐层特征空间的正交变换:空间的正交变换是由通过原点的超平面的旋转与反射变换组成。在矩阵中,正交变换定义为一个矩阵与其转置的乘积为单位矩阵。利用这个性质,可以很容易证明:隐层特征空间的正交变换,也就是参数空间各列上的正交变换。与分别对应隐层特征空间的正交变换群与参数空间的正交变换群,这两个群是同态的。
群同态(Group Homorphism):
梯度等高线:参数空间上的块对角矩阵形式的正交变换的效果是特征空间对矩阵A与B左乘以正交变换矩阵P,这个效果用数学语言描述为:。
因此,我们与可以说产生对原始矩阵X相同的近似。从而可以得到。隐层特征空间的正交变换描绘出了参数空间中的等高线。现在,梯度向量总是垂直于等高线,在梯度下降过程中,需要访问的参数空间的点序列保留了初始化时设置的隐层特征空间的方向。所以,如果的梯度下降起始于,收敛到参数,你可能更期望收敛到,那么需要做的就是重新做一遍梯度下降,只不过初始值设置为。由此看来,我们的矩阵分解模型所学到的矩阵只是有隐层特征空间的正交变换决定,等价于同时的列变换。
上述陈述在随机梯度下降场景下仍旧是成立的,其中误差函数并非固定的,而是由不断变化的小任务来定义。 这样的误差函数仍旧不依赖于隐层单元的值,所以梯度向量仍旧是垂直于由隐层特征空间的正交变换描绘的登高线。随机梯度下降过程中的更新仍旧是保留了初始化时隐层特征空间的方向。
未完待续
[翻译博文]线性隐层单元并不存在