2.1.2 Dropout正则化以及其他正则化

本文介绍了Dropout正则化方法,包括Dropout的原理、实施方式以及在测试阶段的处理。通过随机失活降低过拟合风险,同时讨论了其他正则化手段如早期停止(early stopping)。
摘要由CSDN通过智能技术生成

Dropout正则化

Dropout介绍

除了L2正则化之外,还有一个很重要的正则化方法叫随机失活(Dropout),下面,我们来了解一下。

这里写图片描述

如图所示,假设网络中的每一层的节点都以抛硬币的形式来设置概率,每一个节点得以保留和消除的概率都是0.5。

设置完节点之后,我们会删除得分是0分节点,然后删除从该节点进出的连线。最后得到一个节点更少,规模更小的网络。之后我们用反向传播算法进行训练。

其他样本,我们也按照这个方法进行训练,即删除一些节点,然后用一些精简的网络进行训练。对于每一个样本,我们都用精简的网络进行训练。

如何实施Dropout

实施Dropout的方法有很多,最常见的是反向随机失活(Inverted Dropout)

这里写图片描述

如图所示,我们使用三层神经网络举例。

d3表示一个三层的Dropout向量,keep-prob是一个具体的数,比如说上个例子中的0.5,这个例子我们用0.8来表示。这个数表示的是保留某个隐藏单元的概率

d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob

这行代码表示的是它消除任意一个隐藏单元的概率是0.2,它的作用就是生成一个随机矩阵。也就是对于每一个隐藏单元而言,d3的值是1的概率都是0.8,而对应的值是0的概率是0.2。

接下来我们要做的是从第三层获取激活函数。

a3 = np.multiply(a3, d3)

他的作用就是过滤d3中所有等于0的元素。乘法运算最终把d3中的相应元素归零。

最后,我们进行

a3 /= keep-prob

他的功能是比如就像图中下面部分说的

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值