当前位置:首页 » 网络杂谈 » 正文

神经网络法节点遗失:规避神经网络过拟合的一种简单方法

16487 人参与  2020年11月28日 14:28  分类 : 网络杂谈  评论

推荐原因:带有大量参数的深度神经网络是非常强大的机器学习系统,但过拟合是此类网络中一个比较严重的问题。节点遗失(Dropout)是解决此类系统中过拟合问题的一种简单方法。这种方法的基本思想是在训练时随机丢弃节点,防止不同单元之间过度地相互适应。相对于其他正则化方法,节点遗失能够更明显地改善过拟合问题。我们在之后的文章中展示了节点遗失的使用效果,它能明显地改善语音识别、文档分类、生物计算等领域中有监督学习的表现效果。神经网络法-

简介

深度神经网络包含多个可以学习输入和输出变量之间关系的、非线性隐藏层,使其具备较好的表现力。但是当训练数据较为有限时,许多关联只是由样本中的噪音造成的,这很可能会导致模型的过拟合。目前已经有几种方法来处理过拟合的问题,例如在测试集表现变差时停止训练模型以及多种引入权重惩罚的方法(Nowlan and Hinton, )。

如果计算能力不受限制,正则化的最好方式是对所有可能参数集的预测结果取平均,并使用给定训练集的后验概率对参数设置进行加权。但是我们现在想用较少的计算量达到近似贝叶斯黄金标准的表现效果,所以我们提出使用遗失节点的方法。神经网络法

模型组合一般都能提高机器学习的模型表现,但是对于大型的神经网络,将多个独立训练模型的输出结果取平均是很难实现的。当各个模型之间有明显的差异的时候,模型组合是比较有效的。为了找到差异化的模型,我们要么构建结构不同的模型,要么使用完全不同的数据进行训练。为不同结构下的模型寻找最优的超参数并不是一个简单的任务并且需要非常大的计算量。使用不同的训练集也非易事,本身大型神经网络需要的训练数据就比较多,我们可能很难拿到足够多的数据用以训练不同的模型。神经网络法

节点(或称“神经元”)遗失的方法能够很好的解决上述问题,这种方法近似于对非常多的(约为指数倍的量级)、具备不同结构的模型进行组合。这里的“节点遗失”是指随机丢弃神经网络中的节点(包括隐含和可见节点)以及该节点的传入和传出连接。

模型描述

带有节点遗失的神经网络学习过程

. 后向计算

类似于标准神经网络,带有节点遗失的神经网络模型可以使用随机梯度下降的方法进行训练。唯一的不同是,前向和后向计算都是在“变薄”的神经网络上进行,每个参数的梯度是在每个训练案例集上取平均。任何提升随机梯度下降模型的方法在带有节点遗失的神经网络模型中同样适用。

. 无监督的预训练

神经网络可以使用RBMs(Restricted Boltzmann Machines)、自动编码器、DBMs(DeepBoltzmann Machines)进行预训练。预训练是利用无标签数据的有效方式。预训练叠加反向算法微调,在某些情景下,会比使用随机初始化进行微调的效果要好。

节点遗失算法可以应用在被预训练过的数据集。预训练过程保持不变,预训练得到的权重要乘以/p,以确保每个节点在使用节点遗失方法时的预期输出与预训练一致。我们原本担心节点遗失的随机性会抹去预训练权重中的信息。当微调期间使用的学习速率与随机初始化网络中的最优学习速率相当的时候,这种情况确实会发生。但只要学习速率降低一些,预训练权重中的信息就会被保留下来,并且与不使用节点遗失的方法相比,提升了模型在最终泛化误差方面的表现。神经网络法

实验结果

我们使用以下不同类型的标准数据集对使用节点遗失方法的神经网络进行训练,在所有数据集中都发现节点遗失确实提升了神经网络的模型表现。我们使用的数据集描述如下:

• MNIST:手写数字的标准数据集。

• TIMIT:用于语音识别的标准演讲数据集。

• CIFAR- and CIFAR-:微小的自然图像(Krizhevsky, ).神经网络法

• 街景门牌号数据集 (SVHN):Google Street View收集的房屋号码的图片(Netzeret al., ).

• ImageNet:大量的自然影象。

• Reuters-RCV:路透社新闻专线的文章合集。

• 替代(基因)剪接数据集:用于预测替代基因剪接的RNA特征数据(Xiong et al., ).

