介绍1种适用于广泛的组合优化问题(Combinatorial Optimization,CO)的多优化策略优化(Policy Optimization with Multiple Optima,POMO)方法。POMO使用1种改进的REINFORCE算法,与以前的方法相比,更能抵抗局部极小值。通过解决3个常见的NP难题:旅行推销员(traveling salesman,TSP)、容量限制车辆路径(capacitated vehicle routing,CVRP)和0-1背包(0-1 knapsack,KP),证明POMO算法的有效性。在TSP100上实现了0.14%的最优差距,同时将推理时间减少了一个数量级以上。
论文链接:https://arxiv.org/abs/2010.16011
代码链接:https://github.com/yd-kwon/POMO
一.动机
假设,有个组合优化问题,用1组节点表示,有1个可训练的策略网络参数θ,1个解决方案
,其中第i个动作
可以选择节点
,根据下面公式,遵循随机策略,一次迭代1个节点生成。
其中,s是状态。
二.方法
1.多启动节点探索
POMO首先指定N 个不同的节点作为起始节点。网络通过蒙特卡洛采样N个轨迹解决方案
,轨迹被定义为如下:
2.策略梯度的共享基准
POMO基于REINFORCE算法。采样了1个集合的轨迹解决方案,并计算出每个解决方案
的全部回报
。为了最大化期待收益J ,使用近似的梯度下降法。
其中,
POMO的训练过程如下:
3.推理的多贪婪轨迹
组合优化问题的神经网络模型一般有2种预演模式:在“贪婪模式”中,使用策略上的argmax绘制单个确定性轨迹;在“采样模式”中,根据概率策略从网络中采样多个轨迹。
使用多开始节点的POMO方法,可以产生多条贪婪轨迹。从N个不同的节点开始,可以获得N个不同的贪婪轨迹,从中可以选择类似于“采样模式”方法。N 个贪婪轨迹在大多数情况下优于N个采样轨迹。
实例增强
POMO的多贪婪推理方法的1个缺点是:起始节点的数量N不能无限大。然而,在某些类型的CO问题中,可以通过引入实例增强来绕过这个限制。例如,可以翻转或旋转二维路径优化问题中所有节点的坐标,并生成另1个实例,从中可以获得更多贪婪的轨迹。
实例增强的灵感来自自监督学习技术,该技术训练神经网络学习旋转图像之间的等价性。对于CV任务,有概念上类似的测试时间增强技术,如““multi-crop evaluation””,可以增强神经网络在推理阶段的性能。实例增强技术在CO任务上的适用性和多目标性取决于问题的具体情况,也取决于所使用的策略网络模型。
POMO的推理过程如下:
三.实验
注意力模型
注意力模型(Attention Model,AM)由编码器和解码器2个主要部分组成。大多数复杂的计算发生在多层编码器里,通过编码器,每个节点的信息及其与其他节点的关系被嵌入为一个向量。解码器使用这些向量作为点积注意力机制的key,然后自回归地生成一个解序列。
具体地,需要为CO问题的1个实例绘制N个轨迹。AM的解码器需要处理N 倍于POMO的计算。通过将N个query叠加到1个矩阵中,并将其传递给注意力机制,可以有效地并行生成N个轨迹。
训练
对于所有的实验,策略梯度是64个实例的均值(batch size)。Adam学习率 ,权重延迟(L2 正则化)
。1个epoch 随机生成100,000个训练实例。训练时间因问题的大小而异,从几个小时到一周不等。以TSP100为例,在单个Titan RTX GPU上,训练1个epoch大约需要7分钟。2000个epoch(~ 1周)完全收敛,大多数在200个epoch(~ 1天)完成。
推理
对于路径问题,使用下表中列出的坐标转换。
对于KP问题,则没有进行实例增强。
3.1 旅行商问题
采用开始节点数量N=20。结果如下表所示。
POMO在效率、稳定性都显现出优势。结合使用多个贪婪的POMO推理和实例增加,可以将最优性差距(gap)进一步缩小1个数量级。
3.2 车辆路径规划
与TSP不同,CVRP中不是所有节点都可以成为最优轨迹的第1步(如下图所示),并且如果不事先知道最优解,就无法确定哪些节点是好的。
1种解决方法是添加1个二级网络,该网络返回POMO使用的最佳开始节点和候选节点。然而,在本次实验中,简单地使用所有节点作为POMO的开始节点,而不管它们是好是坏。
下表展示在客户节点为20、50和100的CVRP上的实验结果,POMO的性能优于REINFORCE。
目前还没有算法可以在合理的时间内找到10,000个随机CVRP实例的最优解,因此表中的“Gap”值是相对于LKH3结果给出的。POMO在CVRP100中的差距(0.32%)小于CVRP50(0.45%),这可能是由于随着问题规模的增长,LKH3的性能下降速度比POMO更快。
3.3背包问题
与CVRP的情况类似,重用TSP的神经网络,使用实例中给出的所有项作为第一步,避免设计额外的、更复杂的“开始节点选择”网络。求解KP时,每一项的权重和值代替TSP每个节点的x坐标和y坐标。当网络生成1个物品序列时,将这些物品依次放入背包中,直到包满终止序列生成。
在下表中展示了POMO与SOTA的比较结果。
即使没有实例增强,POMO也极大地提高了从深度神经网络获得的解决方案的质量。