深度学习之dropout

本来想写一篇dropout的文章,有人写的很好了,我就直接借鉴了

先上链接:深度学习中Dropout原理解析

但是文章中有一个地方说的有点混乱,测试集缩放概率问题,重新理一下:

dropout,防止过拟合,还可以提高训练速度。

加入dropout的概率为p,就是神经元以p的概率失活,相当于比如p设定为0.4,那100个节点会有40个节点失活,不参与训练。

简单说一下逻辑:

1. 定义dropout的概率值p

2. 通过伯努利算法生成神经元节点对应的0 1值,0表示需要进行失活操作

3. 保存0对应的节点的参数值,对其进行失活操作(其实就是乘以0)

4. 进行前向传播和反向传播,更新未失活节点的权重,失活的神经元权重为失活前保存的权重值

5. 重新进行下一轮迭代

说明下,失活之后,神经元的个数少了,但是测试的时候不能对神经元失活操作,这就导致了训练时神经元个数为 (1-p) * m, 而测试时是全量的神经元个数m,所以需要进行缩放,有两种方式,① 训练阶段失活操作之后,对未失活节点的权重 乘以1/(1-p) ② 测试阶段,对所有权重 乘以(1-p)操作。

猜你喜欢

转载自blog.csdn.net/katrina1rani/article/details/111866496