神经网络的正则化方法(L1,L2 & dropout)


前言

在深度学习模型中,模型参数数量巨大导致容易产生过拟合。理想情况下模型的设计不仅要在训练集上表现优秀,还需要有较好的泛化能力,因此需要引入正则化


提示:以下是本篇文章正文内容,下面案例可供参考

一、参数惩罚(L1,L2)

通过对模型参数添加惩罚参数来限制模型能力,常用的就是在损失函数基础上添加范数约束。

一般来说,深度学习模型只对参数w添加约束,对偏执项不加约束,主要原因是偏执项一般需要较少的数据就能精准的拟合,如果添加约束,常常会导致欠拟合。

L2范数是常用的惩罚方法,别名权重衰减
公式为1/2||w||^2

L1范数也是常用的惩罚方法,公式为α||w||

L1约束相对于L2约束能产生更加稀疏的模型,在参数w较小的情况下会直接缩减至0,可以起到特征选择的作用,也称之为Lasso回归。

但是L2的效果一般优于L1,举例对于一个数值很大的权重集合【98,56,14,77】。经过L1可能的结果是[36,27,0,31];经过L2可能的结果是[9,5,1,7]。两者对比我们发现L2约束后依然可以考虑到全部的特征,而L1可能会损失一些特征,即考虑不全面。另外L2别名岭回归Ridge regression

最后,从概率的角度分析,范数约束相当于对参数添加先验分布,其中L2范数相当于假定参数服从高斯先验分布;L1范数相当于假定参数服从拉普拉斯分布。

二、Dropout&Drop connect

我们由机器学习领域的集成学习来引入Dropout概念。众所周知,集成学习包括Boosting和Bagging方法,被用于降低模型的泛化误差,通过合并多个模型的结果得到更好的性能。主要做法是分别训练多个模型,然后让所有模型表决测试样例的输出。拟人的说法就是,比起让班级里的一个同学回答问题,让全班同学一起做决策准确率更高。

Dropout则可以被认为集成了大量深度神经网络的Bagging方法,提供了一种廉价的Bagging集成近似方法。简单是说,Dropout在训练过程中,随机地丢弃一部分输入,此时丢弃部分的神经元不参与参数的更新。通过随机丢弃输入可以得到各种子网络,将所有子网络结果进行合并就相当于集成学习。

拟人的说就是神经网络模型相当于一个班级,不dropout的情况下就是所有学生都参与问题的回答,共同决策。经过dropout,班级同学被随机的分词多个小组,每个小组都会得到一个结果,最后这些结果共同评测

实验表明,dropout能显著降低过拟合,同时减少训练节点提高算法的学习速度。

Drop Connect可视为Dropout的一般化形式。不同之处是Drop Connect引入的是权重的稀疏而不是输出向量的稀疏。


猜你喜欢

转载自blog.csdn.net/qq_39297053/article/details/112915191