本文將利用線性代數的知識推導出常見臨近點算子的解,具體包括:
臨近點算子的標準形式
proxλf(v)=argxmin(f(x)+(1/2λ)∥x−v∥22)=argxminJ(x)
投影算子
f=IC爲凸集C上的示性函數,則:
proxλIC(v)=ΠC(v)=argx∈Cmin∥x−v∥2
即解爲凸集C上與點v距離最小的點(投影點)。
示性函數的定義爲
IC(x)={0+∞,x∈C,x∈/C
由示性函數的定義可知,x必然在C的內部,示性函數的臨近點算子是顯然的。
二次函數
f(x)=(1/2)xTPx+qTx+r
proxλf(v)=(I+λP)−1(v−λq)
二次函數是可微的,因此可以先求偏導數,然後利用最優化條件將偏導數置零。
∇xJ(x)=Px+q+1/λ(x−v)=0
整理後得到:
(I+λP)x=v−λq
兩邊求逆即可。
一範數
f=∥⋅∥1
proxλf(v)=(v−λ)+−(−v−λ)+=⎩⎪⎨⎪⎧vi−λ0vi+λ,vi≥λ,∣vi∣≤λ,vi≤−λ
由於一範數具有可分性,因此可以將原始的向量優化問題轉換爲標量優化問題,直接將x表示標量xi,v表示vi,得到:
J(x)=∣x∣+(1/2λ)(x−v)2
此時可以通過討論x≥0,x<0來化爲簡單的二次函數優化問題。
核範數
核範數在矩陣X上定義,爲所有奇異值絕對值的和,即奇異值組成的向量的一範數。
∥X∥∗=i∑∣λi∣
關於核範數的臨近點算子的優化目標爲:
J(X)=∥X∥∗+(1/2λ)∥X−V∥F2
解爲:
proxλ∥⋅∥∗=Vdiag(proxλf(σs(A)))U
其中UσsV爲A的SVD分解。