Deep Reinforcemen Learning
摘要
本章要讲的是Deep Reinforcemen Learning(深度强化学习),它是一种更接近人类思维的人工智能的方法,是通过奖励机制来进行训练的模型,它有Actor和Critic,Actor负责接收Env的信息做出行动,Critic则负责评估Actor做出行为的好坏根据奖励规则进行打分,得到的Reward值反馈给Actor,和GAN的训练类似。但是有些问题的奖励规则是很难找到甚至没法找到的,当没有奖励规则时可用老师做示范教机器学习,这个方法叫Imitation Learning。也可让机器自己根据老师的示例找到Reward Function确定奖励机制,这个方法叫Inverse Reinforcement Learning(IRL)。
1、Reinforcemen Learning(RL)是什么?
RL是让机器跟环境去做互动,用得到的反馈进行训练的模型。 RL中最重要的是Actor,Actor是一个Function,它的input是machine观察到的Observation,它的Output是machine的Action。而Actor是通过Reward找出来的。
1.1 RL的做法
RL的做法步骤和机器学习步骤是一模一样的。
1.1.1 Function with Unknown
以下面的游戏为例,Input是矩阵,Output就是Machine可以做的Action的集合。Neural network是通过输出Action的概率分布来决定machine接下来要做的事情的。最终的输出可以选择按概率从分布中sample,也可以选择直接输出概率最高的action,两者都有其有点,可以根据具体问题选择合适的方法。
1.1.2 Define"Loss"
以杀死外星人的游戏为例,首先有一个初始化的游戏画面作为输入,机器看到后就会输出,比如说输出“right”,这样因为没有杀死外星人,得到的reward r1=0,“right”后得到新的游戏画面作为输出,若机器看到后输出"fire"杀死外星人,这时会得到reward r2=5,经过很多次后,游戏结束了。从游戏开始到结束整个过程被叫做一个episode。在这个episode中机器会得到很多个reward,把所有的reward加起来就得到total reward R。显然R就是我们要最大化的目标。
1.1.3 Optimization
用更直观的方法来总结以下RL,它就像下图一样,环境Env输出初始值给Actor,Actor看到后输出a1给Env指挥机器行动,Env再输出S2给Actor,依此类推。所有的Reward的总和就是R,R也就是“Loss”。但是RL中的S和A都具有随机性,所有没法用梯度下降的方法来求解。
2、Policy Gradient
2.1 How to control your actor
就是用一些训练资料,让机器看到某些输入,就尽量去执行或者不执行某些行为。但是训练资料是怎么得到的呢,这就是接下来我们要解决的问题。
2.2 Policy Gradient做法
首先初始化actor的参数θ0,然后进行一个for循环的迭代训练收集资料,在这个for循环内要做的事情是让参数是θn-1的actor和环境做互动,收集互动数据,再设置用来评价互动数据好坏的An,得到Loss Function,用gradient descent更新参数θ。 所以每更新一次参数,都有重新收集一次资料,所以该model训练是非常缓慢的。
2.3 Collection Training Data: Exploration
在收集数据时,我们希望可以收集到更全面是数据,所以希望actor收集数据时,随机性大一点,以确保训练数据的全面性,这个就是Exploration,是train模型的技巧。
3、Actor-Critic
3.1 Critic是什么
Critic是用来评估Actor的好坏的,一个常用的Critic是Value function,以游戏为例,它的输入是s(现在游戏的状况),输入是看到s时得到的Discounted cumulated reward(下图右上角公式)。
3.2 Critic是怎么训练的
3.2.1 Monte-Carlo(MC) based approach
MC是让actor去玩一些游戏,得到一些游戏记录,这时就可发现,当看到一些游戏画面时,采用某些行动正确率是最高的。这时在训练时,actor再看到相同画面时,希望其输出V与训练资料越接近越好。
3.2.2 Temporal-difference(TD) approach
TD是不用玩完一整场游戏,用部分游戏资料对model进行训练。它是用V(St)和V(St+1)之间关系进行训练的。
4、Sparse Reward
在做一些任务如下围棋,拧螺丝的任务时,得到的Reward一般都是0,只有在任务完成的时候Reward才是1,遇到这种情况时直接training就不好用了,我们需要额外的Reward来引导我们的Reward学习。假设我们现在有一个任务,是让机器把蓝色的板子插到木棍上,若直接用RL去学,显然是很困难的,这时就可以加入些额外的Reward。如板子离棍子越近,得到的Reward就越大,但是光靠这一个额外的Reward是不够的,所以Sparse Reward用的时候是需要我们对该问题理解足够的。
5、No Reward: Learning from Demonstration
5.1 Imitation Learning
在真实环境里,面对有些问题时,Reward很难被定义甚至无法定义,如叫自驾车学会在路上走。在没有Reward的情况下,要怎么训练一个Agent去跟环境互动呢,一个常见的方法叫Imitation Learning。它的做法除了没有Reward外,和RL是一样的。 没有Reward就没法自己学了,所以需要找一些示范,让Agent跟着示范去学习,示范就像机器的老师,带着机器学习。
5.2 Inverse Reinforcement Learning
但是当机器模仿老师进行学习时,可能机器能力不够没法完全学习到老师的做法,如只学到了不重要的地方,重点没学到,可能就会导致严重的后果。这时就有了Inverse Reinforcement Learning,这个方法是让机器自己订Reward。 原来的Reinforcement Learning: 但是现在没有Reward,我们只有Expert,Inverse Reinforcement Learning要做的事是根据Expert去得到Reward Function。 怎么找出Reward Function?最基本的概率是老师的行为分数是最高的。我们要定义一个Reward Function,它去评估老师的Trajectory时要给比较高的分数,去评估Actor的Trajectory时会给比较低的分数,具体做法和GAN是类似的。
方法
- Reinforcement Learning是通过奖励机制进行训练的,其中Actor负责接收Env中的信息做出行动,Critic负责给Actor打分从而得到Loss Function,用其更新Actor的参数,让Actor的行为越来越正确。
- Imitation Learning中没有Critic,它是纯粹的从Env中接收信息,Actor做出判断反馈到Env中,循环往复,但是在training时,会给其一些老师做的示例,让其与示例越接近越好,一次达到训练的目的。
- Inverse Reinforcement Learning是从老师做的示例中学习,找到一个合适的Reward Function,再和Reinforcement Learning一样进行训练。
结论与展望
Reinforcement Learning的难点在于奖励机制的制定,Inverse Reinforcement Learning则正好可用来解决该问题,让机器自己找到合适的Reward Function,两者相辅相成。当面对无法设置奖励机制的问题时,便可用Imitation Learning,让机器根据老师的教学直接达到目的。Reinforcement Learning让机器的思维更接近人类,也一定程度的给予了机器自由想象的空间,是一门极具发展潜力的技术。
|