1、背景简介
说起正则化,那为什么我们训练的模型或者是神经网络需要正则化呢?
它的主要作用在于: 提高泛化能力,防止过拟合
举个例子:上学期间广义分为三种人(仅仅说学习成绩):
学渣:根本就没学懂,书中的题目不会,考试卷也不会(欠拟合)
书呆子:就会课本上的,所有题目都会做,但是考试就是成绩低(过拟合)
学霸: 书中的会,考试照样考100,是不是可怕?
懂了吧,机器学习和人一样,目标就是向第三种一样,就是说我不仅要在训练集上表现的优异,最重要的是在测试集上表现好(平时差点也行,考试100也是不错的)。但是前两种,就是要不没有从数据中学到内容,要不就是测试集上表现的太差!那常用的正则化方法有哪些呢?
2、常见正则化方法
- 参数范数惩罚
- 作为约束的范数惩罚
- 数据集增强
- 提前终止
- Dropout
先从参数范数惩罚开始,回想一下,在线性回归等问题中,我们定义了损失函数
J(θ;X,y)=12∑i=1n(y−y′)2 J ( θ ; X , y ) = 1 2 ∑ i = 1 n ( y − y ′ ) 2
注:这里的 θ θ 是指所有的参数,包括权重 w w 等
我们发现,这样学习的模型虽然在测试集上比较好,但是泛化能力一般,于是就有了参数惩罚的思路,直接给 后面加个惩罚项(拖住学习的节奏),也就是正则化项,损失函数变成了:
J(θ;X,y)=12∑i=1n