深度学习入门笔记手稿(四)dropout随机失活

深度学习入门笔记手稿(四)dropout随机失活

dropout随机失活

dropout会遍历网络的每一层,设置消除神经网络中节点的概率
深度学习入门笔记手稿(四)dropout随机失活
每一层保留节点的概率都可单独设置,这样可以得到一个精简的网络。代码实现:
d3=np.random.rand(a3.shape[0],a3.shape[1])<keepprob
a3=np.multply(a3,d3)#a3d3
a3/=keepprob #为了不影响下一层的期望值
a4=a3
w4+b4 #wb的个数和a3个数未减少之前一样

反向随机失活
不同的训练样清除不同的隐藏单元
相同训练集多次传递数据,每次训练梯度不同则随机不同,隐藏单元归零。

为什么dropout 随机删除网络的正则化有效

通过dropout让它不能依靠任何特征,因为特征都有可能被随机删除,不愿意把任一权重变得过大,通过这种方式积极传播。dropout将产生收缩权重的平方范数的效果和L2正则化类似,实施dropout的结果是压缩权重,并完成一些预防过拟合的外层正则化。

dropout是一种正则化方法有助于预防过拟合,主要运用于计算机视觉

dropout的缺点

dropout的代价函数不再明确定义,因为每次迭代都会随机移除一些节点,很难检查梯度下降的性能。
明确定义的代价函数J每次迭代都会下降,但dropout定义的代价函数没有明确定义,所以在调试时都关闭dropout,然后再打开。