没有合适的资源?快使用搜索试试~ 我知道了~
16.5.2 算法与实现前向计算正常的隐层计算公式是:加入随机丢弃步骤后,变成了:公式2是得到一个分布概率为p的伯努利分布,伯努利分布在这里可以简单地理解为0、
资源推荐
资源详情
资源评论
## 16.5 丢弃法 Dropout
### 16.5.1 基本原理
2012年,Alex、Hinton在其论文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用于防止过拟合。
我们假设原来的神经网络是这个结构,最后输出三分类结果:
Dropout可以作为训练深度神经网络的一种正则方法供选择。在每个训练批次中,通过忽略一部分的神经元(让其隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少隐层节点间的相互作用,高层的神经元需要低层的神经元的输出才能发挥作用,如果高层神经元过分依赖某个低层神经元,就会有过拟合发生。在一次正向/反向的过程中,通过随机丢弃一些神经元,迫使高层神经元和其它的一些低层神经元协同工作,可以有效地防止神经元因为接收到过多的同类型参数而陷入过拟合的状态,来提高泛化程度。
丢弃后的结果如下图所示:
其中有叉子的神经元在本次迭代训练中被暂时的封闭了,在下一次迭代训练中,再随机地封闭一些神经元,同一个神经元也许被连续封闭两次,也许一次都没有被封闭,完全随机。封闭多少个神经元是由一个超参来控制的,叫做丢弃率。
### 16.5.2 算法与实现
#### 前向计算
正常的隐层计算公式是:
$$
Z = W \cdot X + B \tag{1}
$$
加入随机丢弃步骤后,变成了:
$$
r \sim Bernoulli(p) \tag{2}
$$
$$Y = r \cdot X \tag{3}$$
$$Z = Y \cdot W + B \tag{4}
$$
公式2是得到一个分布概率为p的伯努利分布,伯努利分布在这里可以简单地理解为0、1分布,p=0.5时,会生产与X相同数量的0、1,假设一共10个数,则:
$$
r=[0,0,1,1,0,1,0,1,1,0]
$$
或者
$$
r=[0,1,1,0,0,1,0,1,0,1]
$$
或者其它一些分布。
从公式3,Y将会是X经过r的mask的结果,1的位置保留原x值,0的位置相乘后为0。
#### 反向传播
在反向传播时,和Relu函数的反向差不多,需要记住正向计算时得到的mask值,反向的误差矩阵直接乘以这个mask值就可以了。
#### 训练和测试/阶段的不同
在训练阶段,我们使用正向计算的逻辑。�
点击阅读更多
资源评论
chenbtravel
- 粉丝: 17
- 资源: 296
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功