正则化(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)
浙公网安备 33010602011771号