这章感觉没啥内容呀,是我自己理解没到位吗??就讲了几个概念,过拟合、欠拟合和相应的处理办法。
首先是讲了给一个数据集,我们通过模型就可以去拟合。这就会出现三种情况:欠拟合(under fit)、拟合(just fit)、过拟合(over fit)。顾名思义,欠拟合,就是拟合的不够,具体是指有太高的误差了(high bias);而拟合就是比较好的拟合了数据,预测效果也比较好;而过拟合是指完美的拟合了数据,你可能会说,这不是很好吗?no, 中国有句古话,过犹不及,模型拟合出来是用来预测的,当你的模型完美的适应了当前的数据集,而且也拟合了那些相关度不是很大的特征,那么它必然无法很好的适应之后输入的数据。
这让我想到了一个概念,颠覆式创新,也就是说,那些具有破坏性创新的技术往往不是大公司首先在市场中推广的,反而是那些挑战者会最先做出来。举个例子,触摸屏最早其实是诺基亚发明的,但率先在市场中推广的是苹果,当然iPhone的成功不单单是触摸屏,它是乔布斯天才的想象,将许多先进的技术结合到这样一部小小的手机中去。好吧,扯远了,还是说回这一章的笔记。
过拟合就照成了一个问题,具有很高的方差(high variance),这导致拟合出的曲线七扭八扭的,从直觉来看,也并不是一个很好的模型。
好吧,那么我们要怎么解决这个问题呢。这里给出了两个方法,一个是减少特征数,我们既可以手动挑选相对无关的特征剔除,也可以通过模型选择算法(model selection algorithm)来减少;而另一个方法自然就是这章的主题,正则化。
正则化的思路其实也很简单,就是通过降低高幂次的权重,使得整个预测函数简化。打个比方:
h(x) = a0 + a1x + a2x^2 + a3x^3,
J(a)_new = J(a)_old + 100a3^2
我们在损失函数增加了一个对a3的惩罚项,那么为了使代价函数的值最小,就必须使a3的值比原来拟合的小,这样子a3x^3这一项的权重就小了,也就不容易出现过拟合的现象了。
思路说完了,就简单说一下具体操作吧,而线性和逻辑回归虽然分成了两个小节,但我觉得相差不大,都是在原来的h(x)和J(θ)中加上一个惩罚项。
J
(
θ
)
=
J
(
θ
)
o
l
d
+
λ
2
m
∑
j
=
1
n
θ
j
2
\ J(θ)= J(θ)old + \frac{λ}{2m}\sum_{j=1}^{n}θ_j^2
J(θ)=J(θ)old+2mλ∑j=1nθj2
当然我们得警惕λ过大,否则拟合出来的就相当于只有一个常数项了,相当于一条水平的直线,那么又变成欠拟合了。