当前位置: 首页 > article >正文

机器学习 [白板推导](二)[线性回归]

3. 线性回归

3.1. 问题定义

  假设两个变量 x ⃗ \vec{x} x y y y 之间存在线性关系(例如 y = w ⃗ T x ⃗ + b y=\vec{w}^T\vec{x}+b y=w Tx +b),如何利用数据 D a t a : { ( x ⃗ i , y i ) } i = 1 N Data:\{(\vec{x}_i,y_i)\}_{i=1}^N Data:{(x i,yi)}i=1N 拟合出这个线性关系,使得可以对新的样本 x ⃗ N + 1 \vec{x}_{N+1} x N+1 回归得到其对应的 y N + 1 y_{N+1} yN+1 .
  为了便于推导,将样本表示为增广自变量矩阵 X ^ N × ( p + 1 ) = ( x ⃗ ^ 1 x ⃗ ^ 2 ⋯ x ⃗ ^ n ) T = ( [ 1 x ⃗ 1 ] [ 1 x ⃗ 2 ] ⋯ [ 1 x ⃗ n ] ) T \hat{X}_{N\times (p+1)}=(\begin{matrix} \hat{\vec{x}}_1 & \hat{\vec{x}}_2 & \cdots &\hat{ \vec{x}}_n \end{matrix})^T=(\begin{matrix} \begin{bmatrix} 1\\ \vec{x}_1 \end{bmatrix} & \begin{bmatrix} 1\\ \vec{x}_2 \end{bmatrix} & \cdots & \begin{bmatrix} 1\\ \vec{x}_n \end{bmatrix} \end{matrix})^T X^N×(p+1)=(x ^1x ^2x ^n)T=([1x 1][1x 2][1x n])T 和 对应的因变量矩阵 Y N × 1 = ( y 1 y 2 ⋯ y n ) Y_{N\times1}=(\begin{matrix} y_1 & y_2 & \cdots & y_n \end{matrix}) YN×1=(y1y2yn),则根据线性假设,存在参数矩阵 W ( p + 1 ) × 1 W_{(p+1)\times1} W(p+1)×1 使得 Y = X ^ W Y=\hat{X}W Y=X^W(也可以表示为 y i = x ⃗ ^ i T W y_i=\hat{\vec{x}}_i^TW yi=x ^iTW). 因此该问题可以定义为求解最优参数矩阵 W ^ \hat{W} W^.

3.2. 问题求解

3.2.1. 最小二乘法求解

  根据最小二乘法,将损失函数定义为均方误差:
L M S E ( W ) = ∥ X ^ W − Y ∥ = ∑ i = 1 N ( x ⃗ ^ i T W − y i ) 2 , (3.1) \mathcal{L}_{MSE}(W)=\|\hat{X}W-Y\|=\sum_{i=1}^N(\hat{\vec{x}}_i^TW-y_i)^2, \tag{3.1} LMSE(W)=X^WY=i=1N(x ^iTWyi)2,(3.1)

则优化问题表示为
W ^ = arg min ⁡ W L M S E ( W ) . (3.2) \hat{W}=\argmin_W \mathcal{L}_{MSE}(W). \tag{3.2} W^=WargminLMSE(W).(3.2)

  要求出解析解,需要先将问题定义表示为矩阵计算,即:
L M S E ( W ) = ( W T X ^ T − Y T ) ( X ^ W − Y ) = W T X ^ T X ^ W − 2 W T X ^ T Y + Y T Y , (3.3) \begin{aligned} \mathcal{L}_{MSE}(W) &= (W^T\hat{X}^T-Y^T)(\hat{X}W-Y)\\&=W^T\hat{X}^T\hat{X}W-2W^T\hat{X}^TY+Y^TY,\end{aligned}\tag{3.3} LMSE(W)=(WTX^TYT)(X^WY)=WTX^TX^W2WTX^TY+YTY,(3.3)

将其对参数求导得:
∂ L M S E ∂ W = 2 X ^ T X ^ W − 2 X ^ T Y , (3.4) \frac{\partial \mathcal{L}_{MSE}}{\partial W}=2\hat{X}^T\hat{X}W-2\hat{X}^TY, \tag{3.4} WLMSE=2X^TX^W2X^TY,(3.4)

令其为0,可得
W ^ = ( X ^ T X ^ ) − 1 X T Y = X † Y (3.5) \hat{W}=(\hat{X}^T\hat{X})^{-1}X^TY=X^\dagger Y\tag{3.5} W^=(X^TX^)1XTY=XY(3.5)

