机器学习笔记之——线性回归

目录

  • 线性回归
    • 1. 线性回归简介
      • 1.1 模型描述
      • 1.2 求解方法一:矩阵运算
      • 1.3 求解方法二:梯度下降
    • 2. 用最大似然和贝叶斯后验看线性回归
      • 2.1 最大似然
      • 2.2 贝叶斯后验

线性回归


1. 线性回归简介

1.1 模型描述

对于有 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=1m(f(xi)yi)2(1) 其中 x i \boldsymbol x_i xi y i y_i yi 分别表示第 i 个样本的特征和真实输出值。

1.2 求解方法一:矩阵运算

如果我们用矩阵 X ∈ R m × ( d + 1 ) \boldsymbol X\in R^{m\times (d+1)} XRm×(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} yRm×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=x1Tx2TxmT111,w^=w1w2wdb=[wb],y=y1y2ym 可以看出, 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^minXw^y22 因为 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^y22=(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=2XTy2XTXw^ 令导数为 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

1.3 求解方法二:梯度下降

使用梯度下降方法(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} wjL=i=1m2(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) bL=i=1m2(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αwjL b = b − α ∂ L ∂ b b = b - \alpha \frac{\partial L}{\partial b} b=bαbL 直到损失函数的值收敛到一个最小值。

2. 用最大似然和贝叶斯后验看线性回归

2.1 最大似然

为了书写方便,下面我们用 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(yiw)=N(f(xi),σ12)=2π σ11e2πσ1(yif(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=1mp(yiw)=i=1mN(f(xi),σ12)=i=1m2π σ11e2πσ1(yif(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=1mp(yiw)=i=1mlogp(yiw)=i=1m(2πσ1(yif(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=1m(yif(xi))2 上述式子与 1.1 中的公式(1)完全一致。从上面分析,我们可以看出,最大化似然等价于最小化均方误差

2.2 贝叶斯后验

假设参数 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π σ21e2πσ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(wy)=p(y)p(w)p(yw)=p(y)p(w)i=1mp(yiw) 我们想找到一个 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(wy)=i=1mlogp(yiw)+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(wy)=i=1m(2πσ1(yif(xi))2+21log2π+logσ1)2πσ2w221log2π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=1m(yif(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=1m(yif(xi))2+λw2 其中 λ = σ 1 / σ 2 \lambda=\sigma_1 / \sigma_2 λ=σ1/σ2。可以看出,最大化后验概率等价于加了正则项的线性回归

你可能感兴趣的:(机器学习,机器学习)