实例增强技术

内容分享2小时前发布
0 0 0

A 实例增强技术详解总结

实例增强是POMO论文中提出的一项推理阶段的增强技术。其核心思想是:通过对同一个问题实例进行某种变换,生成多个“视角”不同但数学上等价的新实例,进而引导模型产生多样化的解,最终从中择优,以提升解的质量。

该技术并非POMO训练方法的附属品,而是一个独立的、强大的、可移植的模块。


一、 核心原理:为什么需要实例增强?

突破模型的“思维定势”:一个训练好的神经网络在解决一个问题时,往往会固守其学习到的某种特定模式。例如,在TSP中,它可能总是倾向于从某个特定区域开始构建路径。这种“定势”可能让它错过更优的解。

exploiting Symmetries:许多组合优化问题(如TSP)天然存在对称性。一个最优解可以有多种不同的序列表示(例如,顺时针或逆时针遍历同一个环)。实例增强是主动利用这种对称性来生成更多候选解的方法。

从“单一尝试”到“集体智慧”:传统的推理是让模型对一个问题进行一次求解。实例增强相当于让模型对同一个问题的多个“变体”进行求解,然后汇集所有结果,选出最好的一个,本质是一种高效的集成方法。


二、 具体方法:如何实现实例增强?

1. 坐标变换 – 主要用于TSP、CVRP等基于欧几里得距离的问题

这种方法适用于节点在二维平面内有坐标的问题。

合规变换

操作:在保持所有坐标仍在单位正方形 
[0,1]×[0,1]
 范围内的前提下进行变换。论文实验使用了8种特定变换,包括:

恒等变换:
(x, y)

翻转:
(1-x, y)

(x, 1-y)

(1-x, 1-y)

坐标轴互换:
(y, x)

(1-y, x)

(y, 1-x)

(1-y, 1-x)

特点:生成的新实例完全符合模型训练时的数据分布,是安全可靠的。

非合规变换

操作:跳出单位正方形的限制,进行小幅度的旋转、平移或缩放。例如,将所有点绕中心
(0.5,0.5)
旋转10度。

原理:尽管变换后的坐标可能超出模型训练所见范围,但只要模型具备一定的泛化能力,它仍然能为此“新”实例生成一个有效的路径序列。这个序列映射回原始坐标后,可能是一个更优的解。

哲学:为了找到更好的解,我们不必拘泥于严格的“合规性”,可以大胆尝试,只要时间预算允许。

2. 输入顺序重排 – 主要用于对输入顺序敏感的模型

目标模型:RNN、LSTM或使用了位置编码的Transformer等模型,其输出会受输入数据排列顺序的影响。

操作:简单地随机打乱输入节点的顺序。对于一个有N个节点的问题,理论上可以产生
N!
种不同的输入顺序,从而让模型产生大量不同的解。

在POMO中的应用:由于POMO使用的Attention Model对输入顺序不敏感(无位置编码),此方法在本文中未直接使用,但被指出是一种潜力巨大的通用增强思路。


三、 关键验证:实例增强是POMO独有的吗?

不是! 这是附录A通过消融实验证明的核心论点。

实验设计:将相同的 
×8
 坐标变换增强,应用在未经过POMO训练的原版AM模型上(该模型使用标准REINFORCE+贪婪基线训练)。

惊人发现

对于TSP,使用
×8
实例增强(从8个变换实例中各取1个贪婪解)得到的效果,接近于从原始实例中采样1280次再选优的效果。

这意味着,仅用8次前向传播,就达到了1280次采样才能达到的精度,而计算时间仅从“分钟级”增加到“秒级”。

核心结论:实例增强是一种通用、高效、即插即用的推理增强技术。它可以独立于POMO,直接用于提升其他深度强化学习求解器的性能。


四、 总结与价值

定位:实例增强是POMO框架中的一个独立推理模块,与POMO的多起点训练方法相辅相成,共同构成了强大的求解系统。

优势

极高效:用极少的计算成本(少量贪婪解)获得相当于大量随机采样才能达到的性能提升。

通用性强:不依赖特定训练方法,可轻松集成到其他模型中。

实用价值高:几乎不增加模型复杂度,却能显著降低最优性差距,是实践中提升模型表现的“法宝”。

意义:它代表了组合优化领域一个重要的思想转变——从依赖模型的单次输出,转向通过主动制造多样性来引导模型发挥其最大潜力。

