基本信息
-
题目: Online Convex Programming and Generalized Infinitesimal Gradient Ascent
-
作者: Martin Zinkevich
-
关键词: 在线凸优化,greedy projection
背景
凸优化是线性规划问题的一般形式,广泛应用在机器学习领域和实际经济问题上。一个凸优化问题包含两个部分,一个是作为定义域的凸集,另一个是作为损失函数的凸函数。本文讨论的是在线凸优化问题(损失函数是互不相同的定义在同一个定义域上的序列),典型的问题有expert problem和network routing。本文新提出的Greedy Projection算法是受到了IGA算法的启发,有简单,通用,有效的特点,作者基于本法还对重复博弈提出了新的GIGA算法。
在线凸优化问题
问题定义: 定义域是一个凸集 F ⊆ R n F \subseteq \mathbb{R^n} F⊆Rn,一个无限序列 c = { c 1 , c 2 , ⋯ } c =\{c^1,c^2,\cdots\} c={c1,c2,⋯},其中 c t : F → R c^t:F\to \mathbb{R} ct:F→R 是凸函数,每一步在选择向量 x t x^t xt后,得到一个损失函数 c t c^t ct,在线凸优化问题目标是找到一个算法,使得选择能达到特定目标。
范数和度量: 定义在
F
F
F上的范数
∥
x
∥
=
x
⋅
x
\lVert x \rVert = \sqrt{x \cdot x}
∥x∥=x⋅x和度量
d
(
x
,
y
)
=
∥
x
−
y
∥
d(x,y) = \lVert x-y \rVert
d(x,y)=∥x−y∥,定义可行域的范数
∥
F
∥
=
max
x
,
y
∈
F
d
(
x
,
y
)
\lVert F \rVert = \max_{x,y\in F} d(x,y)
∥F∥=x,y∈Fmaxd(x,y)
定义损失函数梯度序列的范数
∥
▽
c
∥
=
max
x
∈
F
,
t
∈
{
1
,
2
,
⋯
}
∥
▽
c
t
(
x
)
∥
\lVert \bigtriangledown c \rVert = \max_{x\in F, t\in\{1,2,\cdots\}} \lVert \bigtriangledown c^t(x) \rVert
∥▽c∥=x∈F,t∈{1,2,⋯}max∥▽ct(x)∥
前提假设:
- 定义域 F F F是非空的有界闭集
- 损失函数列的梯度一致有界
- 能够得到 ∀ c t ∈ c \forall c^t \in c ∀ct∈c在 ∀ x ∈ F \forall x\in F ∀x∈F处的梯度值 ▽ c t ( x ) \bigtriangledown c^t(x) ▽ct(x)
- 存在函数P,使得对于 ∀ y ∈ R n \forall y\in \mathbb{R^n} ∀y∈Rn,有 P ( y ) = arg min x ∈ F d ( x , y ) P(y)=\arg\min_{x\in F}d(x,y) P(y)=argminx∈Fd(x,y)存在
算法分析
先来看本文中新提出的算法是怎样进行决策的,决策过程如下
Greedy Projection算法:
- 输入:初始向量 x 1 x^1 x1,学习率序列 η = { η 1 , η 2 , ⋯ } \eta = \{\eta_1,\eta_2,\cdots\} η={η1,η2,⋯}
- 输出:决策序列 x = { x 1 , x 2 , ⋯ } x = \{x^1, x^2, \cdots\} x={x1,x2,⋯}
- 迭代格式:
x t + 1 = P ( x t − η t ▽ c t ( x t ) ) x^{t+1} = P(x^t -\eta_t\bigtriangledown c^t(x^t)) xt+1=P(xt−ηt▽ct(xt))
要对算法的优劣进行分析,就要先定义针对算法的损失函数,文中称之为regret,
定义regret: 对于算法
A
A
A及其对应的凸优化问题
(
F
,
{
c
1
,
c
2
,
⋯
}
)
(F,\{c^1,c^2,\cdots\})
(F,{c1,c2,⋯}),如果选择的结果是
{
x
1
,
x
2
,
…
}
\{x^1,x^2,\dots\}
{x1,x2,…},那么截止到时间
T
T
T的算法
A
A
A的损失定义为
C
A
(
T
)
=
∑
t
=
1
T
c
t
(
x
t
)
C_A(T) = \sum_{t=1}^{T}c^t(x^t)
CA(T)=t=1∑Tct(xt)
对于一个固定的
x
∈
F
x\in F
x∈F,那么截止到时间
T
T
T的损失定义为
C
x
(
T
)
=
∑
t
=
1
T
c
t
(
x
)
C_x(T) = \sum_{t=1}^{T}c^t(x)
Cx(T)=t=1∑Tct(x)
算法
A
A
A的regret定义为
R
A
(
T
)
=
C
A
(
T
)
−
min
x
∈
F
C
x
(
T
)
R_A(T) = C_A(T) - \min_{x\in F}C_x(T)
RA(T)=CA(T)−x∈FminCx(T)
regret上界估计: 如果
η
t
=
t
−
1
2
\eta_t = t^{-\frac{1}{2}}
ηt=t−21,Greedy Projection算法的regret有以下不等式成立
R
G
(
T
)
≤
∥
F
∥
2
T
2
+
(
T
−
1
2
)
∥
▽
c
∥
2
R_G(T) \leq \frac{\lVert F \rVert^2\sqrt{T}}{2} + (\sqrt{T}-\frac{1}{2})\lVert \bigtriangledown c \rVert^2
RG(T)≤2∥F∥2T+(T−21)∥▽c∥2
从而说明
lim
T
→
∞
sup
R
G
(
T
)
T
=
0
\lim_{T\to\infin}\sup \frac{R_G(T)}{T} = 0
T→∞limsupTRG(T)=0
定义动态regret: 序列
{
x
1
,
x
2
,
⋯
,
x
T
}
\{x^1,x^2,\cdots,x^T\}
{x1,x2,⋯,xT}的路径长度定义为
∑
i
=
1
T
−
1
d
(
x
i
,
x
i
+
1
)
\sum_{i=1}^{T-1}d(x^i,x^{i+1})
i=1∑T−1d(xi,xi+1)
算法输出构成的集合
A
(
T
,
L
)
=
{
{
x
i
}
i
=
1
T
∣
序
列
路
径
长
度
≤
L
}
\mathbb{A}(T,L) = \{\{x_i\}_{i=1}^T|序列路径长度\leq L\}
A(T,L)={{xi}i=1T∣序列路径长度≤L},算法的动态regret定义为
R
A
(
T
,
L
)
=
C
A
(
T
)
−
min
A
′
∈
A
(
T
,
L
)
C
A
′
(
T
)
R_A(T,L) = C_A(T) - \min_{A'\in \mathbb{A}(T,L)}C_{A'}(T)
RA(T,L)=CA(T)−A′∈A(T,L)minCA′(T)
动态regret上界估计:
如果
η
\eta
η固定,Greedy Projection算法的动态regret上界为
R
G
(
T
,
L
)
≤
7
∥
F
∥
2
4
η
+
L
∥
F
∥
η
+
T
η
∥
▽
c
∥
2
2
R_G(T,L) \leq \frac{7\lVert F \rVert^2}{4\eta} + \frac{L\lVert F \rVert}{\eta} + \frac{T\eta\lVert\bigtriangledown c \rVert^2}{2}
RG(T,L)≤4η7∥F∥2+ηL∥F∥+2Tη∥▽c∥2
应用算法
考察Greedy Projection算法在重复博弈问题中的结果,需要进一步定义什么是重复博弈,以及不同策略的regret。
博弈规则: 重复博弈中第一个玩家的可选操作定义为集合 A A A(也被称作联合操作)和第二个玩家的可选操作定义为集合 B B B,定义效用函数为 u : A × B ⟶ R u: A\times B \longrightarrow \mathbb{R} u:A×B⟶R,
博弈历史: 定义在
A
×
B
A\times B
A×B上的,长度为t的点列记作
H
t
=
(
A
×
B
)
t
H^t = (A\times B)^t
Ht=(A×B)t,称为博弈历史,所有博弈历史的全集记作
H
=
∪
i
=
1
∞
H
i
H=\cup_{i=1}^\infin H_i
H=∪i=1∞Hi,博弈历史
h
∈
H
h\in H
h∈H的长度记为
∣
h
∣
|h|
∣h∣,博弈历史的效用定义为
u
t
o
t
a
l
(
h
)
=
∑
i
=
1
∣
h
∣
u
(
h
i
,
1
,
h
i
,
2
)
u_{total}(h) = \sum_{i=1}^{\left| h\right|}u(h_{i,1},h_{i,2})
utotal(h)=i=1∑∣h∣u(hi,1,hi,2)
不行动regret: 假设博弈历史中第二位玩家的策略是不变的,那么如果第一位玩家每次都采取操作
a
a
a,那么与原来的效用差
R
∗
→
a
(
h
)
=
u
t
o
t
a
l
(
h
∗
→
a
)
−
u
t
o
t
a
l
(
h
)
R^{*\to a}(h) = u_{total}(h^{*\to a})-u_{total}(h)
R∗→a(h)=utotal(h∗→a)−utotal(h)
成为不行动
a
a
a的regret,进而定义博弈历史的regret为
R
(
h
)
=
max
a
∈
A
R
∗
→
a
(
h
)
R(h) = \max_{a\in A}R^{*\to a}(h)
R(h)=a∈AmaxR∗→a(h)
这样定义的regret只考虑了既成事实,没有考虑根据已经发生的博弈历史来判断对手的策略。所以还需要引进行为和环境这两个概念,
行为: 函数 σ : H → Δ ( A ) \sigma:H\to \Delta(A) σ:H→Δ(A),从博弈历史映射到玩家下一个行动的概率分布。
环境: 函数 ρ : H → Δ ( B ) \rho:H \to \Delta(B) ρ:H→Δ(B),从博弈历史映射到下一个环境的下一次行动分布。
针对重复博弈问题,作者给出了如下算法
Generalized Infinitesimal Gradient Ascent
-
输入:初始向量 x 1 ∈ F x^1 \in F x1∈F,学习率序列 η = { η 1 , η 2 , ⋯ } \eta = \{\eta_1, \eta_2, \cdots\} η={η1,η2,⋯}
-
输出:决策序列 { x 1 , x 2 , ⋯ } \{x^1,x^2,\cdots\} {x1,x2,⋯}
-
迭代格式:
y i t + 1 = x i t + η t u ( i , h t , 2 ) x t + 1 = P ( y t + 1 ) y_i^{t+1} = x_i^t + \eta_tu(i,h_{t,2}) \\ x^{t+1} = P(y^{t+1}) yit+1=xit+ηtu(i,ht,2)xt+1=P(yt+1)