其中 X † = ( X ^ T X ^ ) − 1 X T X^\dagger=(\hat{X}^T\hat{X})^{-1}X^T X=(X^TX^)1XT 被称为 X ^ \hat{X} X^ 的伪逆。

3.2.2. 概率角度求解

  从概率角度认为,数据中存在随机误差,表示为 y = x ⃗ ^ T W + ϵ y=\hat{\vec{x}}^TW+\epsilon y=x ^TW+ϵ. 其中 ϵ \epsilon ϵ 为误差项,遵从某种概率分布。假设误差项遵从的是高斯分布,则可以定义变量的概率分布为:
ϵ ∼ N ( 0 , σ 2 ) , y ∣ x ⃗ ^ T W ∼ N ( x ⃗ ^ T W , σ 2 ) . (3.6) \begin{aligned}\epsilon& \sim N(0, \sigma^2),\\ y|\hat{\vec{x}}^TW&\sim N(\hat{\vec{x}}^TW,\sigma^2). \end{aligned}\tag{3.6} ϵyx ^TWN(0,σ2),N(x ^TW,σ2).(3.6)

  使用最大似然估计法求解参数,似然函数为:
L M L E ( W ) = ∑ i = 1 N log ⁡ [ p ( y i ∣ x ⃗ ^ ; W ) ] = N log ⁡ ( 1 2 π σ ) − 1 2 σ 2 ∑ i = 1 N ( y i − x ⃗ ^ i T W ) 2 , (3.7) \begin{aligned}\mathcal{L}_{MLE}(W)&=\sum_{i=1}^N\log[p(y_i|\hat{\vec{x}};W)]\\&=N\log(\frac{1}{\sqrt{2\pi}\sigma})-\frac{1}{2\sigma^2}\sum_{i=1}^N(y_i-\hat{\vec{x}}_i^TW)^2,\end{aligned}\tag{3.7} LMLE(W)=i=1Nlog[p(yix ^;W)]=Nlog(2π σ1)2σ21i=1N(yix ^iTW)2,(3.7)

因此优化目标变成了 W ^ = arg min ⁡ W L M L E ( W ) = arg min ⁡ W ∑ i = 1 N ( y i − x ⃗ ^ i T W ) 2 \hat{W}=\underset{W}{\argmin} \mathcal{L}_{MLE}(W)=\underset{W}{\argmin}\sum_{i=1}^N(y_i-\hat{\vec{x}}_i^TW)^2 W^=WargminLMLE(W)=Wargmini=1N(yix ^iTW)2,与最小二乘法相同,可以使用式(3.5)求解。

3.3. 正则化

3.3.1. 为什么要正则化

  从前面的推论可以知道参数矩阵的解析解,一般来说,但当样本量较小时,可能导致 X ^ T X ^ \hat{X}^T\hat{X} X^TX^ 不可逆,无法求出解析解。从拟合情况看,如果不能满足 N ≫ p N\gg p Np,则相较于维数来说样本不足,容易导致过拟合问题,对于过拟合情况可以用三种方法:

  • 采集更多数据;
  • 特征选择/特征提取(PCA,见本文第5.3节)
  • 正则化(本节介绍)

3.3.2. 范数介绍

  一般地,一个向量 L p L_p Lp 的范数可以定义为 ∥ x ⃗ ∥ p = ∑ i = 1 m ∣ x i ∣ p p \left \| \vec{x} \right \|_p=\sqrt[p]{\sum_{i=1}^m\left | x_i \right |^p} x p=pi=1mxip

  • L1范数:Lasso,即为向量各元素的绝对值之和;
  • L2范数:Ridge, ∥ x ⃗ ∥ 2 = ∑ i = 1 m ∣ x i ∣ 2 2 = x ⃗ T x ⃗ \left \| \vec{x} \right \|_2=\sqrt[2]{\sum_{i=1}^m\left | x_i \right |^2}=\vec{x}^T\vec{x} x 2=2i=1mxi2 =x Tx

3.3.3. L2正则化

  正则化的框架:
J ( W ) = L ( W ) + λ P ( W ) , (3.8) \mathcal{J}(W)=\mathcal{L}(W)+\lambda P(W),\tag{3.8} J(W)=L(W)+λP(W),(3.8)

即在原有损失函数上加上一个正则化惩罚;
  对于L2正则化,则对应的惩罚项为 W T W W^TW WTW,而优化函数即为:
J ( W ) = L ( W ) + λ W T W , (3.9) \mathcal{J}(W)=\mathcal{L}(W)+\lambda W^TW,\tag{3.9} J(W)=L(W)+λWTW,(3.9)

