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