学习率、权重衰减、动量被称为超参数,因为他们不是由网络训练而得到的参数
权重衰减
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,λ就是权重衰减项。
作用:防止过拟合
原理:
一个所谓“显而易见”的解释就是:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。当然,对于很多人(包括我)来说,这个解释似乎不那么显而易见,所以这里添加一个稍微数学一点的解释(引自知乎):
过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
效果:
权重衰减项对Wi的导数正比于Wi的值,因此所有Wi在每次迭代中会等比缩小
学习率
作用:控制梯度下降的速度
注意点:如果学习速率过小,则会导致收敛速度很慢。如果学习速率过大,那么其会阻碍收敛,即在极值点附近会振荡,因此通常会控制学习率使其在多次迭代后衰减,使得网络可以顺利收敛
动量(Momentum)
v表示每次更新的变化量,上一个时刻的变化量乘以的系数γ,就是动量添加的部分。
作用:
对于那些当前的梯度方向与上一次梯度方向相同的参数,那么进行加强,即这些方向上更快了;对于那些当前的梯度方向与上一次梯度方向不同的参数,那么进行削减,即在这些方向上减慢了。
原理:
从公式上看,相当于每次更新的时候,都会考虑上次的更新值,如果方向一样就变得越来越快,如果方向不同,就会相互抵消,以便收敛。