浅谈Dropout

在全连接网络部分,Dropout这一超参得到了较为广泛的应用,同时取得了不错的效果。下面就来简单地谈谈Dropout。

什么是Dropout

我们知道,典型的神经网络其训练流程是将输入通过网络进行正向传导,然后将误差进行反向传播。Dropout就是针对这一过程之中,随机地删除隐藏层的部分单元,进行上述过程。

综合而言,上述过程可以分步骤为:

  1. 随机删除网络中的一些隐藏神经元,保持输入输出神经元不变;
  2. 将输入通过修改后的网络进行前向传播,然后将误差通过修改后的网络进行反向传播;
  3. 对于另外一批的训练样本,重复上述操作1.

Dropout作用分析

从Hinton的原文以及后续的大量实验论证发现,dropout可以比较有效地减轻过拟合的发生,一定程度上达到了正则化的效果

论其原因而言,主要可以分为两个方面:

  1. 达到了一种Vote的作用。对于全连接神经网络而言,我们用相同的数据去训练5个不同的神经网络可能会得到多个不同的结果,我们可以通过一种vote机制来决定多票者胜出,因此相对而言提升了网络的精度与鲁棒性。同理,对于单个神经网络而言,如果我们将其进行分批,虽然不同的网络可能会产生不同程度的过拟合,但是将其公用一个损失函数,相当于对其同时进行了优化,取了平均,因此可以较为有效地防止过拟合的发生。
  2. 减少神经元之间复杂的共适应性。当隐藏层神经元被随机删除之后,使得全连接网络具有了一定的稀疏化,从而有效地减轻了不同特征的协同效应。也就是说,有些特征可能会依赖于固定关系的隐含节点的共同作用,而通过Dropout的话,就有效地组织了某些特征在其他特征存在下才有效果的情况,增加了神经网络的鲁棒性。

当前Dropout的使用情况

当前Dropout被大量利用于全连接网络,而且一般人为设置为0.5或者0.3,而在卷积隐藏层由于卷积自身的稀疏化以及稀疏化的ReLu函数的大量使用等原因,Dropout策略在卷积隐藏层中使用较少。

总体而言,Dropout是一个超参,需要根据具体的网路,具体的应用领域进行尝试。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页