关于神经网络中dropout为什么有用的理解

先看一下pytorch中dropout函数的用法

可以看到该方法的用途就是在训练的时候根据一个给定的概率随机的将输入tensor的元素置为0,在卷积神经网络中,这个tensor通常指的是卷积后的feature map。

在吴恩达的改善深层神经网络的课程中也给出了dropout为什么会有作用的解释(也给出了如何实现的方法,用兴趣的话可以去了解一下)。

dropout是一种正则化的方法,可以减少神经网络的过拟合,在训练神经网络的时候,它会随机的删除一些节点,如下图所示:

这样就会得到一个节点更少,规模更小的网络。但是如何直观的去理解它呢?

假如我们只看网络的一个小部分,对于紫色的节点,它要接受前一层节点的输出,但是由于节点会随机的删除,如图中红叉的部分,这样的话紫色节点就不会过分的去依赖某一个节点的输出,因为它们都可能会被删除掉,网络就会赋予这些连接很小的权重,通过这种训练方法,将会产生收缩权重平方范数的效果。和L2正则化相似,使用dropout的方法会压缩权重。

而在卷积神经网络中,卷积核的作用就类似与这些节点之间的连接,是需要去训练的权重,而feature map则类似于这些节点,因此pytorch的dropout实现方法才会是对feature map进行置零操作。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值