一. 模型的泛化与过拟合
在上一节中,我们的预测函数为:
f(x;ω)=ωT@H_@R_502_449@_44@x
其中,
x=[x1],ω=[ω1ω0]
上述称为线性模型,我们也可以将
x
扩展为:
x=⎡⎣⎢⎢⎢⎢⎢⎢⎢xn@H_@R_502_449@_44@⋮x2x1⎤⎦⎥⎥⎥⎥⎥⎥⎥,ω=⎡⎣⎢⎢⎢⎢⎢⎢⎢ωn@H_@R_502_449@_44@⋮ω2ω1ω0⎤⎦⎥⎥⎥⎥⎥⎥⎥
那么预测
函数
f@H_@R_502_449@_643@(x;w)
就变为一个非线性
函数。预测
函数的
次数越高,越能准确地拟合训练数据。在某些情况下,高次预测
函数会拟合大部分或全部训练数据,这时,我们就说这个模型过拟合。因为这种过度拟合训练数据的模型对未知数据的预测就不是那么准确了,它对训练数据外的其它数据是相当敏感的,也就是说它不够泛化。所以我们需要一个最好的模型,也就是说我们需要的模型误差要最小,而且还有一定的泛化能力。
二. 正则化最小二乘法
要避免模型过拟合,我们可以选择部分数据进行模型的训练,也可以利用正则化方法。一般来讲,正则化,有L1正则和L2正则,它们都是基于
Lp@H_@R_502_449@_44@
范数的:
Lp@H_@R_502_449@_44@=(∑i@H_@R_502_449@_44@n@H_@R_502_449@_44@|xi@H_@R_502_449@_44@|p@H_@R_502_449@_44@)1@H_@R_502_449@_44@p@H_@R_502_449@_44@
这里我们选择模型的复杂度为L2正则:
∑@H_404_857@n@H_@R_502_449@_44@i@H_@R_502_449@_44@ω2i@H_@R_502_449@_44@
,写为向量形式为:
ωT@H_@R_502_449@_44@ω。
关于正则化的详细
内容,可以参考:
http://www.jb51.cc/article/p-ewwyltlp-ue.html
那么我们新的损失函数可以写为:
L′=L+@H_@R_502_449@_1017@λωT@H_@R_502_449@_44@ω=1N(ωT@H_@R_502_449@_44@XT@H_@R_502_449@_44@Xω−2ωT@H_@R_502_449@_44@XT@H_@R_502_449@_44@y+yT@H_@R_502_449@_44@y)+λωT@H_@R_502_449@_44@ω
同样的对上式求偏导数:
∂L∂ω=@H_446_1301@1N(2XT@H_@R_502_449@_44@Xω−2XT@H_@R_502_449@_44@y)+2λω=0⇒(XT@H_@R_502_449@_44@X+NλI)ω=XT@H_@R_502_449@_44@y⇒ω=(@H_357_1502@XT@H_@R_502_449@_44@X@H_
404_1524@+
NλI)−1XT@H_@R_502_449@_44@y
选择
λ
的值就是选择多项式拟合
函数时,折中过拟合/泛化的过程。值太小,过拟合;值太大,不利于数据的逼近。至于
λ
的选择,可以采用交叉验证获得最好预测
性能的
λ
。