Pytorch处理过拟合——Dropout

  • 什么是过拟合

过拟合,简单讲就是对过度符合训练数据,比如二维空间中拟合出的一条曲线保证了所有的训练点都在曲线上,效果就像下图所示

过拟合

但是这并不一定是好的,这样训练出来的模型,只能说模型很好的符合了训练数据,并不代表模型就抓住了数据的变化趋势,在训练数据上,不一定就有好的表现。

在神经网络中,深度层次与多节点有其必要性,但是过多的节点就容易导致过拟合,Pytorch提供了解决Dropout()函数来防止多拟合

Dropout(p)函数的机制是在当前层计算时,随机舍去p(p属于[0,1))比例的节点数据,以此来减弱网络对某些数据的过度依赖

  • 关键代码

应当注意Dropout非必须选项,而且具体drop多少还应该视具体的数据而定,需要根据具体情况进行调参

Dropout操作的理想情况是在训练数据上可能并不会达到较高的准确率,但在训练数据上会获得比不进行Dropout较好的效果(我图中所示的数据并没有到达这个效果。。)

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注