过渡拟合(overfitting)问题:
正则化用来解决过渡拟合的问题。
高偏差或者欠拟合问题是指假说函数值与真实值的误差趋势较大,通常是由于这个假说函数太简单或者使用了较少的特征作为输入。
另一个极端是过渡拟合或高分歧是由于假说函数拟合了大量的输入值但是并不具有很好的兼容性,不能很好的用以预测新的数据,通常是由于假说函数过于复杂而产生了大量不必要的弯曲。
无论是在线性回归还是逻辑回归都会遇到上面的两种情况。
解决过渡拟合有两个主要的方面:
1.减少特征的个数
人为的保留重要的特征
用模型选择的算法
2.正则化
保留所有的特征,但是减小不重要特征的权值 θj
开销函数
如果我们的假说函数过渡拟合,我们可以通过减小一些我们不需要的特征的权值从而减少他们带来的开销。(考虑下,无论是在线性回归还是逻辑回归问题上,梯度下降方法都用到了开销函数,因此减少在开销函数中占的比重就可以减少这些特征在学习中占的比重)。
比如对下面的这个假说函数。
θ0+θ1x+θ2x2+θ3x3+θ4x4
如果说我们希望减少x3以及x4 对开销带来的影响,除了直接将这些特征去掉,我们可以修改我们的开销函数为
minθ 12m∑mi=1(hθ(x(i))−y(i))2+1000⋅θ23+1000⋅θ24
那么这时为了最小化开销,首要目标就是将占比高的参数减小,也就是附带了1000*的两个theta值。因此最后的结果theta3和theta4会变得很小,但同时保留了特征。
同理,如果将这个方法应用到我们所有的参数中,也即
minθ 12m [∑mi=1(hθ(x(i))−y(i))2+λ ∑nj=1θ2j]
同样可以达到效果,这时因为对于如果对于某几个参数而言,如果这几个参数对开销影响很大,这些参数会被削减很多。
正则化的线性回归
根据上面所描述的,我们可以给线性回归方程正则化,开销函数上面已给出
梯度下降:
Repeat { θ0 :=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj :=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]}
Normal Equation
θ=(XTX+λ⋅L)−1XTywhere L=⎡⎣⎢⎢⎢⎢⎢011⋱1⎤⎦⎥⎥⎥⎥⎥
并且回想到由于m≤n的原因 ,
并且
XTX是不可逆的,但是我们添加正则项之后,
XTX
+
λ⋅L
成为了可逆的矩阵,此时我们可以在matlab 中使用inv
正则化的逻辑回归
开销函数
J(θ)=−1m∑mi=1[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]+λ2m∑nj=1θ2j
梯度下降
Repeat { θ0 :=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj :=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]} j∈{1,2...n}
This is identical to the gradient descent function presented for linear regression
参考:https://share.coursera.org/wiki/index.php/ML:Regularization
θ=(XTX+λ⋅L)−1XTywhere L=⎡⎣⎢⎢⎢⎢⎢011⋱1⎤⎦⎥⎥⎥⎥⎥
Repeat { θ0 :=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj :=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]} j∈{1,2...n}
This is identical to the gradient descent function presented for linear regression