旅行商问题部分详细解释

该部分主要明确了POMO方法在解决TSP时的问题设置、策略网络的具体修改以及超参数配置


一、 问题设置

这是一个非常标准的TSP定义:

目标:寻找一条访问所有 
N
 个城市恰好一次并返回起点的最短回路

城市位置:每个城市的坐标 
(x, y)
 在单位正方形 
[0, 1) x [0, 1)
 内随机均匀采样生成。

距离度量:使用欧几里得距离(即直线距离)计算两个城市之间的距离。

这为所有实验提供了一个统一、公平且可复现的测试基准。


二、 策略网络

POMO 使用了 Kool 等人提出的 Attention Model (AM) 作为其策略网络,但对其解码器 进行了关键性修改,以适应其多起点的核心思想。

1. 编码器 – 保持不变

编码器负责将每个城市的坐标转换为一个高维嵌入向量 
h_i

所有城市的嵌入向量通过求平均得到一个图嵌入向量 
~h
,它概括了整个问题实例的全局信息。

关键点:对于同一个问题实例,编码器只需要运行一次,无论后续要生成多少条(N条)轨迹。这大大节省了计算成本,因为编码器是AM模型中计算量最大的部分。

2. 解码器 – POMO的核心修改
解码器负责自回归地生成路径。POMO对解码器的修改体现在 “上下文节点嵌入” 的构建上。

原始AM的解码器(使用START令牌)

在第一步 (
t=1
),它使用一个可训练的START令牌作为上下文,让网络输出第一个要访问的城市。

上下文定义为:
h_c = [~h, v^1, v^l]
,其中 
v^1
 和 
v^l
 是可训练参数。

这迫使网络学习如何选择第一个城市

POMO的解码器(摒弃START令牌)

POMO摒弃了START令牌。在第一步 (
t=1
),它不运行解码器来计算第一个动作。

相反,它直接指定每个城市的嵌入向量作为对应轨迹的第一个节点。

h_{π_1}^i = h_i
 for 
i = 1, 2, ..., N

这意味着,第一条轨迹从城市1开始,第二条从城市2开始…第N条从城市N开始。

从第二步 (
t > 1
) 开始,才使用解码器。此时每条轨迹 
i
 的上下文嵌入为:

h_c^i = [~h, h_{π_{t-1}}^i, h_{π_1}^i]

其中:


~h
:全局图嵌入(与所有轨迹共享)


h_{π_{t-1}}^i
:上一步访问的城市嵌入(当前状态)


h_{π_1}^i
轨迹的起始城市嵌入(这是关键,它让每条轨迹铭记自己的起点,从而保持独特性)

这个修改的意义

强制多样性:通过指定不同的起点,POMO确保了在每一步,N条轨迹的上下文嵌入都是不同的,从而引导模型探索不同的决策路径。

并行化:由于所有N条轨迹的上下文可以组成一个矩阵一次性输入解码器,POMO能够利用现代硬件的并行计算能力,高效地同时生成所有轨迹。

下图直观展示了POMO与原始AM在解码器第一步操作上的核心区别:

实例增强技术


三、 超参数

这一部分列出了所有实验中使用的一致网络结构参数,确保了不同问题之间比较的公平性。

节点嵌入维度
d_h = 128
(每个城市用一个128维向量表示)

编码器层数
N_layer = 6
(使用6层注意力层)

注意力机制

头数 
M = 8

键/值/查询的维度 
d_k = d_v = d_q = d_h / M = 16

前馈网络维度
d_ff = 512
(每个注意力层中的全连接子层)

重要提示:这些相同的超参数也被用于CVRP和KP实验,强调了POMO作为一种通用方法,无需为每个问题精心调整网络结构。

总结

附录B “Traveling salesman problem” 揭示了POMO在TSP上取得成功的工程实现细节

明确的基准:定义了标准化的TSP测试环境。

巧妙的网络修改:通过摒弃START令牌直接指定多起点,对AM解码器进行了最小但至关重要的改动,实现了多轨迹并行探索。

高效的并行架构:利用“一次编码,多次解码”和注意力机制的并行性,使得同时生成大量轨迹的成本非常低。

统一的配置:使用一套固定的超参数解决不同规模的问题,证明了其鲁棒性和通用性。

这部分内容清楚地表明,POMO并非一个完全新颖的网络结构,而是一个新颖的训练和推理范式,它可以巧妙地植入到现有的先进网络架构(如AM)中,并激发出其更大的潜力。

C 带容量约束的车辆路径问题详解

CVRP是TSP的泛化,增加了车辆容量客户需求的约束,因此POMO的应用需要相应的调整。

一、 问题设置

CVRP的问题定义包含以下要素:

节点

1个 Depot(仓库):车辆路径的起点和终点。其坐标在单位正方形内随机生成。

N个客户节点:坐标同样在单位正方形内随机生成。

需求

每个客户节点 
i
 有一个需求 
δ_i'


δ_i'
 从一个离散集合 
{1, 2, ..., 9}
 中均匀随机采样

为了标准化,需求会被归一化:
δ_i = δ_i' / D

容量参数 D


N=20
 时,
D=30


N=50
 时,
D=40


N=100
 时,
D=50

因此,车辆的有效容量被设为1。这意味着车辆装载的货物总量不能超过1。

车辆与路径

一辆容量为1的车辆从仓库出发,服务一系列客户,满足其需求,并在货物耗尽时返回仓库补货,然后再次出发,形成多条子路线。

不允许拆分交付:每个客户必须被且仅被访问一次。

目标

找到一组有效的路径,满足所有客户需求,且总行驶距离最短

二、 策略网络的调整

将POMO应用于CVRP的关键挑战在于:起点不再是任意且对称的。在CVRP中,所有路径必须从仓库开始

原始AM方法:将仓库节点作为START令牌输入网络,让网络选择第一个要访问的客户

POMO的调整

POMO利用了CVRP解的另一个层面的对称性:虽然路径必须从仓库开始,但第一个访问的客户可以是任何一个

因此,POMO在CVRP中将第一个客户作为“起点”

具体实现:POMO生成 
N
 条轨迹,每条轨迹分别以一个不同的客户节点作为第一个访问的客户。仓库被隐式地视为所有路径的真正起点。

这意味着在CVRP中,POMO探索的是以不同客户作为“首站”的路径方案。

三、 关键工程挑战与解决方案:轨迹长度不等

在TSP中,所有轨迹的长度都是固定的(N个节点)。但在CVRP中,由于车辆多次返回仓库,不同路径方案所访问的序列总长度(包括仓库的多次访问)是不同的

问题:为了在GPU上进行高效的并行计算,我们需要所有轨迹在同一个张量中,并且长度一致。

解决方案:论文采用了一种巧妙的填充 策略。

当一条轨迹的车辆已经完成所有交付后,我们强制它停留在仓库,并以概率1选择“停留在仓库”这个动作,直到所有其他轨迹也结束。

数学解释:在策略梯度计算中,一个动作的概率为1,其对数概率的梯度 
∇log(1) = 0
。因此,这些填充步骤对策略梯度没有任何贡献,不会影响学习过程。

对解的影响:这些填充步骤只是计算上的占位符,它们不改变路径的实际长度,因为车辆在完成所有交付后就已经停止服务了。

这个解决方案确保了所有轨迹在张量操作中具有相同的长度,同时不影响梯度计算和最终解的质量,是实现并行化的关键。

四、 解码器上下文修改

与TSP类似,CVRP的解码器上下文也需调整以包含起点信息。对于CVRP,上下文嵌入为:


h_(c)^i = [~h, h_(π_{t-1})^i, h_(π_1)^i, h_depot]

其中:


~h
:全局图嵌入(所有节点和仓库)。


h_(π_{t-1})^i
:上一步访问的节点嵌入。


h_(π_1)^i
该轨迹的第一个客户节点嵌入(POMO多样性的来源)。


h_depot
仓库节点的嵌入(在CVRP中至关重要,因为车辆需要频繁返回仓库)。

这个上下文向量为网络提供了做出下一步决策所需的全部信息:全局状态、当前状态、路径的起点记忆以及仓库的位置。


总结与核心要点

问题泛化:CVRP在TSP基础上引入了容量约束需求,问题更复杂,解的结构是多条子路径的集合。

POMO的适应性调整

起点重新定义:从“任意节点”调整为“任意客户作为第一个访问点”,巧妙地利用了CVRP中存在的另一种对称性。

