多项式回归是机器学习中较为复杂的一类回归问题,例如下图表示的是一种曲线拟合。
模型
与之前的线性回归不同的是,曲线拟合来表示
x
,
y
x,y
x,y之间映射关系的是一条曲线函数,在选择模型时要使用非线性函数,如果采用了
w
T
x
+
b
w^Tx+b
wTx+b这种线性函数,毫无疑问会发生欠拟合问题。
要建模这个非线性函数,只需要用一个非线性基函数
ϕ
(
x
)
\phi (x)
ϕ(x)来替代线性函数中的x即可,对于多项式回归,就是选择多项式函数来作为这个基函数。所以,多项式回归的模型可以记作:
f
(
x
,
w
)
=
w
T
ϕ
(
x
)
=
w
0
+
w
1
x
+
w
2
x
2
+
⋯
+
w
M
x
M
f(x,w)=w^T\phi (x)=w_0+w_1x+w_2x^2+\cdots+w_Mx^M
f(x,w)=wTϕ(x)=w0+w1x+w2x2+⋯+wMxM
w
=
[
w
0
w
1
⋮
w
M
]
,
ϕ
(
x
)
=
[
1
x
1
⋮
x
M
]
w=\left[\begin{matrix} w_0\\ w_1\\ \vdots\\ w_M \end{matrix}\right], \ \ \ \phi(x)=\left[\begin{matrix} 1\\ x^1\\ \vdots\\ x^M \end{matrix}\right]
w=
w0w1⋮wM
, ϕ(x)=
1x1⋮xM
多项式次数的选择
在上式当中,
M
M
M表示该函数的最高次幂,在模型中是一个需要手动设定的超参数,用来控制模型的复杂度,如果
M
M
M过大可能会导致过拟合问题,
M
M
M太小会导致模型欠拟合。
下面图片是一个输出为
(
0
,
1
)
(0,1)
(0,1)的模型
M
M
M取不同值时对应的
w
w
w。可见,当选择的模型很复杂,也就是
M
M
M取值很大时,为了让输出的结果最终落在区间内部,函数的高次项系数会很大来平衡整个结果,也就是对应高维度的参数
w
w
w的取值很大,在线性回归中我们说过,
w
w
w过大
x
x
x的微小扰动会对最终结果产生很大的影响,这就是当
M
M
M取值过大时会造成过拟合的原因。
同样的,为了解决
w
w
w过大的问题可以引入正则项构造结构风险:
R
(
w
)
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
ϕ
(
x
(
n
)
)
)
2
+
λ
2
w
T
w
\mathcal{R}(w)=\frac{1}{2}\sum_{n=1}^{N}(y^{(n)}-w^T\phi(x^{(n)}))^2+\frac{\lambda}{2}w^Tw
R(w)=21n=1∑N(y(n)−wTϕ(x(n)))2+2λwTw
正则化项为
λ
\lambda
λ,也是一个超参数。在引入正则项后,上面例子的变化如下所示
可见当 λ = e 0 = 1 \lambda=e^0=1 λ=e0=1时对 w w w的约束最强,当 λ = e − ∞ = 0 \lambda=e^{-\infty}=0 λ=e−∞=0时约束最差。这是因为在添加了正则化项后,对于高次项来说,若要让结构风险值最小必须对应的参数也要尽可能小,次数越高,参数越接近于0,这就起到了限制模型能力的作用。
解决过拟合问题除了通过添加正则项外,最简单的方法是增加训练集样本的数量
这是因为大数定律,当样本数量足够多时,经验风险会近似等于期望风险。
优化
接下来对于曲线拟合的优化过程与线性回归基本一致
首先还是使用平方误差函数作为损失函数来定义经验风险
R
(
w
)
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
ϕ
(
x
(
n
)
)
)
2
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
[
1
(
x
(
n
)
)
1
⋮
(
x
(
n
)
)
M
]
)
2
=
1
2
∥
[
y
(
1
)
⋮
y
(
N
)
]
−
(
w
T
[
1
1
⋯
1
(
x
(
1
)
)
1
(
x
(
2
)
)
1
⋯
(
x
(
N
)
)
1
⋮
⋮
(
x
(
1
)
)
M
(
x
(
2
)
)
M
⋯
(
x
(
N
)
)
M
]
)
T
∥
2
令
X
=
[
x
(
1
)
x
(
2
)
⋯
x
(
N
)
]
,则
ϕ
(
X
)
=
[
1
1
⋯
1
(
x
(
1
)
)
1
(
x
(
2
)
)
1
⋯
(
x
(
N
)
)
1
⋮
⋮
(
x
(
1
)
)
M
(
x
(
2
)
)
M
⋯
(
x
(
N
)
)
M
]
R
(
w
)
=
1
2
∥
y
−
ϕ
T
(
X
)
w
∥
2
\begin{aligned} \mathcal{R}(w) &=\frac{1}{2}\sum_{n=1}^N(y^{(n)}-w^T\phi(x^{(n)}))^2 \\ &=\frac{1}{2}\sum_{n=1}^N(y^{(n)}-w^T \left[\begin{matrix} 1\\ (x^{(n)})^1\\ \vdots\\ (x^{(n)})^M \end{matrix}\right])^2 \\ &=\frac{1}{2}\parallel\left[\begin{matrix} y^{(1)} \\ \vdots \\ y^{(N)} \end{matrix}\right]-(w^T\begin{bmatrix} 1&1&\cdots&1\\ (x^{(1)})^1&(x^{(2)})^1&\cdots&(x^{(N)})^1 \\ \vdots&&&\vdots\\ (x^{(1)})^M&(x^{(2)})^M&\cdots&(x^{(N)})^M \end{bmatrix})^T\parallel^2\\ &令X=\begin{bmatrix}x^{(1)}&x^{(2)}&\cdots&x^{(N)}\end{bmatrix},则\phi(X)=\begin{bmatrix} 1&1&\cdots&1\\ (x^{(1)})^1&(x^{(2)})^1&\cdots&(x^{(N)})^1 \\ \vdots&&&\vdots\\ (x^{(1)})^M&(x^{(2)})^M&\cdots&(x^{(N)})^M \end{bmatrix}\\ \mathcal{R}(w)&=\frac{1}{2}\parallel y-\phi^T(X)w\parallel^2 \end{aligned}
R(w)R(w)=21n=1∑N(y(n)−wTϕ(x(n)))2=21n=1∑N(y(n)−wT
1(x(n))1⋮(x(n))M
)2=21∥
y(1)⋮y(N)
−(wT
1(x(1))1⋮(x(1))M1(x(2))1(x(2))M⋯⋯⋯1(x(N))1⋮(x(N))M
)T∥2令X=[x(1)x(2)⋯x(N)],则ϕ(X)=
1(x(1))1⋮(x(1))M1(x(2))1(x(2))M⋯⋯⋯1(x(N))1⋮(x(N))M
=21∥y−ϕT(X)w∥2
下面是ERM过程:
∂
∂
w
R
(
w
)
=
−
1
2
2
ϕ
(
X
)
(
y
−
ϕ
T
(
X
)
w
)
=
−
ϕ
(
X
)
(
y
−
ϕ
T
(
X
)
w
)
\begin{aligned} \frac{\partial}{\partial w}\mathcal{R}(w) &=-\frac{1}{2}2\phi(X)(y-\phi^T(X)w)\\ &=-\phi(X)(y-\phi^T(X)w) \end{aligned}
∂w∂R(w)=−212ϕ(X)(y−ϕT(X)w)=−ϕ(X)(y−ϕT(X)w)
令
ϕ
(
X
)
(
y
−
ϕ
T
(
X
)
w
)
=
0
ϕ
(
X
)
y
−
ϕ
(
X
)
ϕ
T
(
X
)
w
=
0
ϕ
(
X
)
ϕ
T
(
X
)
w
=
ϕ
(
X
)
y
w
=
(
ϕ
(
X
)
ϕ
T
(
X
)
)
−
1
ϕ
(
X
)
y
w
=
(
ϕ
T
(
X
)
)
−
1
y
\begin{aligned} 令\phi(X)(y-\phi^T(X)w)&=0\\ \phi(X)y-\phi(X)\phi^T(X)w&=0\\ \phi(X)\phi^T(X)w&=\phi(X)y\\ w&=(\phi(X)\phi^T(X))^{-1}\phi(X)y\\ w&=(\phi^T(X))^{-1}y \end{aligned}
令ϕ(X)(y−ϕT(X)w)ϕ(X)y−ϕ(X)ϕT(X)wϕ(X)ϕT(X)www=0=0=ϕ(X)y=(ϕ(X)ϕT(X))−1ϕ(X)y=(ϕT(X))−1y
加正则化项同样也是与线性回归计算方法相同,此处省略。