优化问题的特别求解思路
下面用 x x x表示向量, x i x_i xi表示向量中的元素。
范数的计算
L p L_p Lp范数: ∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 p \Vert x \Vert_p = (\sum_i \vert x_i \vert^p)^{\frac{1}{p}} ∥x∥p=(∑i∣xi∣p)p1
由此可见,求范数最小的问题其实可以分解为若干个相互独立的元素级别的子问题。
阈值函数
阈值函数是在元素级别(elementwise)上做操作的算子
硬阈值(hard thresholding)函数
x = T ρ ( y ) x=\mathcal{T}_{\rho}(y) x=Tρ(y)
等价于:
x
i
=
y
i
x_i=y_i
xi=yi, if
∣
y
i
∣
>
ρ
\vert y_i \vert >\rho
∣yi∣>ρ
x
i
=
0
x_i=0
xi=0, otherwise.
软阈值(soft thresholding)函数
x = S ρ ( y ) x=\mathcal{S}_{\rho}(y) x=Sρ(y)
等价于:
x
i
=
y
i
−
sign
(
y
i
)
⋅
ρ
x_i=y_i - \operatorname{sign}(y_i)\cdot \rho
xi=yi−sign(yi)⋅ρ, if
∣
y
i
∣
>
ρ
\vert y_i \vert >\rho
∣yi∣>ρ
x
i
=
0
x_i=0
xi=0, otherwise.
L2范数 + L0范数
arg min x 1 2 ∥ y − x ∥ 2 2 + ρ ∥ x ∥ 0 \mathop{\arg \min}\limits_{x} \frac{1}{2}\Vert y-x \Vert_2^2 + \rho \Vert x \Vert_0 xargmin21∥y−x∥22+ρ∥x∥0
求解:
按元素独立求解即可,即子优化问题为:
arg
min
x
i
(
y
i
−
x
i
)
2
+
ρ
x
i
0
\mathop{\arg \min}\limits_{x_i} (y_i-x_i )^2 + \rho x_i^0
xiargmin(yi−xi)2+ρxi0.
前置知识:非零数的零次方=1,0的零次方=0.
这个时候,我们不用求导的思路来解。考虑到
(
y
i
−
x
i
)
2
(y_i-x_i )^2
(yi−xi)2的最小值在
x
i
=
y
i
x_i=y_i
xi=yi处取得,
ρ
x
i
0
\rho x_i^0
ρxi0的最小值在
x
i
=
0
x_i=0
xi=0时取得。我们只需要比较这两个极值点对应的函数值的大小即可。
f
(
x
i
=
y
i
)
=
ρ
y
i
0
f(x_i=y_i)=\rho y_i^0
f(xi=yi)=ρyi0
f
(
x
i
=
0
)
=
(
y
i
)
2
f(x_i=0)=(y_i)^2
f(xi=0)=(yi)2
当
y
i
=
0
y_i=0
yi=0时,二者最小值均为0
当
y
i
≠
0
y_i\neq 0
yi=0时,
f
(
x
i
=
y
i
)
=
ρ
f(x_i=y_i)=\rho
f(xi=yi)=ρ,
当极小值点为0时,有
f
(
x
i
=
y
i
)
>
f
(
x
i
=
0
)
f(x_i=y_i)>f(x_i=0)
f(xi=yi)>f(xi=0),解得
∣
y
i
∣
<
ρ
\vert y_i \vert < \sqrt{\rho}
∣yi∣<ρ
其他情况极值点取
y
i
y_i
yi
即
x
i
=
0
x_i=0
xi=0, if
∣
y
i
∣
<
ρ
\vert y_i \vert < \sqrt{\rho}
∣yi∣<ρ
x
i
=
y
i
x_i=y_i
xi=yi, otherwise.
所以,综上, x = T ρ ( y ) x=\mathcal{T}_{\sqrt{\rho}}(y) x=Tρ(y)
L2范数 + L1范数
优化问题: arg min x 1 2 ∥ y − x ∥ 2 2 + ρ ∥ x ∥ 1 \mathop{\arg \min}\limits_{x} \frac{1}{2}\Vert y-x \Vert_2^2 + \rho \Vert x \Vert_1 xargmin21∥y−x∥22+ρ∥x∥1
求解:
按元素独立求解即可,即子优化问题为:
arg
min
x
i
1
2
(
y
i
−
x
i
)
2
+
ρ
∣
x
i
∣
\mathop{\arg \min}\limits_{x_i} \frac{1}{2} (y_i-x_i )^2 + \rho \vert x_i \vert
xiargmin21(yi−xi)2+ρ∣xi∣.
分类讨论:
if
x
i
>
0
x_i >0
xi>0,
f
(
x
i
)
=
1
2
(
y
i
−
x
i
)
2
+
ρ
x
i
f(x_i)= \frac{1}{2} (y_i-x_i )^2 + \rho x_i
f(xi)=21(yi−xi)2+ρxi
令
∂
f
(
x
i
)
∂
x
i
=
−
(
y
i
−
x
i
)
+
ρ
=
0
\frac{\partial f(x_i)}{\partial x_i}= - (y_i-x_i ) + \rho=0
∂xi∂f(xi)=−(yi−xi)+ρ=0,解得
x
i
=
−
ρ
+
y
i
x_i=-\rho + y_i
xi=−ρ+yi.
所以
x
i
=
max
(
0
,
−
ρ
+
y
i
)
x_i = \max(0, -\rho + y_i)
xi=max(0,−ρ+yi).
if
x
i
≤
0
x_i \leq0
xi≤0,
f
(
x
i
)
=
1
2
(
y
i
−
x
i
)
2
−
ρ
x
i
f(x_i)= \frac{1}{2} (y_i-x_i )^2 - \rho x_i
f(xi)=21(yi−xi)2−ρxi
令
∂
f
(
x
i
)
∂
x
i
=
−
(
y
i
−
x
i
)
−
ρ
=
0
\frac{\partial f(x_i)}{\partial x_i}= - (y_i-x_i ) - \rho=0
∂xi∂f(xi)=−(yi−xi)−ρ=0,解得
x
i
=
ρ
+
y
i
x_i=\rho + y_i
xi=ρ+yi.
所以
x
i
=
min
(
0
,
ρ
+
y
i
)
=
−
max
(
0
,
−
ρ
−
y
i
)
x_i = \min(0, \rho + y_i)=-\max(0, -\rho-y_i)
xi=min(0,ρ+yi)=−max(0,−ρ−yi).
所以,综上, x = sign ( y ) ⊙ max ( 0 , ∣ y i ∣ − ρ ) = S ρ ( y ) x=\operatorname{sign}(y)\odot \max(0,\vert y_i \vert-\rho)=\mathcal{S}_{\rho}(y) x=sign(y)⊙max(0,∣yi∣−ρ)=Sρ(y)