Actor Critic Method

Introduction

actor 是策略网络,用来控制 Agent 去运动,可以把它看作是运动员。critic 是价值网络,用来给动作打分,可以把它看作是裁判

crosscross

下面我们学习 Value Network 和 Policy Network

Value Network and Policy Network

neural_netneural_net

Policy Network (Actor): 𝜋(𝑎|𝑠,𝛉)

actoractor

Value Network (Critic): 𝑞(𝑠,𝑎;𝐰)

criticcritic

这个价值网络和策略网络可以共享卷积层的参数,也可以跟策略网络完全独立。

Train the networks

train_networktrain_network
2020121619310120201216193101

Update value network q using TD

tdtd

Update policy network π using policy gradient

2020121619352420201216193524

Actor-Critic Method

actor_criticactor_critic
  1. Actor

    Policy Network(Actor) 观测到当前状态 S,然后做出动作 a, Actor 做出动作之后,Critic 会根据状态 S 和动作 a 来打一个分数记为 q,并将其告知 Actor,这样 Actor 就有办法改进自己的技术了。

    Actor 要靠 Critic 反馈来改进自己的技术,也就是更新神经网络的参数,它通过 State s, Action a 和 Value q 来近似算出策略梯度,然后做梯度上升来更新自己的参数。

    其实这只是在迎合 Critic 的喜好而已,因此如果想要 Actor 更好,那么 Critic 的水平也要好。

  2. Critic

    critic 靠 reward 来提高打分水平,裁判基于状态 S 和动作 a 来打分,计算出价值 q,可以比较相邻两次 q_{t}、q_{t+1 和 $r_{t},用 TD 算法来更新相邻两次打分,这样可以让裁判打分更精准。

Summary of Algorithm

每一轮迭代进行下面九个步骤,每一轮迭代中只做一个动作,观测一次奖励,更新一次神经网络的参数。

2020121620233120201216202331

如果看论文和教科书,你会发现在其中第九步的 qt 它们常常使用 δt,也就是 TD error. 这两种都是对的。使用 qt 是标准算法,使用 δt 是 policy gradient with baseline,两种都可以用数学推导出来。实际上,使用 policy gradient with baseline 效果更好,因此大家往往使用它。

原因:用或者不用 baseline, 并不影响期望(二者都是一样的),但是用得好的 baseline 可以降低方差,让算法收敛的更快。

Role of Actor and Critic

rolerole

Training

trainingtraining