看了李宏毅老师的深度强化学习视频,决定总结一下这两块的知识,感觉之前还是没接触过的。
视频链接:https://www.bilibili.com/video/av24724071/?p=4
1、Sparse Reward
对于将离值特别稀疏的问题,由下面的几种解决方案:
1.1 Reward Shaping
这一块的意思就是重新设计一些奖励规则,来引导agent来进行学习,比如下面的小孩,出去玩能够得到1的奖励,但是考试的时候考不好,奖励是-100,但是学习得到的即时奖励是-1,考试可以考的很好,奖励100。但是这个小孩可能更关心即使的奖励,折扣因子比较小,所以我们想要正确引导孩子的话,可以告诉他学习的话奖励一个棒棒糖,使得即时奖励也变为1。
另一种方式是在网络中增加一个好奇度,可以鼓励冒险:
在初始的设计中,网络的输入是当前的state和所采取的action,输出下一个的state,与实际的下一个state进行比较,如果差距越大,那么奖励就越大。
但在实际中,有些state差别大,但是可能并不是重要的state,所以网络中增加了一个辅助网络,同时对每个state还要学习一个向量表示,辅助的网络将相邻的两个state进行输入,得到中间可能采取动作的预测值,并与实际的动作进行对比,该网络希望预测的动作和实际的动作相近。
1.2 Curriculum Learning
这个是一种被称为递进学习的方法,也就是由简到难的进行学习:
还有一种是由难到简的学习:
1.3 Hierarchical Reinforcement Learning
层次化的强化学习方法,下面的图比较直观好懂。与其希望agent一下子就能从蓝色的位置到黄色的位置,不如将其分为多个阶段,每次的目标是到达粉色的位置,循序渐进。
2、无Reward-Imitation Learning
没有Reward的情况,我们大都采用的是模仿学习的方法。
很多的任务其实是没有reward的,但是我们可以收集很多专家的范例来进行学习。这样的学习方法被称作为模仿学习。主要有两种方式:Behavior Cloning和Inverse Reinforcement Learning
2.1 Behavior Cloning
很简单的方式,专家怎么做,机器就怎么做。这将问题转换为了一个监督学习问题。
但是有以下几个问题:
1、专家的经验只覆盖少部分的观测结果
2、机器会拷贝所有的行为,包括一些无关的行为
3、通常一个监督学习算法的容量是有限的,几乎不可能学习所有的行为,也就是其准确率不太可能为100%,因此如何选择最好的行为进行拷贝也是一个问题。
4、Mismatch的问题,我们希望训练集和测试集来自于同样的分布,但是专家的策略和机器的策略只要有细微的差别,所得到的状态也会十分不同。
2.2 Inverse Reinforcement Learning
这是一种类似于GAN的思路,我们有expert的范例,然后有actor产生的范例,我们希望有一个类似Discriminator的东西,对范例进行打分。学习的目标是Discriminator对expert的范例的打分永远高于actor产生的范例,同时actor的产生的范例获得的评分越高越好: