对于有 m 个样本的数据集 D,每个样本 x = [ x 1 , x 2 , … , x d ] T \boldsymbol x=[x_1, x_2,\dots,x_d]^T x=[x1,x2,…,xd]T 是一个 d 维的向量,样本 x \boldsymbol x x 对应的真实输出是 y y y,线性回归的目的是学习一个关于样本属性的线性函数,使得函数的输出值尽可能地接近 y y y。线性函数的形式如下:
f ( x ) = w 1 x 1 + w 2 x 2 + ⋯ + w d x d + b f(\boldsymbol x)=w_1x_1+w_2x_2+\dots+w_d x_d+b f(x)=w1x1+w2x2+⋯+wdxd+b 用向量形式表示的话, f ( x ) = w T x + b f(\boldsymbol x)=\boldsymbol w^T\boldsymbol x+b f(x)=wTx+b。那么如何衡量预测值与真实值之间的差距呢?线性回归使用的是均方误差,即
(1) min w , b L = min w , b ∑ i = 1 m ( f ( x i ) − y i ) 2 \min_{\boldsymbol w,b}L=\min_{\boldsymbol w,b}\sum_{i=1}^m(f(\boldsymbol x_i)-y_i)^2 \tag{1} w,bminL=w,bmini=1∑m(f(xi)−yi)2(1) 其中 x i \boldsymbol x_i xi 和 y i y_i yi 分别表示第 i 个样本的特征和真实输出值。
如果我们用矩阵 X ∈ R m × ( d + 1 ) \boldsymbol X\in R^{m\times (d+1)} X∈Rm×(d+1) 来表示样本矩阵,用 w ^ = ( w ; b ) ∈ R ( d + 1 ) × 1 \boldsymbol{\hat{w}}=(\boldsymbol w;b) \in R^{(d+1)\times 1} w^=(w;b)∈R(d+1)×1 来表示权重系数,用 y ∈ R m × 1 \boldsymbol y \in R^{m\times 1} y∈Rm×1 来表示样本真实输出值组成的向量,即
X = [ x 1 T 1 x 2 T 1 … … x m T 1 ] , w ^ = [ w 1 w 2 … w d b ] = [ w b ] , y = [ y 1 y 2 … y m ] \boldsymbol X=\begin{bmatrix} \boldsymbol x_1^T & 1 \\ \boldsymbol x_2^T & 1 \\ \dots & \dots \\ \boldsymbol x_m^T & 1 \end{bmatrix}, \quad \boldsymbol{\hat{w}}=\begin{bmatrix} w_1 \\ w_2 \\ \dots \\ w_d \\ b \end{bmatrix}=\begin{bmatrix} \boldsymbol w \\ b \end{bmatrix}, \quad \boldsymbol y=\begin{bmatrix} y_1 \\ y_2 \\ \dots \\ y_m \end{bmatrix} X=⎣⎢⎢⎡x1Tx2T…xmT11…1⎦⎥⎥⎤,w^=⎣⎢⎢⎢⎢⎡w1w2…wdb⎦⎥⎥⎥⎥⎤=[wb],y=⎣⎢⎢⎡y1y2…ym⎦⎥⎥⎤ 可以看出, X w ^ \boldsymbol X \boldsymbol{\hat{w}} Xw^ 的第 i i i 行就是 w T x i + b \boldsymbol{w}^T \boldsymbol x_i+b wTxi+b,也就是 f ( x i ) f(\boldsymbol x_i) f(xi)。所以优化目标公式 (1) 等价于:
min w ^ ∥ X w ^ − y ∥ 2 2 \min_{\boldsymbol{\hat{w}}}\Vert \boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y \Vert_2^2 w^min∥Xw^−y∥22 因为 X w ^ − y \boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y Xw^−y 是一个向量,所以
L = ∥ X w ^ − y ∥ 2 2 = ( X w ^ − y ) T ( X w ^ − y ) L=\Vert \boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y \Vert_2^2=(\boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y)^T(\boldsymbol X \boldsymbol{\hat{w}}- \boldsymbol y) L=∥Xw^−y∥22=(Xw^−y)T(Xw^−y) 对 w ^ \boldsymbol{\hat{w}} w^ 求导数,可得:
∂ L ∂ w ^ = 2 X T y − 2 X T X w ^ \frac{\partial L}{\partial \boldsymbol{\hat{w}}}=2\boldsymbol X^T \boldsymbol y-2\boldsymbol X^T \boldsymbol X \boldsymbol{\hat{w}} ∂w^∂L=2XTy−2XTXw^ 令导数为 0, 可以解得:
w ^ = ( X T X ) − 1 X T y \boldsymbol{\hat{w}}=(\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X^T \boldsymbol y w^=(XTX)−1XTy
使用梯度下降方法(Gradient Descent)迭代更新参数,首先计算损失函数公式(1)对参数的偏导数,如下:
∂ L ∂ w j = ∑ i = 1 m 2 ( f ( x i ) − y i ) x i j \frac{\partial L}{\partial w_j}=\sum_{i=1}^m2(f(\boldsymbol x_i)-y_i)x_{ij} ∂wj∂L=i=1∑m2(f(xi)−yi)xij ∂ L ∂ b = ∑ i = 1 m 2 ( f ( x i ) − y i ) \frac{\partial L}{\partial b}=\sum_{i=1}^m2(f(\boldsymbol x_i)-y_i) ∂b∂L=i=1∑m2(f(xi)−yi) 其中 x i j x_{ij} xij 表示第 i i i 个样本的第 j j j 个属性。然后设定一个学习率 α \alpha α,按以下公式更新参数:
w j = w j − α ∂ L ∂ w j w_j = w_j-\alpha \frac{\partial L}{\partial w_j} wj=wj−α∂wj∂L b = b − α ∂ L ∂ b b = b - \alpha \frac{\partial L}{\partial b} b=b−α∂b∂L 直到损失函数的值收敛到一个最小值。
为了书写方便,下面我们用 w \boldsymbol w w 表示上面的 w ^ \boldsymbol{\hat{w}} w^,用 x i \boldsymbol x_i xi 表示第 i i i 个样本的特征拼接上常数 1 之后的 (d+1) 向量。则 f ( x i ) = w T x i f(\boldsymbol x_i)=\boldsymbol w^T \boldsymbol x_i f(xi)=wTxi。 假设样本 x i \boldsymbol x_i xi 的输出值 y i y_i yi 是一个随机变量,其服从高斯分布 N ( μ , σ 1 2 ) N(\boldsymbol \mu, \sigma_1^2) N(μ,σ12),其中 μ = f ( x i ) \boldsymbol \mu=f(\boldsymbol x_i) μ=f(xi),即允许真实值 y i y_i yi 在 f ( x i ) f(\boldsymbol x_i) f(xi) 的小范围内波动。在给定参数 w \boldsymbol w w 的情况下,生成 y i y_i yi 的似然为:
p ( y i ∣ w ) = N ( f ( x i ) , σ 1 2 ) = 1 2 π σ 1 e − ( y i − f ( x i ) ) 2 2 π σ 1 p(y_i|\boldsymbol w)=N(f(\boldsymbol x_i), \sigma_1^2)=\frac{1}{\sqrt{2\pi}\sigma_1}e^{-\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}} p(yi∣w)=N(f(xi),σ12)=2πσ11e−2πσ1(yi−f(xi))2 则对于整个数据集来说,似然为每个样本似然的乘积:
∏ i = 1 m p ( y i ∣ w ) = ∏ i = 1 m N ( f ( x i ) , σ 1 2 ) = ∏ i = 1 m 1 2 π σ 1 e − ( y i − f ( x i ) ) 2 2 π σ 1 \prod _{i=1}^m p(y_i|\boldsymbol w)=\prod _{i=1}^m N(f(\boldsymbol x_i), \sigma_1^2)=\prod _{i=1}^m \frac{1}{\sqrt{2\pi}\sigma_1}e^{-\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}} i=1∏mp(yi∣w)=i=1∏mN(f(xi),σ12)=i=1∏m2πσ11e−2πσ1(yi−f(xi))2 由于连乘容易导致数据溢出,因此取一般会对似然取对数,得到
log ∏ i = 1 m p ( y i ∣ w ) = ∑ i = 1 m log p ( y i ∣ w ) = ∑ i = 1 m − ( ( y i − f ( x i ) ) 2 2 π σ 1 + 1 2 log 2 π + log σ 1 ) \log \prod _{i=1}^m p(y_i|\boldsymbol w)=\sum_{i=1}^m \log p(y_i|\boldsymbol w)=\sum_{i=1}^m -(\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}+\frac{1}{2}\log 2\pi+\log \sigma_1) logi=1∏mp(yi∣w)=i=1∑mlogp(yi∣w)=i=1∑m−(2πσ1(yi−f(xi))2+21log2π+logσ1) 因为 2 π , σ 1 2\pi, \sigma_1 2π,σ1 与参数 w \boldsymbol w w 无关,可以看作是常数从而去掉,所以最大化似然等价于最小化下列式子:
min w ∑ i = 1 m ( y i − f ( x i ) ) 2 \min_{\boldsymbol w} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2 wmini=1∑m(yi−f(xi))2 上述式子与 1.1 中的公式(1)完全一致。从上面分析,我们可以看出,最大化似然等价于最小化均方误差。
假设参数 w \boldsymbol w w 服从先验分布 N ( 0 , σ 2 2 ) N(0,\sigma_2^2) N(0,σ22),即:
p ( w ) = 1 2 π σ 2 e − w 2 2 π σ 2 p(\boldsymbol w)=\frac{1}{\sqrt{2\pi}\sigma_2}e^{-\frac{\boldsymbol w^2}{2\pi \sigma_2}} p(w)=2πσ21e−2πσ2w2 给定数据集 D,则可以得到 w \boldsymbol w w 的后验概率如下:
p ( w ∣ y ) = p ( w ) p ( y ∣ w ) p ( y ) = p ( w ) ∏ i = 1 m p ( y i ∣ w ) p ( y ) p(\boldsymbol w|\boldsymbol y)=\frac{p(\boldsymbol w)p(\boldsymbol y|\boldsymbol w)}{p(\boldsymbol y)}=\frac{p(\boldsymbol w)\prod_{i=1}^m p(y_i|\boldsymbol w)}{p(\boldsymbol y)} p(w∣y)=p(y)p(w)p(y∣w)=p(y)p(w)∏i=1mp(yi∣w) 我们想找到一个 w \boldsymbol w w 使得上述后验概率最大,由于分母 p ( y ) p(\boldsymbol y) p(y) 与参数 w \boldsymbol w w 的取值没有关系,因此可以去掉。再对后验概率取对数,得到:
log p ( w ∣ y ) = ∑ i = 1 m log p ( y i ∣ w ) + log p ( w ) \log p(\boldsymbol w|\boldsymbol y)=\sum_{i=1}^m \log p(y_i|\boldsymbol w)+\log p(\boldsymbol w) logp(w∣y)=i=1∑mlogp(yi∣w)+logp(w) 展开得到:
log p ( w ∣ y ) = ∑ i = 1 m − ( ( y i − f ( x i ) ) 2 2 π σ 1 + 1 2 log 2 π + log σ 1 ) − w 2 2 π σ 2 − 1 2 log 2 π − log σ 2 \log p(\boldsymbol w|\boldsymbol y)=\sum_{i=1}^m -(\frac{(y_i-f(\boldsymbol x_i))^2}{2\pi \sigma_1}+\frac{1}{2}\log 2\pi+\log \sigma_1)-\frac{\boldsymbol w^2}{2\pi \sigma_2}-\frac{1}{2}\log 2\pi-\log \sigma_2 logp(w∣y)=i=1∑m−(2πσ1(yi−f(xi))2+21log2π+logσ1)−2πσ2w2−21log2π−logσ2 把和 w \boldsymbol w w 无关的项去掉之后,最大化上面式子等价于最小化下列式子:
min w 1 2 π σ 1 ∑ i = 1 m ( y i − f ( x i ) ) 2 + w 2 2 π σ 2 \min_{\boldsymbol w} \frac{1}{2\pi \sigma_1} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2+\frac{\boldsymbol w^2}{2\pi \sigma_2} wmin2πσ11i=1∑m(yi−f(xi))2+2πσ2w2 即:
min w ∑ i = 1 m ( y i − f ( x i ) ) 2 + λ ∥ w ∥ 2 \min_{\boldsymbol w} \sum_{i=1}^m (y_i-f(\boldsymbol x_i))^2+ \lambda \Vert \boldsymbol w \Vert^2 wmini=1∑m(yi−f(xi))2+λ∥w∥2 其中 λ = σ 1 / σ 2 \lambda=\sigma_1 / \sigma_2 λ=σ1/σ2。可以看出,最大化后验概率等价于加了正则项的线性回归。