深度强化学习的组合优化[1] 综述阅读笔记

Posted 好奇小圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度强化学习的组合优化[1] 综述阅读笔记相关的知识,希望对你有一定的参考价值。

文章目录


前言

此文为文献阅读笔记。
[1]李凯文, 张涛, 王锐, 覃伟健, 贺惠晖, & 黄鸿. (2021). 基于深度强化学习的组合优化研究进展. 自动化学报, 47(11), 17.


零、组合优化问题基础

1. 定义

(1)定义

组合优化问题 (Combinatorial optimization problem, COP)是一类在离散状态下求极值的最优化问题。

(2)常见问题

旅行商问题(Traveling salesman problem, TSP)、
车辆路径问题 (Vehicle routing problem, VRP)、
车间作业调度问题 (Job-shop scheduling)、
背包问题 (Knapsack)、
最小顶点覆盖问题 (Minimum vertex cover, MVC)、
最小支配集题 (Minimum dominating problem, MDP) 等。

2. 方法

(1)精确方法

精确方法 (Exact approaches)采用分而治之的思想通过将原问题分解为子问题的方式进行求解,通过不断迭代求解得到问题的全局最优解。

分支定界法 (Branch and bound)
动态规划法 (Dynamic programming)

(2)近似方法

可以求解局部最优解的方法

近似算法 (Approximate algorithms)
贪心算法、局部搜索算法、线性规划和松弛算法、序列算法。
启发式算法 (Heuristic algorithms)
模拟退火算法、禁忌搜索、进化算法(如遗传算法, 差分进化算法等)、蚁群优化算法、粒子群算法、迭代局部搜索、变邻域搜索等。

(3)深度学习方法

深度神经网络 (Deep neural networks, DNN)

自动地对图像的特征进行学习

深度强化学习 (Deep reinforcement learning, DRL)

根据当前的环境状态做出动作选择, 并根据动作的反馈不断调整自身的策略, 从而达到设定的目标

3. 文章架构

第 1 节概述:对其产生、历史发展、方法分类以及优缺点进行了介绍;
第 2 节基本原理进行介绍;
第 3 节方法综述: 根据方法的不同类别, 对各个算法的原理、优缺点和优化性能进行了对比介绍;
第 4 节应用研究;
第 5 节总结.

一、概述

1. 神经网络

(1)Hopfield 网络

学习并解决单个小规模TSP问题实例。

(2)指针网络Ptr-Net

监督式学习的方式训练该网络并在 TSP问题上取得了较好的优化效果,可以非迭代搜索求解。

(3)图神经网络

与指针网络模型不同的是, 该类方法采用图神经网络对每个节点的特征进行学习

3. 深度强化学习DRL

(1)端到端方法

给定问题实例作为输入, 利用训练好的深度神经网络直接输出问题的解。
求解速度快、泛化能力强,但最优性很难保证。

(2)改进传统方法

求解速度仍然远不及端到端方法。

二、原理

1. Pointer Network

利用编码器 (Encoder) 对组合优化问题的输入序列进行编码得到特征向量, 再利用解码器 (Decoder) 结合Attention 计算方法以自回归 (Autoregressive) 的方式逐步构造解

(1)求解TSP问题

以求解TSP问题为例:

输入为城市坐标,输出为城市的顺序。

(2)Attention机制

u j t = v T tanh ⁡ ( W 1 e j + W 2 d t ) , j ∈ ( 1 , ⋯   , n ) P ( ρ t + 1 ∣ ρ 1 , ⋯   , ρ t , X t ) = softmax ⁡ ( u t ) \\beginaligned & u_j^t=\\boldsymbolv^\\mathrmT \\tanh \\left(\\boldsymbolW_1 \\boldsymbole_j+\\boldsymbolW_2 \\boldsymbold_t\\right), j \\in(1, \\cdots, n) \\\\ & P\\left(\\rho_t+1 \\mid \\rho_1, \\cdots, \\rho_t, X_t\\right)=\\operatornamesoftmax\\left(\\boldsymbolu^t\\right) \\endaligned ujt=vTtanh(W1ej+W2dt),j(1,,n)P(ρt+1ρ1,,ρt,Xt)=softmax(ut)
· d t \\boldsymbold_t dt 译码器当前计算得到的隐状态
· e e e 编码器计算得到的隐状态
· t t t 为第t步
· W \\boldsymbolW W v \\boldsymbolv v 均为神经网络的参数
· j j j 第j个城市节点
· u j t u_j^t ujt 代表在第 t t t 步解码过程中选择城市 j j j 的概率,

在每一步解码过程中, 对于每个城市 j j j, 均可以计算得到其 u j t u_j^t ujt值,此时可以选择具有最大概率值的节点添加到解当中, 按照该方式不断选择城市, 直至构造得到一个完整解.

