要解决的问题是:
现在有N个数据点(x,y)。我们假设这个曲线 y = e x p ( a x 2 + b x + c ) + n o i s e y=exp(ax^2+bx+c)+noise y=exp(ax2+bx+c)+noise可以拟合那堆数据,其中a,b,c是待求解的参数,noise是噪声。我们要根据那堆数据去算出a,b,c的值。用的方法是高斯牛顿法。为啥有个牛顿?因为它和牛顿法一样都是用泰勒展开,只不过高斯牛顿法是一阶泰勒展开。一阶泰勒展开意味着它是线性方程,所以需要用高斯消元法去解方程。因此名字中的高斯就是这么来的。
怎么解决这个问题
现在我们知道了数据的模型,和数据(x,y)。a,b,c是待求解的参数。那么怎么知道a,b,c是设置的是适合这个数据还是不适合呢?答:计算误差不就可以了么。假设第i个样本数据是 ( x i , y i ) (x_i,y_i) (xi,yi),那么现在我们给定a,b,c值下的模型误差为: [ e x p ( a x i 2 + b x i + c ) + n o i s e − y i ] 2 [exp(ax_i^2+bx_i+c)+noise-y_i]^2 [exp(axi2+bxi+c)+noise−yi]2。由于二次方求导会前面有个系数2,为了求导方便我们习惯性在误差前面乘个 1 2 \frac 1 2 21。这就是我们经常看到的 1 2 [ e x p ( a x i 2 + b x i + c ) + n o i s e − y i ] 2 \frac 1 2[exp(ax_i^2+bx_i+c)+noise-y_i]^2 21[exp(axi2+bxi+c)+noise−yi]2. 由于不是只有一个样本。我们当然希望整个样本的误差都很小。所以要将所有样本误差累加起来,以衡量现在我们设定的a,b,c参数值是不是不错。于是就得到了最小二乘法的终极版目标函数 ∑ i = 1 N 1 2 [ e x p ( a x i 2 + b x i + c ) + n o i s e − y i ] 2 \sum_{i=1}^{N} \frac 1 2[exp(ax_i^2+bx_i+c)+noise-y_i]^2 ∑i=1N21[exp(axi2+bxi+c)+noise−yi]