回归问题属于机器学习中较为简单的一类问题。对于回归问题,训练集要包含输入和输出 x ( n ) , y ( n ) n = 1 N {x^{(n)},y^{(n)}}_{n=1}^N x(n),y(n)n=1N。其中输入 x ( n ) x^{(n)} x(n)一般为D维向量,记作 x ( n ) ∈ R D x^{(n)}\in\mathbb{R}^D x(n)∈RD;输出 y ( n ) y^{(n)} y(n) 为连续的标量,记作 y ( n ) ∈ R y^{(n)}\in\mathbb{R} y(n)∈R。回归问题即求解 x , y x,y x,y之间的映射关系,记为 y = f ( x , θ ) y=f(x,\theta) y=f(x,θ)
模型
线性回归问题是回归问题中比较简单的一种,其模型为:
f
(
x
;
w
,
b
)
=
w
T
+
b
f(x;w,b)=w^T+b
f(x;w,b)=wT+b
其中
w
w
w一般叫做权重(weight),
b
b
b叫做偏置(bias)。事实上,可以通过利用增广权重向量和增广特征向量来消除偏置。
增广权重向量是指在权重
w
w
w的基础上增加一个维度来表示偏置:
w
^
=
w
⊕
b
≜
[
w
b
]
=
[
w
1
⋮
w
D
b
]
\hat{w}=w\oplus{b}\triangleq \left[\begin{array}{}\\ w\\ \\ b \end{array}\right]= \left[\begin{array}{} w_1\\ \vdots\\ w_D\\ b \end{array}\right]
w^=w⊕b≜
wb
=
w1⋮wDb
增广特征向量是指在特征向量
x
x
x上添加一个值为1的维度,用来与增广权重向量在维度上保持相同以进行运算:
x
^
=
x
⊕
1
≜
[
x
1
⋮
x
D
1
]
\hat{x}=x\oplus1\triangleq \left[\begin{array}{} x_1\\ \vdots\\ x_D\\ 1 \end{array}\right]
x^=x⊕1≜
x1⋮xD1
经过变换后原式变化如下
f
(
x
;
w
,
b
)
=
w
T
x
+
b
=
[
w
1
⋯
w
D
]
⋅
[
x
1
⋮
x
D
]
+
b
=
w
1
x
1
+
⋯
+
w
D
x
D
+
b
=
[
w
1
⋯
w
D
b
]
⋅
[
x
1
⋮
x
2
1
]
=
w
^
T
⋅
x
^
=
f
(
x
^
,
w
^
)
\begin{aligned} f(x;w,b) & =w^Tx+b\\ & =\left[\begin{array}{} w_1\cdots w_D \end{array}\right] \cdot \left[\begin{array}{} x_1\\ \vdots\\ x_D \end{array}\right]+b \\ & =w_1x_1+\cdots+w_Dx_D+b \\ & =\left[\begin{array}{} w_1\cdots w_D\ \ b \end{array}\right]\cdot\left[\begin{array}{} x_1\\ \vdots\\ x_2\\ 1 \end{array}\right]\\ & =\hat{w}^T\cdot \hat{x} = f(\hat{x}, \hat{w}) \end{aligned}
f(x;w,b)=wTx+b=[w1⋯wD]⋅
x1⋮xD
+b=w1x1+⋯+wDxD+b=[w1⋯wD b]⋅
x1⋮x21
=w^T⋅x^=f(x^,w^)
一般为了方便表示,都是用这种增广的权重和特征向量来表示
经验风险最小化(ERM)
线性回归问题一般使用平方损失函数
1
2
(
y
(
n
)
−
w
T
x
(
n
)
)
2
\frac{1}{2}(y^{(n)}-w^Tx^{(n)})^2
21(y(n)−wTx(n))2来计算,因此,可以将线性回归问题的经验风险定义为:
R
(
w
)
=
∑
n
=
1
N
L
(
y
(
n
)
,
f
(
x
(
n
)
;
w
)
)
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
x
(
n
)
)
2
\begin{aligned} \mathcal{R}(w) & =\sum_{n=1}^{N}\mathcal{L}(y^{(n)},f(x^{(n)};w)) \\ & =\frac{1}{2}\sum_{n=1}^{N}(y^{(n)}-w^Tx^{(n)})^2 \end{aligned}
R(w)=n=1∑NL(y(n),f(x(n);w))=21n=1∑N(y(n)−wTx(n))2
上式中忽略了常量
1
N
\frac{1}{N}
N1,这是由于在参数最小化过程中,常量的取值不同不会影响最小化的过程。以梯度下降方法为例,迭代过程如下:
θ
t
+
1
=
θ
t
−
α
∂
R
D
(
θ
)
∂
θ
=
θ
t
−
α
1
N
∑
n
=
1
N
∂
L
(
y
(
n
)
,
f
(
x
(
n
)
;
θ
)
)
∂
θ
\begin{aligned} \theta_{t+1}&=\theta_t-\alpha\frac{\partial\mathcal R_D(\theta)}{\partial\theta}\\ &=\theta_t-\alpha\frac{1}{N}\sum_{n=1}^{N}\frac{\partial\mathcal{L}(y^{(n)},f(x^{(n)};\theta))}{\partial \theta} \end{aligned}
θt+1=θt−α∂θ∂RD(θ)=θt−αN1n=1∑N∂θ∂L(y(n),f(x(n);θ))
可见,常量
1
N
\frac{1}{N}
N1的取值并不会直接影响整个函数,通过调整学习率
α
\alpha
α的值可以就可以模拟常量的影响,可见,这种做法对于每次迭代的过程没有影响,但可能会影响迭代的次数,同时这种影响也可以通过调整学习率
α
\alpha
α来屏蔽。
声明一个变量
X
X
X,对上述的经验风险公式还进一步简化:
X
=
[
x
(
1
)
x
(
2
)
⋯
x
(
n
)
]
=
[
x
1
(
1
)
x
1
(
2
)
⋯
x
1
(
n
)
x
2
(
1
)
x
2
(
2
)
⋯
x
2
(
n
)
⋮
1
1
⋯
1
]
X=\left[\begin{matrix} x^{(1)}\ \ x^{(2)}\ \ \cdots \ \ x^{(n)} \end{matrix}\right]= \left[\begin{matrix} x_1^{(1)}\ \ x_1^{(2)}\ \ \cdots \ \ x_1^{(n)}\\ x_2^{(1)}\ \ x_2^{(2)}\ \ \cdots \ \ x_2^{(n)}\\ \vdots \\ 1\ \ \ \ \ 1\ \ \ \ \ \cdots \ \ \ \ \ 1 \end{matrix}\right]
X=[x(1) x(2) ⋯ x(n)]=
x1(1) x1(2) ⋯ x1(n)x2(1) x2(2) ⋯ x2(n)⋮1 1 ⋯ 1
R
(
w
)
=
1
2
∑
n
=
1
N
(
[
y
(
1
)
⋮
y
(
n
)
]
−
w
T
[
x
1
(
n
)
⋮
1
]
)
2
=
1
2
∥
[
y
(
1
)
⋮
y
(
n
)
]
−
(
w
T
[
x
1
(
1
)
x
1
(
2
)
⋯
x
1
(
n
)
x
2
(
1
)
x
2
(
2
)
⋯
x
2
(
n
)
⋮
1
1
⋯
1
]
)
T
∥
2
=
1
2
∥
[
y
(
1
)
⋮
y
(
n
)
]
−
[
x
(
1
)
⋮
x
(
n
)
]
w
∥
2
=
1
2
∥
y
−
X
T
w
∥
2
\begin{aligned} \mathcal{R}(w) & =\frac{1}{2}\sum_{n=1}^{N}(\left[\begin{matrix} y^{(1)} \\ \vdots \\ y^{(n)} \end{matrix}\right]-w^T\left[\begin{matrix} x_1^{(n)} \\ \vdots \\ 1 \end{matrix}\right])^2 \\ & =\frac{1}{2}\parallel\left[\begin{matrix} y^{(1)} \\ \vdots \\ y^{(n)} \end{matrix}\right]-(w^T\left[\begin{matrix} x_1^{(1)}\ \ x_1^{(2)}\ \ \cdots \ \ x_1^{(n)}\\ x_2^{(1)}\ \ x_2^{(2)}\ \ \cdots \ \ x_2^{(n)}\\ \vdots \\ 1\ \ \ \ \ 1\ \ \ \ \ \cdots \ \ \ \ \ 1 \end{matrix}\right])^T\parallel^2 \\ & =\frac{1}{2}\parallel\left[\begin{matrix} y^{(1)} \\ \vdots \\ y^{(n)} \end{matrix}\right]-\left[\begin{matrix} x^{(1)} \\ \vdots \\ x^{(n)} \end{matrix}\right]w\parallel^2 \\ & =\frac{1}{2}\parallel y-X^Tw\parallel^2 \end{aligned}
R(w)=21n=1∑N(
y(1)⋮y(n)
−wT
x1(n)⋮1
)2=21∥
y(1)⋮y(n)
−(wT
x1(1) x1(2) ⋯ x1(n)x2(1) x2(2) ⋯ x2(n)⋮1 1 ⋯ 1
)T∥2=21∥
y(1)⋮y(n)
−
x(1)⋮x(n)
w∥2=21∥y−XTw∥2
为了使经验风险最小化,可以对经验风险求偏导数令其为0求得极值,这种方法叫做最小二乘法,也就是:
∂
∂
w
R
(
w
)
=
0
\frac{\partial}{\partial{w}}\mathcal{R}(w)=0
∂w∂R(w)=0
I
I
I表示单位矩阵
补充公式:
∂
X
T
X
X
=
2
X
\frac{\partial{X^TX}}{X}=2X
X∂XTX=2X
ERM过程:
∂
1
2
∥
y
−
X
T
w
∥
2
∂
w
=
−
1
2
2
X
(
y
−
X
T
w
)
=
−
X
(
y
−
X
T
w
)
\begin{aligned} \frac{\partial{\frac{1}{2}\parallel y-X^Tw\parallel^2}}{\partial{w}}=-\frac{1}{2}2X(y-X^Tw)=-X(y-X^Tw) \end{aligned}
∂w∂21∥y−XTw∥2=−212X(y−XTw)=−X(y−XTw)
X
(
y
−
X
T
w
)
=
0
X
y
−
X
X
T
w
=
0
X
X
T
w
=
X
y
w
=
(
X
X
T
)
−
1
X
y
w
=
(
X
T
)
−
1
X
−
1
X
y
w
=
(
X
T
)
−
1
y
\begin{aligned} X(y-X^Tw)&=0 \\ Xy-XX^Tw&=0\\ XX^Tw&=Xy \\ w&=(XX^T)^{-1}Xy \\ w&=(X^T)^{-1}X^{-1}Xy \\ w&=(X^T)^{-1}y \end{aligned}
X(y−XTw)Xy−XXTwXXTwwww=0=0=Xy=(XXT)−1Xy=(XT)−1X−1Xy=(XT)−1y
从上述过程可以看出,要想使用最小二乘法进行来使经验风险最小化,必须要满足
X
X
T
XX^T
XXT可逆。假设
X
X
X为
D
×
N
D\times N
D×N矩阵,那么
X
X
T
XX^T
XXT即为
D
×
D
D\times D
D×D矩阵,若要
X
X
T
XX^T
XXT可逆,必须满足
r
(
X
X
T
)
=
r
(
X
)
≥
D
r(XX^T)=r(X)\geq D
r(XXT)=r(X)≥D,显然,当
D
>
N
D\gt N
D>N时,
r
(
X
)
≤
N
<
D
r(X)\leq N\lt D
r(X)≤N<D,因此不成立。
当最小二乘法无法使用时,可以考虑用随机梯度下降、降维(降低维度,使
m
≥
n
m\geq n
m≥n)
结构风险最小化(Structure Risk Minimization,SRM)
由于实际当
D
>
N
D>N
D>N时,在一个数据集
X
X
X当中存在冗余性,也就是说实际上可以用某些特征的组合去预测其他特征,也就是矩阵中的一个维度可以被线性表出,矩阵不满秩,这种情况叫做特征之间存在共线性。
下面假设
x
i
(
n
)
=
−
x
j
(
n
)
x_i^{(n)}=-x_j^{(n)}
xi(n)=−xj(n),那么他的权重组合
w
i
x
i
(
n
)
+
w
j
x
j
(
i
)
w_ix_i^{(n)}+w_jx_j^{(i)}
wixi(n)+wjxj(i)对于
w
w
w求解会有很多的结果。假设此时
w
w
w的取值很大,而当样本特征
x
x
x发生微小变化后,会导致两者的权重组合变化非常大,从而导致预测与实际偏差较大。
上面问题说明当特征之间存在共线性问题时,若
w
w
w取值过大,当
x
x
x发生微小扰动时会导致整体值变得非常大,因此我们希望能对
w
w
w的取值进行约束,这样即使存在共线问题也不会导致过大的偏差,为此需要引入结构风险来解决这个问题
R
(
w
)
=
1
2
∥
y
−
X
T
w
∥
2
+
1
2
λ
∥
w
∥
2
\mathcal{R}(w)=\frac{1}{2}\parallel y-X^Tw\parallel^2+\frac{1}{2}\lambda \parallel w\parallel^2
R(w)=21∥y−XTw∥2+21λ∥w∥2
也就是在经验风险的基础上添加正则化项,正则化项就是指上式中的
1
2
λ
∥
w
∥
2
\frac{1}{2}\lambda \parallel w\parallel^2
21λ∥w∥2部分,其中
λ
\lambda
λ称为正则化系数,是一个需要人工设定的超参数,
λ
\lambda
λ越大对
w
w
w的限制效果越好。可以看到,在引入正则项之后,为了使结构风险尽可能的小,
w
w
w的取值同样也要尽可能的小才能满足,这就达到了限制
w
w
w的作用。
在引入结构风险后,可以进一步对其使用最小二乘法进行结构风险最小化:
∂
∂
w
R
(
w
)
=
1
2
∂
∂
w
(
∥
y
−
X
T
w
∥
2
+
λ
∥
w
∥
2
)
=
1
2
[
−
2
X
(
y
−
X
T
w
)
+
2
λ
w
]
=
−
X
y
+
X
X
T
w
+
λ
w
=
−
X
y
+
(
X
X
T
+
λ
I
)
w
\begin{aligned} \frac{\partial}{\partial w}R(w) &=\frac{1}{2}\frac{\partial}{\partial w}(\parallel y-X^Tw\parallel^2+\lambda \parallel w\parallel^2) \\ &=\frac{1}{2}[-2X(y-X^Tw)+2\lambda w] \\ &=-Xy+XX^Tw+\lambda w \\ &=-Xy+(XX^T+\lambda I)w \end{aligned}
∂w∂R(w)=21∂w∂(∥y−XTw∥2+λ∥w∥2)=21[−2X(y−XTw)+2λw]=−Xy+XXTw+λw=−Xy+(XXT+λI)w
−
X
y
+
(
X
X
T
+
λ
I
)
w
=
0
(
X
X
T
+
λ
I
)
w
=
X
y
w
=
(
X
X
T
+
λ
I
)
−
1
X
y
\begin{aligned} -Xy+(XX^T+\lambda I)w&=0 \\ (XX^T+\lambda I)w&=Xy \\ w&=(XX^T+\lambda I)^{-1}Xy \end{aligned}
−Xy+(XXT+λI)w(XXT+λI)ww=0=Xy=(XXT+λI)−1Xy
由于
λ
I
\lambda I
λI是一个单位矩阵,因此
X
X
T
+
λ
I
XX^T+\lambda I
XXT+λI始终可逆,这样就解决了特征之间的共线性问题,也就i不存在上面所说的
w
w
w过大引起的扰动。这种在矩阵对角线上添加元素的方法来使矩阵可逆的方法叫做岭回归(Ridge Regression)