pytorch正则化——Dropout

pytorch正则化——Dropout

1.Dropout概念
Dropout:随机失活
随机:dropot probability
失活:weight=0

在这里插入图片描述
2.Dropout工作原理
  Dropout是指在深度网络训练中,以一定概率随机的“临时丢弃”一部分神经元节点。具体来讲,Dropout作用于每份小批量训练数据,由于其随机丢弃部分神经元的机制,相当于每次迭代都在训练不同结构的神经网络。类比于bagging方法,Dropout可被认为是一种实用的大规模深度神经网络集成方法。
  Dropout的具体实现中,要求某个神经元节点激活值有一定概率p被丢弃,即该神经元暂时停止工作,如上图表示,对于包含N个神经元节点的网络,在Dropout的作用下可看作为2的N次个模型的集成。这2的N次方个模型可认为是原始网络的自网咯,它们贡献部分权值,并且具有相同的网络层数,而模型整体的数目不变,这就大大简化了运算。对于任意神经元,每次训练中都与一组随机挑选的不同的神经元集合共同进行优化,这个过程会减弱全体神经元之间的联合适应性,减少过拟合的风险,增强泛化能力。

3.pytorch中的实现
nn.Dropout

torch.nn.Dropout(p=0.5,inplace=False)

功能:Dropout层
主要参数:
p:被舍弃概率,失活概率

参考

深度之眼pytorch框架班整理
百面机器学习

猜你喜欢

转载自blog.csdn.net/weixin_43183872/article/details/108288159