博业建站网,公司变更地址需要多少钱,如何加快门户网站建设,招商网站建设运营日拱一卒之最小二乘法
由于最小二乘法在最近出现的频率比较高#xff0c;所以单独拎出来研究研究#xff0c;b站上有个几何的解读#xff0c;虽然感觉弄得不错#xff0c;但是还是觉得有点深了#xff0c;而且有点快#xff0c;各种公式的嵌套看的有点乱#xff0c;于是…日拱一卒之最小二乘法由于最小二乘法在最近出现的频率比较高所以单独拎出来研究研究b站上有个几何的解读虽然感觉弄得不错但是还是觉得有点深了而且有点快各种公式的嵌套看的有点乱于是乎记录下自己的一些理解与看到的东西。定义“二乘”在古汉语和数学术语中“二乘”就是平方的意思。“最小”指的是我们要让某个数值达到最小。一句话定义最小二乘法是一种数学优化技术它通过最小化误差的平方和来寻找数据的最佳函数匹配。假设你在纸上画了很多个散点现在你想画一条直线穿过它们要求这条直线能最能代表这些点的趋势。你怎么确定哪条线是“最好”的最小二乘法告诉你那条让所有点到直线的垂直距离的平方加起来最小的线就是最好的线。假设有一组真实数据y yy和模型的预测数据y ^ \hat{y}y^。我们希望它们越接近越好。人工智能方向的理解定义“误差”我们定义每一个点的误差为e i y i − y ^ i e_i y_i - \hat{y}_ieiyi−y^i真实值 - 预测值。如果直接求和∑ ( y i − y ^ i ) \sum (y_i - \hat{y}_i)∑(yi−y^i)会出问题。因为误差有正有负有的点在直线上方有的在下方。正负相抵后总和可能为 0但这并不代表直线完美穿过了所有点可能只是误差刚好抵消了。去符号为了消除符号影响我们有两种选择取绝对值∣ y i − y ^ i ∣ |y_i - \hat{y}_i|∣yi−y^i∣取平方( y i − y ^ i ) 2 (y_i - \hat{y}_i)^2(yi−y^i)2为什么选择“平方”而不是“绝对值”这就是最小二乘法的核心智慧主要有三个原因惩罚大误差关键点平方会对大的误差进行“严厉惩罚”。如果误差是 2平方后是 4如果误差是 10平方后变成了 100。这意味着最小二乘法绝不容忍极端偏差。它会拼命把那条线往离得最远的那个点拉一拉尽量照顾所有点不让任何一个点掉队太远。计算方便求导绝对值函数∣ x ∣ |x|∣x∣在x 0 x0x0处有一个尖角不可导数学处理很麻烦。平方函数x 2 x^2x2是光滑的抛物线处处可导。可以直接求导并令其为 0一步就能算出答案解析解。统计学背景高斯分布如果假设数据的噪声服从正态分布高斯分布那么“最小二乘法”求解出来的结果等价于“极大似然估计”。这意味着它是统计学上最合理的估计。这个后边再专门研究代数推导第一步定义损失函数假设模型为Y ≈ X θ Y \approx X\thetaY≈Xθ。我们要最小化误差向量e Y − X θ e Y - X\thetaeY−Xθ的模长平方即能量J ( θ ) ∥ Y − X θ ∥ 2 J(\theta) \| Y - X\theta \|^2J(θ)∥Y−Xθ∥2写成矩阵乘法形式实数域J ( θ ) ( Y − X θ ) T ( Y − X θ ) J(\theta) (Y - X\theta)^T (Y - X\theta)J(θ)(Y−Xθ)T(Y−Xθ)第二步展开公式利用矩阵转置规则( A − B ) T A T − B T (A-B)^T A^T - B^T(A−B)TAT−BT和( A B ) T B T A T (AB)^T B^T A^T(AB)TBTATJ ( θ ) ( Y T − θ T X T ) ( Y − X θ ) J(\theta) (Y^T - \theta^T X^T)(Y - X\theta)J(θ)(YT−θTXT)(Y−Xθ)J ( θ ) Y T Y − Y T X θ − θ T X T Y θ T X T X θ J(\theta) Y^T Y - Y^T X\theta - \theta^T X^T Y \theta^T X^T X \thetaJ(θ)YTY−YTXθ−θTXTYθTXTXθ关键技巧中间两项是标量实数。Y T X θ Y^T X \thetaYTXθ是一个1 × 1 1 \times 11×1的数。θ T X T Y \theta^T X^T YθTXTY也是一个1 × 1 1 \times 11×1的数。标量的转置等于它自己所以这两项是相等的。J ( θ ) Y T Y − 2 θ T X T Y θ T X T X θ J(\theta) Y^T Y - 2\theta^T X^T Y \theta^T X^T X \thetaJ(θ)YTY−2θTXTYθTXTXθ第三步求梯度对θ \thetaθ求导我们需要用到两个矩阵求导公式∂ ( θ T A ) ∂ θ A \frac{\partial (\theta^T A)}{\partial \theta} A∂θ∂(θTA)A针对线性项∂ ( θ T A θ ) ∂ θ 2 A θ \frac{\partial (\theta^T A \theta)}{\partial \theta} 2A\theta∂θ∂(θTAθ)2Aθ针对二次项当A AA对称时对J ( θ ) J(\theta)J(θ)求导Y T Y Y^T YYTY对θ \thetaθ是常数→ 0 \to 0→0。− 2 θ T X T Y -2\theta^T X^T Y−2θTXTY对θ \thetaθ求导→ − 2 X T Y \to -2 X^T Y→−2XTY。θ T ( X T X ) θ \theta^T (X^T X) \thetaθT(XTX)θ对θ \thetaθ求导→ 2 ( X T X ) θ \to 2 (X^T X) \theta→2(XTX)θ。∇ θ J ( θ ) − 2 X T Y 2 X T X θ \nabla_\theta J(\theta) -2 X^T Y 2 X^T X \theta∇θJ(θ)−2XTY2XTXθ第四步令导数为 0极值点为了找到最小值令梯度为 02 X T X θ − 2 X T Y 0 2 X^T X \theta - 2 X^T Y 02XTXθ−2XTY0X T X θ X T Y X^T X \theta X^T YXTXθXTY这就是著名的“正规方程” (Normal Equation)。最后左乘逆矩阵( X T X ) − 1 (X^T X)^{-1}(XTX)−1θ ( X T X ) − 1 X T Y \theta (X^T X)^{-1} X^T Yθ(XTX)−1XTY几何推导正交投影 (The Geometric Way)核心思想列空间矩阵X XX的列向量张成了一个子空间平面记为C o l ( X ) Col(X)Col(X)。限制无论θ \thetaθ怎么取X θ X\thetaXθ只能在这个平面上移动。目标真实值Y YY通常不在这个平面上因为有噪声。我们要在这个平面上找一个点Y ^ X θ \hat{Y} X\thetaY^Xθ离Y YY最近。结论几何学告诉我们最近的点就是Y YY在平面上的正交投影。推导过程这意味着误差向量e Y − X θ e Y - X\thetaeY−Xθ必须垂直正交于这个平面。既然垂直于平面那么e ee必须垂直于平面上的所有基向量即X XX的每一列。用数学语言描述“垂直”就是内积为 0。所以X XX的每一列与e ee的点积都为 0X T ⋅ e 0 X^T \cdot e 0XT⋅e0代入e Y − X θ e Y - X\thetaeY−XθX T ( Y − X θ ) 0 X^T (Y - X\theta) 0XT(Y−Xθ)0展开X T Y − X T X θ 0 X^T Y - X^T X \theta 0XTY−XTXθ0X T X θ X T Y X^T X \theta X^T YXTXθXTY图片放的不合适但是可以作为一个参考吧具体的看原文。可以参考https://blog.csdn.net/MoreAction_/article/details/106443383?ops_request_misc%257B%2522request%255Fid%2522%253A%25227ef8c0683c2dd970ff9fb57930568291%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257Drequest_id7ef8c0683c2dd970ff9fb57930568291biz_id0spm1018.2226.3001.4187这篇文章。以二维举例假设我们在一个3维空间里。有两个基准向量x 1 x_1x1和x 2 x_2x2。它们定义了一个平面。要寻找这两个向量的组合去够那个飘在空中的点Y YY。具体的数值例子x 1 x_1x1(红色箭头)躺在 x 轴上→ [ 1 , 0 , 0 ] T \rightarrow [1, 0, 0]^T→[1,0,0]Tx 2 x_2x2(蓝色箭头)躺在 y 轴上→ [ 0 , 1 , 0 ] T \rightarrow [0, 1, 0]^T→[0,1,0]TY YY(空中的星星)悬浮在半空→ [ 1 , 2 , 3 ] T \rightarrow [1, 2, 3]^T→[1,2,3]T显然x 1 x_1x1和x 2 x_2x2无论怎么组合θ 1 x 1 θ 2 x 2 \theta_1 x_1 \theta_2 x_2θ1x1θ2x2结果的第三个分量永远是 0。这意味着永远无法用x 1 x_1x1和x 2 x_2x2完美组合出Y YY因为Y YY的高度是 3。目标是找到一组系数θ 1 , θ 2 \theta_1, \theta_2θ1,θ2使得组合出来的向量Y ^ \hat{Y}Y^预测值离Y YY最近。直觉Y YY在地板上的垂直投影就是最近的点。预测向量Y ^ θ 1 x 1 θ 2 x 2 \hat{Y} \theta_1 x_1 \theta_2 x_2Y^θ1x1θ2x2。误差向量e Y − Y ^ e Y - \hat{Y}eY−Y^。为了让距离最短误差线e ee必须垂直于地板。为什么是“点积为 0”如果误差线e ee垂直于整个地板那么它必须垂直于地板上的每一根经纬线。也就是e ee必须垂直于x 1 x_1x1。e ee必须垂直于x 2 x_2x2。数学翻译垂直 点积为 0{ x 1 T ⋅ e 0 x 2 T ⋅ e 0 \begin{cases} x_1^T \cdot e 0 \\ x_2^T \cdot e 0 \end{cases}{x1T⋅e0x2T⋅e0把具体的数字代进去看看预测值显然应该是影子的坐标Y ^ [ 1 , 2 , 0 ] T \hat{Y} [1, 2, 0]^TY^[1,2,0]T。那么误差向量就是e [ 1 , 2 , 3 ] − [ 1 , 2 , 0 ] [ 0 , 0 , 3 ] T e [1, 2, 3] - [1, 2, 0] [0, 0, 3]^Te[1,2,3]−[1,2,0][0,0,3]T一根竖直向上的线。验证垂直性x 1 ⋅ e [ 1 , 0 , 0 ] ⋅ [ 0 , 0 , 3 ] 0 x_1 \cdot e [1, 0, 0] \cdot [0, 0, 3] 0x1⋅e[1,0,0]⋅[0,0,3]0没毛病垂直x 2 ⋅ e [ 0 , 1 , 0 ] ⋅ [ 0 , 0 , 3 ] 0 x_2 \cdot e [0, 1, 0] \cdot [0, 0, 3] 0x2⋅e[0,1,0]⋅[0,0,3]0没毛病垂直矩阵化X T X^TXT的诞生把x 1 T x_1^Tx1T和x 2 T x_2^Tx2T叠在一起这不就是矩阵X T X^TXT吗[ x 1 T x 2 T ] ⏟ X T ⋅ e [ 0 0 ] \underbrace{ \begin{bmatrix} x_1^T \\ x_2^T \end{bmatrix} }_{X^T} \cdot e \begin{bmatrix} 0 \\ 0 \end{bmatrix}XT[x1Tx2T]⋅e[00]所以几何条件变成了X T e 0 X^T e 0XTe0。重点这里的X T X^TXT作用就是——“一次性检查误差向量e ee是否垂直于所有的基向量”。求解θ \thetaθ将e Y − X θ e Y - X\thetaeY−Xθ代入X T ( Y − X θ ) 0 X^T (Y - X\theta) 0XT(Y−Xθ)0展开X T Y − X T X θ 0 X^T Y - X^T X \theta 0XTY−XTXθ0X T X θ X T Y X^T X \theta X^T YXTXθXTY代入数值计算验证一下构造X XXX [ 1 0 0 1 0 0 ] X \begin{bmatrix} 1 0 \\ 0 1 \\ 0 0 \end{bmatrix}X100010计算X T Y X^T YXTY(投影分量)X T Y [ 1 0 0 0 1 0 ] [ 1 2 3 ] [ 1 2 ] X^T Y \begin{bmatrix} 1 0 0 \\ 0 1 0 \end{bmatrix} \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} \begin{bmatrix} 1 \\ 2 \end{bmatrix}XTY[100100]123[12]计算X T X X^T XXTX(坐标系校正)X T X [ 1 0 0 0 1 0 ] [ 1 0 0 1 0 0 ] [ 1 0 0 1 ] X^T X \begin{bmatrix} 1 0 0 \\ 0 1 0 \end{bmatrix} \begin{bmatrix} 1 0 \\ 0 1 \\ 0 0 \end{bmatrix} \begin{bmatrix} 1 0 \\ 0 1 \end{bmatrix}XTX[100100]100010[1001]解方程[ 1 0 0 1 ] θ [ 1 2 ] \begin{bmatrix} 1 0 \\ 0 1 \end{bmatrix} \theta \begin{bmatrix} 1 \\ 2 \end{bmatrix}[1001]θ[12]显然θ [ 1 2 ] \theta \begin{bmatrix} 1 \\ 2 \end{bmatrix}θ[12]结论我们算出θ 1 1 , θ 2 2 \theta_1 1, \theta_2 2θ11,θ22。预测值Y ^ 1 ⋅ x 1 2 ⋅ x 2 [ 1 , 2 , 0 ] T \hat{Y} 1 \cdot x_1 2 \cdot x_2 [1, 2, 0]^TY^1⋅x12⋅x2[1,2,0]T。与最大似然估计的联系简单来说最小二乘法是最大似然估计在“误差服从正态分布”这个特定假设下的一种特殊情况。一、 什么是最大似然估计 (MLE)Maximum Likelihood Estimation (MLE)是一种统计方法用来估计模型的参数。1. 直观理解侦探视角假设你是一个侦探来到了案发现场这就是你拿到的数据。你需要推断凶手是谁、作案手法是什么这就是模型参数。概率Probability已知参数预测数据。例子已知硬币是均匀的参数扔10次出现5正5反的概率是多少似然Likelihood已知数据推断参数。例子不知道硬币均不均匀但我扔了10次全是正面数据。请问这枚硬币“动过手脚”的可能性有多大MLE的逻辑既然我抛出了10次全是正面那么“这枚硬币两面都是正面”这个参数假设虽然不一定对但最能解释当前的数据。MLE的核心思想找到一组参数θ \thetaθ使得在这组参数下出现当前数据的概率最大。二、 最小二乘法与 MLE 的联系数学推导为什么说最小二乘法是 MLE 的一种特例我们通过线性回归来推导。1. 设定假设在线性回归中假设真实值y yy和预测值X w XwXw之间有一个误差ϵ \epsilonϵy X w ϵ y Xw \epsilonyXwϵ关键步骤来了必须对这个误差ϵ \epsilonϵ做一个假设。通常假设误差服从高斯分布正态分布且均值为0方差为σ 2 \sigma^2σ2。ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim N(0, \sigma^2)ϵ∼N(0,σ2)这意味着给定x xx和w ww真实标签y yy也服从正态分布其均值是X w XwXwy ∼ N ( X w , σ 2 ) y \sim N(Xw, \sigma^2)y∼N(Xw,σ2)2. 写出概率密度函数根据正态分布公式某一个样本点y i y_iyi出现的概率密度是P ( y i ∣ x i ; w ) 1 2 π σ exp ( − ( y i − w T x i ) 2 2 σ 2 ) P(y_i | x_i; w) \frac{1}{\sqrt{2\pi}\sigma} \exp\left( - \frac{(y_i - w^T x_i)^2}{2\sigma^2} \right)P(yi∣xi;w)2πσ1exp(−2σ2(yi−wTxi)2)3. 写出似然函数 (Likelihood Function)因为样本之间是独立的所以所有样本同时出现的概率似然函数L ( w ) L(w)L(w)就是把每一个样本的概率乘起来L ( w ) ∏ i 1 n P ( y i ∣ x i ; w ) ∏ i 1 n 1 2 π σ exp ( − ( y i − w T x i ) 2 2 σ 2 ) L(w) \prod_{i1}^n P(y_i | x_i; w) \prod_{i1}^n \frac{1}{\sqrt{2\pi}\sigma} \exp\left( - \frac{(y_i - w^T x_i)^2}{2\sigma^2} \right)L(w)i1∏nP(yi∣xi;w)i1∏n2πσ1exp(−2σ2(yi−wTxi)2)4. 最大化似然函数要找到w ww让L ( w ) L(w)L(w)最大。连乘很难算为了方便计算取对数Log-Likelihood。因为对数函数是单调增的最大化对数似然等价于最大化原函数。ln L ( w ) ∑ i 1 n ln [ 1 2 π σ exp ( − ( y i − w T x i ) 2 2 σ 2 ) ] \ln L(w) \sum_{i1}^n \ln \left[ \frac{1}{\sqrt{2\pi}\sigma} \exp\left( - \frac{(y_i - w^T x_i)^2}{2\sigma^2} \right) \right]lnL(w)i1∑nln[2πσ1exp(−2σ2(yi−wTxi)2)]利用对数性质ln ( a b ) ln a ln b \ln(ab) \ln a \ln bln(ab)lnalnb展开ln L ( w ) ∑ i 1 n [ ln ( 1 2 π σ ) − ( y i − w T x i ) 2 2 σ 2 ] \ln L(w) \sum_{i1}^n \left[ \ln(\frac{1}{\sqrt{2\pi}\sigma}) - \frac{(y_i - w^T x_i)^2}{2\sigma^2} \right]lnL(w)i1∑n[ln(2πσ1)−2σ2(yi−wTxi)2]5. 见证奇迹的时刻要最大化这个ln L ( w ) \ln L(w)lnL(w)。第一项∑ ln ( 1 2 π σ ) \sum \ln(\frac{1}{\sqrt{2\pi}\sigma})∑ln(2πσ1)是常数和w ww无关求导时直接为0可以忽略。剩下的就是要最大化$$\sum_{i1}^n \frac{(y_i - w^T x_i)2}{2\sigma2}$$最大化一个负数等价于最小化那个正数去掉负号。同时1 2 σ 2 \frac{1}{2\sigma^2}2σ21也是常数系数不影响求极值的位置。所以最大化似然函数最终等价于最小化 ∑ i 1 n ( y i − w T x i ) 2 \textbf{最小化} \sum_{i1}^n (y_i - w^T x_i)^2最小化i1∑n(yi−wTxi)2看这不就是最小二乘法的公式吗1. 这种联系说明了什么最小二乘法Least Squares是从几何角度距离最小或代数角度出发的。最大似然估计MLE是从概率统计角度出发的。联系如果你假设数据中的噪声是正态分布的那么这两种方法求出来的解是完全一样的。2. 如果噪声不是正态分布呢这就体现出 MLE 的普适性了。如果误差服从拉普拉斯分布Laplace Distribution尖峰更厚推导出的 MLE 等价于最小化绝对值误差L1 Loss也就是 Lasso 回归的基础。如果误差服从泊松分布Poisson Distribution推导出的就是广义线性模型中的泊松回归。最小二乘法之所以好用是因为在自然界中大多数误差确实服从正态分布中心极限定理。它是最大似然估计在高斯噪声假设下的完美替身。Tips残差真实值-预测值物理、数学在某些意义上的统一确实牛皮