这个优化函数也被称为岭回归;
  对式(3.9)进行化简和求导(同第3.2.1.节)可以得到新的解析解:
W ^ = ( X ^ T X ^ + λ I ) − 1 X T Y , (3.9) \hat{W}=(\hat{X}^T\hat{X}+\lambda I)^{-1}X^TY,\tag{3.9} W^=(X^TX^+λI)1XTY,(3.9)

解决了前面提到的不可逆的问题。

3.3.4. 从贝叶斯角度理解线性回归和L2正则化

  从贝叶斯派的角度求解线性回归问题,则是已知 X X X 的分布 p ( x ⃗ ) p(\vec{x}) p(x ) Y Y Y 的分布 p ( y ) p(y) p(y),对于参数矩阵假设一个先验分布 p ( W ) p(W) p(W),采用最大后验估计法求解:
W ^ = arg max ⁡ W p ( W ∣ y ) . (3.10) \hat{W}=\argmax_W p(W|y). \tag{3.10} W^=Wargmaxp(Wy).(3.10)

  假设参数矩阵服从正态分布,即 W ∼ N ( 0 ⃗ , Σ 0 ) W\sim \mathcal{N}(\vec{0},\Sigma_0) WN(0 ,Σ0),则根据贝叶斯公式计算后验概率: p ( W ∣ y ) = p ( y ∣ W ) ⋅ p ( W ) p ( y ) p(W|y)=\frac{p(y|W)\cdot p(W)}{p(y)} p(Wy)=p(y)p(yW)p(W),因为 p ( y ) p(y) p(y) 不随参数变化,所以
W ^ = arg max ⁡ W p ( W ∣ y ) = arg max ⁡ W { p ( y ∣ W ) ⋅ p ( W ) p ( y ) } = arg max ⁡ W { p ( y ∣ W ) ⋅ p ( W ) } . (3.11) \begin{aligned}\hat{W}&=\argmax_Wp(W|y)\\ &=\argmax_W\left \{\frac{p(y|W)\cdot p(W)}{p(y)} \right \}\\ &=\argmax_W\left \{p(y|W)\cdot p(W)\right \}.\end{aligned}\tag{3.11} W^=Wargmaxp(Wy)=Wargmax{p(y)p(yW)p(W)}=Wargmax{p(yW)p(W)}.(3.11)

根据式(3.6),因为 p ( x ⃗ ) p(\vec{x}) p(x ) 已知,所以也可以写作:
y ∣ W ∼ N ( x ⃗ ^ W , σ 2 I ) , (3.12) y|W\sim N(\hat{\vec{x}}W,\sigma^2I), \tag{3.12} yWN(x ^W,σ2I),(3.12)

因此联立参数矩阵 W W W 的概率密度函数,可得:
p ( y ∣ W ) ⋅ p ( W ) = 1 2 π σ 2 1 2 π σ 0 2 ⋅ exp ⁡ { − ( y − x ⃗ ^ T W ) T ( y − x ⃗ ^ T W ) 2 σ 2 − W T Σ 0 − 1 W 2 } (3.13) p(y|W)\cdot p(W)=\frac{1}{\sqrt{2\pi}\sigma^2}\frac{1}{\sqrt{2\pi}\sigma_0^2}\cdot \exp{\left\{-\frac{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)}{2\sigma^2}-\frac{W^T\Sigma_0^{-1}W}{2}\right\}}\tag{3.13} p(yW)p(W)=2π σ212π σ021exp{2σ2(yx ^TW)T(yx ^TW)2WTΣ01W}(3.13)

  当 Σ 0 = σ 0 2 I \Sigma_0=\sigma_0^2I Σ0=σ02I(即方差各向同性)时,有 W T Σ 0 − 1 W 2 = W T W 2 σ 0 2 = ∥ W ∥ 2 2 σ 0 2 \frac{W^T\Sigma_0^{-1}W}{2}=\frac{W^TW}{2\sigma_0^2}=\frac{\left \| W \right \|^2}{2\sigma_0^2} 2WTΣ01W=2σ02WTW=2σ02W2,因此:
