强化学习(Reinforcement learning)中Actor-Critic算法该如何深入理解?


首先介绍一下OpenAI Gym的Pendulum问题。这是最简单的控制问题之一,适合新手来练习。
强化学习问题几乎都有state、action、reward这几个要素。

Pendulum问题是这样的:state是3维的,可以理解为钟摆的位置和速度action是1维的,在[-2, 2]之间,可以理解为你对钟摆用的力reward是个负数,越接近0越好具体描述参见 openai/gym控制钟摆的程序是这样的:初始化state观测到state,你自己的程序决定做出一个action环境(env)给你返回下一个state和你本次得到的reward循环2、3步

用神经网络举例;实际上你可以用线性函数、kernel等等方法做函数近似。Actor(玩家):为了玩转这个游戏得到尽量高的reward,你需要实现一个函数:输入state,输出action,即上面的第2步。可以用神经网络来近似这个函数。剩下的任务就是如何训练神经网络,让它的表现更好(得更高的reward)。这个网络就被称为actorCritic(评委):为了训练actor,你需要知道actor的表现到底怎么样,根据表现来决定对神经网络参数的调整。这就要用到强化学习中的“Q-value”。但Q-value也是一个未知的函数,所以也可以用神经网络来近似。这个网络被称为critic。

v2-3e2cbfd7ade45a42ae723207ec0cf682_b.png


Actor-Critic的训练。我先通俗解释一下。Actor看到游戏目前的state,做出一个action。Critic根据state和action两者,对actor刚才的表现打一个分数。Actor依据critic(评委)的打分,调整自己的策略(actor神经网络参数),争取下次做得更好。Critic根据系统给出的reward(相当于ground truth)和其他评委的打分(critic target)来调整自己的打分策略(critic神经网络参数)。一开始actor随机表演,critic随机打分。但是由于reward的存在,critic评分越来越准,actor表现越来越好。

v2-d630706e342a9e259b336c6695287a71_b.png


v2-ec118a71811a3527101eff65c2bb8695_r.png
已邀请:

wsry1999

赞同来自: zc0315


建议增加一些最新的内容,包括A3C和DDPG,还有Imitation Learning。如果有可能,再增加些强化学习的应用,比如在量化投资中的应用,谢谢。

要回复问题请先登录注册

返回顶部