A Singular Value Thresholding Algorithm for Matrix Completion
本文提出了一种新的算法来逼近所有服从凸约束的矩阵中具有最小核范数的矩阵。这个问题可以理解为一个秩最小化问题的凸松弛,并且在许多重要的应用中出现,比如从其条目(著名的Netflix问题)的一个小子集恢复一个大矩阵。像内点法这样的现成算法并不直接适用于这类含有上百万个未知项的大型问题。
现实生活中的大规模数据常常会有部分数据缺失、数据误差、损坏等问题,这将进一步加大数据处理和分析难度。这种现在在实际生活中很常见,例如在人脸识别中,训练集中的或是待识别的人脸图像往往含有阴影、高光、遮挡、变形等;在运动恢复结构(Structure from motion,SFM)问题中,进行特征提取和特征匹配时往往存在大的匹配误差. 这些因素的存在使得很多传统的分析和处理方式失效, 需要新的理论和实用的算法为相关的应用提供理论支撑和有力的求解工具.正确并高效地从不完整的、带有损毁的数据中 恢复和利用它们, 对现代大规模数据的分析与处理至关重要。
假定原始数据矩阵是低秩的,但是矩阵中含有很多未知的元素。从一个不完整的矩阵中恢复出一个完整的低秩阵,便是低秩矩阵填充问题。例如,著名的Netflix问题便是一个典型的低秩矩阵填充问题。Netflix是美国的一家影片租赁公司,其推荐系(recommendation system)要从用户仅有的对少数的电影打分中为用户推荐影片,如果这种推荐越符合用户的喜好,也就越能提高该公司租赁电影的业务,为此,该公司设立了百万美元的奖金用于悬赏能够最好地提高该公司推荐系统质量的解决方法。这个问题可以用矩阵填充来进行建假设矩阵的每一行分别代表同一用户对不同电影的打分, 每一列代表不同用户对同一电影的打分,用户数量巨大, 电影数目巨大,因此这个矩阵的维度十分大。由于用户所打分的电影有限,这个矩阵中只有很小一部分的元素值已知,而且可能含有噪声或误差,那么Netflix问题就是如何从这个不完整的矩阵中推测其中未知元素的值。矩阵填充的越准确,为用户推荐的电影也就越符合用户的喜好。
低秩矩阵补全
矩阵补全是推荐系统、计算机视觉、图像处理等领域经常遇到的问题,具有很高的研究价值。矩阵补全问题旨在通过真实未知矩阵 M的部分观测 $\mathbf{M}_{i,j},(i,j)\in\Omega $来估计 M 中未观测到的其他元素。如果不加其他约束,这样的问题是完全不可解的。但是,如果数据矩阵具有一些特殊的性质,这些特殊的性质将使得矩阵补全问题成为可能。低秩性就是这样的性质。如果事先知道矩阵 M是低秩的,那么矩阵补全问题可以形式为为如下优化问题:
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\begin{aligned}…
其中 其中 Ω 为观测样本下标的集合,X为优化变量,M为真实的未知矩阵。定义投影算子
P
Ω
P_{\Omega}
PΩ:
[
P
Ω
(
X
)
]
i
,
j
=
{
X
i
,
j
(
i
,
j
)
∈
Ω
0
o
t
h
e
r
w
i
s
e
(
2
)
\left.\left[P_\Omega(\mathbf{X})\right]_{i,j}=\left\{\begin{array}{ll}\mathbf{X}_{i,j}&(i,j)\in\Omega\\0&\mathrm{otherwise}\end{array}\right.\right.\quad(2)
[PΩ(X)]i,j={Xi,j0(i,j)∈Ωotherwise(2)
从而优化问题(1)可以简洁的描述为:
min
X
r
a
n
k
(
X
)
s
.
t
.
P
Ω
(
X
)
=
P
Ω
(
M
)
(
3
)
\begin{aligned}\min_{{\mathbf{X}}}&\quad rank(\mathbf{X})\\s.t.&\quad P_{\Omega}(\mathbf{X})=P_{\Omega}(\mathbf{M})\end{aligned}\quad(3)
Xmins.t.rank(X)PΩ(X)=PΩ(M)(3)
显然,上述问题是一个NP-hard问题,且其复杂度随矩阵维度的增城呈平方倍指数关系增长。为了求解问题(1),有学者对其进行凸松弛,转化为一个凸优化问题:
min
X
∥
X
∥
∗
s
.
t
.
X
i
,
j
=
A
i
,
j
,
(
i
,
j
)
∈
Ω
(
4
)
\begin{aligned}&\min_{\mathbf{X}}\quad\left\|\mathbf{X}\right\|_*\\&s.t.\mathbf{X}_{i,j}=\mathbf{A}_{i,j},(i,j)\in\Omega\end{aligned}\quad(4)
Xmin∥X∥∗s.t.Xi,j=Ai,j,(i,j)∈Ω(4)
问题(4)的解在满足强非相干性条件下,很大概率等价于问题(1)的解。在某种意义上,这是NP-难秩最小化问题的紧凸松弛。因为核范数球是谱范数为1的rank one矩阵集合的凸包。具体定理及证明参见文献[1]。
对于(4)中的优化问题,当采样点数满足
m
≥
C
n
6
/
5
r
log
n
m\geq Cn^{6/5}r\log n
m≥Cn6/5rlogn 时,M 能以很大概率求得精确解,其中 r为矩阵 M的秩,C 为一个正常数。
求解(4)式可以使用一些凸松弛方法,比如半定规划法,然而半定规划法通常使用内点法来求解,其求解上述问题的算法复杂度为 O ( p ( m + n ) 3 + p 2 ( m + n ) 2 + p 3 ) O(p(m+n)^3+p^2(m+n)^2+p^3) O(p(m+n)3+p2(m+n)2+p3)。可以通过matlab软件包CVX等来求解
奇异值阈值算法
奇异值收缩算子
考虑到秩为r的矩阵
X
∈
R
n
1
×
n
2
X\in\mathbb{R}^{n_1\times n_2}
X∈Rn1×n2的奇异值分解:
X
=
U
Σ
V
∗
,
Σ
=
d
i
a
g
(
{
σ
i
}
1
≤
i
≤
r
)
X=U\Sigma V^*,\quad\Sigma=\mathrm{diag}(\{\sigma_i\}_{1\leq i\leq r})
X=UΣV∗,Σ=diag({σi}1≤i≤r)
其中U和V分别是具有正交列的n1 × r和n2 × r矩阵,奇异值σ i为正(除非另有说明,我们将始终假设矩阵的奇异值分解为上式的简化形式) .对于每一个τ≥0,我们引入如下定义的软阈值算子
D
τ
\mathcal{D}_{\tau}
Dτ:
D
τ
(
X
)
:
=
U
D
τ
(
Σ
)
V
∗
,
D
τ
(
Σ
)
=
d
i
a
g
(
{
σ
i
−
τ
)
+
}
)
\mathcal{D}_{\tau}(X):=U\mathcal{D}_{\tau}(\Sigma)V^{*},\quad\mathcal{D}_{\tau}(\Sigma)=\mathrm{diag}(\{\sigma_{i}-\tau)_{+}\})
Dτ(X):=UDτ(Σ)V∗,Dτ(Σ)=diag({σi−τ)+})
其中t +是t的正部分,即
t
+
=
max
(
0
,
t
)
t_+=\max(0,t)
t+=max(0,t)。换句话说,该算子简单地将软阈值规则应用于X的奇异值,有效地将这些奇异值收缩到零。这也是我们将这种变换称为奇异值收缩算子的原因。尽管奇异值分解可能并不唯一,但不难看出奇异值收缩算子的定义是很好的,我们不再赘述。从某种意义上说,这个收缩算子是对标量和向量的软阈值规则的直接扩展。特别地,注意到如果X的许多奇异值低于阈值τ,那么
D
τ
\mathcal{D}_{\tau}
Dτ的秩可能比X的秩要低得多,就像对向量施加软阈值规则会导致当输入的某些项低于阈值时输出更稀疏一样。
奇异值阈值算子是与核范数相关的邻近算子。关于邻近算子的详细信息。
**定理:**对于每个
τ
≥
0
\tau\geq0
τ≥0和
Y
∈
R
n
1
×
n
2
Y\in\mathbb{R}^{n_1\times n_2}
Y∈Rn1×n2,奇异值收缩算子
D
τ
(
X
)
:
=
U
D
τ
(
Σ
)
V
∗
,
D
τ
(
Σ
)
=
d
i
a
g
(
{
σ
i
−
τ
)
+
}
)
\mathcal{D}_{\tau}(X):=U\mathcal{D}_{\tau}(\Sigma)V^{*},\quad\mathcal{D}_{\tau}(\Sigma)=\mathrm{diag}(\{\sigma_{i}-\tau)_{+}\})
Dτ(X):=UDτ(Σ)V∗,Dτ(Σ)=diag({σi−τ)+})服从
D
τ
(
Y
)
=
arg
min
X
{
1
2
∥
X
−
Y
∥
F
2
+
τ
∥
X
∥
∗
}
.
\mathcal{D}_\tau(\boldsymbol{Y})=\arg\min\limits_{\boldsymbol{X}}\left\{\frac{1}{2}\|\boldsymbol{X}-\boldsymbol{Y}\|_F^2+\tau\|\boldsymbol{X}\|_*\right\}.
Dτ(Y)=argXmin{21∥X−Y∥F2+τ∥X∥∗}.
证明:
由于函数
h
0
(
X
)
:
=
τ
∥
X
∥
∗
+
1
2
∥
X
−
Y
∥
F
2
h_0(X):=\tau\|X\|_*+\frac12\|X-Y\|_F^2
h0(X):=τ∥X∥∗+21∥X−Y∥F2是严格凸的,容易看出存在唯一的极小点,因此需要证明它等于
D
τ
(
Y
)
\mathcal{D}_{\tau}(Y)
Dτ(Y)。为此,回想一下凸函数f的次梯度定义:
f
:
R
n
1
×
n
2
→
R
.
f:\mathbb{R}^{n_1\times n_2}\to\mathbb{R}.
f:Rn1×n2→R.。称Z是f在
X
0
X_{0}
X0处的次梯度,记
Z
∈
∂
f
(
X
0
)
Z\in\partial f(X_0)
Z∈∂f(X0),如果:
f
(
X
)
≥
f
(
X
0
)
+
⟨
Z
,
X
−
X
0
⟩
f(X)\geq f(X_0)+\langle Z,X-X_0\rangle
f(X)≥f(X0)+⟨Z,X−X0⟩
对所有的X,现在
X
^
\hat{X}
X^极小化
h
0
h_{0}
h0当且仅当0是泛函h0在点
X
^
\hat{X}
X^的次梯度,即.
0
∈
X
^
−
Y
+
τ
∂
∥
X
^
∥
∗
0\in\hat{X}-Y+\tau\partial\|\hat{X}\|_*
0∈X^−Y+τ∂∥X^∥∗
式中
∂
∥
X
^
∥
∗
\partial\|\hat{X}\|_*
∂∥X^∥∗为核范数的次梯度集合。设
X
∈
R
n
1
×
n
2
X\in\mathbb{R}^{n_1\times n_2}
X∈Rn1×n2为任意矩阵,
U
Σ
V
∗
U\Sigma V^{*}
UΣV∗为其SVD。众所周知,
∂
∥
X
∥
∗
=
{
U
V
∗
+
W
:
W
∈
R
n
1
×
n
2
,
U
∗
W
=
0
,
W
V
=
0
,
∥
W
∥
2
≤
1
}
.
\partial\|X\|_*=\begin{Bmatrix}UV^*+W:&W\in\mathbb{R}^{n_1\times n_2},&U^*W=0,&WV=0,&\|W\|_2\leq1\end{Bmatrix}.
∂∥X∥∗={UV∗+W:W∈Rn1×n2,U∗W=0,WV=0,∥W∥2≤1}.
记
X
^
:
=
D
τ
(
Y
)
\hat{X}:=D_{\tau}(Y)
X^:=Dτ(Y) .为了说明
X
^
\hat{X}
X^服从
0
∈
X
^
−
Y
+
τ
∂
∥
X
^
∥
∗
0\in\hat{X}-Y+\tau\partial\|\hat{X}\|_*
0∈X^−Y+τ∂∥X^∥∗,对Y进行SVD分解
Y
=
U
0
Σ
0
V
0
∗
+
U
1
Σ
1
V
1
∗
,
Y=U_0\Sigma_0V_0^*+U_1\Sigma_1V_1^*,
Y=U0Σ0V0∗+U1Σ1V1∗,
式中:
U
0
,
V
0
(
r
e
s
p
.
U
1
,
V
1
)
U_0,V_0\mathrm{~(resp.~}U_1,V_1)
U0,V0 (resp. U1,V1)为奇异值大于
τ
\tau
τ(和小于或等于
τ
\tau
τ)的奇异向量。有了这些记号,我们就有了
X
^
=
U
0
(
Σ
0
−
τ
I
)
V
0
∗
\hat{X}=U_0(\Sigma_0-\tau I)V_0^*
X^=U0(Σ0−τI)V0∗
因此
Y
−
X
^
=
τ
(
U
0
V
0
∗
+
W
)
,
W
=
τ
−
1
U
1
Σ
1
V
1
∗
.
Y-\hat{X}=\tau(U_0V_0^*+W),\quad W=\tau^{-1}U_1\Sigma_1V_1^*.
Y−X^=τ(U0V0∗+W),W=τ−1U1Σ1V1∗.
由定义可知,
U
0
∗
W
=
0
,
W
V
0
=
0
U_0^*W=0,WV_0=0
U0∗W=0,WV0=0,又因为
Σ
1
\Sigma_{1}
Σ1的对角元素有以τ为界的量值,所以
∥
W
∥
2
≤
1
\|W\|_{2}\leq1
∥W∥2≤1。从而
Y
−
X
^
∈
τ
∂
∥
X
^
∥
∗
Y-\hat{X}\in\tau\partial\|\hat{X}\|_*
Y−X^∈τ∂∥X^∥∗,证明结束.
奇异值阈值算法(SVT)
该算法可以类比为求解向量
ℓ
0
\ell_{0}
ℓ0范数最小化的软阈值迭代算法。 SVT算法先将最优化问题(4)正则化,即有:
min
X
τ
∥
X
∥
∗
+
1
2
∥
X
∥
F
2
s
.
t
.
P
Ω
(
X
)
=
P
Ω
(
M
)
(
5
)
\begin{aligned}\min_{{\mathbf{X}}}&\quad\tau{\left\|\mathbf{X}\right\|}_{*}+\frac{1}{2}{\left\|\mathbf{X}\right\|}_{F}^{2}\\s.t.&\quad{}P_{\Omega}(\mathbf{X})=P_{\Omega}(\mathbf{M})\end{aligned}\quad(5)
Xmins.t.τ∥X∥∗+21∥X∥F2PΩ(X)=PΩ(M)(5)
其中,
τ
>
0
\tau>0
τ>0。当$\tau\to+\infty $ 时,上述最优化问题的最优解收敛到(4)式的最优解。构造最优化问题(5)的拉格朗日函数:
L
(
X
,
Y
)
=
∥
X
∥
∗
+
1
2
∥
X
∥
F
2
+
⟨
Y
,
P
Ω
(
M
−
X
)
⟩
(
6
)
L(\mathbf{X},\mathbf{Y})=\left\|\mathbf{X}\right\|_{*}+\frac{1}{2}\left\|\mathbf{X}\right\|_{F}^{2}+\left\langle\mathbf{Y},P_{\Omega}(\mathbf{M}-\mathbf{X})\right\rangle\quad(6)
L(X,Y)=∥X∥∗+21∥X∥F2+⟨Y,PΩ(M−X)⟩(6)
其中,拉格朗日乘子
Y
∈
R
m
×
n
\mathbf{Y}\in\mathbb{R}^{m\times n}
Y∈Rm×n。如果
(
X
∗
,
Y
∗
)
(\mathbf{X}^*,\mathbf{Y}^*)
(X∗,Y∗)为优化问题(4)的原-对偶问题的最优解,则有:
sup
Y
inf
X
L
(
X
,
Y
)
=
inf
X
sup
Y
L
(
X
,
Y
)
=
L
(
X
∗
,
Y
∗
)
(
7
)
\sup_{{\mathbf{Y}}}\inf_{{\mathbf{X}}}L(\mathbf{X},\mathbf{Y})=\inf_{{\mathbf{X}}}\sup_{{\mathbf{Y}}}L(\mathbf{X},\mathbf{Y})=L(\mathbf{X}^{*},\mathbf{Y}^{*})\quad(7)
YsupXinfL(X,Y)=XinfYsupL(X,Y)=L(X∗,Y∗)(7)
SVT算法使用交替迭代方法求解优化问题(4),其迭代格式可以简单表述如下:
{
X
k
=
D
τ
(
Y
k
−
1
)
Y
k
=
Y
k
−
1
+
δ
k
P
Ω
(
M
−
X
k
)
(
8
)
\left.\left\{\begin{array}{c}\mathbf{X}^k=D_\tau(\mathbf{Y}^{k-1})\\\mathbf{Y}^k=\mathbf{Y}^{k-1}+\delta_kP_\Omega(\mathbf{M}-\mathbf{X}^k)\end{array}\right.\right.(8)
{Xk=Dτ(Yk−1)Yk=Yk−1+δkPΩ(M−Xk)(8)
其中
D
τ
(
W
)
D_{\tau}(\mathbf{W})
Dτ(W) 为奇异值阈值软阈值操作类似,不过这里的对象是矩阵。可以具体描述为
W
′
=
D
τ
(
W
)
=
{
(
1
)
[
U
,
S
,
V
]
=
s
v
d
(
W
)
(
2
)
S
=
s
g
n
(
S
)
.
∗
m
a
x
(
a
b
s
(
S
)
−
τ
,
0
)
(
3
)
W
′
=
U
∗
S
∗
V
T
(
9
)
\left.\mathbf{W}^{\prime}=D_\tau(\mathbf{W})=\left\{\begin{array}{cc}(1)&[\mathbf{U},\mathbf{S},\mathbf{V}]=\mathrm{svd}(W)\\(2)&\mathbf{S}=\mathrm{sgn}(\mathbf{S}).*\mathrm{max}(\mathrm{abs}(\mathbf{S})-\tau,0)\\(3)&\mathbf{W}^{\prime}=\mathbf{U}*\mathbf{S}*\mathbf{V}^T\end{array}\right.\right.(9)
W′=Dτ(W)=⎩
⎨
⎧(1)(2)(3)[U,S,V]=svd(W)S=sgn(S).∗max(abs(S)−τ,0)W′=U∗S∗VT(9)
其中(8)式中的第一步是这样来的,初始化
Y
0
=
0
\mathbf{Y}^0=0
Y0=0,当
Y
k
−
1
\mathbf{Y}^{k-1}
Yk−1固定时:
x
k
=
arg
min
X
τ
∥
X
∥
∗
+
1
2
∥
X
∥
F
2
−
⟨
Y
k
−
1
,
P
Ω
(
X
)
⟩
=
arg
min
X
τ
∥
X
∥
∗
+
1
2
∥
X
∥
F
2
−
⟨
X
,
P
Ω
(
Y
k
−
1
)
⟩
(
10
)
=
D
τ
(
Y
k
−
1
)
\begin{aligned} \mathbf{x}^{k}& =\underset{{\mathbf{X}}}{\operatorname*{\operatorname*{\operatorname*{\arg\min}}}}\tau{\left\|\mathbf{X}\right\|}_{*}+\frac{1}{2}{\left\|\mathbf{X}\right\|}_{F}^{2}-\left\langle\mathbf{Y}^{k-1},P_{\Omega}(\mathbf{X})\right\rangle \\ &=\underset{{\mathbf{X}}}{\operatorname*{\operatorname*{\operatorname*{\arg\min}}}}\tau\|\mathbf{X}\|_{*}+\frac{1}{2}\|\mathbf{X}\|_{F}^{2}-\left\langle\mathbf{X},P_{\Omega}(\mathbf{Y}^{k-1})\right\rangle\quad(10) \\ &=D_\tau(\mathbf{Y}^{k-1}) \end{aligned}
xk=Xargminτ∥X∥∗+21∥X∥F2−⟨Yk−1,PΩ(X)⟩=Xargminτ∥X∥∗+21∥X∥F2−⟨X,PΩ(Yk−1)⟩(10)=Dτ(Yk−1)
(8)式中的第(2)式,当
x
k
\mathbf{x}^{k}
xk 给定时,用梯度下降来更新 Y。
ps:
邻近算子
定义邻近算子:
p
r
o
x
h
(
x
)
=
argmin
u
(
h
(
u
)
+
1
2
∥
u
−
x
∥
2
2
)
\mathrm{prox}_h(x)=\underset{u}{\operatorname*{argmin}}\left(h(u)+\frac12\|u-x\|_2^2\right)
proxh(x)=uargmin(h(u)+21∥u−x∥22)
直观理解:求解一个距x不算太远的点u,并使函数值h(u)也相对较小
数学理解:对下列最小化问题
min
u
1
2
∥
u
−
x
∥
2
2
+
h
(
u
)
\min_{\boldsymbol{u}}\frac{1}{2}\left\|\boldsymbol{u}-\boldsymbol{x}\right\|_2^2+h(\boldsymbol{u})
umin21∥u−x∥22+h(u)
存在唯⼀的解
u
^
\widehat{u}
u
,并将唯⼀的最小点记为
p
r
o
x
h
(
x
)
\mathrm{prox}_h(x)
proxh(x)。称
p
r
o
x
h
(
x
)
\mathrm{prox}_h(x)
proxh(x)为函数 h(u) 在点
:
x
∈
R
n
:x\in\mathbb{R}^{n}
:x∈Rn处的邻近算⼦。也称
p
r
o
x
h
(
x
)
\mathrm{prox}_h(x)
proxh(x)是点 x关于函数 h(u) 的邻近点。
定理:(邻近算子是良定义的)
如果 h 为闭凸函数,则对任意 x, p r o x h ( x ) \mathrm{prox}_h(x) proxh(x)存在且唯一
证明
首先注意到 h ( u ) + 1 2 ∥ u − x ∥ 2 2 h(u)+\frac12\|u-x\|_2^2 h(u)+21∥u−x∥22 是强凸函数,则
- 存在性:强凸函数的所有α-下水平集有界,故由Weierstrass定理 知最小值存在
- 唯一性:强凸函数最小值唯一
邻近算子与次梯度的关系
定理:
若h 是适当的闭凸函数, 则$ u =\mathrm{prox}_h(x)⇐⇒ x − u ∈ ∂h(u)$
证明
若 u = p r o x h ( x ) u =\mathrm{prox}_h(x) u=proxh(x), 则由最优性条件得0 ∈ ∂h(u) + (u − x)(存在某个 𝑔∈∂ℎ(𝑢) 使得0=𝑔+(𝑢−𝑥),或等价地,−𝑔=𝑢−𝑥,或者𝑢=𝑥+𝑔,这种条件可以视为一种最优性条件,表明 𝑢 是某种平衡或均衡点。)
因此有 x − u ∈ ∂ h ( u ) x-u\in\partial h(u) x−u∈∂h(u).反之,若 x − u ∈ ∂ h ( u ) x-u\in\partial h(u) x−u∈∂h(u),则由次梯度定义可得
h ( ν ) ⩾ h ( u ) + ( x − u ) T ( ν − u ) , ∀ ν ∈ d o m h h(\nu)\geqslant h(u)+(x-u)^\mathrm{T}(\nu-u),\quad\forall\nu\in\mathrm{dom~}h h(ν)⩾h(u)+(x−u)T(ν−u),∀ν∈dom h
两边同时加上 1 2 ∥ ν − x ∥ 2 \frac12\|\nu-x\|^2 21∥ν−x∥2,即有
h ( ν ) + 1 2 ∥ ν − x ∥ 2 ⩾ h ( u ) + ( x − u ) T ( v − u ) + 1 2 ∥ ( v − u ) − ( x − u ) ∥ 2 ⩾ h ( u ) + 1 2 ∥ u − x ∥ 2 , ∀ ν ∈ dom h \begin{gathered} h(\nu)+\frac12\|\nu-x\|^2 \geqslant h(u)+(x-u)^\mathrm{T}(v-u)+\frac12\|(v-u)-(x-u)\|^2 \\ \geqslant h(u)+\frac12\|u-x\|^2,\quad\forall\nu\in\textbf{dom }h \end{gathered} h(ν)+21∥ν−x∥2⩾h(u)+(x−u)T(v−u)+21∥(v−u)−(x−u)∥2⩾h(u)+21∥u−x∥2,∀ν∈dom h
(因为 x − u ∈ ∂ h ( u ) x − u ∈ ∂h(u) x−u∈∂h(u)所以由泰勒公式的一阶展开可得 h ( ν ) ≈ h ( u ) + ( x − u ) T ( ν − u ) h(\nu)\approx h(u)+(x-u)^\mathrm{T}(\nu-u) h(ν)≈h(u)+(x−u)T(ν−u) 而 1 2 ∥ ( v − u ) − ( x − u ) ∥ 2 ≥ 1 2 ∥ u − x ∥ 2 \frac12\|(v-u)-(x-u)\|^2\geq\frac12\|u-x\|^2 21∥(v−u)−(x−u)∥2≥21∥u−x∥2表示平方距离的增量,因此整体的左边表达式大于等于右边的表达式。)根据定义可得 u = p r o x h ( x ) u=\mathrm{prox}_{h}(x) u=proxh(x)
次梯度
次梯度方法(subgradient method)是传统的梯度下降方法的拓展,用来处理不可导的凸函数。它的优势是比传统方法处理问题范围大,劣势是算法收敛速度慢。但是,它对不可导函数有很好的处理方法。
定义
对于一个凸函数 f : R n → R , f:\mathbb{R}^n\to\mathbb{R}, f:Rn→R,,在某些点上它可能不光滑,即不可微。在这些点上,我们不能简单地定义一个唯一的梯度,而是可以定义一个集合,这个集合被称为该点的次梯度集合
具体来说,对于凸函数 𝑓,在点
x
∈
R
n
x\in\mathbb{R}^n
x∈Rn*,其次梯度集合**
∂
f
(
x
)
\partial f(x)
∂f(x)定义为包含所有满足以下条件的向量
g
∈
R
n
g\in\mathbb{R}^n
g∈Rn 的集合**:
f
(
y
)
≥
f
(
x
)
+
g
T
(
y
−
x
)
,
∀
y
∈
R
n
f(y)\geq f(x)+g^T(y-x),\quad\forall y\in\mathbb{R}^n
f(y)≥f(x)+gT(y−x),∀y∈Rn
则称 𝑔 是函数 𝑓 在点 𝑥 处的次梯度(Subgradient)。换句话说,𝑔是一个满足上述不等式关系的向量。这个条件反映了 𝑔是一个沿着某个方向使得函数值增加的方向,它可以在凸函数的不可微点提供一种广义的梯度概念。
计算
设函数 𝑓 在点 𝑥0 处不一定可导,以一维情况为例,按高等数学中我们对导数的定义可以求出:
f在
x
0
x_0
x0处的左导数:
a
=
lim
x
→
x
0
−
f
(
x
)
−
f
(
x
0
)
x
−
x
0
a=\lim_{x\to x_0^-}\frac{f(x)-f(x_0)}{x-x_0}
a=x→x0−limx−x0f(x)−f(x0)
f在
x
0
x_0
x0处的右导数:
b
=
lim
x
→
x
0
+
f
(
x
)
−
f
(
x
0
)
x
−
x
0
b=\lim_{x\to x_0^+}\frac{f(x)-f(x_0)}{x-x_0}
b=x→x0+limx−x0f(x)−f(x0)
凸函数 𝑓 的次微分等于闭区间 [𝑎 , 𝑏] 中任何一个取值都是次梯度
如果凸函数 𝑓 在点 𝑥 处是可导的,即 𝑎=𝑏 ,次微分中只有一个元素,此时次梯度就是梯度,即 𝑔 就等于 ∇𝑓(𝑥) ;
如果凸函数 𝑓 在点 𝑥 处是不可导的,即 𝑎≠𝑏 ,此时次梯度是次微分中的任意一个取值,它是不唯一的