机器学习-正则化

lizhengjava 2016-10-23

 目前为止我们已经学习了两种机器学习的方法了。如果你去实践,会发现很多问题,其中一项很可能就是过拟合(overfit)的问题。

什么是过拟合呢?

过拟合就是我们在学习中,对样本的拟合非常好,但是一旦对新的样本就完全失效。

这类问题以后还会有分析,究其原因,我们使用模型中某些特征的影响被放大了(多项式高指数),这是我们需要“惩罚”这些特征,是的参数减少。来看下面的例子:


机器学习-正则化
 Andrew老师还是用房价预测的模型来举例,这里明显看到右边的过拟合了,我们看模型,θ3和θ4的特征明显被放大,3次方和4次方。为了减小θ3和θ4对应的特征的影响,我们需要是的θ3和θ4足够小,于是在cost方法中加入红框中所示的项,这样,用θ3和θ4乘以一个非常巨大的数字,达到“惩罚”的目的,如果这个巨大的数字非常大,那么θ3和θ4就趋向于0,也就是没有,那么就等同于没有θ3和θ4这两项。

为什么不直接去掉 这两项呢?

这里Andrew老师并没有直接说明,而是对比了两种做法。当然,直接去掉,会使得一部分信息丢失,甚至严重的可能造成underfit(bias)问题。关于 bias和variance的问题我们还会有专门的章节说明。

好了,这里还没有说到Regularation(正则化),但是其思想和主要解决的问题已经浮出水面。我们要惩罚那些使得造成过拟合的特征参数,所以用我们的cost函数增加“一个”项,并且乘以一个数,这里不是巨大的数字,这样会使得θ趋向于零,所以,我们选择一个合适的参数,可以叫做λ。接下来,哪一个特征项我们要“惩罚”呢?

上面的例子中,我们对θ3和θ4进行了“惩罚”,但是实际 中,我们可能不知道该惩罚哪一个,所以我们就只能全部加在一起。


机器学习-正则化
 

这里还要注意,对θ0不进行正则化,因为θ0对应的特征也是一个常数1

对于这里的θ最后变成θ^2,是因为还有梯度下降算法,在梯度下降算法中,我们要对θ求偏导数,θ^2的导数就是θ

而这里把所有的θ都加起来,那么我们又如何知道是要“惩罚”谁,或者那一项需要加大惩罚力度呢?

实际上这还是梯度下降算法中导数的神奇,对于那些高阶函数,导数变化自然也就快,惩罚力度也就自然大。请看梯度下降算法的正则化


机器学习-正则化
 

到此,正则化讲完。可是,线性回归和逻辑回归是一样的吗?

这里只有一幅图,看似一样,实则不然,因为hθ不一样!!

逻辑回归的hθ(x)=1/(1+e^-θT(x))

如果你遇到过拟合的问题,请试试正则化。

相关推荐