概述
一个好的模型,应该有较好的平滑性,即函数不应该对其输入的微小变化敏感。如对图像进行分类时,向图像像素中添加一些随机的噪声应对分类结果基本没有影响。
丢弃法在前向传播的过程中,计算内部每层权重的同时注入噪声。因为当训练一个有多层的深层网络时,注入噪声只会在输入-输出映射上增强平滑性。丢弃法已经成为训练神经网络的常用技术。
这种方法之所以被称为丢弃法,因为从表面上,训练过程中一些神经元被丢弃了(置为0)。
如何无偏差地加入噪音
对x加入噪音得到x',我们希望E[x'] = x,即加入噪音后,扰动点地均值仍为x。标准丢弃法对每个点进行如下扰动:
即一定概率将该点的值置为0,否则该点的值为xi/1-p。这样
使用丢弃法
通常将丢弃法作用在隐藏全连接层的输出上。以𝑝的概率将隐藏单元置为零时, 结果可以看作一个只包含原始神经元子集的网络。
如图所示,按照p概率丢弃了隐藏层中的h2和h5单元。
h为隐藏层激活后的输出。h'为对h进行丢弃法后的结果。o为输出层的输出,y为经过softmax后的分类结果。
推理中的丢弃法
dropout作为一种正则项,只在训练中使用用于更新模型参数。在推理(预测)过程中,丢弃法的输出直接返回输入,以保证输出的确定性。
丢弃法总结
丢弃发将一些隐藏层的输出项随机置0来控制模型复杂度
常作用于多层感知机的隐藏层输出
丢弃概率是控制模型复杂度的超参数