非线性最小二乘
定义:简单的非线性最小二乘问题可以定义为
\[ \min_{x} \frac{1}{2}||f(x)||^2_2 \]
其中自变量\(x \in R^n\),\(f(x)\)是任意的非线性函数,并设它的维度为\(m\),即\(f(x) \in R^m\).
对于一些最小二乘问题,我们可以利用目标函数对\(x\)求导并令导数等于0来求解。但是导数
\[ \frac{d(\frac{1}{2}||f(x)||^2_2)}{dx}=0 \]
不一定可以直接求解\(x\),这个导函数可能是一个复杂的非线性方程。这种情况下一般采用迭代来求解,具体步骤可以表示为 :
- (1) 给定一个初试值\(x_0\)
- (2) 对于第\(k\)次迭代,寻找一个增量\(\Delta x_ k\),使得\(||f(x_k+\Delta x_k)||\)达到极小值
- (3) 若\(\Delta x_k\)足够小,则停止迭代
- (4) 否则,令\(x_{k+1}=x_k+\Delta x_k\),返回第(2)步骤
这个其实是通过迭代让目标函数一步步下降,直到最终达到收敛为止。一般而言,增量\(\Delta x\)可通过一阶梯度或二阶梯度来确定。
一阶梯度和二阶梯度法
首先,我们将目标函数在\(x\)附近进行泰勒展开
\[ ||f(x+\Delta x)||^2_2 \approx ||f(x)||^2_2+J(x)\Delta x+\frac{1}{2}\Delta x^T H(x) \Delta x \]
这里的\(J(x)\)是\(f(x)\)关于\(x\)