数学中的Regularization是为了解决overfitting问题而引入的一种方法。所谓overfitting就是在一些数学模型中由于过于复杂,有太多的观测参数,以至于一点点微小的误差都回产生巨大的影响,任何微小的数据扰动都会带来巨大的改变。在一些训练模型中用来fitting的data也会因为结构问题而Overfitting。
一般来说有两种克服Overfitting的方法:一是补偿模型的某些部分(如Regularization);二是根据潜在的问题提供而外的数据来训练。
下面介绍Tikhonov Regularization作为例子。
在如下方程中:
Ax = b
要求解x的标准方法是最小二乘法:
Min || Ax – b ||^2
求解这个方程除了overfitting外,还有overdetermined (underdetermined)的问题。所谓overdetermined (underdetermined),是指方程组中未知数的个数与方程数不不一致。如果把一个未知数看成一个自由度的话,每个单独的方程可以看成一个对应的constraint,当constraint的数目比未知数还多时,有可能找不到符合方程组的解;当方程的数目少于未知数时,可能有无穷多组解。显然当A不是方阵的时候肯定overdetermined(underdetermined)的。
A可能是奇异阵,这也是一个问题。
为了获得在某种条件下的解,加入regularization项如下:
|| Ax – b ||^2 + || Rx ||^2
其中,||.||是Euclidean norm,即平方和的根。
在很多情况下,R可以直接取单位阵。加入R之后可解如下:
x = (A^TA + RTR)^(-1)A^Tb
一些另外的取法。令R = a*L,L是对称Laplace-Beltrami算子。
L = V^(-1/2) * C * V^(-1/2)
V是一个voronoi area对角阵,C是一个系数对称cotangentweight矩阵。(cot(Betai,j) + cot(Betai,j)^-)/2, Beta是相邻三角形的角度。
可以把L作特征值分解,L = QBQ^T,Q为正交矩阵。因为正交矩阵不改变Frobenius norm,所以:
|| RU || = || aLU || = a|| QBQ^TU || = a|| BQ^TU||
一、过拟合:是指因过分强调对训练样本的效果导致过度拟合,使得对未知预测样本效果就会变差的一种情况。
拟合度就是说这个模型和你想象的理想情况差多少。 试想如果所有的点都在直线上,一点也没有离开直线,那就说明拟合度很好,是1。就是能够完全解释。 而现实情况肯定没有这样的。就比如你的努力程度和历次考试成绩,虽然越努力成绩越好,但是你不能保证自己没有失误 啊。这个失误就是残差,但是失误肯定不是主要部分,所以R平方还是很大的。 R方没有很明确的界限,说什么就是好什么就是不好,有的时候时间序列的拟合程度都不是很好,甚至只有0.3到0.4,所 以要综合来看,没有很确定的界限
二、什么情况下出现过拟合:
当你拟合的函数中,一些特征权重阶数越高时,过度拟合的情况越有可能发生,反之阶数越小,过拟合发生概率越小,甚至会欠拟合。
比如有三个拟合函数:
a0 + a1x1+ a2x2
a0 + a1x1+ a2x2 + a3x12 + a4x22
a0 + a1x1+ a2x2 + a3x12 + a4x22 + a5x13 + a6x23
则最后这个过拟合的可能最高。
三、如何解决过拟合问题:
1. 将那些特征权重阶数高的特征删除。比如在上面的例子中删除特征x13 、x23。
删除方式有两种:
一种:人工查看样本集合筛选
另一种:有机器学习的规则用于筛选这种特征,后续才会讲到。
2. 正则化:特征全部保留,但特征系数进行最小优化。
设一般情况下的成本函数为costFucntion(a,x,y)
为了时特征系数减小,以使axj变小,新的成本函数为 costFunction_reg(a,x,y) = costFunction(a,x,y) + sum(aj2)
我们将这种处理叫做正则化
新增的正则化项为 a02 + a12 + ... + an2, 惯例上不要a02这项(他是1的系数),但即使加上效果影响不大。
四、正则化的线性回归问题
成本函数:costFunction(a,X,y) = 1/2m *sum((h(a,X)-y).^2), 其中h(a,X)=Xa;
正则化后:costFunctionReg(a,X,y) = costFunction(a,X,y) + lambda*sum(aj2)
梯度下降法:aj = aj - 1/m *alpha * ( h(a,X)-y ) * Xj
正则化后:aj = aj - 1/m * alpha * ( h(a,X)-y ) * Xj - 1/m * alpha * lambda * aj
正规方程组解法 a = (XT*X)-1*XT*y
正则化后:a = (XT*X - lambda * I )-1*XT*y
五、logistic分类问题过拟合解决
成本函数:costFunction(ha(x),y) = -y*log( ha(x) ) - (1-y)*log( 1- ha(x))
正则化后:costFunctionReg(ha(x),y) = costFunction(ha(x),y) + lambda*sum(aj2)
梯度下降法:aj =aj - 1/m*(ha(x)-y )* Xj;
正则化后:aj =aj - 1/m*(ha(x)-y )* Xj -1/m*lambda*a