您的位置:首页 > 理论基础 > 计算机网络

深度神经网络—正则化(一)L2正则化

2019-07-03 11:52 1291 查看

深度学习可能存在过拟合问题——高方差,有两个解决办法,一是正则化,另一个是准备更多的数据,但由于无法时时刻刻准备足够多的训练数据或者获取数据的成本高,所以通常使用正则化的方法来避免过拟合。

正则化的主要方法有:

  1. L2正则化
  2. dropout
  3. 数据增广
  4. early stopping
  5. Bagging
  6. 在样本中增加噪声

本篇博客先介绍L2正则化

1. L2正则化公式及参数更新

我们代价函数中加入正则化,只需添加参数λ,也就是正则化参数。得到:

L2正则化:

记作:

使用梯度下降法进行参数更新:

该正则化项表示,无论w是什么,都试图让它变得更小。相当于给每个矩阵前面都成了一个系数(1-α λ/m),该系数小于1,因此L2范式也被称为“权重衰减”。也就是相对于未正则化之前的参数,L2正则化减小的是参数w的一个比例。

2. 为什么L2正则化有利于预防过拟合

理解一:

添加正则项,他可以避免数据权值矩阵过大,直观上理解就是如果正则化λ设置得足够大,权重矩阵W被设置为接近于0的值,直观理解就是把多隐藏单元的权重设为0,于是基本上消除了这些隐藏单元的许多影响,如果是这种情况,这个被大大简化了的神经网络就会变成一个很小的网络,小到如同一个逻辑回归单元,可是深度却很大,它会使这个网络从过度拟合的状态更接近于高偏差状态,但λ会存在一个中间值,于是会有一个接近’Just right’的中间状态。
更直观理解就是λ增加到足够大,W会接近于0,实际上不会发生这种情况,我们尝试消除或者至少减少许多隐藏单元的影响,最终这个网络会变得更加简单,这个神经网络越来越接近于逻辑回归,我们直觉上认为大量隐藏单元被完全消除了,其实不然,实际上该神经网络的所有隐藏单元依然会存在,但他们的影响变得更小了,神经网络变得更加简单,这样就不容易发生过拟合。
理解二:

如上图所示,假设激活函数使用的是tanh(z):
如果正则化参数λ变得很大,根据参数更新公式,则参数w很小,z也会相对变小,忽略b的影响,那么z的取值范围就很小,这个激活函数,也就是曲线函数tanh会相对呈线性,整个神经网络会计算离线性函数近的值,并不是一个极复杂的高度非线性函数,不会发生过拟合。

3. L1正则化

L1正则化: 代价函数:

记作:

使用梯度下降法进行参数更新:

其中,

由于sgn函数是一个常量,因此参数w减少的是个常量。
和L2正则化的参数更新公式对比,可以发现:
当w在[1,+∞)时,L2正则化比L1正则化有更快的减小速率;
当w在(0,1]时,L1正则化比L2正则化有更快的减小速率;
并且,当w越小时,L1正则化更容易减小到接近于0,而L2正则化则不易变动。
因此,L1正则化会获得更多的接近于0的w,所以L1正则化后的参数更具有稀疏性

4. L1,L2正则化总结

  1. L1正则化减少的是一个常量,L2正则化减少的是权重的固定比例;
  2. 参数更新的快慢取决于参数本身的大小,参数较大时L2正则化快,参数较小时L1正则化快;
  3. L1正则化使参数稀疏,L2正则化使参数平滑(L1会趋向于产生少量的特征那个,而其他特征都是0,而L2会选择更多的特征,这些特征会接近于0)
  4. 实践中L2正则化通常优于L1正则化;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: