机器学习正规方程(Normal Equation)推导

本文介绍如何利用正规方程求解使得代价函数最小化的参数θ=(XTX)−1XTy。通过矩阵求导的方式,推导出θ的具体公式,并提供了另一种变形推导的方法。文中还附上了矩阵求导的常用公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用正规方程求解出使得代价函数最小的参数 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
有两种推导方法

1.矩阵求导

已知代价函数为:
J ( θ ) = 1 2 ( X θ − y ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) = 1 2 ( θ T X T − y T ) ( X θ − y ) = 1 2 ( θ T X T X θ − θ T X T y − X θ y T + y T y ) \begin{aligned} J(\theta)&=\frac{1}{2}(X\theta-y)^2\\ &=\frac{1}{2}(X\theta-y)^T(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-X\theta y^T+y^Ty) \end{aligned} J(θ)=21(Xθy)2=21(Xθy)T(Xθy)=21(θTXTyT)(Xθy)=21(θTXTXθθTXTyXθyT+yTy)
主要用到的矩阵求导公式:
∂ ( A B ) ∂ B = A T ∂ ( A B T ) ∂ B = A ∂ ( X T A B ) ∂ B = 2 A X \frac{\partial (AB)}{\partial B}=A^T\\ \frac{\partial (AB^T)}{\partial B}=A\\ \frac{\partial (X^TAB)}{\partial B}=2AX B(AB)=ATB(ABT)=AB(XTAB)=2AX
使 J ( θ ) J(\theta) J(θ) θ \theta θ求导等于0
则有:
∂ J ( θ ) ∂ θ = 1 2 ( ∂ ∂ θ ( θ T X T X θ ) − ∂ ∂ θ ( θ T X T y ) − ∂ ∂ θ ( y T X θ ) + ∂ ∂ θ ( y T y ) ) = 1 2 ( 2 X T X θ − X T y − X T y ) = X T X θ − X T y = 0 \begin{aligned} \frac{\partial J(\theta)}{\partial\theta}&=\frac{1}{2}\left(\frac{\partial}{\partial\theta}(\theta^TX^TX\theta)-\frac{\partial}{\partial\theta}(\theta^TX^Ty)-\frac{\partial}{\partial\theta}(y^TX\theta)+\frac{\partial}{\partial\theta}(y^Ty)\right)\\ &=\frac{1}{2}(2X^TX\theta-X^Ty-X^Ty)\\ &=X^TX\theta-X^Ty\\ &=0 \end{aligned} θJ(θ)=21(θ(θTXTXθ)θ(θTXTy)θ(yTXθ)+θ(yTy))=21(2XTXθXTyXTy)=XTXθXTy=0

X T X θ − X T y = 0 X T X θ = X T y X^TX\theta-X^Ty=0\\ X^TX\theta=X^Ty XTXθXTy=0XTXθ=XTy
两侧乘以 ( X T X ) − 1 (X^TX)^{-1} (XTX)1便得出 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy

更多矩阵公式参见Matrix Cookbook,非常全面的一本参考手册:
http://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf

2.变形

见另一篇文章Normal equation公式推导

### 机器学习正规方程推导过程 在机器学习领域,特别是线性回归问题中,目标是最小化预测值与真实值之间的差距。为了实现这一目标,可以采用梯度下降方法迭代更新参数,也可以通过解析方式一次性计算最优参数解——这就是所谓的正规方程。 #### 矩阵运算基础知识 对于后续推导过程中涉及的一些基本概念和公式: - **矩阵转置**:如果有一个大小为$m\times n$ 的矩阵 $A=[a_{ij}]$ ,那么它的转置就是$n\times m$ 维的新矩阵 ${\bf A}^\top =[a_{ji}]$ 。这意味着原始矩阵中的每一行变成了新矩阵的一列[^3]。 - **求导法则**:给定一个关于向量 $\theta$ 的函数$f(\theta)$ , 对于该函数相对于$\theta_i$ 进行偏微分得到的结果构成一个新的向量形式${{\partial f}\over {\partial \theta}}=(f'_1,f'_2,\cdots,f'_n)^T$ 。 #### 构建代价函数并求解最优点 定义假设函数$h_\theta(x)=X\cdot\theta$,其中$X$表示输入特征组成的样本集矩阵,$\theta$代表待估计权重系数向量;再设定损失函数$L=\frac{1}{2}(y-X\theta)(y-X\theta)^T$来衡量模型输出与实际标签间的偏差程度。这里乘以因子$\frac{1}{2}$是为了简化之后可能出现的二次项系数[^4]。 对上述表达式按照变量$\theta_j(j=0,...,p)$分别做偏导数操作可得: $$J'(\theta)=-X^{T}(Y-X\theta)+C$$ 为了让这个导数值等于零从而获得局部极小值点,则有: $$ X^{T}(Y-X\theta)=0 $$ 进一步整理得出最终结论即为我们所熟知的正规方程形式: $$ \hat{\theta} =(X^{T}X)^{-1}X^{T}Y $$ 这表明只要能获取到训练数据对应的自变量矩阵及其因变量向量就可以直接算出最佳拟合直线斜率以及截距等参数而无需像随机梯度下降那样逐步逼近全局最优解了。 ```python import numpy as np def normal_equation(X, y): theta_hat = np.linalg.inv(X.T @ X) @ X.T @ y return theta_hat ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值