如果我们使用的曲线模型 f 是直线
f(x)=β1x+β2
- β1 和 β2 是回归函数 f(X,β) 的参数向量 β 的分量
使用 最小二乘误差 least-squares error 作为误差指标来进行回归相比起其它范数具有关键优势,这是因为执行优化的成本相对低廉,因为误差可以根据计算出的解析解直接得到,我们将直线模型代入误差函数,得到
E2(f)=k=1∑n∣f(xk)−yk∣2=k=1∑n∣β1xk+β2−yk∣2
- 注意,平方根和平均系数 n1 被省略,因为它们不会改变最终的分析结果,这是由于平方根函数是单调递增的,最小化平方和和最小化其平方根(均方根误差)会得到相同的最优解,因此,最小化平方和就足够了,没有必要引入额外的复杂性
要最小化这个误差函数,我们需对两个参数 β1 和 β2 分别求偏导数 (也就是梯度),并使得偏导数为零来取到极小值,当然也有可能是极大值,但是在最小二乘下的目标函数是凸的,因此梯度为零时通常可以确定为最小值
∂β1∂E2=0⟹∂β2∂E2=0⟹k=1∑n2(β1xk+β2−yk)xk=0k=1∑nβ1xk2+k=1∑nβ2xk=k=1∑nxkykk=1∑n2(β1xk+β2−yk)=0k=1∑nβ1xk+k=1∑nβ2=k=1∑nykk=1∑nβ1xk+nβ2=k=1∑nyk
最终结果可以写为矩阵形式
[∑k=1nxk2∑k=1nxk∑k=1nxkn][β1β2]=[∑k=1nxkyk∑k=1nykxk]⟹Ax=b
如此一来,就不必进行昂贵的优化过程,而是可以直接求解这个线性系统来得到精确答案,事实上,这个方法可以推广到任意高阶多项式,例如二次抛物线多项式函数
f(x)=β1x2+β2x+β3
需要被求解的参数为 β1 ,β2 以及 β3,和上面类似,这将可以通过最小化最小二乘误差函数 E2(β1,β2,β3) 导出的梯度所形成的 3×3 矩阵系统求解
∂β1∂E2=0∂β2∂E2=0∂β3∂E2=0
对于任意 k 阶多项式拟合,将会产生一个 (k+1)×(k+1) 的线性方程组系统 Ax=b 以供求解,而多项式拟合本身可以视为投影到 k 次函数组成的基函数上
1,x,x2,⋯,xk
多项式拟合 一般指的是使用多项式函数来近似或拟合一组数据点的过程。这个术语更广泛,可以包括通过多项式来进行插值、平滑或者近似数据
-
插值:如果我们要求拟合的多项式精确通过所有数据点(即每个数据点都被多项式函数完美匹配),这种方法通常称为多项式插值。
-
回归:如果我们不要求精确匹配所有数据点,而是寻找一个总体上与数据点接近的多项式函数,这就是多项式回归。
因此,多项式拟合 包含了 多项式回归 以及 多项式插值 等更广泛的情况
线性化 Linearization
这种最小化最小二乘误差的方法虽然很有效,但是如果任意选择用于拟合的函数,并不能保证最终产生的方程是易于求解的,例如如果我们指数函数作为回归函数
f(x)=β2exp(β1x)
其误差函数是
E2(β1,β2)=k=1∑n(β2exp(β1xk)−yk)2
要最小化误差函数,我们照例求取梯度
∂β1∂E2=0⟹k=1∑n2(β2exp(β1xk)−yk)β2xkexp(β1xk)=0∂β2∂E2=0⟹k=1∑n2(β2exp(β1xk)−yk)exp(β1xk)=0
对式子进行整理,得到 2×2 的系统
β2k=1∑nxkexp(2β1xk)−k=1∑nxkykexp(β1xk)=0β2k=1∑nxkexp(2β1xk)−k=1∑nykexp(β1xk)=0
这个方程组是非线性的,我们无法进行直接求解,事实上,解甚至可能根本不存在,或者存在多个解甚至无穷多解,求解这种问题的一般使用迭代方法,例如著名的 梯度下降 gradient descent
为了避免使用迭代法求解非线性系统,我们可以对指数拟合采取线性化,具体来说,若我们设定以下代换
Y=lnyX=xβ3=lnβ2
那么我们用于拟合回归的指数函数 f(x)=y=β2exp(β1x) 根据这些代换可以变为线性函数
lnyY=ln(β2exp(β1x))=lnβ2+ln(exp(β1x))=β3+β1x⇓=β1X+β3
然后我们需要将用于拟合的数据,也执行同等代换
(xi,yi)→(xi,lnyi)=(Xi,Yi)
如此一来,指数函数的曲线拟合问题就变成了易于求解的线性拟合问题,因此,如果非线性函数存在线性化变换,那么可以将该非线性函数拟合问题转化为标准多项式拟合问题,最终只需要求解多项式拟合问题中得到的线性方程组 Ax=b