W ^ = arg max ⁡ W { p ( W ∣ y ) } = arg max ⁡ W { p ( y ∣ W ) ⋅ p ( W ) } = arg max ⁡ W { log ⁡ ( p ( y ∣ W ) ⋅ p ( W ) ) } = arg max ⁡ W { ( y − x ⃗ ^ T W ) T ( y − x ⃗ ^ T W ) 2 σ 2 + W T W 2 σ 0 2 } = arg max ⁡ W { ( y − x ⃗ ^ T W ) T ( y − x ⃗ ^ T W ) + σ 2 σ 0 2 W T W } , (3.14) \begin{aligned}\hat{W}&=\argmax_W\left \{p(W|y) \right \}\\ &=\argmax_W\left \{ p(y|W)\cdot p(W)\right \} \\ &=\argmax_W\left \{\log( p(y|W)\cdot p(W))\right \} \\ &=\argmax_W\left \{\frac{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)}{2\sigma^2}+\frac{W^TW}{2\sigma_0^2} \right \} \\ &=\argmax_W\left \{(y-\hat{\vec{x}}^TW)^T(y-\hat{\vec{x}}^TW)+\frac{\sigma^2}{\sigma_0^2}W^TW\right \},\end{aligned}\tag{3.14} W^=Wargmax{p(Wy)}=Wargmax{p(yW)p(W)}=Wargmax{log(p(yW)p(W))}=Wargmax{2σ2(yx ^TW)T(yx ^TW)+2σ02WTW}=Wargmax{(yx ^TW)T(yx ^TW)+σ02σ2WTW},(3.14)

此时的优化函数和L2正则化是相同的,只是将 λ \lambda λ 替换为了 σ 2 σ 0 2 \frac{\sigma^2}{\sigma_0^2} σ02σ2.

  若取消方差各向同性假设,使用全量数据求解参数矩阵:
P ( W ∣ X , Y ) ∝ exp ⁡ { − 1 2 σ 2 ( Y − X W ) T ( Y − X W ) − 1 2 W T Σ 0 − 1 W } = exp ⁡ { − 1 2 σ 2 ( Y T Y − 2 Y T X W + W T X T X W ) − 1 2 W T Σ 0 − 1 W } ∝ exp ⁡ { − 1 2 [ W T ( σ − 2 X T X + Σ 0 − 1 ) W ] ⏟ Quadratic term + [ σ − 2 Y T X W ] ⏟ Linear term } , (3.15) \begin{aligned} P(W|X,Y)&\propto \exp\left \{ -\frac{1}{2\sigma^2}(Y-XW)^T(Y-XW)-\frac{1}{2}W^T\Sigma_0^{-1}W \right \}\\ &= \exp\left \{ -\frac{1}{2\sigma^2}(Y^TY-2Y^TXW+W^TX^TXW)-\frac{1}{2}W^T\Sigma_0^{-1}W \right \}\\ &\propto \exp\left \{ \underset{\text{Quadratic term}}{\underbrace{-\frac{1}{2}\left [ W^T(\sigma^{-2}X^TX+\Sigma_0^{-1})W \right ]}}+\underset{\text{Linear term}}{\underbrace{[\sigma^{-2}Y^TXW]}} \right \}, \end{aligned}\tag{3.15} P(WX,Y)exp{2σ21(YXW)T(YXW)21WTΣ01W}=exp{2σ21(YTY2YTXW+WTXTXW)21WTΣ01W}exp Quadratic term 21[WT(σ2XTX+Σ01)W]+Linear term [σ2YTXW] ,(3.15)

其中Quadratic term表示变量的二次项,Linear term表示变量的一次项。
  另一方面,将式(2.3)(高斯分布PDF标准形式,见另一篇帖子:机器学习[白班推导](一)):
P ( x ⃗ ) = 1 ( 2 π ) p 2 ∣ Σ ∣ 1 2 exp ⁡ { − 1 2 [ ( x ⃗ − μ ⃗ ) T Σ − 1 ( x ⃗ − μ ⃗ ) ] } = 1 ( 2 π ) p 2 ∣ Σ ∣ 1 2 exp ⁡ { − 1 2 [ x ⃗ T Σ − 1 x ⃗ − 2 μ ⃗ T Σ − 1 x ⃗ + μ ⃗ T Σ − 1 μ ⃗ ] } ∝ exp ⁡ { − 1 2 [ x ⃗ T Σ − 1 x ⃗ ] ⏟ Quadratic term + μ ⃗ T Σ − 1 x ⃗ ⏟ Linear term } , (3.16) \begin{aligned} P(\vec{x})&=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left \{-\frac{1}{2}\left[(\vec{x}-\vec{\mu})^T\Sigma^{-1}(\vec{x}-\vec{\mu}) \right ]\right \}\\ &=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left \{-\frac{1}{2}\left[ \vec{x}^T\Sigma^{-1}\vec{x}-2\vec{\mu}^T\Sigma^{-1}\vec{x}+\vec{\mu}^T\Sigma^{-1}\vec{\mu} \right ]\right \}\\ &\propto \exp\left \{\underset{\text{Quadratic term}}{\underbrace{-\frac{1}{2}\left[ \vec{x}^T\Sigma^{-1}\vec{x}\right ]}}+\underset{\text{Linear term}}{\underbrace{\vec{\mu}^T\Sigma^{-1}\vec{x}}} \right \},\end{aligned}\tag{3.16} P(x )=(2π)2p∣Σ211exp{21[(x μ )TΣ1(x μ )]}=(2π)2p∣Σ211exp{21[x TΣ1x 2μ TΣ1x +μ TΣ1μ ]}exp Quadratic term 21[x TΣ1x ]+Linear term μ TΣ1x ,(3.16)