网络上下文增强:在上下文向量中显式加入了仓库嵌入 
h_depot
,这对于模型学习何时返回仓库至关重要。

关键的工程创新

轨迹等长化:通过填充并使填充步骤的梯度为零,解决了CVRP中轨迹长度不等的并行计算难题。这是一个非常实用且高效的解决方案。

灵活性:尽管CVRP有固定起点(仓库),POMO通过关注第一个客户的选择,依然成功地应用了其多最优解探索的核心思想,并在实验中取得了显著优于基线方法的效果。

通过这个附录,我们可以看到POMO框架并非僵化不变的,它能够通过巧妙的调整和工程实现,灵活地应用于结构不同的组合优化问题,这体现了其作为通用RL方法的强大潜力。

D. 0-1背包问题详解

这一部分的核心在于问题转换工程适配

一、 问题设置

0-1背包问题的定义如下:

物品:共有 
N
 个物品。

属性:每个物品 
i
 有一个重量 
w_i
 和一个价值 
v_i
。这两个值均在 
(0, 1)
 范围内随机采样生成。

背包:有一个容量限制。


N=50
 时,容量 = 12.5


N=100
 时,容量 = 25


N=200
 时,容量 = 25

目标:选择一个物品子集,使得其总价值最大化,同时总重量不超过背包容量

二、 策略网络的适配:巧妙的“形式重用”

这是本部分最精彩之处。POMO没有为KP设计新网络,而是直接重用了为TSP设计的Attention Model (AM)

1. 输入映射:将物品映射为“节点”

在TSP中,每个节点的输入是一个坐标 
(x, y)

在KP中,每个物品被表示为一个元组 
(重量, 价值)
,即 
(w_i, v_i)

逻辑:虽然物理意义不同,但两者的数学形式都是 
R^2
 空间中的一个点。因此,TSP网络的编码器可以自然地处理KP的物品数据,学习物品的特征嵌入。

2. 解序列的重新解释:将“访问”映射为“装入”

在TSP中,模型输出一个节点序列,表示访问顺序。

在KP中,模型同样输出一个物品序列。这个序列被解释为依次将物品放入背包的顺序

动作:选择下一个物品放入背包。

状态:已装入物品的集合、背包的剩余容量。

3. POMO起点的应用

与TSP和CVRP类似,POMO在KP中也使用多起点策略。

每条轨迹强制从一个不同的物品开始其“装入序列”。

这允许模型探索以不同物品为核心的各种打包策略。

三、 关键修改与约束处理

直接将TSP模型用于KP会遇到几个核心问题,附录D详细说明了解决方案。

1. 掩码机制的增强
在TSP中,掩码很简单:已经访问过的节点不能再被选择。
在KP中,掩码需要处理两种情况:

已选物品:已经被放入背包的物品不能再选。

超重物品:当前剩余容量无法容纳的物品也不能选。
在每一步,网络都会计算所有物品的选择概率,但会将上述两类物品的概率置零,确保策略只从有效物品中采样。

2. 序列终止条件

TSP:当所有节点都被访问后,序列终止。

KP:序列在以下情况终止:

背包已满(不能再放入任何物品)。

所有剩余物品的重量都超过了背包的当前剩余容量。
为了适应KP的动态终止特性,推理过程需要实时检查终止条件,而不是像TSP那样固定步数。

3. 并行化的挑战与解决方案:辅助物品

问题:与CVRP类似,KP中不同轨迹的序列长度(装入的物品数量)也不同。这破坏了并行计算所需的等长张量结构。

解决方案:引入辅助物品

这些辅助物品具有零价值零重量

当一条轨迹提前终止(背包已满或无法再装入任何物品)时,模型将被迫“选择”这些辅助物品,直到所有轨迹都达到最大步长 
N

与CVRP中的仓库停留类似,选择这些无效物品对最终解没有影响,但维持了张量形状的统一。

四、 训练算法的修改

这是唯一一个需要修改核心算法逻辑的部分,但改动很小:

TSP的奖励:目标是最小化路径总长度。因此,在REINFORCE算法中,使用 
负的路径总长度
 作为奖励 
R(τ)
。这样,最大化期望奖励就等价于最小化路径长度。

R(τ)_TSP = - (Tour Length)

KP的奖励:目标是最大化背包中物品的总价值。因此,直接使用 
总价值
 作为奖励 
R(τ)


