最近在看"Machine Learning A Probability Perspective"的逻辑回归,因为涉及些优化的算法,一起看书的伙伴们就决定把"Convex Optimization"优化的内容看一下。
在阅读以下内容之前,要记住问题的出发点,即给定无约束的凸问题该用什么方法求得最优解(这里假设问题是求最小值)?各种方法之间有什么性质。
也许最先想到的方法就是对变量求梯度,让它等于
0
0
0的变量值就是最优解。没错,这样的方法很简单,但是当求导过程过于复杂的时候该怎么办呢?也许你还知道梯度下降,牛顿法等等。如果你对这些方法没有听说过,或者还想知道更多,那接着阅读下去吧,当然最好还是建议你看一下原书。
最近正在忙毕设(好慌,QAQ!),看的内容比较少,这次内容包括:
- 强凸及其性质
- 下降方法求解的框架
- 梯度下降算法收敛性分析
- 最速下降法
- 牛顿方法
强凸及其性质
函数强凸是说在凸集
S
\rm{S}
S中,对于
∀
x
∈
S
\forall \mathbf{x}\in \rm S
∀x∈S均有下式成立:
∇
2
f
(
x
)
≽
m
 
I
\nabla^2 f(\mathbf{x}) \succcurlyeq m \, \mathbf I
∇2f(x)≽mI
其中
m
>
0
m>0
m>0,将上式带入到函数的泰勒展开式
f
(
y
)
=
f
(
x
)
+
∇
f
(
x
)
T
(
y
−
x
)
+
1
2
(
y
−
x
)
T
∇
2
f
(
x
)
(
y
−
x
)
f(\mathbf y)=f(\mathbf{x})+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{1}{2}(\mathbf y-\mathbf x)^T\nabla^2f(\mathbf x)(\mathbf y-\mathbf x)
f(y)=f(x)+∇f(x)T(y−x)+21(y−x)T∇2f(x)(y−x)
得到
(1)
f
(
y
)
≥
f
(
x
)
+
∇
f
(
x
)
T
(
y
−
x
)
+
m
2
∥
y
−
x
∥
2
2
f(\mathbf y)\geq f(\mathbf x)+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{m}{2}\Vert\mathbf y-\mathbf x\Vert_2^2 \tag 1
f(y)≥f(x)+∇f(x)T(y−x)+2m∥y−x∥22(1)
在等式右边对
y
\mathbf y
y求梯度,得到:
y
−
x
=
−
1
m
∇
f
(
x
)
\mathbf y - \mathbf x=-\frac{1}{m}\nabla f(\mathbf x)
y−x=−m1∇f(x)
带入得到
(2)
f
(
y
)
≥
f
(
x
)
−
1
2
m
∥
∇
f
(
x
)
∥
2
2
f(\mathbf y)\geq f(\mathbf x)-\frac{1}{2m}\Vert\nabla f(\mathbf x)\Vert^2_2 \tag{2}
f(y)≥f(x)−2m1∥∇f(x)∥22(2)
令
y
=
x
∗
\mathbf y=\mathbf x^*
y=x∗,可以得到
∇
f
(
x
)
\nabla f(\mathbf x)
∇f(x)的下界
∥
∇
f
(
x
)
∥
2
2
≥
2
m
(
f
(
x
)
−
p
∗
)
\Vert \nabla f(\mathbf x)\Vert_2^2\geq 2m(f(\mathbf x)-p^*)
∥∇f(x)∥22≥2m(f(x)−p∗)
可以看到,当某一点的梯度越小时,其越接近最优点,而这与最优点梯度为0的常识相符合。因此也可以用
∥
∇
f
(
x
)
∥
2
2
≤
ϵ
\Vert \nabla f(\mathbf x)\Vert_2^2\leq\epsilon
∥∇f(x)∥22≤ϵ当作收敛条件。
将
x
∗
\mathbf x^*
x∗带入到(1)中,再利用柯西施瓦茨不等式得到:
f
(
x
∗
)
≥
f
(
x
)
−
∥
∇
f
(
x
)
∥
2
∥
x
∗
−
x
∥
2
+
m
2
∥
x
∗
−
x
∥
2
2
f(\mathbf x^*)\geq f(\mathbf x)-\Vert \nabla f(\mathbf x) \Vert_2\Vert\mathbf x^*-\mathbf x \Vert_2+\frac{m}{2}\Vert\mathbf x^* - \mathbf x\Vert_2^2
f(x∗)≥f(x)−∥∇f(x)∥2∥x∗−x∥2+2m∥x∗−x∥22
可以得到
∥
x
−
x
∗
∥
2
≤
2
m
∥
∇
f
(
x
)
∥
2
\Vert \mathbf x - \mathbf x^*\Vert_2 \leq \frac{2}{m}\Vert \nabla f(\mathbf x)\Vert_2
∥x−x∗∥2≤m2∥∇f(x)∥2
即通过
∥
∇
f
(
x
)
∥
2
\Vert \nabla f(\mathbf x)\Vert_2
∥∇f(x)∥2可以得到
x
\mathbf x
x和
x
∗
\mathbf x^*
x∗的差距上界。
一般而言
S
\rm S
S被当做是下子集,是有界的,故存在
M
>
0
M>0
M>0使得
∀
x
∈
S
\forall \mathbf x\in \rm S
∀x∈S满足
∇
2
f
(
x
)
⪯
M
I
\nabla^2f(\mathbf x)\preceq M\mathbf I
∇2f(x)⪯MI
使用相同的方法,可以得到:
f
(
y
)
⪯
f
(
x
)
+
∇
f
(
x
)
T
(
y
−
x
)
+
M
2
∥
y
−
x
∥
2
2
p
∗
⪯
f
(
x
)
−
1
2
M
∥
∇
f
(
x
)
∥
2
2
f(\mathbf y)\preceq f(x)+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{M}{2}\Vert\mathbf y- \mathbf x \Vert_2^2\\ p^* \preceq f(\mathbf x)-\frac{1}{2M}\Vert \nabla f(\mathbf x)\Vert_2^2
f(y)⪯f(x)+∇f(x)T(y−x)+2M∥y−x∥22p∗⪯f(x)−2M1∥∇f(x)∥22
定义
κ
=
M
m
\kappa = \frac{M}{m}
κ=mM为
S
\rm S
S的
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
\textit condition \, number
conditionnumber,
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
\textit condition \, number
conditionnumber会在之后的收敛性分析中扮演重要的角色。
∇
2
f
(
x
)
\nabla^2 f(\mathbf x)
∇2f(x)是实对称矩阵,可以看出
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
\textit condition\, number
conditionnumber可以看作
∇
2
f
(
x
)
\nabla^2f(\mathbf x)
∇2f(x)在
∀
x
∈
S
\forall \mathbf x \in \rm S
∀x∈S中最大特征值和最小特征值的比值。关于条件数和几何解释的衔接还在考虑怎么写
下面对
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
\textit condition \, number
conditionnumber进行几何解释,设凸集合
C
C
C的沿某一方向上的宽度为
W
(
C
,
q
)
=
sup
z
∈
C
q
T
z
−
inf
z
∈
C
q
T
z
W(C,q)=\sup_{z\in C}q^Tz-\inf_{z\in C}q^Tz
W(C,q)=z∈CsupqTz−z∈CinfqTz
集合
C
C
C在不同方向上的最大最小宽度如下:
W
min
=
inf
∣
q
∣
2
=
1
W
(
C
,
q
)
W
max
=
sup
∣
q
∣
2
=
1
W
(
C
,
q
)
W_{\min}=\inf_{\vert q\vert_2=1}W(C,q)\\ W_{\max}=\sup_{\vert q\vert_2=1}W(C,q)
Wmin=∣q∣2=1infW(C,q)Wmax=∣q∣2=1supW(C,q)
而
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
condition\, number
conditionnumber为
W
m
a
x
2
/
W
m
i
n
2
W_{max}^2/W_{min}^2
Wmax2/Wmin2,从而可以看出
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
condition\, number
conditionnumber越小说明集合
C
C
C越圆,反之则其各项异性比较大。
对于
α
\alpha
α-sublevel子集
C
α
=
{
x
∣
f
(
x
)
≤
α
}
C_{\alpha}=\{\mathbf x\vert f(\mathbf x)\leq\alpha\}
Cα={x∣f(x)≤α},根据(2)和类似的式子可得
p
∗
+
M
2
∥
x
∗
−
y
∥
2
2
≥
f
(
y
)
≥
p
∗
+
m
2
∥
x
∗
−
y
∥
2
2
p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2\geq f(\mathbf y)\geq p^*+\frac{m}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2
p∗+2M∥x∗−y∥22≥f(y)≥p∗+2m∥x∗−y∥22
再利用
α
≥
f
(
y
)
\alpha \geq f(\mathbf y)
α≥f(y),则
α
≥
p
∗
+
m
2
∥
x
∗
−
y
∥
2
2
\alpha \geq p^*+\frac{m}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2
α≥p∗+2m∥x∗−y∥22。当
y
\mathbf y
y趋近于
x
∗
\mathbf x^*
x∗时,
p
∗
+
M
2
∥
x
∗
−
y
∥
2
2
p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2
p∗+2M∥x∗−y∥22趋近于
p
∗
p^*
p∗,此时
α
≥
p
∗
+
M
2
∥
x
∗
−
y
∥
2
2
\alpha \geq p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2
α≥p∗+2M∥x∗−y∥22可以求得部分
y
\mathbf y
y的范围。上述两个不等式可以得到:
B
i
n
n
e
r
=
{
y
∣
∥
y
−
x
∗
∥
2
2
≤
2
M
(
α
−
p
∗
)
}
B
o
u
t
e
r
=
{
y
∣
∥
y
−
x
∗
∥
2
2
≤
2
m
(
α
−
p
∗
)
}
B_{inner}=\{\mathbf y\vert \Vert \mathbf y-\mathbf x^* \Vert_2^2\leq \frac{2}{M}(\alpha-p^*)\}\\ B_{outer}=\{\mathbf y\vert \Vert \mathbf y-\mathbf x^* \Vert_2^2\leq \frac{2}{m}(\alpha-p^*)\}
Binner={y∣∥y−x∗∥22≤M2(α−p∗)}Bouter={y∣∥y−x∗∥22≤m2(α−p∗)}
可见
α
\alpha
α下子集在
B
i
n
n
e
r
B_{inner}
Binner和
B
o
u
t
e
r
B_{outer}
Bouter之间,则根据几何解释
cond
(
C
α
)
≤
M
m
\textbf{cond}(C_{\alpha})\leq \frac{M}{m}
cond(Cα)≤mM。这样,
c
o
n
d
i
t
i
o
n
 
n
u
m
b
e
r
condition \, number
conditionnumber和下子集的形状联系了起来。
当
α
\alpha
α趋近于
x
∗
\mathbf x^*
x∗时,根据泰勒展开,其梯度可以认为是0,得到下子集
C
α
C_\alpha
Cα
C
α
=
{
y
∣
(
y
−
x
∗
)
T
∇
2
f
(
x
)
(
y
−
x
∗
)
≤
2
(
α
−
p
∗
)
}
C_\alpha = \{\mathbf y|(\mathbf y - \mathbf x^*)^T\nabla^2f(\mathbf x)(\mathbf y - \mathbf x^*)\leq 2(\alpha - p^*)\}
Cα={y∣(y−x∗)T∇2f(x)(y−x∗)≤2(α−p∗)}
可以看到此时的下子集
C
α
C_\alpha
Cα接近为
∇
2
f
(
x
∗
)
\nabla^2 f(\mathbf x^*)
∇2f(x∗)的椭球,此时的
cond
(
C
α
)
=
κ
∇
2
f
(
x
∗
)
\textbf{cond}(C_{\alpha})=\kappa{\nabla^2 f(\mathbf x^*)}
cond(Cα)=κ∇2f(x∗)。