机器学习程序员deep learning

Dropout正则化

2018-04-06  本文已影响755人  zzkdev

理解dropout

上图为Dropout的可视化表示,左边是应用Dropout之前的网络,右边是应用了Dropout的同一个网络。

dropout 如何工作

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

在训练阶段期间对激活值进行缩放,而测试阶段保持不变
下面是对一层神经网络的实施dropout代码实现:

d = np.random.rand(3, 2) < keep_drop
a = np.multiply(a, d)
a /= keep_drop //对激活值进行缩放,为了不影响下一层网络的最后的预期输出值,加上这个步骤来修正损失的值

dropout为何有效

dropout使用技巧

dropout缺点

当前Dropout的使用情况

当前Dropout被大量利用于全连接网络,而且一般人为设置为0.5或者0.3,而在卷积隐藏层由于卷积自身的稀疏化以及稀疏化的ReLu函数的大量使用等原因,Dropout策略在卷积隐藏层中使用较少。
总体而言,Dropout是一个超参,需要根据具体的网路,具体的应用领域进行尝试。

参考资料


这里是我的博客


上一篇 下一篇

猜你喜欢

热点阅读