Press "Enter" to skip to content

图像分类中的隐式标签正则化

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

正则化是深度神经网络中必不可少的一环,传统的正则化是在损失函数中加上一项与标签本身无关的惩罚项,去阻止模型变得过于复杂。在这周的Science Robitics上,刊登了一篇只有俩页的小文,概述了一种全新的正则化方式,并指出其俩者具体的实现方式。好文章不必长篇大论,说清楚突破点,指出进一步阅读的方向即可。

 

 

正则化的目地是为了提升网络的泛化能力,而过拟合的源泉来自模型对已有数据的死记硬背。而在现实生活中,你给一个幼儿园的小孩子一堆动物的照片,然后给Ta一张豹子的照片,让其从中选择十张和豹子最类似的照片,一个孩子拿来了九张豹子的,还有一个大黄狗的照片,另一个孩子拿来了8张豹子的和一张狮子以及一张老虎的照片。你觉得这俩个孩子哪一个更聪明,对豹子的概念理解更深入。如果单看选对的数目,那第一孩子获胜,但是由于第二个孩子选的的都是猫科动物,因此可以说第二个孩子对豹子的本质有更深刻的掌握,Ta不是在死记硬背,下次遇到白色的雪豹,第二个孩子也更有可能将其归为豹子的一种。

 

将这个例子用到有监督学习的语境下,就得到了下图:

 

 

摘自 Toward principled regularization of deep networks—From weight decay to feature contraction

 

左图展示的是传统的损失函数下卷积网络训练完成的结果,图中的数字代表模型给出的不同标签的置信度以及待训练真集对应标签的置信度,可以看到图中正确的结果豹子的值最大,而猫这个和豹子是一类有些类似的标签和其他错误的标签一样,其置信度都很低。而在右图中,训练好的模型给了猫这一标签更大的置信度,这会导致模型在训练时更多的犯错。但正如Hinton所说,不同错误之间的相对比例能传递很多的信息。同样是对照片进行错误的分类,将豹子错判成猫的模型比将豹子错判成汽车的模型从常识上就更靠谱,因而也具有更强的泛化能力,这正是本文提出的隐式正则化。

 

具体怎幺做,直接的方法是将训练的真集(ground truth)中不同标签的置信度进行改变,这等价于告诉模型,对豹子的图片进行分类时,要押八分宝认为上图中的豹子是豹子,还要押俩分认为图中的豹子其实是只猫。这样做不用改变模型本身,但找到一个合适的真集置信度,来提升模型的泛化能力,却不是一件容易的事情。大规模的数据不应该依赖手动的标注,而应该训练神经网络,找出怎样的真集能提高分类网络的泛化能力。

 

另一条路是在损失函数中增加一项(例如不同标签间的交叉熵),来使得模型训练后的预测具有更大的信息熵,在上图中,对比俩张图给出的预测结果,左图知道了模型预测的是豹子的置信区间是0.95,那其他的信息的重要性就很低了,因为这意味着次高的置信区间也只有0.05,而在右图中,知道了图片的标签的是豹子的置信区间只有0.75,那其他的标签的置信区间还是有一定的信息量的。通过在损失函数引入新的组成部分,以惩罚那些信息熵较低的模型,最终使得模型训练后倾向于右图。由于引入的惩罚项不是为了避免模型过于复杂,而是为了避免模型钻牛角尖走极端,因此和传统的正则化方法有本质区别。

 

 

摘自 REGULARIZING NEURAL NETWORKS BY PENALIZING CONFIDENT OUTPUT DISTRIBUTIONS

 

这里展示了不同的正则化方法下,在MINST数据集下不同置信区间的概率密度,相对来看越均一,说明模型泛化能力越好,这里拿来和常见的dropout对比的是之前提到的在真集标签上进行的smothing与对过于“自信”的模型施加惩罚项之后的效果。其中效果最好的confidence panelty。

 

另一个正则化的方法则是在神经网络每层的每一个特征中加入L2正则项,这可以形象的称为“特征缩水(Feature contraction)”,这样做的好处是对网络中每一个隐藏层的特征都加以缩减,不管是正值还是负值,只要这个特征本身过大,那就会通过正则项让这一特征缩水,从而最终让模型判定的标签不像之前那幺自信。下图展示了MINST数据集上不同正则化方法的效果,可以看出特征缩水的效果是最佳的。

 

 

来源:https://github.com/VladimirLi/feature_contraction_example

 

这篇文章的标题是走向一个有原则(principled)的正则化模型,文中不止介绍了上述的正则化方法,还指出了例如权重衰减在本质上,也是和上述的方法要达到同一个目标,即避免模型对一个分类标签孤注一掷。从优化的角度来看,如果训练的最终目标是类似图一中左边那样的模型,那其梯度在最终下降时会减慢,而让模型的训练结果类似右图,则可以提高模型优化过程中的梯度,这也解释了为何上图在训练epoth不多时,特征缩水的效果就优于其他的方法。

 

顺着这个思路去扩展新的问题,在对于深度模型,总会有针对其的攻击样本,仅仅通过改变图像中几个像素,就可以改变图片的分类,在模型中引入隐式的关于不同分类之间的知识,能否部分避免对模型的攻击了?能否在除了监督学习的领域,例如在强化学习中的奖励函数的设计时,考虑到不同策略的相似性和从属关系,或者在评价分监督学习聚类的结果时,按层次对不同类型的聚类错误给予不同的权重,大类都错误的聚成一簇的给予更大的罚分,而只是在同一大类中聚混了则不那幺严重。

 

最后想说几句无关的话。对于神经网络中的正则化,曾写过一篇 预测神经网络预测准确性的普遍理论 ,也是偏理论的文。但正则化的种种技术,在生活中反映出来,都是让我们学着谦虚,比如最常用的drop out,大白话来说就是每个人都是社会中的一个螺丝钉,离了谁都照样转,不要把自己想的太该死的重要,比如weight decay,说的是你在向你的上级传递信息时,不要让自己显得过于权威(减少你输出特征的权重),而本文提到的 Feature contraction,则是让你把收到信息中那些极端的部分不要听风就是雨。近来舆论界俩级分化,各国皆是如此,信息茧房,也是越演越烈。这正是整个社会层面的过拟合啊,只关注眼前的利益和斗争,需要的正是有更多的人,懂得上面所说的三条正则化技术背后对应的哲理。

 

今天儿童节,所谓的找回初心,可不对应的是正则化方法中另一个常见的early stopping吗?而另一种所有神经网络都会用到的正则化方法随机梯度下降及其改进版则让我想到最近流行的一句话:“鸿蒙初辟原无姓,打破顽冥须悟空”,这话太文雅了,技术一点看,就是全局最优解本没有固定的位置,要想走出局部最优,需要领悟到空(即随机)的价值,粗一点的话是刘欢那首歌中唱的:“心若在,梦就在,人生不过从头再来”。

Be First to Comment

发表评论

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