上一篇文章,我们介绍了什么是欠拟合和过拟合。本篇我们介绍一种常用的解决过拟合的方法——正则化
简单来说,有监督机器学习的目标就是在规则化参数的同时最小化误差。误差最小化目的是让我们的模型更好的拟合训练数据,规则化参数是防止我们的模型过分拟合我们的训练数据,导致过拟合。
一般来讲,如果参数数量过多或值过大,会导致模型复杂度上升,此时我们虽然在训练数据上能够获得较小的误差,但是在预测新样本时往往无法得到很好的结果,也就是我们常说的模型泛化性较差,即模型出现了过拟合问题。
一、解决过拟合的常用方法
1、尽量减少选择的特征数量
一种方式是通过人工分析,来找出哪些是重要特征,舍弃无用特征;另一种方式是利用一些特征选择算法,辅助我们找出哪些特征重要性更强。但原理都是尽量减少特征数量,来实现避免模型过度拟合。
2、使用正则化
正则化方法的原理是在不改变特征变量的前提下,通过减少模型参数的数量级或值的大小来避免过拟合问题。
二、什么是正则化
我们以归回问题分析为例,在确定回归模型后,我们需要根据损失函数找出使得损失函数达到最小的参数矩阵,如果模型选择的太复杂,就容易出现过拟合问题。正则化可以较好地解决这一问题,通过在损失函数中增加正则项,来对某些参数实施”惩罚”,可以达到降低参数数量或大小的目的,从而减小模型的复杂度。
正则化方法有很多中,我们这里介绍两个常用的正则化方法,分别是L1正则化和L2正则化,对应的分别是Lasson回归和Ridge回归。如果我们将加入到损失函数中的正则项用Ω(θ)表示,则线性回归的正则化损失函数变为:
三、关于L1正则与L2正则
1、L1正则化
对于L1正则化,其对应的正则项:
此时损失函数变为:
由于此时在损失函数中增加了一个参数的绝对值项,如果参数在学习过程中设置的太高或太多,则会显著增加损失值,这样就能够抑制参数设置过大导致产生过拟合。
2、L2正则化
对于L2正则化,对应的正则项:
此时损失函数变为:
由于此时在损失函数中增加了一个参数的平方项,同样,如果参数在学习过程中设置的太高或太多,则会显著增加损失值,这样就能够抑制参数设置过大导致产生过拟合。
四、总结
在机器学习中,我们一般会使用L2正则,一般模型算法都实现了L2正则,我们可以简单的通过设置模型参数来引入正则项。
在使用正则化的时候,要注意正则化参数λ的选择。如果λ太小,那么正则项几乎就没有起到作用,也就无法解决过拟合问题;如果λ太大,这时除了θ0以外的其他参数θi(i=1,2,…,n)就会很小,最后得到的模型几乎就是一条水平直线,会出现欠拟合问题。
AI自研社是一个专注人工智能、机器学习技术的公众平台,目前已发表多篇连载文章,对机器学习领域知识由浅入深进行详细的讲解,其中包含了大量实例及代码参考,对学习交流有很大帮助,欢迎大家关注。



