概述
经验风险和结构风险
在机器学习任务中,常用损失函数(loss function)来衡量模型输出值和真实值Y之间的差异,如下面定义的损失函数:若数据是服从联合分布,则其损失函数的期望值为,也称为模型的真实风险,记作。我们的目标即是找到最优的模型或者概念来最小化真实风险,即:由于数据的分布是未知的,所以我们我们只能通过历史数据训练得到的模型在训练集上的平均损失来代替这个真实风险,此时在训练集上的平均损失称为经验风险(empirical risk),记作,其中即我们的目标是通过训练集上的数据最小化经验风险以获取最优模型或者最优概念:
三种拟合效果(图片来自Andrew Ng Machine Learning公开课视频)
通常情况下,
损失函数的值越小,就说明模型拟合的效果就越好。但在实际应用中,我们的目标不仅仅是让loss function越小越好就可以了,在最极端的境况下,我们训练的模型
拟合出了训练集上所有样本的值,如上图中的第三个模型(图片来自Andrew Ng Machine Learning公开课视频),这种现象就是
过拟合(over-fitting),即模型的泛化能力变弱,无法在未见过的数据样本上产生较好的效果。过拟合同时也意味着此时模型的结构复杂性特别高,这也即是
结构风险(structural risk) 所带来的弊端。因此,除了降低模型的经验风险外,还需要降低它的结构风险。而下面介绍的
正则化项的作用就是降低模型的复杂性,也即是降低它的结构风险。
正则化项
正则化项(regularization)也称作惩罚项,常将其添加到损失函数中,用于组成我们的目标函数(object function)。正则化项的目的是为了对模型训练的参数进行一些限制,常用的正则化项包括L1正则化,L2正则化,其分别常表示为和。其中,表示模型训练的参数或者系数,则是求范数的计算操作。通常模型越复杂,惩罚项越大,模型越简单,惩罚项越小。
L1和L2的计算分别对应如下,其中表示调整的步长大小,其值越大,越会使得模型参数为0时取得最优解:
L1正则化表示权重向量中各个元素的绝对值之和。
L2正则化表示权重向量中各个元素的平方之和的平方根。
另外,除了L1和L2正则化项之外,还有L0正则化项,它的意义即是求非零参数的个数。
L1和L2正则化的作用
首先,关于L1和L2正则化的作用如下:
L1正则化可以产生稀疏解,即会使得很多参数的最优值变为0,以此得到的参数就是一个稀疏矩阵或者向量了。可以用于特征选择。
L2正则化可以产生值很小的参数,即会使得很多参数的最优值很小。可以防止模型过拟合。
L1正则化可以得到稀疏解,所以可以用于模型特征选择。以线性回归的模型为例,很多特征的参数为0就意味着它们对于预测结果的贡献为零,所以就可以保留不为零的特征,以此进行特征选择。
L2正则化可以防止模型过拟合,原因是在加入了L2正则化的目标函数中,参数优化的时会倾向于使得参数尽可能小,最后得到一个参数都比较小的模型。相比于参数很大的模型,样本特征发生很小的变化就会导致模型的输出发生很大的变化,如前面图中的第三个模型,其中含有项,可想其对应的参数很大,其结果必然会有很大的变化。而如果参数很小,参数变化对于模型的输出的影响就会很小,以此增强模型的泛化能力。
REF
深入理解机器学习中的:目标函数,损失函数和代价函数
机器学习中正则化项L1和L2的直观理解
向量和矩阵的范数整理
最后
以上就是碧蓝咖啡豆为你收集整理的l2正则化python_【机器学习】一文读懂L1、L2正则化项及其在机器学习中的应用的全部内容,希望文章能够帮你解决l2正则化python_【机器学习】一文读懂L1、L2正则化项及其在机器学习中的应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复