1. 什么是dropout 【随机失活】
dropout是2012年深度学习视觉领域的开山之作paper:《ImageNet Classification with Deep Convolutional》【Alexnet】所提到的算法,用于防止过拟合。
基本思想:
dropout是指在深度学习网络训练的过程中,对于神经网络单元,按照一定的概率p将其暂时从网络中丢弃,对于随机梯度下降算法来说,由于是随机丢弃,所以每个mini-batch都在训练不同的网络。
注:
- dropout效果跟bagging效果类似(bagging是减少方差variance,而boosting是减少偏差bias)
- 加入dropout会使神经网络训练时间变长,模型预测时不需要dropout,记得关掉。
dropout直观展示:
2. 如何选择dropout 的概率
经过交叉验证,input 的 dropout 概率推荐是 0.8, hidden layer 推荐是0.5, 但是也可以在一定的区间上取值。(All dropout nets use p = 0.5 for hidden units and p = 0.8 for input units.)
3. dropout 的缺点
dropout的缺点就在于训练时间是没有dropout网络的2-3倍。
还有, dropout一大缺点就是代价函数J不再被明确定义,每次迭代,都会随机移除一些节点,如果再三检查梯度下降的性能,实际上是很难进行复查的。【不是很清楚】
参考
https://github.com/HarleysZhang/2020_algorithm_intern_information/blob/master
https://github.com/scutan90/DeepLearning-500-questions/blob/master