优化方法
- SGD
缺点:梯度的方向并没有指向最小值的方向
-
Momentum
image.png
对应物理上的速度,
能使物体逐渐减速
-
AdaGrad
image.png
h保存了以前的所有梯度值的平方和,参数的元素中变动较大(被大幅更新)的元素的学习率将变小。也就是说,可以按参数的元素进行学习率衰减,使变动大的参数的学习率逐渐减小。
image.png
由于y 轴方
向上的梯度较大,因此刚开始变动较大,但是后面会根据这个较大的变动按
比例进行调整,减小更新的步伐。因此,y 轴方向上的更新程度被减弱,“之”
字形的变动程度有所衰减。 RMSProp
AdaGrad会记录过去所有梯度的平方和。学习越深入,更新的幅度就越小。最后更新量就会变为0。为了改善这个问题,RMSProp方法并不是将过去的梯度一视同仁得相加,而是逐渐遗忘过去的梯度,称为“指数移动平均”,呈指数函数式地减小过去的梯度的尺度。
-
Adam
Momentum和AdaGrad结合得到Adam
image.png
一般而言,与SGD相比,其他3 种方法可以学习得更快,有时最终的识别精度也更高。
权重的初始值
可以将权重初始值设为0吗
这是因为在误差反向传播法中,所有的权重值都会进行相同的更新。因此,权重被更新为相同的值,并拥有了对称的值(重复的值)。这使得神经网络拥有许多不同的权重的意义丧失了。-
隐藏层的激活值的分布
使用sigmoid作为激活函数
image.png
各层的激活值呈偏向0 和1 的分布。这里使用的sigmoid函数是S型函数,随着输出不断地靠近0(或者靠近1),它的导数的值逐渐接近0。因此,偏向0 和1 的数据分布会造成反向传播中梯度的值不断变小,最后消失。这个问题称为梯度消失(gradient vanishing)。层次加深的深度学习中,梯度消失的问题可能会更加严重。
在一般的深度学习框架中,Xavier 初始值已被作为标准使用。如果前一层的节点数为n,则初始值使用标准差为的高斯分布。
Xavier 初始值是以激活函数是线性函数为前提而推导出来的。因为sigmoid函数和tanh函数左右对称,且中央附近可以视作线性函数,所以适合使用Xavier 初始值。但当激活函数使用ReLU时,一般使用Kaiming He等人推荐的初始值,也称为“He初始值”。
He 初始值使用标准差为的高斯分布。因为ReLU的负值区域的值为0,为了使它更有广度,所以需要2 倍的系数。
总结一下,当激活函数使用ReLU时,权重初始值使用He初始值,当激活函数为sigmoid 或tanh 等S 型曲线函数时,初始值使用Xavier 初始值。这是目前的最佳实践。
Batch Normalization
- 为了使各层拥有适当的广度,“强制性”地调整激活值的分布会怎样呢?实际上,Batch Normalization方法就是基于这个想法而产生的.
优点:
• 可以使学习快速进行(可以增大学习率)。
• 不那么依赖初始值(对于初始值不用那么神经质)。
• 抑制过拟合(降低Dropout等的必要性)。
Batch Norm,顾名思义,以进行学习时的mini-batch 为单位,按minibatch进行正规化。具体而言,就是进行使数据分布的均值为0、方差为1 的正规化。通过将BN插入到
激活函数的前面(或者后面),可以减小数据分布的偏向。
接着,Batch Norm层会对正规化后的数据进行缩放和平移的变换,用数学式可以如下表示。
image.png
初始值,然后通过学习调整到合适的值。
image.png
image.png
正则化
- 过拟合的原因
- 模型拥有大量参数、表现力强。
- 训练数据少。
权值衰减
权值衰减是一种抑制过拟合的方法。该方法通过在学习的过程中对大的权重进行惩罚,来抑制过拟合。很多过拟合原本就是因为权重参数取值过大才发生的。
在原来的损失函数上加上权重的L2范数-
Dropout
image.png
p是出现的概率
集成学习与Dropout 有密切的关系,这是因为可以将Dropout
理解为,通过在学习过程中随机删除神经元,从而每一次都让不同的模型进行学习。并且,推理时,通过对神经元的输出乘以出现比例(比如,0.5 等),可以取得模型的平均值。
超参数的验证
验证数据
不能使用测试数据评估超参数的性能。这一点非常重要,但也容易被忽视。
为什么不能用测试数据评估超参数的性能呢?这是因为如果使用测试数据调整超参数,超参数的值会对测试数据发生过拟合。换句话说,用测试数据确认超参数的值的“好坏”,就会导致超参数的值被调整为只拟合测试数据。这样的话,可能就会得到不能拟合其他数据、泛化能力低的模型。超参数的最优化
先大致设定一个范围,从这个范围中随机选出一个超参数(采样),用这个采样到的值进行识别精度的评估;然后,多次重复该操作,观察识别精度的结果,根据这个结果缩小超参数的“好值”的范围。通过重复这一操作,就可以逐渐确定超参数的合适范围。
有报告显示,在进行神经网络的超参数的最优化时,与网格搜索等有规律的搜索相比,随机采样的搜索方式效果更好。这是因为在多个超参数中,各个超参数对最终的识别精度的影响程度不同。
在超参数的最优化中,减少学习的epoch,缩短一次评估所需的时间是一个不错的办法。