Dropout

  • 作用
    防止过拟合。hinton提出,在AlexNet中表现很好被引起关注。

  • 实现
    前向:生成一个01区间的随机矩阵,大小和a矩阵一致,矩阵 后向:da(a的梯度)点乘这个d矩阵,再点除prob。
    训练和测试:只在训练的过程中使用dropout,test中没有dropout。

  • 注意
    1.参数prob是keep_prob,神经元被保留的概率。但是在keras中的参数rate是需要丢弃的输入比例
    2.一般是用于容易发生过拟合的场景,例如计算机视觉(过拟合可以通过画训练和验证的准确率和loss随着epoch变化的图来查看)。

  • 缓解过拟合的理解

  1. 每次迭代选择的神经元不同,相当于训练了很多个不同的模型,有类似ensemble的作用;
  2. 神经元随时可能被移除,迫使模型学习中不能特别地依赖个别神经元,将权重分散开。(想象,部分的可能会很大,dropout可以消除这一影响)。
  3. 神经网络训练完成后,相邻的神经元通常具有相似的权重,采用drop可以消除这一影响。

你可能感兴趣的:(Dropout)