6 提高泛化能力的方法

文章目录

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的概率。
  • 像这样对网络进行参数约束后仍然能训练出合理的网络,
    • 达到了抑制过拟合的目的

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/107649522