参考文献:
一、参数初始化
参数初始化的作用:
1.1 标准初始化方法
特点:
- 隐层的状态的均值为0,方差为常量$\frac{1}{3}$,和网络的层数无关
- 标准初始化只适用于满足Glorot假设的激活函数,比如tanh。
推导:
符合输入参数的均匀分布,$n$是输入层神经元个数。
权重值的方差为(均匀分布 $D(x)=(b-a)²/12$):
现在把输入$X$的每一维度$x$看做一个随机变量,并且假设$E(x)=0$, $Var(x)=1$。假设$w$和$x$相互独立,则隐层状态的方差为 :
可以看出标准初始化方法得到一个非常好的特性:隐层的状态的均值为0,方差为常量$\frac{1}{3}$,和网络的层数无关,这意味着对于sigmoid函数来说,自变量落在有梯度的范围内。
1.2 Glorot条件
上述参数梯度不应该全部为0的条件只能保证网络能学到东西,而Glorot认为,优秀的初始化应该使得各层的激活值和状态梯度的方差在传播过程中的方差保持一致。
- 条件:
- 输入假设
- 输入的每个特征方差一样:Var(x)
- 激活函数假设:
- 激活函数$f(x)$对称:这样就可以假设每层的输入均值都是0
- $f\prime(0)=1$
- 初始时,状态值落在激活函数的线性区域:$f\prime(s_k^i)\approx 1$
- 输入假设
- 符合该条件的特征:
- 激活值方差和层数相关,反向传播的梯度方差和层数是有关系的,而参数梯度的方差和层数无关
- 相关推导过程: Xavier初始化推导
1.3 Xavier初始化
为了保证前向传播和反向传播时每一层的方差一致,可以将Glorot条件转换成($n_i$为第$i$层的神经元个数):
输入与输出的个数往往不相等,于是为了均衡考量,根据由Glorot条件,得到方差设定符合:
该方差对应的均匀分布即为Xavier初始化分布:
- 特点:
- 激活值的方差和层数无关,反向传播梯度的方差和层数无关
二、正则化
正则化的目的是对网络参数进行惩罚,特别是阶数较高项$x^n$ $ (网络表达式: w_1x^n+w_2x^{n-1}+…+w_n)$的系数参数,因为如果该项系数较大,是的拟合曲线复杂,会导致网络过拟合。引入正则化,则不会因为$x$的较小变动导致输出的较大变化,对噪声的容忍程度比较好。
没有正则化:($\eta$是学习率)
2.1 L1正则 (带有特征选择能力)
$C$是正则化后的损失函数,$C_0$是正则化前的损失函数。
那么权重更新为:
L1正则的作用是使$w$在每一次迭代时都变化一个常数:$\frac{\eta\lambda}{n}$。
当$w$本身比较小时,L1正则比L2正则衰减得更厉害。L1正则的效果是使不重要的$w$几乎衰减为0。
- 因而L1具有一定的稀疏性,并有一定的特征选择的功能。
2.2 L2正则 (与权重衰减不完全等价)
$C_0$是正则化之前的损失函数,$λ$是正则项系数,$n$是参数$w$的个数。最小化损失函数$C$的同时也会使$\sum_{i=1}^n{w_i^2}$尽可能小。
加上正则项后梯度变为:
- L2正则项的作用是使$w$在每次迭代时都变小了$\frac{\eta\lambda}{n}$倍。
- 如果要使这个倍率不变,那么当神经元个数增多(即$n$变大)时,正则项系数$λ$也应该相应调大。
2.3 L2 正则 vs 权值衰减
L2正则化是在目标函数中直接加上一个正则项,直接修改了我们的优化目标。
权值衰减是在训练的每一步结束的时候,对网络中的参数值直接裁剪一定的比例,优化目标的式子是不变的。
在使用朴素的梯度下降法时二者是同一个东西,因为此时L2正则化的正则项对梯度的影响就是每次使得权值衰减一定的比例。
但是在使用一些其他优化方法的时候,就不一样了。比如说使用Adam方法时,每个参数的学习率会随着时间变化。这时如果使用L2正则化,正则项的效果也会随之变化;而如果使用权值衰减,那就与当前的学习率无关了,每次衰减的比例是固定的。