大语言模型---Dropout 的定义;Dropout 减少过拟合的原因;Dropout 的实现
文章目录
- 1. Dropout 的定义
- 2. Dropout 减少过拟合的原因
- 3. Dropout 的实现
1. Dropout 的定义
Dropout 是一种简单而有效的正则化技术,通过在每次训练迭代中随机丢弃(即屏蔽)一部分神经元,强制模型在没有某些特定神经元参与的情况下学习,从而降低对特定神经元的依赖性。
- 机制:
- 在训练过程中,每个神经元以一定概率 p(如 p=0.5)被随机“丢弃”(设置为 0),即它的输出不会被传播到下一层。
- 在推理过程中,Dropout 被关闭,所有神经元都参与计算。
2. Dropout 减少过拟合的原因
- 打破神经元的共适应性(Co-adaptation):
- 在传统的神经网络中,某些神经元可能会对特定输入特征高度依赖,导致模型在训练数据上的表现很好,但- - 在测试数据上的泛化能力较差。
- Dropout 随机屏蔽了一部分神经元,迫使网络学会更多的冗余表达和独立特征,从而减少对特定神经元的过度依赖。
- 类似于集成学习的效果:
- 每次训练时,Dropout 都会生成一个不同的“子网络”。
- 因此,最终训练出来的模型可以看作是多个不同子网络的集成,集成学习本身具有较好的泛化能力。
- 降低参数之间的相互依赖:
- 随机丢弃参数迫使网络中的每个参数独立发挥作用,避免了模型将过多学习能力集中在少数几个参数上。
- 增加网络的鲁棒性:
- Dropout 模型更能适应数据的变化,例如噪声或轻微的分布偏移,因为它在训练过程中已经学会了如何在部分信息缺失的情况下进行预测。
3. Dropout 的实现
- 训练阶段:
- 在训练中,Dropout 随机屏蔽神经元的输出。
- 数学表示为:
y ~ = D r o p o u t ( y , p ) \tilde{y} =Dropout(y,p) y~=Dropout(y,p)
其中: - p p p:保留神经元的概率(通常 ( 0.5 ))。
- y y y:原始输出。
- y ~ \tilde{y} y~:Dropout 后的输出。
- 推理阶段:
在推理时,不使用 Dropout: y ~ = y \tilde{y} =y y~=y