稀疏奖励及模仿学习
稀疏奖励 Sparse Reward
讨论的问题是:在agent学习的过程中,reward很少或者很长时间才会有一个reward,那要怎么办呢?
Reward Shaping
环境有一个固定的 reward(真正的 reward),但是为了让 agent 学出来的结果是我们要的样子而刻意地设计了一些 reward 来引导 agent。
Curiosity
- 普通的Reward,输入是状态st和动作at,得到这一步的reward是rt,整个回合下来的R就是每一步的r之和;
- ICM的Reward,输入是状态st、动作at和下一步的状态st+1,得到这一步的reward是rit。加上ICM的整个回合的R就是每一步的r和ri之和。
在Curiosity机制下,我们仍然希望R越大越好。 - rit要怎么计算?在 ICM 里面,有一个 network,会根据at和st预测下一步的状态^st+1,如果 预测值和真值之间的差距越大,rit越大 ,这个意思就是希望agent多做探索。
但是有一些状态很难预测但是不重要。
添加Feature Extractor Module是为了提取st和st+1当中重要的信息而过滤掉不重要的信息。然后将提取到的重要的信息送到network 2去预测当前状态会采取的action ^at。
Curriculum Learning
这个理念是让机器能够按部就班、按照课程表或者规划来一步步的学习。
Curriculum Learning,就是你要为机器规划它学习的顺序。而 Reverse Curriculum Learning 是从 gold state 去反推,就是说你原来的目标是长这个样子,我们从目标去反推,所以这个叫做 reverse。
Reverse Curriculum Generation
- 给定一个目标状态
- 找出一些非常接近目标状态的状态
- 从每一个接近的状态开始跟环境做互动,都可以sample出一条到达目标状态的轨迹,并且有Reward
- 接着把 reward 太大或者太小的 case 去掉。如果 reward 很大,代表这个 case 太简单了,就不用学了,因为机器已经会了;如果 reward 太小,代表这个 case 太难了,依照机器现在的能力学习这个课程太难,它学不会,所以就不要学这个。
- 需要调整参数,找一些 reward 适中的 case,然后根据这些 reward 适中的 case 去 sample 出更多的 state。
Hierarchical RL(分层强化学习)
分层强化学习是指将一个复杂的强化学习问题分解成多个小的、简单的子问题,每个子问题都可以单独用马尔可夫决策过程来建模。这样,我们可以将智能体的策略分为高层次策略和低层次策略,高层次策略根据当前状态决定如何执行低层次策略。这样,智能体就可以解决一些非常复杂的任务。
模仿学习 Imitation learning
讨论的问题是:假设我们连 reward 都没有,那要怎么办呢?
虽然没有办法给出 reward,但是收集 expert 的 demonstration 是可以做到的。举例来说,
- 在自动驾驶汽车里面,虽然你没有办法给出自动驾驶汽车的 reward,但你可以收集很多人类开车的纪录。
- 在 chat-bot 里面,你可能没有办法定义什么叫做好的对话,什么叫做不好的对话。但是收集很多人的对话当作范例,这一件事情也是可行的。
Behavior Cloning
这个方法可以看做是一个监督学习,在这个方法中,actor需要学习在某些特定的state下尽可能像专家一样行动。然而,专家只能进行有限的采样,因此需要引入Dataset Aggregation(让专家处于机器所处的state中)
Dataset Aggregation:
- 通过行为克隆得到一个 actor π1
- 使用 π1和环境进行互动
- 让专家对观察对象作标签 π1
- 使用新的数据来训练 π2
Inverse RL
在前面介绍过的RL中,环境和reward是用来生成一个actor的。
但是在IRL中,没有reward function,而是用一个专家来和环境做互动并学到一个reward function,然后这个reward function才会被用来训练actor。
Inverse Reinforcement Learning 实际上是怎么做的呢?
首先,我们有一个 expert π