深度学习面试题14:Dropout(随机失活)
目录
卷积层的dropout
全连接层的dropout
Dropout的反向传播
Dropout的反向传播举例
参考资料
在训练过程中,Dropout会让输出中的每个值以概率keep_prob变为原来的1/keep_prob倍,以概率1-keep_prob变为0。也就是在每一轮的训练中让一些神经元随机失活,从而让每一个神经元都有机会得到更高效的学习,会让网络更加健壮,减小过拟合。
在预测过程中,不再随机失活,也不在扩大神经元的输出。
卷积层的dropout |
举例:以一个2*4的二维张量为例,参数keep_prob=0.5,其过程如下:
全连接层的dropout |
Dropout处理一般用在全连接神经网络的全连接层或者卷积网络后面的全连接层。
举例:以全连接网络的某一层为例,参数keep_prob=0.5,每一轮训练对隐藏层的输出做dropout,其过程如下:
隐藏层的激活函数为σ(x)=x
Dropout的反向传播 |
以一个回归案例为例
其中z2神经元会失活,通过如下图的链式法则发现,此轮更新过程中,与失活神经元相连的边上的权重都不会被训练,因为他们的偏导数都=0.
Dropout的反向传播举例 |
举例:dropout的概率p=0.5,激活函数为σ(x)=x,网络结构如下:
假设某样本x的值是3,标签是0.5,训练一个回归模型,因为有dropout的存在,会出现不同的更新情况,下面演示使用样本x反复训练网络,更新网络的过程:
第一轮(假设dropout(z)=2z):
第二轮(假设dropout(z)=0):
第三轮(假设dropout(z)=2z):
Dropout和DropConnect
DropConnect是在边上直接置为0;而Dropout是额外加了一层,按照概率ρ失活,不失活的扩大1/ρ倍。
参考资料 |
《图解深度学习与神经网络:从张量到TensorFlow实现》_张平