Hinton Neural Networks课程笔记3b:线性神经元的误差曲面

来源:互联网 发布:h3c防火墙web配置 端口 编辑:程序博客网 时间:2024/03/29 10:10

引入了误差曲面(error surface)的概念;然后利用误差曲面,分析了简单梯度下降学习算法的一种不适用情况:未归一化。


误差曲面(error surface)

回忆学习感知机过程中应用的权重空间工具,误差曲面坐落的空间与权重空间很类似。误差(error/loss)函数在数据集确定的情况下可以看做是权重的函数,在权重空间的基础上加入误差维度,然后所有<权重,误差>点组成的曲面即为误差曲面。通常情况下,示意图中纵坐标用于指示误差,而横坐标表示权重。如下图所示,上面的是权重为1维的情况下的误差曲面(实际为一个二次曲线),下面为权重为2维的情况下的误差曲面(使用等高线表示,为一个个同心椭圆):
error surface

简单梯度下降算法的误差曲面相关解释

回忆上节提及的线性神经元+误差平方和使用的简单梯度下降算法,这里给出了利用误差曲面的解释。分为全数据集梯度下降和在线梯度下降(online/在线)两种:
learning
左面的为全数据集计算梯度的简单梯度下降算法,而右面的为每次只使用一个数据点计算梯度的在线梯度下降(Online)算法。先看全数据集的情况:因为是全数据集,所以每次计算的梯度即为误差曲面的斜率,方向与椭圆的边缘垂直,所以如果步长设置合理,每次都使得权重向椭圆中心(全局最小点)移动,最终收敛于椭圆中心附近。对于每次只使用一个数据点的情况:实际上权重是向某一个超平面移动(因为每次只有一个数据点,所以最小化此数据点计算的误差,即为使得权重最小化(wTxt)2;上诉公式在wTxt=0的时候误差为0);在两个数据点二维权重的情况下,两个超平面(实际是两条线)的交点即为椭圆中心;在多个数据点的情况下,因为步长相同,而总误差为所有数据点误差的总和,每个数据点被使用次数相近,从而可以期待在线算法会收敛到椭圆中心附近。虽然在线梯度下降算法同样会收敛,但因为每次都只最小化一个数据点的误差,没有全局视角,最终大概率会成z字型下降,速度很可能会慢于全数据集的简单梯度下降算法。(笔者注:也有可能Online要快于全局,因为计算全部数据点的梯度需要消耗的资源和时间多;适当构造数据点和初始位置可以导致每次前进的方向和步长都刚好合适。)

简单梯度下降速度很慢的一种情况

slow
如上图所示,当椭圆很扁的时候,梯度的方向几乎和前往椭圆中心的方向垂直(从而每次大部分都在做无用功,不断抖动,难以收敛)。(笔者注:这种情况通常发生在输入没有做归一化的情况,每一维的输入尺度不一样,却使用同一个学习率,从而导致很大的抖动,难于收敛。)

阅读全文
0 0
原创粉丝点击