【李宏毅机器学习课程笔记】深度强化学习(五)—— Sparse Reward

Introduction

在使用Reinforcement Learning来构造agent时,多数情况下这个agent是得不到任何Reward的。这使得agent的训练变得非常困难。
举例来说,假设我们制作了一个机械手臂,希望让它完成‘用桌上的螺丝刀把螺丝钉栓进去’这个任务,但agent起初是什么都不知道的,它能够完成各种action的原因在于Exploration机制。只有当它随机地将螺丝刀拿起来,再把螺钉栓进去,这个时候它才能得到Reward,但想在随机的情况下完成这一系列的动作就如大海捞针一般困难。
所以说,当环境当中的reward十分稀疏(sparse)时,这个RL的问题就会十分困难。本节课程介绍的就是三种用于解决Sparse Reward的方法。

Reward Shaping

即人工地设计Reward,刻意地引导agent进行我们想要的action,让环境当中的reward变得不那么稀疏。下面是一些人为设计Reward的方法。

Curiosity

先上图:

在这里插入图片描述

在Q-learning当中,我们根据每一个状态 s t s_t st和在这个状态下采取的action a t a_t at 得到了这一个step的reward r t r_t rt,期望所有step的reward之和越大越好。在Curiosity的机制下,我们加入了另一个得到Reward的方式——ICM r i t r_i^t rit,它由当前状态 s t s_t st,采取的action a t a_t at 以及下一个状态 s t + 1 s_{t+1} st+1计算得到。
ICM最原始的具体设计方式如下:有一个network以 s t s_t st a t a_t at作为输入,其输出的是machine自己预测的下一个状态 s ^ t + 1 {\hat s_{t + 1}} s^t+1,然后让它和真实发生的下一个状态 s t + 1 s_{t+1} st+1做对比,二者相差越大,ICM得到的reward就越高,即如果未来得到的state越难被预测到,得到的reward就越高。这就鼓励machine在最开始训练模型的时候去主动采取那些风险比较大的action。
在这里插入图片描述
(需要注意的是,用于预测下一个状态的network,即上图中的Network 1是已经被训练好的,在整个Q-Learning的过程中它是被固定住不改变任何参数的)
但这样做仍然有局限性,那就是不是所有难以被预测的动作和即将发生的状态都值得去尝试,这就好比Agent在玩游戏,但是游戏画面的背景是树叶在舞动,树叶如何舞动是一个难以预料的东西,这个模型会鼓励这种难以预料的东西。所以这个模型会让Agent一直观察树叶是如何舞动。所以还需要有一个机制去告诉machine哪些冒险是值得的,是和我们想要它完成的任务相关的。
解决这个问题的方法是增加一个network2,它的输入是两个分别和状态 s t s_t st s t + 1 s_{t+1} st+1相关的向量(但不是 s t s_t st s t + 1 s_{t+1} st+1本身,事实上, s t s_t st s t + 1 s_{t+1} st+1在作为network2的输入前要经过一个Feature Extractor,它将状态向量里那些与问题不相关的特征过滤掉)。network2的输出是一个对 a t a_t at的预测 a ^ t \hat a_t a^t,比较 a t a_t at a ^ t \hat a_t a^t,如果区别不大,证明这个东西是和结果有关系的,但是如果区别大,就证明这是一个无关紧要的东西。
在这里插入图片描述

Curriculum Learning

即给机器的学习过程做规划,从简单到困难。
准确的来说,是逐渐提高学习的样本难度,模拟人类的学习过程。
为此,我们需要为机器设计‘课程’,即给机器学习的样本做难度上的规划,一种通用的方法被称作Reverse Curriculum Generation。它的一般步骤如下:

  1. 确定一个目标状态 s g s_g sg
  2. 设计一些与目标状态相近的状态 s 1 s_1 s1
  3. 以这些 s 1 s_1 s1开始与环境互动,每一个 s 1 s_1 s1得到的状态-行动序列 τ \tau τ都有一个Reward R ( s 1 ) R(s_1) R(s1)
  4. 删去那些 R ( s 1 ) R(s_1) R(s1)过大或过小的样本(过大代表样本难度过低,反之则代表过高),留下 R ( s 1 ) R(s_1) R(s1)适中的样本
  5. 在这些适中的样本周围再Sample出更多的状态 s 2 s_2 s2,重复步骤3、4。
    在这里插入图片描述
    在这里插入图片描述

Hierarchical Reinforcement Learning

将所有的agent分层,上层的agent将目标分解为小目标,当目标不能再被分解的时候,最底层的agent就付诸行动,采取action以实现这些小目标。当最底层的agent不能完成这些目标时,上层的agent就会受到一定的惩罚(Penalty),所以上层的agent要避免提出下层agent达不到的目标。另外,当下层的agent达成了一个错误的目标的时候,我们就将上层提出的目标直接修改为下层达成的这个目标(即不浪费下层agent训练过程中的任何成果)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值