Page 25 - 《软件学报》2021年第12期
P. 25

阳名钢  等:求解二维装箱问题的强化学习启发式算法                                                        3689


             本文的网络模型如图 3 所示,该模型由两个部分组成.首先,嵌入层(embedding)对输入的序列嵌入映射成 D
         维的向量空间,使用的是一维卷积层对输入进行嵌入;右边是解码器保存序列的信息,它将利用注意力机制将解
         码器的隐藏状态和嵌入的输入指向一个输入元素.














                                            Fig.3   Network model
                                            图 3   网络模型示意图
             设输入集为 X={x i ,i=1,…,N},其中,x i =(w i ,h i )是个元组,表示每个物品的宽度和高度.X t 表示在 t 时刻所有输入
         的状态集合.从任意的输入 X 0 开始,使用指针 y 0 指向该输入,每一次解码时刻 t,y t+1 将指向当前可用的输入 X t 中
         的一个,并将其作为下一个解码器的输入.如此重复,直到所有的序列都被输出.整个过程将产生一个装箱序列,
         高度同输入相等为 N,Y={y t ,t=1,…,N}.模型是要找到随机策略π,使得在满足问题约束的同时最小化损失目标的
         方式生成序列 Y.我们要做的就是:使得π尽量的接近最优解π′,尽量以百分百的概率生成最优解.使用概率链规
         则分解生成序列 Y 的概率 P(Y|X 0 )表示如下:
                                                  T
                                               ) =
                                         PY    0 ∏   ( P y t+ 1  | ,Y X t )                   (1)
                                          (| X
                                                          t
                                                  t= 0
             在解码器的每一步,使用注意力机制生成下一个输入的概率分布.设 x 是嵌入式输入 i,h t 是解码器在 t
                                                                     it
         时刻隐藏层的状态,对齐向量 a it 表示输入的序列在下一个解码时刻 t 中的相关程度,公式如下:
                                              a it =softmax(e it )                            (2)
                                           e =  v T  tanh(W  [ ; ])x h                        (3)
                                            it  a     a  it  t
             这里的对齐模型采用 concat 映射,“;”表示拼接两个向量.上下文向量 c t 计算公式如下:
                                                t ∑
                                               c =  N  a x                                    (4)
                                                      it it
                                                   i= 1
             结合 c t 和嵌入式输入,然后使用 softmax 函数归一化结果可得:
                                           ( P y t+ 1  | ,Y X =  softmax ( )e it              (5)
                                                   )
                                                t
                                                  t
                                            e =  v c T  tanh(W c [ ; ])x c t                  (6)
                                            it
                                                        it
               T
               ,
         其中, vv  c T ,W a ,W 是训练参数.
               a
                      c
         2.3   模型训练
         2.3.1    Actor-Critic
             为了训练网络模型,本文采用强化学习的方法.我们使用基于策略梯度的强化学习来优化网络参数θ.策略
         梯度的思路是:使奖励越大的动作出现的概率变大,通过反复训练,不断地调整网络参数.本文选择 Actor-Critic
         的方法来训练网络,相比传统的策略梯度下降方法,它有以下优点:(1) Actor-Critic 使用了策略梯度的方法,可以
         在连续动作或者高维的动作空间中选择适合的动作,采用值函数的方法是做不到的;(2) Actor-Critic 相比单纯的
         策略梯度的方法,它结合 Q-learning 的做法,使得 Actor-Critic 可以做到单步更新,比起单纯的策略梯度的回合更
         新效率更高.
             Actor-Critic 是由两个网络 Actor(执行者网络)和 Critic(评论者网络)组成,如图 4 所示.Actor 网络是基于概
   20   21   22   23   24   25   26   27   28   29   30