machine learning学习笔记(三)正则化
为什么要正则化?
就是为了解决过拟合问题。
为啥过拟合?
有部分原因就是x1,x2,x3…一大堆特征太多了(一个x代表一个特征)
假设有一个只有两个特征x1,x2的模型算出来的非线性方程是↓
把模型得到的每个项的参数写成一个矩阵w
w0不计入,一个常数,写在外面就行。
没有正则化调整之前的误差方程是:
引入之后:
λ≥0是提前选择的控制强度的超参数。
说人话就是,减重。
给谁减重?
给那些次幂很大,其实没那么重要(甚至导致过拟合)的项加上一个惩罚项来中和它的影响。
假设一组数据集算出来的模型有9次幂之高,显然出来的图就是右边这个,像坐过山车一样的图形。也可以意味着我们惩罚的太轻了。
如果太重的话,所有高次幂的被几乎抵消,夸张的想象一下,所有1-9次幂的都被惩罚到没有了,是不是只剩下y=一个常数?也就是左图。
一个合理的惩罚项,能让拟合更贴合。也就是中间刚刚好的状态。
例如
可以大概猜测一下每一个图对应的正则化程度是哪一个。
abcd
3214
注意3、4函数这里无辜的常数w0也被一起惩罚了,所以ac看起来拟合都不错,差别就在于w0是否被惩罚。