首页 > 其他分享 >每天进步一点点《ML - 正则化代价函数》

每天进步一点点《ML - 正则化代价函数》

时间:2022-12-14 16:36:12浏览次数:41  
标签:泛化 ML 模型 样本 一点点 正则 拟合 训练样本


本系列Machine Learning 的学习博文很大部分全是受教于 Andrew Ng 的Stanford录制的ML视频,我的男神。

每天进步一点点《ML - 正则化代价函数》_拟合

一:欠拟合(Under fitting)与过拟合(Over fitting)

机器学习的目的就是通过一系列已知的的样本数据,训练出某个优化的数学模型,通过这个模型对之后的未知的样本进行预测。训练过程中,对训练样本的计算误差就做经验误差,对测试样本的计算误差叫做泛化误差,我们所追求的就是该模型的泛化能力,对于未知的新的样本的普适预测能力。

该训练过程中,欠拟合与过拟合是非常常见的现象。欠拟合是模型对训练样本预测能力不足,数据的规律学习地不够,或者称之为训练误差太大,如果发生欠拟合,对训练样本的学习都不够,其泛化能力更别提了。过拟合则不同,它是对已知的训练样本学习的太好了,甚至过头了,以至于,对训练样本其预测能力很强,准确率很高,太过于学习到了仅仅训练数据集合的规律,但是当面对未知数据样本的时候,由于未训练过,其泛化能力就不足了,准确率就下降了。

就拿回归举例,如下图(图片来自于Andrew Ng 机器学习视频),当模型过于简单的时候,模型对训练数据的拟合程度就不高,此时就处于欠拟合状态,此时模型拥有较高的偏差(High Bias),当模型过于复杂,参数数量很大,甚至阶次很高,对已有的数据的拟合程度就会特别复杂,以至于对测试的新数据的拟合程度就不高,此时处于过拟合状态,模型有较高的方差(High Variance)。

每天进步一点点《ML - 正则化代价函数》_过拟合_02


若是拿分类举例,比如逻辑回归,如下图(图片来自于Andrew Ng 机器学习视频),我们模型的决策边界可以是非线性的,也就是奇形怪状的,越简单的模型,其决策边界就越简单,越容易处于欠拟合;反之,模型越复杂,其决策边界越复杂,越容易处于过拟合。

每天进步一点点《ML - 正则化代价函数》_机器学习_03


每天进步一点点《ML - 正则化代价函数》_机器学习_04


每天进步一点点《ML - 正则化代价函数》_正则化_05

而中间的那附图的模型,对染存在些许误差,但是其泛化能力是最强的,对训练样本的误差虽然不及最后一幅图的模型,但是对新的测试数据的泛化误差是最小的,刚好拟合。
二:如何解决欠拟合和过拟合问题
1:欠拟合:
原因:
模型过于简单
参数维度太少,不能很好体现整个数据特征。
解决方法:
增加样本的特征数量,让模型复杂些。
考虑适当增加多项式特征,也就是特征的高此项。
使用非线性模型,比如核SVM 、决策树、深度学习等模型。

2:过拟合:
原因:
样本数量太少,很容易轻易完美匹配。
参数太多,模型复杂度过高,比如还有高次项太多。
解决方法:
正则化(Regularization)。
考虑适当减少特征维度,人工选择特征;或者是算法选择,比如PCA降维。
数据扩增,即增加训练数据样本,用更多的样本进行训练。
提前终止,当我们发现代价函数已经收敛并且下降很慢的时候,此时应该及时停止。

三:正则化

此篇主要讲解正则化过程。正则化方法包括 L0 正则、 L1 正则和 L2 正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用 L2 正则。

其大概就是在目标优化函数后面加上参数的范数平方,下面我们将具体来书写。

1:正则化的线性回归:

每天进步一点点《ML - 正则化代价函数》_机器学习_06


详解:加上这个参数是如何作用的呢?如果λ很大很大,那么我们希望J(θ)尽可能小,即必须得让正则化项趋向于0,那么θ就会变得很小,所以最后导致的结果就是除了θ_0,其他的项都是趋近于0,那么模型就是趋近于一个直线,使得模型处于欠拟合(High bias)的状态,如果设置λ很小,甚至趋于0,那么,整个正则化项等于没有加,没有起到抑制过拟合的作用,所以λ一定要设置一个合理的值。

2:正则化的逻辑回归:

每天进步一点点《ML - 正则化代价函数》_机器学习_07


3:正则化的神经网络:

每天进步一点点《ML - 正则化代价函数》_机器学习_08

4:由于增加的正则项都是很简单的式子,因此在梯度下降中的变化也就是如下:

每天进步一点点《ML - 正则化代价函数》_正则化_09

注意一下,上面写的J(θ) 都是在正则化之前的J(θ),正则项的偏导就是式子额那一项。

还请注意啊,如果把θ看成是一个向量,那么除去θ_0这一项,

每天进步一点点《ML - 正则化代价函数》_机器学习_10

其实就是θ向量对自己的内积,或者叫做范数。


标签:泛化,ML,模型,样本,一点点,正则,拟合,训练样本
From: https://blog.51cto.com/u_12419595/5937522

相关文章