R(τ)_KP = (Total Value)

这个修改直观且必要,确保梯度上升过程直接优化KP的目标函数。


总结与核心要点

泛化性的终极体现:KP部分强有力地证明了POMO不是一个专门的路径规划器,而是一个通用的序列决策框架。只要一个问题能被形式化为序列生成问题,POMO就有用武之地。

最小化修改原则

核心网络结构:直接重用TSP的AM,无需重新设计。

POMO多起点机制:直接应用,无需改变。

主要改动点:集中在问题特定的约束处理上,包括:

掩码逻辑:处理KP的容量约束。

终止条件:适应KP的动态结束。

奖励函数:匹配KP的优化目标(最大化价值)。

并行化技巧:使用辅助物品维持等长序列。

工程实现的重要性:附录D揭示了将理论方法应用于实际问题时,工程细节(如掩码、序列终止、张量并行化)往往是成功的关键。“辅助物品”这类技巧,虽然简单,但对于实现高效训练至关重要。

通过这一部分,我们看到了POMO如何以一种优雅且高效的方式,跨越了不同的问题领域,为其“适用于广泛的组合优化问题”这一主张提供了坚实的证据。

E. 我们的原始AM实现详解总结

这一部分是对实验方法论的澄清和补充说明,解释了为什么论文中报告的原始AM(Attention Model)基线结果与Kool等人原论文中的结果存在差异,并详细说明了实现细节。


一、 核心目的:确保公平比较

作者强调,为了进行公平、可控的对比实验,他们重新实现了原始AM,并对POMO使用的AM进行了完全相同的架构和训练设置,唯一的区别就是训练算法(POMO vs 原始REINFORCE+贪婪基线)。

二、 主要实现差异与改进

以下是作者在其实现中做出的关键修改,这些修改导致了性能的轻微提升:

1. 更长的训练时间与收敛性

原论文做法:可能训练了固定轮数或较早停止。

本实现做法持续训练直到观察训练曲线完全收敛。这意味着使用了更多的训练数据和时间,让模型充分学习。

影响:这是性能提升的最主要原因,避免了模型欠拟合。

2. 简化的Critic网络更新策略

原论文做法:包含一个额外的逻辑,会评估Critic(基线网络)的性能,只有当其表现足够好时才更新。

本实现做法在每个训练周期后,无论性能如何,都无条件更新Critic网络

影响:这是一个更简单、更稳定的策略。移除了可能引入不稳定性的启发式规则,可能使训练过程更加平滑。

3. 更深的网络结构

原论文做法:编码器使用 
N_layer = 3
 个注意力层。

本实现做法:编码器使用 
N_layer = 6
 个注意力层。

原因:为了确保与POMO-trained的AM进行架构层面的公平比较。POMO实验使用了6层,因此基线也必须使用相同的6层结构。

影响:更深的网络通常具有更强的表示能力,这可能带来性能提升。

4. 固定的批次大小

原论文做法:可能根据问题调整批次大小。

本实现做法对所有问题(TSP, CVRP, KP)统一使用批次大小256

影响:统一了训练配置,简化了实验设置。

5. 一次性的学习率衰减

原论文做法:未明确说明使用学习率衰减。

本实现做法:当模型收敛后,执行一次性的学习率衰减(乘以0.1),并继续训练少量周期。

影响:这有助于模型微调,收敛到更优的局部最优点。


三、 总结与意义

透明度与可复现性:这一部分体现了学术研究的严谨性。作者没有隐藏其实现细节,而是公开说明了所有修改,便于其他研究者复现结果。

对比的公平性:通过统一网络结构、训练时长和超参数,作者确保了POMO与原始AM之间的性能差异主要归因于训练算法本身(POMO),而不是其他无关变量。

更强的基线:通过上述改进,作者实际上创建了一个更强大的基线模型。这使得POMO在实验中能够击败这个“强化版”的原始AM,其结果的说服力更强。如果POMO只能击败一个较弱的基础实现,其贡献将大打折扣。

工程细节的重要性:它强调了在深度强化学习研究中,实现细节(如训练周期、更新策略、学习率调度)对最终性能有显著影响。一个算法的报告结果往往是“算法思想”和“工程技巧”共同作用的结果。

Ps:Ai生成回答,仅用阅读POMO时于理解

© 版权声明

相关文章

暂无评论

none
暂无评论...