我们之所以选取多个不同类型的数据集是为了说明节点遗失是提升神经网络表现的普适方法,并不会限定在某个特定领域。本文我们仅展示TIMIT数据的模型结果,其他模型结果可参看原始文献。神经网络法

. TIMIT测试结果

TIMIT数据集收录了位演讲者的录音,涵盖了美式英语的种方言。我们在个对数滤波器窗口上训练使用节点遗失的神经网络,来预测中心帧的标签。下表比较了使用节点遗失和其他方法在表现上的差别。如果使用层神经网络模型,普通神经网络的出差率为.%,使用节点遗失后,出错率降低到.%。如果我们对权重进行预训练,层神经网络模型的出错率降低到.%,加入节点遗失之后出错率降低到.%;层神经网络的原始出错率为.%,加入节点遗失之后,出错率降低到.%。

. 与标准正则化方法的对比

目前已经有几种正则化的方法用于减轻神经网络的过拟合问题,例如L权重衰减、LASSO、KL稀疏和最大范数正则化。节点遗失可以被视为另一种正则化神经网络的方法。我们使用MNIST数据集比较了节点遗失和其他正则化方法的优劣。神经网络法

使用不同正则化方法的随机梯度下降训练相同的神经网络结构模型(- - - - )。下表展示了模型结果,每种正则化方法的超参数从测试集获得,我们发现节点遗失叠加最大化范数的出错率最低。

节点遗失神经网络模型的使用指引

在超参数调试方面,神经网络模型确实“声名狼藉”,即使我们加入节点遗失,也不能改善这个问题。本部分我们介绍一些在使用节点遗失方面的探索。神经网络法-

. 神经网络的大小

我们可以预期遗失节点会减弱单个神经网络的效果,如果我们用n表示隐含层的节点数量,p表示单个节点的保留概率,那么在经过节点遗失之后,预期只会有pn个节点被保留下来,并且这pn各节点每次都不一样、相互之间也不能任意的相会适应。因而如果在给定任务下,带有n个节点的标准神经网络是比较合适的,那么在带有节点遗失的神经网络中至少要使用n/p个节点。

. 学习速率和动量

与标准的随机梯度下降相比,节点遗失引入了更多噪音。因而在使用节点遗失的方法时,为了弥补这种缺陷,通常要使用标准神经网络中最优学习速率的-倍速率。另一种降低这种噪音影响的方法是使用更高的动量。标准神经网络中的动量值通常为.,在使用节点遗失的方法后,我们发现.-.的动量值更为合适。使用更高的学习速率/动量值也能明显加快学习过程。神经网络法

. 最大范数正则化

虽然更高的动量值/学习速率能够加快学习过程,但是有时候也会导致权重增长到非常高的水平,为了防止这一现象,我们使用最大范数正则化进行限制。这种方法将每个隐含层的传入向量的范数限制在一个常数c以内,c的取值通常在到之间。

. 遗失率

节点遗失的方法又引入了一个新的超参数——节点的保留概率p。这个超参数控制了节点遗失的强度。p=意味着不进行遗失,p越低节点遗失的概率越大。隐含层节点的p值一般在.-.之间取值。对于输入层,p的取值取决于输入数据的类型。对于实值输入(例如图像或者演讲音频),p值通常为.。对于隐含层,p值的选取与隐含节点数量n有关,如果p比较小就需要一个比较大的n,但这样会降低训练的速度并且导致拟合不足,但p太大也不利于降低过拟合问题。神经网络法

结论

节点遗失通过减轻过拟合提升神经网络的模型表现。标准的后向算法无法避免节点之间的相会适应从而使得模型在训练集上表现较好,但是测试集或者其他新的数据集上表现较差。随机遗弃节点使得每个节点是否出现变得不确定,从而打破了节点之间的相互适应。我们发现这种方法在很多领域都能提升神经网络的表现,例如对象分类、数字识别、演讲识别、文档分类等。这说明节点遗失的方法是普适的、并不限定于某个特定领域。

节点遗失的一个缺陷是它会增加训练时间。训练带有节点遗失的神经网络所用的时间一般是相同构造下标准神经网络的-倍。时长增加的主要原因是参数更新带有更多噪音。这种随机性阻止了过拟合但也消耗了时间。神经网络法-

本文链接:https://www.woshiqian.com/post/48477.html

百度分享获取地址:https://share.baidu.com/code
神经网络法  

我是钱微信/QQ:5087088

广告位、广告合作QQ:5087088

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。