2. Pointer Network+DRL

强化学习通过试错机制不断训练得到最优策略, 首先需要将组合优化问题建模为马尔科夫过程,其核心要素为状态、动作以及反馈。

(1)求解TSP问题

以TSP问题为例:
p θ ( π ∣ s ) = ∏ n t = 1 p θ ( π t ∣ s , π 1 : t − 1 ) p_\\theta(\\pi \\mid s)=\\prod_n^t=1 p_\\theta\\left(\\pi_t \\mid s, \\pi_1: t-1\\right) pθ(πs)=nt=1pθ(πts,π1:t1)

·状态 s s s为城市的坐标以及已经访问过的城市
·动作为第 t t t 步选择的城市 π t \\pi_t πt, 所有动作组成的城市访问顺序 π \\pi π 即为组合优化问题的解
·反馈 r r r 是路径总距离的负数, 即最小化路径长度
·策略即为状态 s s s 到动作 π \\pi π 的映射, 策略通常为随机策略, 即得到 的是选择城市的概率 p θ ( π ∣ s ) p_\\theta(\\pi \\mid s) pθ(πs)

(2)REINFORCE强化学习算法

又名 基于蒙特卡洛的策略梯度方法:不断执行动作直到结束, 在一个回合结束之后计算总反馈, 然后根据总反馈对策略的参数进行更新

以TSP问题为例,总反馈为总路径长度的负数 − L ( π ) -L(\\pi) L(π)
∇ L ( θ ∣ s ) = E p θ ( π ∣ s ) [ ( L ( π ) − b ( s ) ) ∇ ln ⁡ p θ ( π ∣ s ) ] θ ← θ + ∇ L ( θ ∣ s ) \\beginaligned & \\nabla \\mathcalL(\\theta \\mid s)= \\mathrmE_p_\\theta(\\pi \\mid s)\\left[(L(\\pi)-b(s)) \\nabla \\ln p_\\theta(\\pi \\mid s)\\right] \\\\ & \\theta \\leftarrow \\theta+\\nabla \\mathcalL(\\theta \\mid s) \\endaligned L(θs)=Epθ(πs)[(L(π)b(s))lnpθ(πs)]θθ+L(θs)

· p θ ( π ∣ s ) p_\\theta(\\pi \\mid s) pθ(πs) 为每步动作选择概率的累乘, 则 ln ⁡ p θ ( π ∣ s ) \\ln p_\\theta(\\pi \\mid s) lnpθ(πs) 计算为每步动作选择概率对数的求和, 以该值对参数 θ \\theta θ 计算偏导可得梯度值 ∇ ln ⁡ p θ ( π ∣ s ) \\nabla \\ln p_\\theta(\\pi \\mid s) lnpθ(πs)
· ( L ( π ) − b ( s ) ) (L(\\pi)-b(s)) (L(π)b(s)) 决定了梯度下降的方向
· b ( s ) b(s) b(s) 代表策略的平均表现 (Baseline), 如果当前策略的表现比 “平均”好, 则对该策略进行正向激励, 反之亦然

·有多种方式对 b ( s ) b(s) b(s) 进行估计, 运用较多的方法是新增一个 Critic 神经网络计算 b ( s ) b(s) b(s), 即给定 一个 TSP 问题 s s s, 利用 Critic 神经网络估计该问题解的路径长度. Critic 网络与策略网络同步进行训练, 以策略网络训练过程中产生的 ( s , L ( π ) ) (s, L(\\pi)) (s,L(π)) 作为训练集对 Critic 进行训练

3. 图神经网络

根据每个节点的原始信息 (如城市坐标) 和各个节点之间的关系 (如城市之间的距离), 利用图神经网络方法计算得到各个节点的特征向量, 根据各个节点的特征向量进行节点预测、边预测等任务

(1)图定义

图一般被定义为:
G = ( V , E ) G=(V, E) G=(V,E)
· V V V为节点集合
· E E E为边集合

不断学习节点的、邻居节点、边的特征,并进一步聚合,得到每个节点的特征向量,根据各个节点的特征向量完成预测、分类等任务

(2)经典GNN

以经典GNN为例:

h v ( t ) = ∑ u ∈ N ( v

以上是关于深度强化学习的组合优化[1] 综述阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

深度强化学习的组合优化研究进展

基于深度学习的表面缺陷检测方法综述-阅读笔记/摘抄

综述 | 多智能体深度强化学习

综述 | 多智能体深度强化学习

收藏 | 新南威尔士首篇《深度强化学习推荐系统》综述论文!

论文阅读强化学习与知识图谱关系路径发现