正则化(Regularization)

一、偏差与方差

  • 偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
    • 算法的差异
  •  方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
    • 数据集的差异

训练集的错误率较小,而验证集、测试集的错误率较大,说明模型存在较大方差,可能出现过拟合 

出现了过拟合怎么办?正则化

二、正则化

1、正则化概念

  • 简单的模型比复杂的模型泛化能力好
  • 正则化,即在成本函数中加入一个正则化项(惩罚项),惩罚模型的复杂度,防止网络过拟合

2、L1与L2

  • 由于L1正则化最后得到的W向量中将存在大量的0,使模型变得稀疏化,因此L2正则化更加常用
  • L2结果W趋近于0,权重衰减

3、正则化项的理解

  • 为什么达到效果?
    • 因为加入L2正则化,W权重在更新的时候,减小更快,减小的效果是求z=wx+b,z就变小,求激活函数导数的时候,梯度就不会非常小
    • 模型变得更加简单,不会发生过拟合

4、tf.keras正则化API

  • kernel_regularizer: keras.regularizers.l2()
  • 目的不是为了让训练更好,而是在训练很好的前提下,在测试集表现不好,有可能出现了过拟合,需要在原始网络中增加正则化参数

三、Dropout正则化

  随机的对神经网络每一层进行丢弃部分神经元操作

  • keep_prob,保留神经元的比例
  • 对于好多层的网络,不同层丢弃比例不一样

调试技巧:

  • dropout的缺点是成本函数无法被明确定义,保证损失函数是单调下降的,确定网络没问题,再次打开dropout才会有效
  • keras.layers.Dropout(0.2)

 四、其他正则化方法

1、早停止法

2、数据增强

posted @ 2021-12-03 14:35  luyizhou  阅读(401)  评论(0)    收藏  举报