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

3690                                Journal of Software  软件学报 Vol.32, No.12, December 2021

         率选择动作,Critic 网络基于 Actor 网络选择的动作评价动作的优劣,Actor 网络根据 Critic 网络的评价修改行为
         的概率.它将值函数和策略梯度两种强化学习算法优点结合,使得算法可以处理连续和离散的问题,还可以进行
         单步更新.














                                       Fig.4    Actor-Critic network structure
                                          图 4   Actor-Critic 网络结构

             设 Actor 网络为π(s),则其网络参数θ的梯度公式表示如下:
                                        1  N
                                    dθ      (R − ∑  n  V (X ω =  0 n ; )) ∇  θ log ( P Y n  | X 0 n )  (7)
                                        N  n= 1
         其中,ω是 Critic 网络 V(s)的网络参数,它的网络参数梯度公式如下:
                                             1  N
                                         dω     ∇ =  ω (R − ∑  n  V  (X ω  0 n ; )) 2         (8)
                                             N  n= 1
                                                                           n
             在公式(7)和公式(8)中:N 是样本实例,R n 表示第 n 个样本实例获得的奖励值, X 表示第 n 个样本实例所有
                                                                           0
         输入的状态集合, (VX     0 n ; )ω 是 Critic 网络的输出.R n 是当前获得的奖励值,由启发式算法根据网络输出序列计算
                                            n
         获得. R − V (X 0 n ; )ω 是优势函数,它表示在 X 的状态下采取动作的优劣.如果优势函数的结果是正的,则会增加
                                            0
               n
         该动作出现的概率,否则降低概率.
             Actor-Critic 的算法流程如算法 2.2 所示,我们使用θ和ω分别表示是 Actor 和 Critic 的网络参数.在第 4 行,
         我们将样本分成 N 输入网络;  第 7 行~第 10 行是使用简化的指针网络以及注意力机制获得下一个输出的概率
         分布,每次选择一个物品,停止的条件是当所有物品都被输出.第 11 行计算该输出的奖励值,R(⋅)是奖励计算函
         数,也就是算法 1.1 计算装箱的高度将作为奖励信号 R n .第 12 行、第 13 行将计算相应的奖励以及策略梯度.最
         后,根据计算的梯度更新两个网络.Critic 网络将使用 Actor 网络输出的概率分布来计算嵌入式输入的加权和.该
         网络具有两个隐藏层:第 1 层是使用 relu 激活函数的稠密层,另一个是具有单个输出的线性层.最后对两个网络
         进行更新.
             算法 2.2. Actor-Critic 算法流程.
             1    initializes the network parameters θ,ω for actor and critic
             2   while the stop criterion is not satisfied do
             3      reset gradients: dθ←0 and dω←0
             4      divide the sample into N groups
             5     for n=0←N−1 do
             6        t←0
             7        while the stop condition is not satisfied do
                                                           n
                           n
                                                            ,
                                                     (
             8         choose  y t+ 1    according to the distribution  Py t+ n 1  |Y X t n )
                                                           t
                                   n
             9         observe new state  x t+ 1
             10        t←t+1
   21   22   23   24   25   26   27   28   29   30   31