吴恩达课程测试题dropout和Inverted-dropout

为什么第7题

7、利用Inverted-dropout技术,在测试的时候:【答案是加粗部分】

使用dropout(随机失活神经元),不保留训练过程计算中使用过的1/keep-prob因子。
使用dropout(随机失活神经元),保留训练过程计算中使用过的1/keep-prob因子。
不使用dropout(不随机失活神经元),保留训练过程计算中使用过的1/keep-prob因子。
不使用dropout(不随机失活神经元),不保留训练过程计算中使用过的1/keep-prob因子。
 

首先理清楚dropout和Inverted-dropout的区别

参考这篇文章https://lcqbit11.blog.csdn.net/article/details/100172018

1、dropout顾名思义是drop the out,即drop掉输出,在神经网络里面也就是将某个神经元example-node的输出置为0,也就是相当于该神经元example-node没有输出值了,但是我们要注意的一点是,神经元example-node的各个输入值还是正常保持不变,即输入不变,输出置为0。在训练阶段,每个神经元的输出以 keep_prob 的概率保留下来,也就是  1-keep_prob  的概率置为0,在预测阶段,神经网络的输出需要乘以 keep_prob。可以这样理解,由于训练阶段的操作,使得每次训练时神经元数量少了 keep_prob 倍,为了不影响输出结果,需要所有的神经元参数都变大 1/keep_prob 倍,但是在预测阶段由于又使用了所有的神经元了,所以要通过乘以 keep_prob 来矫正预测结果。这个需要自己体会一下;
2、Inverted dropout顾名思义就是反过来的dropout,可以理解成在正常的dropout操作中,会在预测阶段通过对神经网络输出结果乘以 keep_prob 来矫正预测结果,inverted的意思是将通过keep_prob矫正的功能不要放在预测阶段来做,而是在训练阶段就完成矫正操作,也就是在训练阶段,对执行了dropout的层,其输出激活值要乘以 1/keep_prob 倍(即变大了),那么我的参数值就不用变大 1/keep_prob 倍以保持结果不变了,也就是说这种情况下的训练的参数就是真正的参数大小了,因此在预测阶段就不用做任何操作了,既不用dropout,也不用乘以 keep_prob 了。

所以,两者的区别就是dropout在测试集中乘keep_prob来保持训练集和测试集的统一,而Inverted dropout在训练集中乘1/keep_prob来和测试集统一。

目的都是为了让训练和测试的时候网络的结构尽量统一。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值