辍学 是指丢弃在神经网络中被掩盖且引人注意的单元。辍学是一种非常流行的方法,可以克服神经网络中的过度拟合问题。
深度学习框架 现在变得越来越深远。使用这些更大的网络,我们可以实现更好的预测准确性。但是,几年前并非如此。深度学习存在过度拟合的问题。那时,大约在2012年,Hinton在他们的论文中提出了Dropout的想法,即在训练过程的每次迭代中随机排除特征子集。这个概念彻底改变了深度学习。深度学习成就的重要部分归因于辍学。
没有为此图片提供替代文字
在辍学之前,正则化是一个重要的研究领域。 从2000年代中期开始在神经网络中引入正则化方法,例如 L1和L2重量惩罚。尽管如此,这些正则化并不能完全解决过度拟合的问题。
Wager等。在他们的论文2013中, 对于特征权重的学习,辍学正则化优于 L2正则化。
辍学是一种在训练过程中丢弃随机选择的神经元的方法。它们是任意“退出”的。这表明,它们对下游神经元激活的贡献在前向传递中被暂时撤离,并且任何重量更新都不会在后向传递中应用于神经元。
您可以设想,如果在训练过程中神经元偶然地从网络中退出,则其他神经元将必须介入并处理对丢失的神经元进行预测所需的描述。相信这带来了网络正在学习的各种独立的内部表示。
尽管辍学最终成为一项非常成功的技术,但其成功的原因在理论上尚未得到很好的理解。
没有为此图片提供替代文字
我们可以看到标准的前馈传递:权重乘以输入,加上偏差,然后将其传递给激活函数。等式的第二种安排阐明了在我们放入辍学事件的情况下的样子:
生成一个丢弃蒙版:伯努利随机变量(例如1.0 *(np.random.random((size))> p)
使用掩码输入断开某些神经元的连接。
利用这一新层来增加权重并增加偏差
最后,使用激活功能。
所有权重都在潜在的指数数量的网络上共享,并且在反向传播期间,将仅刷新“瘦网络”的权重。
根据(Srivastava,2013)Dropout,神经网络可以与随机梯度下降一起训练。每次微型批次中的每个训练案例均独立完成辍学。辍学可以与任何激活函数一起使用,他们的逻辑,tanh和整流线性单位的实验产生的结果相当,但是需要不同数量的训练时间,而整流线性单位是最快的训练方法。
Kingma等人(2015年)建议“辍学”要求指出辍学率,即辍学神经元的概率。通常使用网格搜索来优化辍学率。另外,变异辍学是高斯辍学的精妙翻译,是贝叶斯正则化的非凡实例。这种方法使我们可以调整辍学率,并且原则上可以用于为每一层,神经元甚至体重设置单独的辍学率。
(Ba et al。,2013)的另一项实验增加了深度学习算法中的隐藏单元数量。辍学正则化的一个值得注意的事情是,由于所有隐藏单元都有被排除的同等概率,因此它可以在大量隐藏单元中实现相当普遍的性能。
推荐建议
通常,利用20%-50%的神经元的小缺失值,其中20%提供一个很好的起点。太低的概率对系统的学习不足影响很小,而值得太高的结果。
当在较大的网络上使用辍学时,您可能会显示出改进执行的迹象,从而使模型有更多的机会学习免费描述。
与隐蔽单位一样,在接近(明显)时使用落差。在系统的每一层利用辍学已显示出巨大的成果。
关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!