谈谈dropout

在deep learning中,很常用的一个trick就是dropout技术。


dropout顾名思义就是丢弃,丢弃的是每一层的某些神经元。有什么作用呢?在DNN深度网络中过拟合问题一直存在,dropout技术可以在一定程度上防止网络的过拟合。

假设每一层神经元丢弃概率是p,那么保留下来概率就是1-p。每一个神经元都有相同的概率被丢弃和保留。

所以dropout其实就是一个伯努利变量,并且把dropout放在激励函数层,公式中a是激励函数,通常为Relu,xk表示输入的vector,wk是weight,b是bias。对于第i个神经元,


p(xi=0)=p

这是常规的dropout技术,还有一种Inverted dropout.其实就是将保留的概率改为(1-p)的倒数。这样实际上在训练阶段将激励函数进行缩放。


另外,虽然不能保证每次网络丢弃的神经元个数是N*p,但是平均丢弃是N*p。并且dropout技术通常与L2 范数或者其他参数约束技术(比如Max Norm)一起使用,从而帮助简化学习率的选择过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容