L1,L2和Dropout正则化
范数
- \(L_{0}\)范数:向量中非零元素的个数
\(eg:[1,2,0,4]^T\)的\(L_{0}\)范数为\(3\)
- \(L_{1}\)范数:向量中所有元素的绝对值之和
\(eg:[-2,3,4,1]^T\)的\(L_{1}\)范数为\(|-2|+3+4+1=10\)
- \(L_{2}\)范数:欧式距离,即向量的模
\(eg:[-1,2,2,1]^T\)的\(L_{2}\)范数为\(\sqrt{1+4+4+1}=10\)
- \(L_{p}\)范数:对于一个向量\(x=[x_{1},x_{2},...,x_{m}]^T\),其\(L_{p}\)范数为
\(L_{1}\)正则化
对于一个损失函数
对其进行\(L_{1}\)正则化后,函数变为:
即在原来的函数的基础上正则项为一个\(L_{1}\)范数的函数
\(L_{2}\)正则化
对于一个损失函数
对其进行\(L_{2}\)正则化后,函数变为:
即在原来的函数的基础上正则项为一个\(L_{2}\)范数的函数
Dropout正则化
对于神经网络中的每一个隐藏层,设置一个\(keep-prob\)(保活概率)值,它表示每一层上保留神经元的的概率,而后对于某一层的神经元节点(设该层共有\(m\)个节点),随机生成\(m\)个呈正态分布的在\([0,1]\)之间的数,若第\(i\)个数的值大于\(keep-prob\)值,则在本轮迭代中将该层的第\(i\)个神经元暂时去除,即不再向后面的神经网络层传递该神经元的值,同时反向传播时也不再使用该节点,等到下一轮迭代时才会再次激活,这样即可获得一个更加简洁的神经网络。
\(L_{1}\)正则化的几何解释

如上图,图中的圆环为损失函数的等高线,正方形为正则项(令\(|\omega_{1}|+|\omega_{2}|=C\),图中只画出了一个\(C\)对应的情况,而\(C\)是可以通过\(\lambda\)来改变的),由于\(L_{1}\)正则化后的函数的极值点必落在圆环与正方形相切的点上的,而符合条件的这些点是很容易落在坐标轴上的,因此\(L_{1}\)正则化可以使特征稀疏化,即把权重矩阵变得稀疏。
\(L_{2}\)正则化的几何解释

理解Dropout正则化
由于神经网络中的神经元会随机失活,因此这会导致权重矩阵中的值不能依赖任何前面的神经元,因为神经元随时有可能被消除,反映到输入层的输入,即特征值上,即为权重矩阵不能依赖任何特征值,因此权重矩阵中的任何一个值都不能太大。
为什么正则化可以防止过拟合
过拟合时,拟合函数的系数往往非常大,因为过拟合需要顾及到每一个样本点,这就会导致最终形成的拟合函数图像会有很多较大的波动,函数值变化剧烈,即在一些小区间内,导数值的绝对值会非常大(如下图),由于自变量的值的范围可大可小,因此只有系数足够大,才会导致导数值很大。而正则化即是通过对参数进行约束使其不能太大,从而在一定程度上减少过拟合的发生。同时由于\(L_{1}\)正则化可以使权重矩阵变得稀疏,从而间接减少了对样本特征的依赖,即相当于间接减少了样本特征属性的个数,而这也是可以减少过拟合的发生的。

正则化后的权重矩阵与未进行正则化的权重矩阵的差距会很大吗
进行正则化后会使得权重矩阵和原来的权重矩阵的值相差较大,但并不会造成损失函数过大,即正则化会导致偏差稍微地变大一些,但却可以使方差小很多,而这也是能防止过拟合的根本原因。以\(L_{2}\)正则化为例,在上面对\(L_{2}\)正则化的几何解释的那张图中,可以看到,正则化后的最优解\(\omega^*\)与未正则化的最优解,即圆环的圆心相差是很大的,但实际上,偏差并未增加很多,因为我们的损失函数使用的是最后一层的神经网络的权重矩阵来计算的,且损失函数为:
由于神经网络会进行反向传播,因此,在进行正则化后,往输出层输入的\(x_{i}\)会与未进行正则化输入的\(x_{i}\)不同,比如,设未进行正则化时,输入的\(x_{i}=1\),且\(\theta_{i}=1\),则损失函数为\((1-y)^2\),而进行正则化后,由于\(\theta_{i}\)变小了,设为\(0.5\),而经过反向传播后,从前面传来的\(x\)也会变化,设\(x_{i}=2\),则损失函数为\((1-y)^2+reg(\theta)\),因此,损失函数只增加了正则项,并没有与未正则化时的损失函数值差太多。

浙公网安备 33010602011771号