主页 > 开源代码  > 

20250217-POMO笔记

20250217-POMO笔记

文章目录 前言一、伪代码一:POMO Training二、伪代码二:POMO Inference三、POMO注意力模型3.1、自注意力机制3.2、AM模型


前言

以下主要讲解两个算法的伪代码以及注意力模型。


一、伪代码一:POMO Training

POMO Training是POMO模型训练的伪代码。具体如下: 该算法的输入信息包括训练集S,每个样本起始节点的个数N,训练步骤的数量T,批量大小B。 初始化策略网络的参数 θ \theta θ。 在训练循环中共进行T次训练。 从训练集S中采样输入数据 s i s_i si​其中i为批次数,批量大小为B。注: s i s_i si​是一组数据。 在每一个样本 s i s_i si​中选择N个起始节点,使用策略网络依据样本 s i s_i si​所对应的每一个起始节点和样本数据 s i s_i si​生成共计N个轨迹。 计算每一个样本 s i s_i si​的平均奖励 b i b_i bi​,其就是N条轨迹奖励的平均值。 计算目标函数 J ( θ ) J(\theta) J(θ)的梯度。再根据计算出的梯度更新策略网络的参数 θ \theta θ。


二、伪代码二:POMO Inference

该伪代码描述了如何使用已经训练好的策略网络进行推理。推理的目的是通过已训练的策略网络来选择最优的轨迹。具体如下: 算法输入为:输入数据s,策略 π \pi π,起始节点数N,和变换次数K。 将输入数据进行“augment”生成多个样本(常用的“augment”为,将节点坐标根据坐标轴进行对称反转),这里生成K个变种样本。 在每个样本中选取N个起始节点,对每个样本 s k s_k sk​和起始节点 α k j \alpha^j_k αkj​进行贪婪轨迹生成,得到N个轨迹。 选取最大奖励的轨迹,其为输出的最佳轨迹。


三、POMO注意力模型 3.1、自注意力机制

自注意力机制的任务是通过计算每个输入元素之间的相似度来动态地调整其表示。对于每个元素(单词),通过查询(Query)、键(Key)和值(Value)来计算其与其他元素的关系,并生成一个加权的输出。

在编码器中,自注意力计算过程的步骤如下:

对于每个输入元素,计算其对应的查询(Query)、键(Key)和值(Value)向量。计算查询和所有键的点积得到注意力分数,反映了每个元素对其他元素的关注程度。使用Softmax对分数进行归一化,得到权重。用这些权重加权每个值向量(Value),得到新的表示。

自注意力机制本质上是对值根据权重进行新的表示,这里的权重表达的含义是节点与节点之间的关系。

3.2、AM模型

POMO使用的注意力模型是AM模型。它主要由两部分组成:编码器和解码器。 AM模型中的编码器并不受POMO生成N条轨迹所影响。因为要生成N条轨迹所以解码器需要进行改动,将N个查询(queries)整合为一个单一的矩阵,将其传递给注意力机制进行并行处理。

标签:

20250217-POMO笔记由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“20250217-POMO笔记