目标
有一个函数 f ( x ) f(x) f(x),我们要求得函数的最小值(或者最大值),由于最值点一般也是极值点,所以求出所有极值点,然后进行对比就能得到我们要的最值,可以理解为一个最小二乘的问题 min x 1 2 ∥ f ( x ) ∥ 2 2 \min_x \frac {1}{2}\| f(x)\|^2_2 xmin21∥f(x)∥22
解法
最暴力的方法,直接求解 d 1 2 ∥ f ( x ) ∥ 2 2 d x = 0 \frac {d \frac{1}{2}\|f(x)\|^2_2} {dx} =0 dxd21∥f(x)∥22=0
当然,如果能够直接解出结果,那就很好了,但是大多数情况下很难解。当没法求解的时候,可以采用迭代的方法:
- 给定某个初始值 x 0 x_0 x0。
- 对于第k次迭代,寻找一个增量 Δ x \Delta x Δx,使得 ∥ f ( x k + Δ x ) ∥ 2 2 \|f(x_k+\Delta x)\|^2_2 ∥f(xk+Δx)∥22达到极小值。
- 若 Δ x 足 够 小 , 则 停 止 \Delta x足够小,则停止 Δx足够小,则停止。
- 否则,令 x k + 1 = x k + Δ x k x_{k+1}=x_k+\Delta x_k xk+1=xk+Δxk,返回第2步。
下面介绍一下几个迭代的方法,都是在找 Δ x \Delta x Δx
一阶梯度法
将 f ( x ) f(x) f(x)在x附近进行泰勒展开 ∥ f ( x + Δ x ) ∥ 2 2 ≈ ∥ f ( x ) ∥ 2 2 + J ( x ) Δ x + 1 2 Δ x T H Δ x \|f(x+\Delta x)\|^2_2\approx\|f(x)\|^2_2+J(x)\Delta x+\frac{1}{2}\Delta x^TH\Delta x ∥f(x+Δx)∥22≈∥f(x)∥22+J(x)Δx+21ΔxTHΔx
x是常量,同时也是个向量; Δ x \Delta x Δx才是变量, J ( x ) J(x) J(x)是 ∣ ∣ f ( x ) ∣ ∣ 2 2 d ||f(x)||^2_2d ∣∣f(x)∣∣22d的雅可比矩阵, H H H是海塞矩阵,可以将J(x)理解为矩阵形式的一阶导数, H H H理解为矩阵形式的二阶导数
导数:指的是函数值增加的速度,速度是个向量(有大小,有方向),在一维的情况下,也是一样的,可以这样理解,假设 f ( x ) = 1 2 x 2 f(x)=\frac{1}{2}x^2 f(x)=