根据二次项对应系数矩阵可以求得方差矩阵,进而根据一次项对应系数矩阵可以求得均值向量,具体计算为:
{ Σ W − 1 = σ − 2 X T X + Σ 0 − 1 μ ⃗ W T Σ W − 1 = σ − 2 Y T X ⟹ { Σ W = ( σ − 2 X T X + Σ 0 − 1 ) − 1 μ ⃗ W = ( X T X + σ 2 Σ 0 − 1 ) − 1 X T Y , (3.17) \begin{aligned} &\left\{ \begin{matrix} \Sigma_W^{-1}=\sigma^{-2}X^TX+\Sigma_0^{-1}\\ \vec{\mu}_W^T\Sigma_W^{-1}=\sigma^{-2}Y^TX \end{matrix} \right.\\ \Longrightarrow &\left\{ \begin{matrix} \Sigma_W=(\sigma^{-2}X^TX+\Sigma_0^{-1})^{-1}\\ \vec{\mu}_W=(X^TX+\sigma^{2}\Sigma_0^{-1})^{-1}X^TY \end{matrix}, \right.\tag{3.17} \end{aligned} {ΣW1=σ2XTX+Σ01μ WTΣW1=σ2YTX{ΣW=(σ2XTX+Σ01)1μ W=(XTX+σ2Σ01)1XTY,(3.17)

当满足方差各向同性 Σ 0 = σ 0 2 I \Sigma_0=\sigma_0^2I Σ0=σ02I 时,均值 μ ⃗ W \vec{\mu}_W μ W 的计算结果与式(3.9)的解析解形式相同,只是将 λ \lambda λ 替换为了 σ 2 σ 0 2 \frac{\sigma^2}{\sigma_0^2} σ02σ2.

3.4. 线性回归的特性

  线性回归算法作为重要的基础算法,具有3个特性,也成为了以线性回归为基础的改进模型的3个发展方向:

  • 线性:为了能解决非线性问题,从3个角度拓展了线性回归的算法:
    • 属性非线性:特征建模(例如多项式回归)
    • 全局非线性:线性分类(使用非线性激活函数)
    • 系数非线性:多层感知机/神经网络
  • 全局性(通常认为变量之间的线性关系是恒定一致的):为了能解决非全局的线性拟合问题,可以使用线性样条回归(类似于将变量之间的关系看做分段线性的函数,将数据划分为子集,分别对不同子集拟合,得到分段线性关系)、决策树等算法改进。
  • 数据未加工:可以使用PCA、流形学习(高维数据的低维映射)等算法解决。


http://www.kler.cn/a/591593.html

相关文章:

  • 【Go】运算符笔记
  • 安装并使用anaconda(宏观版)
  • HTML,CSS,JavaScript
  • 微服务即时通信系统---(五)框架学习
  • 解决Spring Boot中Chrome浏览器Session ID频繁变动的问题
  • 基于 ELK、Python、OLaMA 和飞书群的 AI 自动化巡检方案
  • Druid 连接池工具类及其在企业级应用中的实践
  • Linux IP 配置
  • QT 学习笔记2
  • win/linux开机启动exe程序
  • AT指令集-NBIOT
  • 明基PD2700U显示器无法调节图像模式
  • Qt窗口控件之字体对话框QFontDialog
  • 【css酷炫效果】纯CSS实现进度条加载动画
  • Go 语言 `map` 详解
  • 凸优化算法学习笔记:闵可夫斯基和与Slope trick
  • 在k8s中利用Helm部署Prometheus+Grafana和Loki日志系统
  • 什么是时序数据库?
  • mybatis_plus的乐观锁
  • 有了大语言模型还需要 RAG 做什么