Least Squares

4 minute read

要理解 least squares,我们决定通过一个最简单的例子,那就是一元线性拟合

我们观测到了n对值(xi,yi),i=1,,n

我们现在用找到一条直线来拟合这堆数据 y=ax+b

Example

最小二乘的表示形式是 一个 error 表达式

E(a,b)=i=1n(yi(axi+b))2

这个式子的本质是 当a,b是一个很好的 fitting 参数的时候,均值应该很小可以省略掉,那么 E(a,b) 其实就是 yi(axi+b) 的方差的n

我们的优化目标其实就是最小这个 error,这样暗含的就是你找出了一组参数拟合了一个 model,在和目标值的 error 的分布上,是 0 均值,最小方差的。

求解的方法很简单就是对参数ab当作未知数来求导,这里一阶导数为 0 的时候必定是极值,单变量的时候 梯度 gradient 就是导数。

Ea=0,Eb=0

Ea=i=1n2(yi(axi+b))(xi) Eb=i=1n2(yi(axi+b))1

这里可以写成 a,b 行列式形式

(ab)=(xi2xixi1)1(xiyiyi)

(XTX)β=XTy

where X=[xk,xk1,,x0], k is the order. here k=1. 这里的β就是我们的 coefficient, 有时候也叫做 estimator

Weighted least squares 则可以表达为

(XTWX)β=XTWy

这里 f(x,β) 如果是 non linear 则 是 非线性的最小二乘

ri 为 residual, 则 梯度方程

Eβj=2iririβj,j=1,,k,i=1,,n

这样一组 equations 没有 closed form 的解。

因此用 iteration 的方法来调整参数

βjβjt+1=βjt+Δβj

t是迭代次数, Δβj 是一个 shift vector, 然后每一步迭代的时候,用一阶泰勒展开来线性化 。

f(xi,β)f(xi,βt)+jf(xi,βt)βj(βjβjt) f(xi,βt)+jJijΔβj

J 是 Jacobian,

这个情况下, 设 Δyi=yif(xi,βk)

residual 可以写成

ri=yif(xi,β) =(yif(xi,βt))+(f(xi,βt)f(xi,β)) =Δyis=1kJisΔβs

代入梯度方程

iririβj=i(Δyis=1kJisΔβs)Jij

这些梯度方程可以变形为

isJijJisΔβs=iJijΔyi

写成矩阵形式就是

(JTJ)Δβ=JTΔy

Weighted sum 形式

(JTWJ)Δβ=JTWΔy

这也是高斯牛顿迭代法的基本思想,用泰勒级数展开去近似的代替非线性模型,然后通过多次迭代修正系数来逼近。