【数理知识】最小二乘法,一般线性情况,矩阵化表示过程,最佳参数的求解公式过程

序号 内容
1 【数理知识】自由度 degree of freedom 及自由度的计算方法
2 【数理知识】刚体 rigid body 及刚体的运动
3 【数理知识】刚体基本运动,平动,转动
4 【数理知识】向量数乘,内积,外积,matlab代码实现
5 【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差
6 【数理知识】旋转矩阵的推导过程,基于向量的旋转来实现,同时解决欧式变换的非线性局限

友情提醒:请先服用文章【数理知识】最小二乘法,从线性回归出发,数值举例并用最小二乘法求解回归模型,再来服用本文。

文章目录

  • [1. 多解释变量,多响应变量](#1. 多解释变量,多响应变量)
  • [2. 矩阵运算求偏导](#2. 矩阵运算求偏导)
  • Ref

之前的文章【数理知识】最小二乘法,从线性回归出发,数值举例并用最小二乘法求解回归模型中,从回归分析的角度出发,分析了线性回归的模型,举了具体的数值例子,并使用最小二乘法求解了模型的最佳参数。

在之前的回归分析中,举例时使用的是:

  • 简单线性回归模型(单解释变量,单响应变量)
  • 多元线性回归模型(多解释变量,单响应变量)

但是都是单响应变量,同时也不方便进行矩阵化描述。

在实际的应用中,更多使用的是多解释变量多响应变量的回归模型,同时也会使用矩阵化操作,这样既能节省计算机的资源,还能加速计算的效率。

因此本文将从多解释变量多响应变量出发,重点介绍如何矩阵化,以及矩阵化后的求导运算和操作。


1. 多解释变量,多响应变量

在上述(单解释变量,单响应变量)和的基础上,推广到更一般的线性情况。

这种多解释变量多响应变量的回归模型,可以用公式表征为

y 1 = β 0 + β 1 x 11 + β 2 x 12 + ⋯ + β p x 1 p y 2 = β 0 + β 1 x 21 + β 2 x 22 + ⋯ + β p x 3 p y 3 = β 0 + β 1 x 31 + β 2 x 32 + ⋯ + β p x 3 p ⋮ y m = β 0 + β 1 x m 1 + β 2 x m 2 + ⋯ + β p x m p \begin{aligned} y_1 &= \beta_{0} + \beta_{1} x_{11} + \beta_{2} x_{12} + \cdots + \beta_{p} x_{1p} \\ y_2 &= \beta_{0} + \beta_{1} x_{21} + \beta_{2} x_{22} + \cdots + \beta_{p} x_{3p} \\ y_3 &= \beta_{0} + \beta_{1} x_{31} + \beta_{2} x_{32} + \cdots + \beta_{p} x_{3p} \\ \vdots \\ y_m &= \beta_{0} + \beta_{1} x_{m1} + \beta_{2} x_{m2} + \cdots + \beta_{p} x_{mp} \end{aligned} y1y2y3⋮ym=β0+β1x11+β2x12+⋯+βpx1p=β0+β1x21+β2x22+⋯+βpx3p=β0+β1x31+β2x32+⋯+βpx3p=β0+β1xm1+β2xm2+⋯+βpxmp

可以看到这种回归模型共有
m m m 个响应变量 y 1 , ⋯   , y m y_1, \cdots, y_m y1,⋯,ym,
m ∗ p m * p m∗p 个解释变量 x 11 , ⋯   , x m p x_{11}, \cdots, x_{mp} x11,⋯,xmp,
1 1 1 个参数 β 0 \beta_{0} β0,
p p p 个参数 β 1 , ⋯   , β p \beta_{1}, \cdots, \beta_{p} β1,⋯,βp。


接下来进行矩阵化,令

Y = y 1 y 2 ⋮ y m m × 1 , X = x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m p m × p , β = β 1 β 2 ⋮ β p p × 1 Y = \left\\begin{matrix} y_1 \\\\ y_2 \\\\ \\vdots \\\\ y_m \\end{matrix}\\right{m \times 1}, \quad X = \left\\begin{matrix} x_{11} \& x_{12} \& \\cdots \& x_{1p} \\\\ x_{21} \& x_{22} \& \\cdots \& x_{2p} \\\\ \\vdots \& \\vdots \& \\ddots \& \\vdots \\\\ x_{m1} \& x_{m2} \& \\cdots \& x_{mp} \\\\ \\end{matrix}\\right{m \times p}, \quad \beta = \left\\begin{matrix} \\beta_{1} \\\\ \\beta_{2} \\\\ \\vdots \\\\ \\beta_{p} \\end{matrix}\\right_{p \times 1} Y= y1y2⋮ym m×1,X= x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1px2p⋮xmp m×p,β= β1β2⋮βp p×1

Y = X β + β 0 \begin{aligned} Y = X \beta + \beta_0 \end{aligned} Y=Xβ+β0

这种形式虽然看着简单清晰,但是多一项 β 0 \beta_0 β0,我们换种形式将 β 0 \beta_0 β0 融进 β \beta β 中去。令

Y = y 1 y 2 ⋮ y m m × 1 , X = 1 x 11 x 12 ⋯ x 1 p 1 x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋮ ⋱ ⋮ 1 x m 1 x m 2 ⋯ x m p m × ( p + 1 ) , β = β 0 β 1 β 2 ⋮ β p ( p + 1 ) × 1 Y = \left\\begin{matrix} y_1 \\\\ y_2 \\\\ \\vdots \\\\ y_m \\end{matrix}\\right{m \times 1}, \quad X = \left\\begin{matrix} 1 \& x_{11} \& x_{12} \& \\cdots \& x_{1p} \\\\ 1 \& x_{21} \& x_{22} \& \\cdots \& x_{2p} \\\\ \\vdots \& \\vdots \& \\vdots \& \\ddots \& \\vdots \\\\ 1 \& x_{m1} \& x_{m2} \& \\cdots \& x_{mp} \\\\ \\end{matrix}\\right{m \times (p+1)}, \quad \beta = \left\\begin{matrix} \\beta_{0} \\\\ \\beta_{1} \\\\ \\beta_{2} \\\\ \\vdots \\\\ \\beta_{p} \\end{matrix}\\right_{(p+1) \times 1} Y= y1y2⋮ym m×1,X= 11⋮1x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1px2p⋮xmp m×(p+1),β= β0β1β2⋮βp (p+1)×1

然后就变成了

Y = X β \begin{aligned} Y = X \beta \end{aligned} Y=Xβ


2. 矩阵运算求偏导

接下来的重点就是找寻一个最好的 θ \theta θ 使得 X β − Y X\beta - Y Xβ−Y 最小,即

min ⁡ β ∥ X β − Y ∥ 2 2 \min_{\beta} \| X \beta - Y \|_2^2 βmin∥Xβ−Y∥22

其中 X , Y X, Y X,Y 是已知的,未知的是 β \beta β。

使用最小二乘法求解最佳参数 β \beta β 时,我们经常看到一个结论公式,即最佳的 β \beta β 为

β = ( X T X ) − 1 X T Y \beta = (X^\text{T} X)^{-1} X^\text{T} Y β=(XTX)−1XTY

但总是不知道其求解过程。因此接下来将讨论如何得到的此结论。


令 J ( β ) = ∥ X β − Y ∥ 2 2 J(\beta) = \| X \beta - Y \|_2^2 J(β)=∥Xβ−Y∥22,这是残差平方和的另一种表示方式。我们可以通过展开这个方程来找到其对应的矩阵形式为

J ( β ) = ( X β − Y ) T ( X β − Y ) J(\beta) = (X \beta - Y)^\text{T} (X \beta - Y) J(β)=(Xβ−Y)T(Xβ−Y)

接下来计算 J ( β ) J(\beta) J(β) 对 β \beta β 的偏导数,并令其等于零而求得 β \beta β 的值。展开上述方程有

J ( β ) = ( X β − Y ) T ( X β − Y ) = ( β T X T − Y T ) ( X β − Y ) = β T X T X β − β T X T Y − Y T X β + Y T Y \begin{aligned} J(\beta) &= (X \beta - Y)^\text{T} (X \beta - Y) \\ &= (\beta^\text{T} X^\text{T} - Y^\text{T}) (X \beta - Y) \\ &= \beta^\text{T} X^\text{T} X \beta - \beta^\text{T} X^\text{T} Y - Y^\text{T} X \beta + Y^\text{T} Y \end{aligned} J(β)=(Xβ−Y)T(Xβ−Y)=(βTXT−YT)(Xβ−Y)=βTXTXβ−βTXTY−YTXβ+YTY

求偏导有

∂ J ( β ) ∂ β = ∂ ∂ β ( β T X T X β − β T X T Y − Y T X β + Y T Y ) \begin{aligned} \frac{\partial J(\beta)}{\partial \beta} &= \frac{\partial}{\partial \beta} (\beta^\text{T} X^\text{T} X \beta - \beta^\text{T} X^\text{T} Y - Y^\text{T} X \beta + Y^\text{T} Y) \end{aligned} ∂β∂J(β)=∂β∂(βTXTXβ−βTXTY−YTXβ+YTY)

这个式子想要求出来必须借助矩阵微积分的规则:对于未知量 X X X 和常数矩阵 A A A,有

  • d d X ( A X ) = A T \frac{\text{d}}{\text{d}X}(A X) = A^\text{T} dXd(AX)=AT
  • d d X ( X T A ) = A \frac{\text{d}}{\text{d}X}(X^\text{T} A) = A dXd(XTA)=A
  • d d X ( X T A X ) = ( A + A T ) X \frac{\text{d}}{\text{d}X}(X^\text{T} A X) = (A+A^\text{T}) X dXd(XTAX)=(A+AT)X

根据上述规则分别有

  • ∂ ∂ β ( β T X T X β ) = ( ( X T X ) + ( X T X ) T ) β = 2 X T X β \frac{\partial}{\partial \beta} (\beta^\text{T} X^\text{T} X \beta) = ((X^\text{T} X) + (X^\text{T} X)^\text{T})\beta = 2 X^\text{T} X \beta ∂β∂(βTXTXβ)=((XTX)+(XTX)T)β=2XTXβ
  • ∂ ∂ β ( − β T X T Y ) = − X T Y \frac{\partial}{\partial \beta} (- \beta^\text{T} X^\text{T} Y) = -X^\text{T} Y ∂β∂(−βTXTY)=−XTY
  • ∂ ∂ β ( − Y T X β ) = ( − Y T X ) T = − X T Y \frac{\partial}{\partial \beta} (- Y^\text{T} X \beta) = (-Y^\text{T} X)^\text{T} = -X^\text{T} Y ∂β∂(−YTXβ)=(−YTX)T=−XTY

故偏导为

∂ J ( β ) ∂ β = 2 X T X β − 2 X T Y \frac{\partial J(\beta)}{\partial \beta} = 2 X^\text{T} X \beta - 2 X^\text{T} Y ∂β∂J(β)=2XTXβ−2XTY

令其为零有

2 X T X β − 2 X T Y = 0 X T X β − X T Y = 0 X T X β = X T Y β = ( X T X ) − 1 X T Y \begin{aligned} 2 X^\text{T} X \beta - 2 X^\text{T} Y &= 0 \\ X^\text{T} X \beta - X^\text{T} Y &= 0 \\ X^\text{T} X \beta &= X^\text{T} Y \\ \beta &= (X^\text{T} X)^{-1} X^\text{T} Y \end{aligned} 2XTXβ−2XTYXTXβ−XTYXTXββ=0=0=XTY=(XTX)−1XTY

至此,也就得到了最小二乘法的最佳参数的求解公式。


Ref

  1. 最小二乘法 - WikiPedia
  2. 最小二乘法,它怎么用,又是如何推出来的 - bilibili
  3. 如何理解最小二乘法? - 马同学

相关推荐
隔窗听雨眠33 分钟前
C语言函数递归从入门到精通(下):性能优化与工程实践
c语言·算法·性能优化
退休倒计时38 分钟前
【每日一题】LeetCode 146. LRU 缓存 TypeScript
算法·leetcode·缓存·typescript
珊瑚里的鱼41 分钟前
【递归】汉诺塔
算法·深度优先
MrZhao4001 小时前
一个最小 Agent 是怎么跑起来的:Agent Loop 与工具使用全链路
算法
Keven_111 小时前
算法札记:二分
算法·二分
TCW11211 小时前
AI底层系列:用C++实现线性代数的公式推导与算法设计-6.线性方程组的解集
c++·人工智能·算法
luoyayun3611 小时前
从零实现 EBU R128 LUFS 响度分析:K-weighting 滤波、双门限算法
算法·lufs响度分析
小糯米6011 小时前
JS 数组
数据结构·算法·排序算法
小欣加油1 小时前
leetcode3612 用特殊操作处理字符串I
数据结构·c++·算法·leetcode·职场和发展
拳里剑气2 小时前
C++算法:链表
c++·算法·链表