大家好,又见面了,我是你们的朋友全栈君。
最小二乘法正规方程推导过程
问题描述
输入样本 X ∈ R m × n \textbf{X}\in \mathbb{R}^{m\times n} X∈Rm×n,输出 y ∈ R m × 1 \textbf{y}\in\mathbb{R}^{m\times 1} y∈Rm×1,需要学习的参数 w ∈ R n × 1 \textbf{w}\in \mathbb{R}^{n\times 1} w∈Rn×1。其中, m m m 为样本个数, n n n 为单个样本维度。
线性回归
最小化目标函数
J ( w ) = 1 2 ∥ y − Xw ∥ 2 2 J(\textbf{w}) = \frac{1}{2}\left\Vert\textbf{y}-\textbf{Xw}\right\Vert^2_2 J(w)=21∥y−Xw∥22
有对 w \textbf{w} w 求梯度等于零
∇ J ( w ) = 0 ∇ ( y − Xw ) T ( y − Xw ) = 0 ∇ ( y T y − y T Xw − ( Xw ) T y + ( Xw ) T Xw ) = 0 ∇ ( − 2 w T X T y + w T X T Xw ) = 0 − 2 X T y + ( X T X + ( X T X ) T ) w = 0 − 2 X T y + 2 X T Xw = 0 w = ( X T X ) − 1 X T y \begin{aligned}&\nabla J(\textbf{w})=\textbf{0}\\& \nabla\left(\textbf{y}-\textbf{Xw}\right)^T\left(\textbf{y}-\textbf{Xw}\right)=\textbf{0}\\& \nabla\left(\textbf{y}^T\textbf{y}-\textbf{y}^T\textbf{Xw}-\left(\textbf{Xw}\right)^T\textbf{y}+(\textbf{Xw})^T\textbf{Xw}\right)=\textbf{0}\\& \nabla\left(-2\textbf{w}^T\textbf{X}^T\textbf{y}+\textbf{w}^T\textbf{X}^T\textbf{Xw}\right)=\textbf{0}\\& -2\textbf{X}^T\textbf{y}+\left(\textbf{X}^T\textbf{X}+\left(\textbf{X}^T\textbf{X}\right)^T\right)\textbf{w}=\textbf{0}\\& -2\textbf{X}^T\textbf{y}+2\textbf{X}^T\textbf{X}\textbf{w}=\textbf{0}\\& \textbf{w}=\left(\textbf{X}^T\textbf{X}\right)^{-1}\textbf{X}^T\textbf{y}\end{aligned} ∇J(w)=0∇(y−Xw)T(y−Xw)=0∇(yTy−yTXw−(Xw)Ty+(Xw)TXw)=0∇(−2wTXTy+wTXTXw)=0−2XTy+(XTX+(XTX)T)w=0−2XTy+2XTXw=0w=(XTX)−1XTy
岭回归:添加 L 2 L_2 L2 正则项
最小化目标函数
J ( w ) = 1 2 ∥ y − Xw ∥ 2 2 + λ w T w J(\textbf{w}) = \frac{1}{2}\left\Vert\textbf{y}-\textbf{Xw}\right\Vert^2_2+\lambda\textbf{w}^T\textbf{w} J(w)=21∥y−Xw∥22+λwTw
有对 w \textbf{w} w 求梯度等于零
∇ J ( w ) = 0 ∇ ( y − Xw ) T ( y − Xw ) + λ ∇ w T w = 0 ∇ ( y T y − y T Xw − ( Xw ) T y + ( Xw ) T Xw ) + 2 λ w = 0 ∇ ( − 2 w T X T y + w T X T Xw ) + 2 λ w = 0 − 2 X T y + ( X T X + ( X T X ) T ) w + 2 λ w = 0 − 2 X T y + 2 X T Xw + 2 λ Iw = 0 w = ( X T X + λ I ) − 1 X T y \begin{aligned}&\nabla J(\textbf{w})=\textbf{0}\\& \nabla\left(\textbf{y}-\textbf{Xw}\right)^T\left(\textbf{y}-\textbf{Xw}\right)+\lambda\nabla\textbf{w}^T\textbf{w}=\textbf{0}\\& \nabla\left(\textbf{y}^T\textbf{y}-\textbf{y}^T\textbf{Xw}-\left(\textbf{Xw}\right)^T\textbf{y}+(\textbf{Xw})^T\textbf{Xw}\right)+2\lambda\textbf{w}=\textbf{0}\\& \nabla\left(-2\textbf{w}^T\textbf{X}^T\textbf{y}+\textbf{w}^T\textbf{X}^T\textbf{Xw}\right)+2\lambda\textbf{w}=\textbf{0}\\& -2\textbf{X}^T\textbf{y}+\left(\textbf{X}^T\textbf{X}+\left(\textbf{X}^T\textbf{X}\right)^T\right)\textbf{w}+2\lambda\textbf{w}=\textbf{0}\\& -2\textbf{X}^T\textbf{y}+2\textbf{X}^T\textbf{X}\textbf{w}+2\lambda\textbf{Iw}=\textbf{0}\\& \textbf{w}=\left(\textbf{X}^T\textbf{X}+\lambda\textbf{I}\right)^{-1}\textbf{X}^T\textbf{y}\end{aligned} ∇J(w)=0∇(y−Xw)T(y−Xw)+λ∇wTw=0∇(yTy−yTXw−(Xw)Ty+(Xw)TXw)+2λw=0∇(−2wTXTy+wTXTXw)+2λw=0−2XTy+(XTX+(XTX)T)w+2λw=0−2XTy+2XTXw+2λIw=0w=(XTX+λI)−1XTy
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145669.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...