丢弃法(Dropout)

原文链接见 丢弃法(Dropout)—— 从零开始
在深度学习中,一个常用的应对过拟合(overfitting)问题的方法叫做丢弃法。

概念

在现代神经网络中,我们所指的丢弃法,通常是对输入层或者隐含层进行一下操作:
1. 随机选择一部分该层的输出作为丢弃元素
2. 把丢弃元素乘以0
3. 把非丢弃元素拉伸

本质

在集成学习里,我们可以对训练数据集有放回地采样若干次并分别训练若干个不同的分类器;测试时,把这些分类器的结果集成一下作为最终分类结果。
事实上,丢弃法在模拟集成学习。假设,下图的多层神经网络是原始网络的子集。
网络
对其使用丢弃法。而对于每一个这样的数据集,均使用丢弃法分别训练一个原神经网络子集的分类器。而每个原神经网络子集的分类器用的是同一套参数。
因此,使用丢弃法的神经网络实质上是对输入层和隐含层的参数做了正则化,同一套参数使得神经网络不同子集在训练数据上都尽可能表现良好。

定义包含丢弃层的模型

drop_prob1 = 0.2
drop_prob2 = 0.5

def net(X):
    X = X.reshape((-1, num_inputs))
    # 第一层全连接。
    h1 = nd.relu(nd.dot(X, W1) + b1)
    # 在第一层全连接后添加丢弃层。
    h1 = dropout(h1, drop_prob1)
    # 第二层全连接。
    h2 = nd.relu(nd.dot(h1, W2) + b2)
    # 在第二层全连接后添加丢弃层。
    h2 = dropout(h2, drop_prob2)
    return nd.dot(h2, W3) + b3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值