Day27_【深度学习(6)—神经网络NN(4)正则化】
一、背景
在训练深层神经网络时,由于模型参数较多,在数据量不足的情况下,很容易过拟合。
正则化方法:通过一系列技术手段来防止模型过拟合,提升模型的泛化能力
二、正则化方法
1. 随机失活DropOut
1. 训练:
- 在训练阶段,对某一层(通常为主干网络的隐藏层)每个神经元输出以超参数 p(丢弃概率)随机置 0
- 未被置 0 的激活值乘以缩放因子 1(1−p)(1−p)1,保证该层输出的期望总值不变
- p 通常为 0.1
2. 测试:
- 随机失活关闭,不再采样掩码,直接使用完整网络(权重已隐含平均效应)
- 因而推理输出是确定性的,无需额外随机数
作用:
- 破坏神经元间的共适应性(co-adaptation),迫使每个单元都能独立贡献
- 等效集成大量深度不同的子模型,降低方差,缓解过拟合
2. 批量归一化BN
(1)理论
问题:
- 在神经网络的训练过程中,流经网络的数据都是一个batch,每个batch之间的数据分布变化非常剧烈。
- 这就使得网络参数不得不频繁的进行大的调整以适应流经网络的不同分布的数据。
- 给模型训练带来非常大的不稳定性,使得模型难以收敛。
解决措施:
- 对每一个batch的数据进行标准化之后,数据分布就变得稳定,参数的梯度变化也变得稳定,有助于加快模型的收敛。
- 标准化每一层的输入,使其均值接近0,方差接近1,从而加速训练并提高泛化能力,缓解网络过拟合。
- 简单来说就是,先对数据进行标准化,再进行缩放和平移。
(2)流程
1. 深度学习中标准化和归一化都指的是一个意思——标准化
2. 输入的每批次特征通过标准化后,使其均值接近0,方差接近1,使数据分布变得稳定,
从而加速训练并提高泛化能力,缓解网络过拟合