在神经网络训练过程中,Dropout 与 Batch Normalization 分别起到什么作用?请从操作原理和效果两个角度进行说明。
考察说明
考查对两种常用正则化或优化技术的理解,能否清晰区分其机制与适用场景。
回答思路
- 【回答框架 1】Dropout 是一种正则化技术,通过在训练时随机将一部分神经元的输出置零,使网络不过度依赖某些特征,从而缓解过拟合。其核心是引入随机性,相当于训练多个子网络的集成。
- 【回答框架 2】Batch Normalization 是一种优化技术,对每个 mini-batch 内的激活值进行归一化,使其均值为 0、方差为 1,然后再进行缩放和平移。它加速训练、允许使用较大学习率,并具有一定的正则化效果。
- 【回答框架 3】两者作用层面不同:Dropout 作用于神经元输出,主要防止过拟合;Batch Normalization 作用于层间激活,主要改善训练稳定性和收敛速度。同时使用时,通常建议先 BN 后 Dropout,但具体顺序需根据实践调整。
- 【关键点 1】Dropout 是随机丢弃神经元,属于正则化方法,缓解过拟合。
- 【关键点 2】Batch Normalization 是对激活值归一化,加速训练并提升稳定性。
- 【关键点 3】两者可结合使用,但机制和目的不同。
- 【易错点 1】Dropout 在测试时需关闭或缩放权重。
- 【易错点 2】Batch Normalization 在小 batch size 下效果不稳定。