文章目录
- 摘要
- 零、一些基础
- 1.梯度近似
- 2.策略梯度定理
- 3.REINFORCE
- 4.REINFORCE with Baseline
- 5.REINFORCE Actor-Critic
- 一、介绍
- 二、相关工作
- (1)深度强化学习构建法
- (2)推理技术
- (3)深度强化学习改善法
- 三、激励
- 四、多最优解的策略优化POMO
- 1.多启动节点探索
- 2.策略梯度的共享基准
- 3.推理的多贪婪轨迹
- (1)增加实例
- 五、实验
- 0.基础
- (1)注意力模型
- (2)问题设置
- (3)训练
- (4)推理
- (5)代码
- 1.旅行商问题
- 2.有能力的车辆路径规划问题
- 3.0-1背包问题
- 六、结论
- 七、附录
- 八、参考文献
- 相关领域
摘要
在神经组合优化问题(CO)中,强化学习(RL)可以将一个深度学习网络转为一个快速、有力的启发式NP-hard问题的解决器。这种方法在实际中有巨大的潜力,因为它能在没有大量专业知识专家指导的情况下发现近似最优解。我们引入了带有多最优解的策略优化(Policy Optimization with Multiple Optima (POMO)),一种用来建立上述启发式解决器的端到端方法。POMO可应用于很大范围的组合优化问题。它被设计利用组合优化解决方案的对称性。POMO使用强迫多样化的预演(rollout)朝向所有最优解决方案的改良REINFORCE算法。以经验为主地,POMO的低方差baseline使得RL训练更快和稳定,同时与以前的方法相比,它更能抵抗局部极小值。我们也引入了一个新的基于增强的推理方法(augmentation-based inference method),能够很好地配合POMO方法。我们通过解决三个热门的NP-hard问题,既旅行商(TSP)、有能力的车辆路径规划(CVRP)和0-1背包问题,展示了POMO方法的效率。对于这些问题,我们基于POMO的解决器相比最近学习的启发式方法展示了巨大的提升。特别地,我们实现了0.14%的最优gap在TSP100的数据及上,同时推理时间减少了一个数量级。
零、一些基础
1.梯度近似
强化学习从high level角度总共分为两大部分,分别是value-based method和policy-based method。
我们的目标都是求取策略 π ∗ π^* π∗,value-based采用了迂回的方法,计算出价值函数Q(利用贪婪、采样等策略),然后给出确定性策略,虽然可以采用 ε ε ε软性策略给一定的随机性,但本质仍是确定性策略。
如果想要随机策略或者动作空间为连续的情况下,则需要采用policy-based method。
给定状态
s
s
s,动作
a
a
a的参数化的概率分布如下:
π
(
a
∣
s
;
θ
)
\pi(a|s;\theta)
π(a∣s;θ)
可连续,可离散,接下来构建一个目标函数,其中
s
0
s_0
s0代指“任意状态”:
J
(
θ
)
≜
V
π
(
s
0
)
J(\theta) \triangleq V_{\pi}(s_0)
J(θ)≜Vπ(s0)
定义平均次数
η
(
s
)
\eta(s)
η(s),h为初始平均次数,后续步骤需要考虑状态、动作和上一步:
η
(
s
)
=
h
(
s
i
n
i
t
i
a
l
)
+
∑
s
‾
η
(
s
‾
)
∑
a
π
(
a
∣
s
‾
)
p
(
s
∣
s
‾
,
a
)
=
∑
k
=
0
T
−
1
P
r
(
s
0
→
s
,
k
,
π
)
\eta(s)=h(s_{ initial})+\sum_{\overline{s}} \eta(\overline{s})\sum_{a} \pi (a|\overline{s})p(s|\overline{s},a) \\ =\sum_{k=0}^{T-1}Pr(s_0→s,k,\pi)
η(s)=h(sinitial)+s∑η(s)a∑π(a∣s)p(s∣s,a)=k=0∑T−1Pr(s0→s,k,π)
定义出现概率
μ
(
s
)
\mu(s)
μ(s):
μ
(
s
)
=
μ
(
s
)
∑
s
′
η
(
s
′
)
\mu(s)=\frac{\mu(s)}{\sum_{s'}\eta(s')}
μ(s)=∑s′η(s′)μ(s)
2.策略梯度定理
▽
V
π
(
s
)
=
▽
∑
a
π
(
a
∣
s
)
⋅
q
π
(
s
,
a
)
=
∑
a
[
▽
π
(
a
∣
s
)
⋅
q
π
(
s
,
a
)
]
+
π
(
a
∣
s
)
⋅
▽
q
π
(
s
,
a
)
]
\begin{align*} \triangledown V_{\pi}(s) &=\triangledown \sum_{a}\pi(a|s) \cdot q_{\pi}(s,a) \\ &=\sum_{a}[\triangledown \pi(a|s) \cdot q_{\pi}(s,a)]+\pi(a|s) \cdot \triangledown q_{\pi}(s,a)] \\ \end{align*}
▽Vπ(s)=▽a∑π(a∣s)⋅qπ(s,a)=a∑[▽π(a∣s)⋅qπ(s,a)]+π(a∣s)⋅▽qπ(s,a)]
其中,
▽
q
π
(
s
,
a
)
=
▽
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
⋅
(
r
+
γ
V
π
(
s
′
)
)
\triangledown q_{\pi}(s,a)=\triangledown \sum_{s',r} p(s',r|s,a) \cdot (r+\gamma V_{\pi}(s'))
▽qπ(s,a)=▽s′,r∑p(s′,r∣s,a)⋅(r+γVπ(s′))
为推导便利,这里假设折扣率
γ
\gamma
γ为1,上式和
θ
\theta
θ有关的只有
V
π
(
s
′
)
V_{\pi}(s')
Vπ(s′)
▽
q
π
(
s
,
a
)
=
∑
s
′
p
(
s
′
∣
s
,
a
)
⋅
▽
V
π
(
s
′
)
\triangledown q_{\pi}(s,a) = \sum_{s'} p(s'|s,a) \cdot \triangledown V_{\pi}(s')
▽qπ(s,a)=s′∑p(s′∣s,a)⋅▽Vπ(s′)所以,
▽
V
π
(
s
)
=
∑
a
▽
π
(
a
∣
s
)
⋅
q
π
(
s
,
a
)
+
π
(
a
∣
s
)
⋅
∑
s
′
p
(
s
′
∣
s
,
a
)
⋅
▽
V
π
(
s
′
)
]
\triangledown V_{\pi}(s)=\sum_{a}\triangledown \pi(a|s) \cdot q_{\pi}(s,a)+\pi(a|s) \cdot \sum_{s'} p(s'|s,a) \cdot \triangledown V_{\pi}(s')]
▽Vπ(s)=a∑▽π(a∣s)⋅qπ(s,a)+π(a∣s)⋅s′∑p(s′∣s,a)⋅▽Vπ(s′)]
如此得到关于
V
(
s
)
V(s)
V(s)和
V
(
s
′
)
V(s')
V(s′)的迭代,进一步展开可得,
▽
V
π
(
s
)
=
∑
a
{
▽
π
(
a
∣
s
)
⋅
q
π
(
s
,
a
)
+
π
(
a
∣
s
)
⋅
∑
s
′
p
(
s
′
∣
s
,
a
)
⋅
[
∑
a
′
▽
π
(
a
′
∣
s
′
)
⋅
q
π
(
s
′
,
a
′
)
+
π
(
a
′
∣
s
′
)
⋅
∑
s
′
′
p
(
s
′
′
∣
s
′
,
a
′
)
⋅
▽
V
π
(
s
′
′
)
]
}
\triangledown V_{\pi}(s)=\sum_{a} \{ \triangledown \pi(a|s) \cdot q_{\pi}(s,a)+\pi(a|s) \cdot \sum_{s'} p(s'|s,a) \cdot [\sum_{a'}\triangledown \pi(a'|s') \cdot q_{\pi}(s',a')+\pi(a'|s') \cdot \sum_{s''} p(s''|s',a') \cdot \triangledown V_{\pi}(s'')] \}
▽Vπ(s)=a∑{▽π(a∣s)⋅qπ(s,a)+π(a∣s)⋅s′∑p(s′∣s,a)⋅[a′∑▽π(a′∣s′)⋅qπ(s′,a′)+π(a′∣s′)⋅s′′∑p(s′′∣s′,a′)⋅▽Vπ(s′′)]}
将上式子拆为三部分可以获得,
①
=
∑
a
▽
π
(
a
∣
s
)
⋅
q
π
(
s
,
a
)
=
∑
x
∈
S
P
r
(
s
→
x
,
0
,
π
)
⋅
∑
a
▽
π
(
a
∣
x
)
⋅
q
π
(
x
,
a
)
\begin{align*} ①&=\sum_{a} \triangledown \pi(a|s) \cdot q_{\pi}(s,a)\\ &=\sum_{x \in S} Pr(s→x,0,\pi) \cdot \sum_{a}\triangledown \pi(a|x) \cdot q_{\pi}(x,a) \end{align*}
①=a∑▽π(a∣s)⋅qπ(s,a)=x∈S∑Pr(s→x,0,π)⋅a∑▽π(a∣x)⋅qπ(x,a)
可知
P
r
(
s
→
x
,
0
,
π
)
=
1
Pr(s→x,0,\pi)=1
Pr(s→x,0,π)=1,
②
=
∑
a
π
(
a
∣
s
)
⋅
∑
s
′
p
(
s
′
∣
s
,
a
)
⋅
∑
a
′
▽
π
(
a
′
∣
s
′
)
⋅
q
π
(
s
′
,
a
′
)
=
∑
s
′
∑
a
π
(
a
∣
s
)
⋅
p
(
s
′
∣
s
,
a
)
⋅
∑
a
′
▽
π
(
a
′
∣
s
′
)
⋅
q
π
(
s
′
,
a
′
)
=
∑
s
′
P
r
(
s
→
s
′
,
1
,
π
)
⋅
∑
a
′
▽
π
(
a
′
∣
s
′
)
⋅
q
π
(
s
′
,
a
′
)
\begin{align*} ② &=\sum_{a}\pi(a|s) \cdot \sum_{s'} p(s'|s,a) \cdot \sum_{a'}\triangledown \pi(a'|s') \cdot q_{\pi}(s',a')\\ &=\sum_{s'} \sum_{a}\pi(a|s) \cdot p(s'|s,a) \cdot \sum_{a'}\triangledown \pi(a'|s') \cdot q_{\pi}(s',a')\\ &=\sum_{s'} Pr(s→s',1,\pi) \cdot \sum_{a'}\triangledown \pi(a'|s') \cdot q_{\pi}(s',a') \end{align*}
②=a∑π(a∣s)⋅s′∑p(s′∣s,a)⋅a′∑▽π(a′∣s′)⋅qπ(s′,a′)=s′∑a∑π(a∣s)⋅p(s′∣s,a)⋅a′∑▽π(a′∣s′)⋅qπ(s′,a′)=s′∑Pr(s→s′,1,π)⋅a′∑▽π(a′∣s′)⋅qπ(s′,a′)
写为通式可得,
②
=
∑
x
∈
S
P
r
(
s
→
x
,
k
,
π
)
⋅
∑
a
▽
π
(
a
∣
x
)
⋅
q
π
(
x
,
a
)
②=\sum_{x \in S} Pr(s→x,k,\pi) \cdot \sum_{a}\triangledown \pi(a|x) \cdot q_{\pi}(x,a)
②=x∈S∑Pr(s→x,k,π)⋅a∑▽π(a∣x)⋅qπ(x,a)
③
=
π
(
a
′
∣
s
′
)
⋅
∑
s
′
′
p
(
s
′
′
∣
s
′
,
a
′
)
⋅
▽
V
π
(
s
′
′
)
③=\pi(a'|s') \cdot \sum_{s''} p(s''|s',a') \cdot \triangledown V_{\pi}(s'')
③=π(a′∣s′)⋅s′′∑p(s′′∣s′,a′)⋅▽Vπ(s′′)
由此,可以得到,
∞
\infty
∞与
T
−
1
T-1
T−1等价,
▽
J
(
θ
)
=
∑
s
∈
S
∑
k
=
0
∞
P
r
(
s
0
→
s
,
k
,
π
)
∑
a
▽
π
(
a
∣
s
)
q
π
(
s
,
a
)
=
∑
s
∈
S
η
(
s
)
∑
a
▽
π
(
a
∣
s
)
q
π
(
s
,
a
)
=
∑
s
′
η
(
s
′
)
∑
s
∈
S
μ
(
s
)
∑
a
▽
π
(
a
∣
s
)
q
π
(
s
,
a
)
\begin{align*} \triangledown J(\theta)&=\sum_{s \in S} \sum_{k=0}^{\infty}Pr(s_0→s,k,\pi) \sum_{a} \triangledown \pi(a|s) q_\pi(s,a)\\ &=\sum_{s \in S} \eta(s) \sum_{a} \triangledown \pi(a|s) q_\pi(s,a)\\ &=\sum_{s'} \eta(s') \sum_{s \in S} \mu(s) \sum_{a} \triangledown \pi(a|s) q_\pi(s,a)\\ \end{align*}
▽J(θ)=s∈S∑k=0∑∞Pr(s0→s,k,π)a∑▽π(a∣s)qπ(s,a)=s∈S∑η(s)a∑▽π(a∣s)qπ(s,a)=s′∑η(s′)s∈S∑μ(s)a∑▽π(a∣s)qπ(s,a)
其中,
∑
s
′
η
(
s
′
)
\sum_{s'} \eta(s')
∑s′η(s′)是一个常数,我们只关心梯度的方向,至于大小并不关心,省略后可得,
▽
J
(
θ
)
∝
∑
s
∈
S
μ
(
s
)
∑
a
▽
π
(
a
∣
s
)
q
π
(
s
,
a
)
\triangledown J(\theta) \propto \sum_{s \in S} \mu(s) \sum_{a} \triangledown \pi(a|s) q_\pi(s,a)
▽J(θ)∝s∈S∑μ(s)a∑▽π(a∣s)qπ(s,a)
3.REINFORCE
由零、2.,我们已知,
▽
J
(
θ
)
∝
∑
s
∈
S
μ
(
s
)
∑
a
▽
π
(
a
∣
s
)
q
π
(
s
,
a
)
\triangledown J(\theta) \propto \sum_{s \in S} \mu(s) \sum_{a} \triangledown \pi(a|s) q_\pi(s,a)
▽J(θ)∝s∈S∑μ(s)a∑▽π(a∣s)qπ(s,a)
可以写为期望形式,
s
s
s使用随机变量
S
t
S_t
St表示,
=
E
π
[
∑
a
▽
π
(
a
∣
S
t
)
q
π
(
S
t
,
a
)
]
=
E
π
[
∑
a
π
(
a
∣
S
t
)
▽
π
(
a
∣
S
t
)
π
(
a
∣
S
t
)
q
π
(
S
t
,
a
)
]
=
E
π
[
▽
π
(
A
t
∣
S
t
)
π
(
a
∣
S
t
)
q
π
(
S
t
,
a
)
]
=
E
π
[
▽
log
π
(
A
t
∣
S
t
)
⋅
q
π
(
S
t
,
a
)
]
\begin{align*} &=E_{\pi}[\sum_{a} \triangledown \pi(a|S_t)q_\pi(S_t,a)] \\ &=E_{\pi}[\sum_{a} \pi(a|S_t) \frac{\triangledown \pi(a|S_t)}{\pi(a|S_t)}q_\pi(S_t,a)] \\ &=E_{\pi}[ \frac{\triangledown \pi(A_t|S_t)}{\pi(a|S_t)}q_\pi(S_t,a)] \\ &=E_{\pi}[ \triangledown \log \pi(A_t|S_t) \cdot q_\pi(S_t,a)] \\ \end{align*}
=Eπ[a∑▽π(a∣St)qπ(St,a)]=Eπ[a∑π(a∣St)π(a∣St)▽π(a∣St)qπ(St,a)]=Eπ[π(a∣St)▽π(At∣St)qπ(St,a)]=Eπ[▽logπ(At∣St)⋅qπ(St,a)]
已知,
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
q
π
(
S
t
,
A
t
)
=
E
π
[
G
t
]
q_\pi(s,a)=E_{\pi}[G_t|S_t=s,A_t=a]\\ q_\pi(S_t,A_t)=E_{\pi}[G_t]
qπ(s,a)=Eπ[Gt∣St=s,At=a]qπ(St,At)=Eπ[Gt]
蒙特卡洛采样可得,
=
E
π
[
G
t
▽
log
π
(
A
t
∣
S
t
;
θ
)
]
=E_{\pi}[ G_t \triangledown \log \pi(A_t|S_t;\theta) ] \\
=Eπ[Gt▽logπ(At∣St;θ)]
其中,
θ
t
+
1
=
θ
t
+
α
⋅
G
t
▽
log
π
(
A
t
∣
S
t
;
θ
t
)
\theta_{t+1}=\theta_{t}+\alpha \cdot G_t \triangledown \log \pi (A_t|S_t;\theta_t)
θt+1=θt+α⋅Gt▽logπ(At∣St;θt)
4.REINFORCE with Baseline
由零、2.,我们增加一个
b
(
s
)
b(s)
b(s),
▽
J
(
θ
)
∝
∑
s
∈
S
μ
(
s
)
∑
a
▽
π
(
a
∣
s
)
(
q
π
(
s
,
a
)
−
b
(
s
)
)
\triangledown J(\theta) \propto \sum_{s \in S} \mu(s) \sum_{a} \triangledown \pi(a|s) (q_\pi(s,a)-b(s))
▽J(θ)∝s∈S∑μ(s)a∑▽π(a∣s)(qπ(s,a)−b(s))
原生的REINFORCE方差太大了(由于蒙特卡洛采样方法),其中
b
(
s
)
b(s)
b(s)与
a
a
a无关,
∑
a
▽
π
(
a
∣
s
)
b
(
s
)
=
b
(
s
)
▽
∑
a
π
(
a
∣
s
)
\sum_{a} \triangledown \pi(a|s) b(s)=b(s) \triangledown \sum_{a} \pi(a|s)
a∑▽π(a∣s)b(s)=b(s)▽a∑π(a∣s)
因此,
θ
t
+
1
=
θ
t
+
α
⋅
(
G
t
−
b
(
S
t
)
)
▽
π
(
A
t
∣
S
t
,
θ
t
)
π
(
A
t
∣
S
t
,
θ
t
)
\theta_{t+1}=\theta_{t}+\alpha \cdot (G_t-b(S_t)) \frac{\triangledown \pi(A_t|S_t,\theta_t)}{\pi(A_t|S_t,\theta_t)}
θt+1=θt+α⋅(Gt−b(St))π(At∣St,θt)▽π(At∣St,θt)
5.REINFORCE Actor-Critic
相当于value-based和gradient-based的交集,其中Actor相当于policy(学习了
θ
\theta
θ的参数),Critic相当于value(学习了
w
w
w的参数)。
其中,
G
t
:
t
+
1
G_{t:t+1}
Gt:t+1表示的是goal,但只有t→t+1是真的,其他时刻如t+2,…,T,采用“自举”方法;
v
^
\hat{v}
v^为机器学习方法估算出来的。
θ
t
+
1
=
θ
t
+
α
⋅
(
G
t
:
t
+
1
−
v
^
(
S
t
,
w
)
)
▽
π
(
A
t
∣
S
t
,
θ
t
)
π
(
A
t
∣
S
t
,
θ
t
)
=
θ
t
+
α
⋅
(
R
t
+
1
+
γ
v
^
(
S
t
+
1
,
w
)
−
v
^
(
S
t
,
w
)
)
▽
π
(
A
t
∣
S
t
,
θ
t
)
π
(
A
t
∣
S
t
,
θ
t
)
=
θ
t
+
α
⋅
δ
t
▽
π
(
A
t
∣
S
t
,
θ
t
)
π
(
A
t
∣
S
t
,
θ
t
)
\begin{align*} \theta_{t+1}&=\theta_{t}+\alpha \cdot (G_{t:t+1}-\hat{v}(S_t,w)) \frac{\triangledown \pi(A_t|S_t,\theta_t)}{\pi(A_t|S_t,\theta_t)}\\ &=\theta_{t}+\alpha \cdot (R_{t+1}+\gamma\hat{v}(S_{t+1},w)-\hat{v}(S_t,w)) \frac{\triangledown \pi(A_t|S_t,\theta_t)}{\pi(A_t|S_t,\theta_t)}\\ &=\theta_{t}+\alpha \cdot \delta_t\frac{\triangledown \pi(A_t|S_t,\theta_t)}{\pi(A_t|S_t,\theta_t)}\\ \end{align*}
θt+1=θt+α⋅(Gt:t+1−v^(St,w))π(At∣St,θt)▽π(At∣St,θt)=θt+α⋅(Rt+1+γv^(St+1,w)−v^(St,w))π(At∣St,θt)▽π(At∣St,θt)=θt+α⋅δtπ(At∣St,θt)▽π(At∣St,θt)
一、介绍
组合优化(CO)在物流、制造和分布供应链、顺序分销商领域扮演者重要的角色。运筹学(OR)社区对该问题进行了广泛的研究,但现实世界中的CO问题无处不在,而且每个问题都有其独特的约束条件,彼此不同。此外,这些限制往往会随着工作环境的变化而迅速变化。设计一种强大而高效的算法,并能在各种条件下统一应用,即使不是不可能,也是很棘手的。因此,工业中面临的许多CO问题通常都是用手工制作的启发式方法来处理的,尽管它们有缺点,由当地专家设计。
在计算机视觉(CV)和自然语言处理(NLP)领域,基于专家手工特征工程的经典方法现在已经被自动化的端到端深度学习算法所取代。监督学习的巨大进步,即学习从训练输入到标签的映射,使这一显著的转变成为可能。不幸的是,监督学习在很大程度上不适用于大多数CO问题,因为我们不能立即获得最优标签。相反,人们应该利用分数,这对于大多数CO解决方案来说是很容易计算的,来训练一个模型。强化学习范式非常适合组合优化问题。
最近的深度强化学习(RL)方法已经很有前景,为抽象的NP-hard CO问题找到了接近于最优的解决方案,如旅行商(TSP),有能力的车辆路由(CVRP)和0-1背包(KP)以优异的速度。我们通过引入带有多重优化的策略优化(POMO),为深度学习社区的这一团队努力做出了贡献。POMO提供了一个简单直接的框架,可以自动生成一个不错的求解器。它可以应用于广泛的一般CO问题,因为它使用CO本身的对称性,在CO解的顺序表示中发现。
我们通过使用相同的神经网络和相同的训练方法解决前面提到的三个NP-hard问题,即TSP, CVRP和KP,证明了POMO的有效性。我们的方法纯粹是数据驱动的,训练程序设计中的人工指导被保持到最低限度。更具体地说,它不需要在算法中插入特定问题的手工启发式。尽管它很简单,但我们的实验证实,与所有当代神经RL方法相比,POMO在减少最优性差距和推理时间方面取得了优越的性能。
本文的贡献有三个方面:
•我们识别了RL方法中的对称性,用于解决导致多重最优的CO问题。这种对称性可以在神经网络训练期间通过并行的多个铺开来利用,每个轨迹都有一个不同的最优解作为探索的目标。
•我们为策略梯度设计了一个新的低方差baseline。因为这个基线是从一组不同的轨迹中衍生出来的,学习变得不那么容易受到局部极小值的影响。
•我们提出了基于多个贪婪预演的推理方法,该方法比传统的抽样推理方法更有效。我们还介绍了一种实例增强技术,可以在推理阶段进一步利用CO问题的对称性。
二、相关工作
(1)深度强化学习构建法
Bello et al.——指针网络(PtrNet)
使用了actor-critic算法,证明神经最和优化可以实现TSP和KP问题的近似最优解。模型基于Seq2Seq结构,用了注意力算法机制。
Narari et al.——改善指针网络(PtrNet)
其他:与前者基于RNN的不同,基于Transformer的注意力模型,基于贪婪-预演的REINFORCE,类似于self-critical训练。已经应用于TSP,OP和VRP问题。
Peng et al.——注意力模型
Dai et al.——Struct2Vec
Khalil et al.——deep Q-learning
解决了TSP问题,最小顶点切割和最大顶点切割问题。部分解以图的形式嵌入,深度神经网络估计每个图的值。
(2)推理技术
——Active search
在单一的测试实例上优化策略。
——Sampling method
在多个解决方案中选择最好的。
——Beam search
用先进策略提升采样效率。
——经典启发式
经典的启发式运算如后处理也可以应用于神经网络生成的解,进一步提高解的质量。
(3)深度强化学习改善法
POMO属于上面总结的构造型RL方法的范畴,其中CO解决方案是由神经网络一次性创建的。
另一种方法,结合机器学习和启发式算法。训练神经网络来指导局部搜索算法,局部搜索算法在之前算法的基础上迭代地找到更好的解,直到时间预算耗尽。
三、激励
假设我们有一个联合优化问题,用一组节点表示
{
v
1
,
v
2
,
.
.
.
,
v
M
}
\{ v_1,v_2,...,v_M \}
{v1,v2,...,vM},有一个可训练的策略网络参数
θ
\theta
θ。一个解决方案
τ
=
(
a
1
,
.
.
.
,
a
M
)
\tau =(a_1,...,a_M)
τ=(a1,...,aM),其中第
i
i
i个动作
a
i
a_i
ai可以选择节点
v
j
v_j
vj,根据下式遵循随机策略,一次迭代一个节点生成,
π
t
=
{
p
θ
(
a
t
∣
s
)
for
t
=
1
p
θ
(
a
t
∣
s
,
a
1
:
t
−
1
)
for
t
∈
{
2
,
3
,
…
,
M
}
\pi_t= \begin{cases}p_\theta\left(a_t \mid s\right) & \text { for } t=1 \\ p_\theta\left(a_t \mid s, a_{1: t-1}\right) & \text { for } t \in\{2,3, \ldots, M\}\end{cases}
πt={pθ(at∣s)pθ(at∣s,a1:t−1) for t=1 for t∈{2,3,…,M}
其中
s
s
s为问题实例定义的状态。
起始动作
a
1
a_1
a1的选择严重影响后续动作的选择
(
a
2
,
a
3
,
.
.
.
,
a
M
)
(a_2,a_3,...,a_M)
(a2,a3,...,aM)。实际上,
a
1
a_1
a1的任何选择都应该同样好,我们试图找一种策略优化方法,可以充分利用这种对称性。
四、多最优解的策略优化POMO
1.多启动节点探索
POMO首先指定
N
N
N个不同的节点
{
a
1
1
,
a
1
2
,
.
.
.
,
a
1
N
}
\{a^1_1,a^2_1,...,a^N_1\}
{a11,a12,...,a1N} *(上文用v表示节点,a表示动作;这里却又用a表示节点了……,我觉得作者实际想表达的是初始动作的选择)*作为起始节点来探索。网络通过蒙特卡洛采样
N
N
N个轨迹解决方案
{
τ
1
,
τ
2
,
.
.
.
,
τ
N
}
\{ \tau^1,\tau^2,...,\tau^N \}
{τ1,τ2,...,τN},该轨迹被定义为如下序列,
τ
i
(
a
1
i
,
a
2
i
,
.
.
.
,
a
M
i
)
for
i
=
1
,
2
,
.
.
.
,
N
\tau^i(a_1^i,a_2^i,...,a_M^i) \text{ \ \ \ \ for \ }i=1,2,...,N
τi(a1i,a2i,...,aMi) for i=1,2,...,N
前文提到的RNN或者Transformer框架的方法,来自多采样轨迹的第一个节点总是由网络来做选择。一个可训练的START令牌(这些模型起源于NLP的遗产)被输入到网络中,并返回第一个节点。通常,使用这样的START令牌是明智的,因为它允许机器学习找到导致最佳解决方案的“正确”第一步。
然而,在存在多个“正确”的第一步时,它会迫使机器倾向于特定的起点,这可能会导致有偏见的策略。因此,当所有的第一步都同样好时,应用熵最大化技术来改进探索是明智的。熵最大化通常是通过在RL的目标函数中添加熵正则化项来实现的。然而,POMO直接最大化了第一个动作的熵,迫使网络总是产生多个轨迹,所有这些轨迹在训练过程中贡献相同。
请注意,这些轨迹与START令牌方案下重复采样的N个轨迹有根本不同。源自START令牌的每个轨迹都接近于单个最优路径,但是POMO的N个解轨迹将紧密匹配最优解的N个不同节点序列表示。从概念上讲,POMO的探索类似于引导学生从许多不同的角度反复解决同一个问题,让她接触到各种解决问题的技巧,否则这些技巧是没有用的。
2.策略梯度的共享基准
POMO基于REINFORCE算法。一旦我们采样了一个集合的轨迹解决方案
{
τ
1
,
τ
2
,
.
.
.
,
τ
N
}
\{ \tau^1, \tau^2,...,\tau^N \}
{τ1,τ2,...,τN},我们就可以计算出每个解决方案
τ
i
\tau^i
τi的全部回报
R
(
τ
i
)
R(\tau^i)
R(τi)。为了最大化期待收益
J
J
J,我们使用近似的梯度下降法。
∇
θ
J
(
θ
)
≈
1
N
∑
i
=
1
N
(
R
(
τ
i
)
−
b
i
(
s
)
)
∇
θ
log
p
θ
(
τ
i
∣
s
)
\nabla_\theta J(\theta) \approx \frac{1}{N} \sum_{i=1}^N\left(R\left(\tau^i\right)-b^i(s)\right) \nabla_\theta \log p_\theta\left(\boldsymbol{\tau}^i \mid s\right)
∇θJ(θ)≈N1i=1∑N(R(τi)−bi(s))∇θlogpθ(τi∣s)
其中,
p
θ
(
τ
i
∣
s
)
≡
∏
t
=
2
M
p
θ
(
a
t
i
∣
s
,
a
1
:
t
−
1
i
)
p_\theta\left(\boldsymbol{\tau}^i \mid s\right) \equiv \prod_{t=2}^M p_\theta\left(a_t^i \mid s, a_{1: t-1}^i\right)
pθ(τi∣s)≡∏t=2Mpθ(ati∣s,a1:t−1i)。
b
i
(
s
)
b^i(s)
bi(s)是一个有很多自由选择,以减少采样梯度方差的baseline。原则上来说,它是一个关于
a
1
i
a^i_1
a1i的函数,为每个轨迹
τ
i
\tau^i
τi分配不同的值。然而在POMO中,我们使用共享的baseline,
b
i
(
s
)
=
b
shared
(
s
)
=
1
N
∑
j
=
1
N
R
(
τ
j
)
for all
i
b^i(s)=b_{\text {shared }}(s)=\frac{1}{N} \sum_{j=1}^N R\left(\boldsymbol{\tau}^j\right) \text {\ \ \ \ for all } i
bi(s)=bshared (s)=N1j=1∑NR(τj) for all i
相比贪婪-预演策略,POMO的baseline在梯度策略中减少了方差。在上上式中的优势项,
R
(
τ
i
)
−
b
i
(
s
)
R(\tau^i)-b^i(s)
R(τi)−bi(s)对于POMO有零均值,然而,贪婪的baseline在大多数情况下会带来劣势。这是因为采样-预演(遵循策略的softmax)在多数情况下在解决方案质量上难以超越贪婪-预演(遵循策略的argmax)。此外,相比其他深度强化学习方法,POMO baseline可以更高效地计算,因为前者需要单独的训练网络(critic)或克隆的策略网络(贪婪-预演)。
最重要的是,POMO使用的共享基线使RL训练对局部极小值具有很强的抵抗力。当生成
N
N
N个解决方案轨迹
{
τ
1
,
τ
2
,
.
.
.
,
τ
N
}
\{ \tau^1, \tau^2,...,\tau^N \}
{τ1,τ2,...,τN}时,如果我们不使用共享的baseline,同时严格坚持使用贪婪-预演来代替,则每个采样-预演
τ
i
\tau^i
τi将被独立评估。与具有相同起始节点
a
1
i
a^i_1
a1i的贪婪-预演对应相比,产生
τ
i
\tau^i
τi的操作仅通过其表现更好(或更差)的程度来加强。因为这种训练方法是由两个密切相关的网络产生的两个预演之间的差异来指导的,所以它很可能在actor和critic都以类似的方式表现不佳的状态下过早地收敛。然而,在共享baseline的情况下,每个轨迹现在都与N−1个其他轨迹竞争,其中没有两个轨迹是相同的。随着异构轨迹数量的增加,所有这些都有助于将baseline设置在正确的水平,过早收敛到次优策略是非常不鼓励的。
3.推理的多贪婪轨迹
CO问题的构造型神经网络模型一般有两种预演模式。
在“贪婪模式”中,使用策略上的argmax绘制单个确定性轨迹。
在“采样模式”中,根据概率策略从网络中采样多个轨迹。
采样解的平均回报可能比贪婪解的回报小,但在计算代价上,采样可以根据需要重复多次。在大量采样解的情况下,可以找到一些奖励大于贪婪-预演的解。
使用多开始节点POMO的方法,就可以产生不止一条而是多条贪婪轨迹。从
N
N
N个不同的节点
{
a
1
1
,
a
1
2
,
.
.
.
,
a
1
N
}
\{ a^1_1,a^2_1,...,a^N_1 \}
{a11,a12,...,a1N}开始,
N
N
N个不同的贪婪轨迹可以被确定的获,得从中选择最佳轨迹,类似于“采样模式”方法。
(1)增加实例
POMO的多贪婪预演方法的一个缺点是,一个人可以利用的贪婪预演的数量
N
N
N不能任意大,因为它被限制为有限个可能的起始节点。然而,在某些类型的CO问题中,可以通过引入实例增强来绕过这个限制。它是POMO核心思想的自然延伸,寻求不同的方法来达到相同的最优解决方案。如果你可以重新制定问题,让机器看到不同的问题,但却得到完全相同的解决方案呢?
例如,可以翻转或旋转二维路径优化问题中所有节点的坐标,并生成另一个实例,从中可以获得更多贪婪的轨迹。
实例增加的灵感来自自监督学习技术,该技术训练神经网络学习旋转图像之间的等价性。对于CV任务,有概念上类似的测试时间增强技术,如“多作物评估”,可以增强神经网络在推理阶段的性能。实例增强技术在CO任务上的适用性和多目标性取决于问题的具体情况,也取决于所使用的策略网络模型。附录中描述了更多关于实例增强的想法。
五、实验
0.基础
(1)注意力模型
注意力模型(AM)很适合POMO,尽管本文强调POMO是一种同样的RL方法,并不绑定到特定结构的策略网络。AM由编码器和解码器两个主要部分组成。大多数复杂的计算发生在多层编码器里,通过编码器,每个节点的信息及其与其他节点的关系被嵌入为一个向量。解码器使用这些向量作为点积注意力机制的
k
e
y
key
key,然后自回归地生成一个解序列。
要应用POMO,我们需要为CO问题的一个实例绘制多个(
N
N
N个)轨迹。这不会影响AM的编码过程,因为无论需要生成多少个轨迹,编码只需要一次。另一方面,AM的解码器需要处理
N
N
N倍于POMO的计算。通过将
N
N
N个
q
u
e
r
y
query
query叠加到一个矩阵中,并将其传递给注意力机制,可以有效地并行生成
N
N
N个轨迹。
(2)问题设置
对于TSP和CVRP,我们解决问题用一个设置在Kool et al.文章中描述的那样。对于0-1 KP,我们跟随Bello et al.的文章里的设置。
(3)训练
对于所有的实验,策略梯度是从一批64个实例中平均出来的。Adam优化器学习率 η = 1 0 − 4 \eta=10^{-4} η=10−4,权重延迟( L 2 L_2 L2正则化) w = 1 0 − 6 w=10^{-6} w=10−6。为了保持所有实验的训练条件简单和相同,我们没有应用衰减学习率,尽管我们建议在实践中使用经过微调的衰减学习率以实现更快的收敛。我们定义一个epoch 100,000个随机生成的训练实例。训练时间因问题的大小而异,从几个小时到一周不等。以TSP100为例,在单个Titan RTX GPU上,一个训练epoch大约需要7分钟。我们已经等待了2000个epoch(~ 1周)来观察完全收敛,大多数学习已经在200个epoch(~ 1天)完成。
(4)推理
我们报告里每个问题的10,000个实例的时间。对于路径问题,我们使用表中列出的坐标转换,
我们尝试了有和无
×
8
\times 8
×8的实例增加。没有实例增加被用于0-1 knapsack(KP),因为没有直接的方法。
自然而然的,Kool et al.已经用带有贪婪预演 baseline的REINFORCE算法训练了AM。两个单独训练的神经网络必须以相同的方式进行评估。由于POMO推理方法从多个答案中选择最好的,即使没有实例增强,这也给了POMO不公平的优势。因此,我们在我们的POMO训练网络上以“单轨迹模式”执行推理,其中随机选择一个起始节点来绘制单个贪婪预演。
请注意,当基于随机实例的小测试集(10,000)时,平均推断结果可能会波动。为了避免读者混淆,我们对表2中TSP结果的一些平均路径长度进行了轻微修改(基于报告的最优性差距),使它们与我们计算的最优值(使用超过10万个样本)一致,TSP20和TSP50分别为3.83和5.69。对于CVRP和KP,抽样误差甚至比TSP更大,因此在这种情况下,我们在结果的表示上更加谨慎。只有当结果表基于相同的测试集时,我们才会在结果表中显示“间隙”。
(5)代码
详见于:Github-POMO
1.旅行商问题
我们采用开始节点( N N N)为20个。结果如上表2所示。POMO在房安置了、效率、稳定性都有很大优势。结合使用多个贪婪的POMO预演和 × 8 \times 8 ×8实例增加,可以将最优性差距(gap)进一步缩小一个数量级。更详细的结果分析见文章原文
2.有能力的车辆路径规划问题
当POMO训练一个策略网络时,理想情况下,它应该只使用“好的”开始节点,从中推出最佳方案。但是,与TSP不同,并非CVRP中所有节点多可以成为最优轨迹的第一步(如上图所示),并且如果不事先知道最优解,就无法确定哪些节点是好的。解决此问题的一种方法是添加一个二级网络,该网络返回POMO使用的最佳开始节点和候选节点。然而,我们将这种方法留给未来的研究,在我们的CVRP实验中。我们简单地使用所有节点作为POMO探索的开始节点,而不管它们是好是坏。
这种应用POMO的简单方法仍然可以成为一个强大的求解器。表3报告了在客户节点为20、50和100的CVRP上的实验结果,POMO的性能大大优于简单的REINFORCE。请注意,目前还没有算法可以在合理的时间内找到10,000个随机CVRP实例的最优解,因此表中的“Gap”值是相对于LKH3结果给出的。POMO在CVRP100中的差距(0.32%)小于CVRP50(0.45%),这可能是由于随着问题规模的增长,LKH3的性能下降速度比POMO更快。
POMO是一种结构性方法,它与别的改善方法结合可以产生更好的结果。
3.0-1背包问题
我们选择KP来证明POMO在路由问题之外的灵活性。与CVRP的情况类似,我们重用TSP的神经网络,并采用简单的方法,使用实例中给出的所有项作为推出的第一步,避免设计额外的、更复杂的“开始节点选择”网络。求解KP时,每一项的权重和值代替TSP每个节点的x坐标和y坐标。当网络生成一个物品序列时,我们将这些物品一个接一个地放入背包中,直到包满,此时我们终止序列生成。
在表4中,POMO结果与基于动态规划的最优解、贪婪启发式的最优解以及我们的PtrNet实现和原始AM方法进行了比较。即使没有实例增强,POMO也极大地提高了从深度神经网络获得的解决方案的质量。
六、结论
POMO是一种基于深度强化学习的纯数据驱动的组合优化方法,它避免了由领域专家手工构建的启发式方法。在训练和推理阶段,POMO利用CO问题的多个最优解的存在,有效地引导自己达到最优。我们用旅行推销员(TSP)、有能力车辆路径(CVRP)和0-1背包(KP)问题对POMO进行了实证评估。对于这三个问题,我们发现与其他结构的深度RL方法相比,POMO在缩小最优性差距和减少推理时间方面达到了最先进的性能。
七、附录
【待补充】
八、参考文献
【待补充】
相关领域
【待补充】