AC算法:Actor-Critic方法在强化学习中的应用

释放双眼,带上耳机,听听看~!
本文介绍了AC算法在强化学习中的应用,包括策略网络和价值网络的构建、神经网络的训练过程以及AC算法的整体流程。

本文正在参加「金石计划」

导语

本系列笔记为b站Shusen Wang老师的强化学习课程笔记,整体按照老师讲课的思路来记录。本节课主要介绍AC算法。

Actor-Critic方法

Actor是策略网络,用来控制Agent运动,可以把它看做是运动员;Critic是价值网络,用来给动作打分,可以把它看做是裁判。这节课的内容是构造这两个神经网络,然后通过环境给出的奖励来学习这两个网络。AC方法实际上就是前两节所讲的方法的结合。

AC算法:Actor-Critic方法在强化学习中的应用

首先来看一下如何构造Value Network和Policy Network。

我们先来回顾一下State-value Function的近似,由于π(a∣s),Qπ(s,a)pi(a|s), Q_{pi}(s,a)这两个函数我们都不知道,所以我们可以使用两个神经网络来近似这两个函数,然后用AC方法同时学习这两个神经网络。

可以这样理解:Actor是一个运动员,可以做动作;如果他想让自己做的更好,就需要不断改进自己的技术。可是,它并不知道如何改进自己。这就需要裁判Critic来给运动员打分,这样运动员就知道什么样的动作得分高。

使用策略网络和价值网络分别近似π(a∣s),Qπ(s,a)pi(a|s), Q_{pi}(s,a)
AC算法:Actor-Critic方法在强化学习中的应用

我们来搭建这两个网络,首先是策略网络Actor,结构与之前类似:

AC算法:Actor-Critic方法在强化学习中的应用

然后是价值网络,它的输入由两部分:一部分是当前的状态s,由卷积层进行特征提取;另一部分是当前的动作a(比如为一个One-hot embedding),由一个MLP来进行特征提取。然后将两个特征向量进行拼接,送个一个MLP,输出一个实数,即裁判打的分数。这个分数说明处在状态s的情况下,做出动作a是好是坏。价值网络和策略网络可以共享卷积层的参数,也可以独立。

AC算法:Actor-Critic方法在强化学习中的应用

同时训练策略网络和价值网络,就被称为Actor-Critic算法。

训练神经网络

经过我们之前的近似,整体的V(s;θ,w)V(s;theta,w)函数就可以用两组神经网络的参数来表示,训练时需要同时更新这两组参数。但是两组参数的更新目标是不同的:

  • 更新策略网络π(a∣s;θ)pi(a|s;theta)的参数θtheta,是为了让V函数的值增加;
  • 更新价值网络q(s,a;w)q(s,a;w)的参数ww是为了更好,更精准的估计回报;

AC算法:Actor-Critic方法在强化学习中的应用

我们可以做这5个步骤来对网络进行更新:

  1. 观测到状态sts_t;
  2. sts_t作为输入,用策略网络π(⋅∣st;θ)pi(cdot | s_t;theta)来计算动作的概率分布,然后进行动作抽样;
  3. Agent执行动作ata_t,这时候环境会得到新的状态st+1s_{t+1}和奖励rtr_t;
  4. 有了奖励rtr_t,就可以根据TD算法更新价值网络的参数w(也就是让裁判变得更准确);
  5. 最后,使用Policy gradient来更新策略网络的参数θtheta

AC算法:Actor-Critic方法在强化学习中的应用

下面介绍具体更新的过程。首先是使用TD算法来更新价值网络。

AC算法:Actor-Critic方法在强化学习中的应用

然后是使用Policy gradient来更新策略网络。

AC算法:Actor-Critic方法在强化学习中的应用

AC方法的整体流程如下:

AC算法:Actor-Critic方法在强化学习中的应用

AC算法:Actor-Critic方法在强化学习中的应用

AC算法:Actor-Critic方法在强化学习中的应用

AC算法:Actor-Critic方法在强化学习中的应用

AC算法流程概览

最后,我们来总结一下AC算法:

  1. 观测到状态sts_t并根据π(⋅∣st;θ)pi(cdot|s_t;theta)随机抽样一个ata_t;
  2. 执行ata_t,然后环境给出新的状态st+1s_{t+1}和奖励rtr_t;
  3. 用新的状态st+1s_{t+1}输入π(⋅∣st+1;θ)pi(cdot|s_{t+1};theta)随机抽样一个a^t+1hat{a}_{t+1}(并不执行)
  4. 评估价值网络,计算qt,qt+1q_t, q_{t+1};
  5. 计算TD Error;
  6. 对价值网络求导,
  7. 使用TD算法更新价值网络;
  8. 对策略网络求导;
  9. 使用Policy Gradient更新策略网络。

AC算法:Actor-Critic方法在强化学习中的应用

需要注意的是,在第9步中,一些书和论文中使用的是δtdelta_t,而不是qtq_t,但两种方式都是正确的,证明过程略。

AC算法:Actor-Critic方法在强化学习中的应用

总结

AC算法需要使用两个神经网络来分别近似策略函数和价值函数。这两个网络在训练时分别使用TD算法和Policy Gradient算法进行更新。

在完成训练后,Agent可以根据策略函数来随机抽样动作,而价值函数则不再被使用。

AC算法:Actor-Critic方法在强化学习中的应用

AC算法:Actor-Critic方法在强化学习中的应用

AC算法:Actor-Critic方法在强化学习中的应用

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

CUDA线程全局索引计算方式

2023-12-17 23:01:14

AI教程

【AI】用 GPT 帮小兔子写文章

2023-12-18 0:51:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索