什麼是近端最小化算法

近端最小化算法(Proximal Gradient Algorithm)是一類用於求解凸最佳化問題的疊代算法。這類算法主要用於解決大型凸最佳化問題,特別是那些難以直接求解的問題。近端最小化算法的核心思想是使用近端操作(proximal operator)來構造一個更容易求解的子問題,並通過疊代的方式逐步逼近最優解。

近端操作是一個函式,它接受一個向量和一個標量作為輸入,並返回一個向量,這個向量是原始向量與標量的和的投影。近端操作的定義如下:

[ \text{prox}{f}(x) = \arg\min{y} \left{ f(y) + \frac{1}{2} | y - x |^2 \right} ]

其中,$f$ 是凸函式,$x$ 是輸入向量,$| \cdot |$ 表示向量的歐幾里得範數。近端操作的目的是找到一個向量,使得它與原始向量 $x$ 的距離最小,同時滿足函式 $f$ 的約束。

近端最小化算法通常用於解決以下形式的最佳化問題:

[ \min_{x} \left{ f(x) + g(x) \right} ]

其中,$f(x)$ 是光滑的凸函式,$g(x)$ 是凸但非光滑的函式。這類問題通常很難直接求解,但可以通過近端操作將問題轉化為一個更容易求解的子問題。

近端最小化算法的疊代過程通常包括以下步驟:

  1. 初始化:選擇一個初始點 $x^0$,並設定一個步長 $\alpha$。
  2. 疊代:對於 $k=0,1,2,\dots$,計算 [ x^{k+1} = \text{prox}_{\alpha g}(x^k - \alpha \nabla f(x^k)) ] 其中,$\nabla f(x^k)$ 是函式 $f(x)$ 在點 $x^k$ 處的梯度。
  3. 終止條件:如果滿足某個終止條件(比如達到最大疊代次數或者函式值的變化小於某個閾值),則停止疊代;否則,轉到步驟2繼續疊代。

近端最小化算法有很多變體,包括加速 proximal gradient algorithm(FISTA)、linearized proximal gradient algorithm 等。這些算法通過不同的技巧來加速收斂速度或者減少計算複雜度。