正则化方法是机器学习中用于防止过拟合的方法,L1和L2则分别指L1-范数和L2-范数,下面先介绍一下范数:
1. 范数
向量的范数表征向量间的距离,如果两个常量之间比大小,我们可以用减法,但是两个向量如何比较大小或者二者间的距离呢?我们采用的方法就是将两个向量用同一种映射方法,将其映射为常量,然后两个常量再比较大小。这种映射方法就是求向量的范数,所以范数其实是一种函数,而且是泛函。
-范数的定义:
(1) -范数:表示中非零元素的个数;
(2) -范数:表示中元素的绝对值的和;
(3) -范数:表示中元素的平方和再开根号,这就是我们常用的向量的模;
2.权重衰减
在初始化神经网络的权值时,我们用的都是非常小的值来初始化,比如均值为0,方差为0.01的截断高斯分布。这是为什么呢?因为我们希望得到的训练好的权值也是数值(绝对值)较小的数,这样拟合和泛化都会更好。如果权值过大,将很容易产生过拟合。
那么如何防止权值过大来抑制过拟合呢?这就需要权值衰减了。
先来看看权重衰减的两种方式:L1正则化和L2正则化。
2.1 L1正则化:
2.2 L2正则化:
其中表示原有的损失函数,如交叉熵或均值平方误差损失函数;
和分别表示L1和L2范数,即公式第二排表示的绝对值和&平方和。
即权值衰减的衰减系数,它一方面协调损失函数中和或的比重,一方面控制权值衰减的速度,这将在反向传播中很容易看出来。
除以权重数量表示单位样本的权重范数,这样可以避免样本数量对损失函数的影响,这是损失函数定义的一贯做法,如交叉熵和均值平方误差损失函数中都有除以样本的数量。
L2正则化多除了个2是为了方便求导,在求导时会和后面中的平方求导得到的2相抵消,使反向传播的形式和L1范数一致。
权重衰减的思想就是将权重参数的大小,按一定的比重加入神经网络的损失函数中,在神经网络的训练过程中要想降低损失函数,就要降低权重参数的大小,如何表示权重的大小呢?即用上面介绍的范数来表示。
是如何控制权重衰减的速度的呢?从反向传播中就能一目了然。
反向传播:
下面只取L2正则化为例推导反向传播。
原式
反向传播:
梯度下降:
其中为学习率,都是正数,所以是小于1的数,也就是说,在梯度下降是,权重在一定程度上衰减了,衰减的大小由控制,但是衰减后的权重再减去后面的梯度项之后,有可能表达也有可能减小,这与的符号有关。
权重衰减能够使权重参数变得小而稀疏,也就是会学习到很多值为0的权重。并且L1正则化比L2正则化更容易得到稀疏权重。
网友评论