文章目录
6.4 dropout
- 辛顿等提
- 提高网络泛化能力
- 过拟合问题是NN中常见问题。
- 80年代至90年代NN鼎盛
- 训练神经网络数据量不及现在
- 数据过少,神经网络训练会简单
- 对训练数据的识别准确率接近于100%,
- 对测试数据的识别较差
- 很多方案去解决过拟合问题,
- 一种就是Dropout
- Dropout
- 在训练过程中,
- 按一定概率将部分中间层的单元暂时从网络中丢弃,
- 通过把该单元的输出设为0,使其不工作,来避免过拟合。
- Dropout可用于训练包含全连接层的神经网络。
- 神经网络的训练过程就是对每个Mini-Batch用误差反向传播算法不断迭代调整各参数值,
- Dropout是每次迭代调整时,随机选取一部分单元将其输出设为0(图6.14)
- 计算误差时原本是用所有单元的输出值,
- 部分单元被丢弃,
- 结果来看Dropout起到了与均一化方法类似作用
- 但对被舍弃的单元误差反向传播计算时
- 仍要用被舍弃之前的原始输出值
- Dropout的概率通常会设50%,即单元输出值有50%的概率被设置为0。
- 数值并非绝对,也可不同层用不同的舍弃概率,
- 有事例显示这样也能提高性能
- Dropout被提出以来,已通过各种基准测试证明其有效性,
- 已成为深度学习中不可或缺的技术
- 用训练好的网络识别时,
- 需输入样本并正向传播,
- 此时进行过Dropout处理的层,
- 其输出值需要在原始输出的基础上乘以训练时用的Dropout概率(图6.15)
- 训练时网络通过Dropout舍弃一定概率单元,但识别时仍要使用所有单元
- 有输出值的单元个数会增加Dropout概率的倒数倍。
- 单元之间通过权重系数连接,这里还需要乘以 Dropout的概率。
- 像这样对网络进行参数约束后仍然能训练出合理的网络,
- 达到了抑制过拟合的目的