1. 程式人生 > >steepest descent for Euclidean norm 最速下降法中二次範數的下降方向

steepest descent for Euclidean norm 最速下降法中二次範數的下降方向

在無約束優化中,設f(x)f(x)是凸函式。可以通過f(x)=0\partial f(x)=0求解,如果不能直接得到解析解,可以通過構造一個序列,x0,x1,...,xkx_0,x_1,...,x_k,使得f(x0)>f(x1)>...>f(xk)f(x_0)>f(x_1)>...>f(x_k),給定一個閾值η\eta,當f(x)<η\bigtriangledown f(x)<\eta

停止。

x:=x+tΔxx:=x+t \Delta x (ff是凸函式,滿足f(y)f(x)+f(x)TΔxf(y) \ge f(x)+\bigtriangledown f(x)^T \Delta x)

於是就有了

一般下降方法General Descent Method: 給定一個初始值x, 重複以下步驟:

  1. 確定下降方向Δx\Delta x
  2. 確定步長tt(1.Exact line search, 2.Backtracking line search)
  3. 更新xxx=x+tΔxx=x+t \Delta x
    直到滿足停止條件

梯度下降法,就是Δx=f(x)\Delta x=- \bigtriangledown f(x),停止準則是f(x)2η||\bigtriangledown f(x)||_2 \le \eta

下面介紹最陡下降法Steepest descent method f(x)f(x)的一階展開式為f(x+v)f(x)+f(x)Tvf(x+v) \approx f(x)+\bigtriangledown f(x)^T v,選擇一個方向vv使f(x+v)f(x+v)

最小,這個方向就是最陡下降法的方向。vv大小要有一個限制,才有意義。 Δxnsd=argmin{f(x)Tvv1}\Delta x_{nsd}=argmin\{\bigtriangledown f(x)^T v | ||v|| \le 1\} Δxsd=f(x)Δxnsd\Delta x_{sd}=||\bigtriangledown{f(x)}||_*\Delta x_{nsd},這是最陡下降法的方向 根據範數的不同有幾個不同的方向。 歐幾里得範數Euclidean norm 方向就是Δxsd=f(x)\Delta x_{sd}=-\bigtriangledown f(x) 二次範數quadratic norm 方向就是Δxsd=P1f(x)\Delta x_{sd}=-P^{-1}\bigtriangledown f(x),下面的圖是具體怎麼求這個方向的過程。 l-1範數 Δxsd=f(x)xiei\Delta x_{sd}=-\frac{\partial f(x)}{\partial x_i} e_i,方向是求偏導數的那個方向。

牛頓方法就是二次範數中P=2f(x)P=\bigtriangledown^2f(x),Hessian矩陣。當然也可以用泰勒二階展開式近似,然後求倒求展開式的最小值,也可得到相同的結果。停止準則為f(x)2f(x)η||\bigtriangledown f(x)||_{\bigtriangledown^2f(x)}\le \eta

在這裡插入圖片描述