文章目录
摘要
本周学习了强化学习的内容,主要聚焦于Actor-Critic方法、奖励塑造、以及无奖励情境下的模仿学习。在Actor-Critic部分,深入了解了基于蒙特卡洛和时序差分方法的Actor-Critic框架,探讨了这两种方法之间的比较以及版本3.5和版本4的演进。此外,还学习了Actor-Critic训练的技巧。在奖励塑造方面,探究了稀疏奖励问题,以及如何通过奖励塑造和好奇心机制来改善训练效果。最后,在无奖励情境下,研究了模仿学习和逆强化学习的应用,讨论了动机、方法以及与监督学习的关系。
Abstract
This week’s learning encompassed topics in reinforcement learning, with a primary focus on Actor-Critic methods, reward shaping, and imitation learning in the absence of rewards. Within the realm of Actor-Critic, an in-depth understanding of the Monte Carlo and temporal-difference approaches was achieved, exploring the comparison between these two methods and the evolution from Version 3.5 to Version 4. Additionally, insights were gained into training techniques within the Actor-Critic framework. In the context of reward shaping, investigation into sparse reward challenges was undertaken, along with strategies for enhancing training effectiveness through reward shaping and curiosity mechanisms. Finally, the application of imitation learning and inverse reinforcement learning in scenarios devoid of rewards was studied, encompassing motivations, methodologies, and their connection to supervised learning.
1.Reinforcement Learning
上周学习了reinforcement learning的本质,Reinforcement Learning的步骤以及Policy Gradient(策略梯度)。这周继续Reinforcement Learning的其余部分。
1.1 Actor-Critic
Critic是用来评价actor好坏的,可以用价值函数V^θ (s) 来表示,当使用参数为θ的actor时,看到s后预估获得的折扣累积奖励。这个价值函数相当于未卜先知,看到s就知道actor会有什么样的表现。Critic考虑了参数θ下actor的所有可能的action,在面对某一s时,V^θ (s)是所有可能奖励discounted cumulated Reward的平均结果。所以价值函数是与评估的actor相关的,当有相同的observation时,不同的actor有不同的V^θ (s),如下图所示。
训练critic的方法有以下两种分别是Monte-Carlo (MC) based approach和Temporal-difference (TD) approach。
1.1.1 Monte-Carlo (MC) based approach
让actor和环境互动,玩这个游戏以后得到一些记录,在输入sa后,游戏玩完之后就能得到discounted cumulated Reward的值为Ga′。利用这些训练资料,只需要让critic看到某个 s 后输出的值V^θ (s)与对应的G’越接近越好,如下图所示。
问题是,有的游戏其实很长,甚至有的游戏根本就没有不会结束,一直继续下去,那像这样子的游戏,MC 就非常地不适合。
1.1.2 Temporal-difference (TD) approach
TD不需要actor完整的环境,而是只训练一部分的资料就可以来更新参数VΠ(s)。
观察MC中的Vθ(st)与Vθ(st+1)之间是有关系的,由于没有Vθ(st)与Vθ(st+1)的标准答案,但是可以通过这两个相减,得出要尽可能接近rt的大小,如下图所示。
1.1.3 MC V.S. TD
如下图所示, 举例说明MC和TD的情况。
上图是在当前例子下使用MC和TD计算在γ=1的情况下,进行8个episodes之后,Vθ(sa)以及Vθ(sb)的值。
对于Vθ(sb)无可争议的是8个episodes中出现六次,所以平均3/4
而对于Vθ(sa)如果使用MC就等于0,如果使用TD就等于3/4。
这两个结果都是对的,只是背后的假设不同。
- TD中假设的sb的reward与sa没有什么关系
- MC认为sb会由于sa的出现而产生reward=0
1.1.4 Version 3.5
与之前的version 3类似,在做归一化的时候减去一个b,使得结果有正有负,但是version 3.5使用Vθ(s)来作为b,如下图所示。
如下图所示,由于随机性的原因所以看到st的时候不一定会执行At,所以会算出多个At,最终取平均值(期望值)就是Vθ(st)
- 如果G’ > Vθ(st) 即,At>0,那么采取at最终得到的结果是好的,是大于平均值的
- 如果G’ < Vθ(st)即,At<0,那么采取at最终得到的结果是坏的,是小于平均值的
1.1.5 Version 4
3.5这个版本中仍存在问题,就是at之后的所有行为都是采样出来的,考察的是at是不是个好行为,不能让后面的特殊情况影响到了对at的判断。Gt′是一次采样,可能存在特殊性。例如at是个差的行为,但是后面sample出来的行为碰巧大部分都有很高的奖励分数,这样就使得判断有失偏颇,所以都要使用平均值,如下图所示。
上图中采取at的Vθ(st)可以通过之后st+1,一直执行到最后的Vθ(st+1),再根据Vθ(st)和Vθ(st+1)的关系式+rt得到Gt‘
- 如果Vθ(st+1)+rt > Vθ(st)即,At>0,那么采取at得到的结果是好的,是大于平均值的。
- 如果Vθ(st+1)+rt < Vθ(st)即,At<0,那么采取at得到的结果是坏的,是小于平均值的。
1.1.6 Actor-Critic训练技巧
在训练前期不管是Actor还是Critic都是Network,所以可以共用部分网络架构,而在后续输出的时候再各自定义,比如对一个场景图象进行处理,开始都用CNN的架构,如下图所示。
- Actor是一个Network,输入是一个环境s,输出是每一个动作的分数
- Critic是一个Network,输入是一个环境s,输出是一个数值代表接下来到最后会得到的reward
1.2 Reward Shaping
在强化学习中,actor的目标是最大化累积的奖励,但有时候环境的奖励信号可能不够清晰或不够及时,导致学习过程变得困难。Reward Shaping 的目标是通过调整奖励信号,使actor更容易理解所需的任务结构,从而加速学习。
1.2.1 Sparse Reward
如下图所示,这里举一个机器手臂拧螺丝的例子。拧螺丝过程中每一步的reward都是0,直到拧完结束才知道reward的值,因此这里需要定义额外的reward来指导。
VizDoom:https://openreview.net/forumid=Hk3mPK5gg¬eId=Hk3mPK5gg,这是RL做游戏的例子。
其中第一名就是使用reward shaping概念来做的。下图中定义了一些加分以及扣分的内容,例如第一行机器玩家只要活着就会不断扣分,就是让机器去强迫一直去战斗。
下图是reward shaping的另一个例子,想要让机器人把板子插到棍子上,可以认为规定一个板子到棍子的距离作为reward,但是后两个图机器人只是拿着板子在棍子周围晃,虽然有时reward比较好但并没有完成任务,所以定义reward需要对问题非常的熟悉。
1.2.2 Reward Shaping-Curiosity
给机器加上好奇心,也就是当机器遇见**”有意义新“**的情况的时候就加分。
一个马里奥的例子(并没有告诉马里奥什么是通关,而是只让马里奥不断地去探索新东西最终也能通过一些关卡):Source of video:https://pathak22.github.io/noreward-rl/
“无意义的新”:例如图像的杂讯不断变化,对于机器来说也是新东西,但这就属于无意义的新。
1.3 No Reward: Imitation Learning
“No Reward: Imitation Learning” 是指在强化学习中一种无需奖励信号的学习方法,其中actor通过模仿expert演示的行为来学习任务。这种方法避免了奖励函数的设计复杂性,而是直接从expert的示范中学习,从而加速学习过程并提高任务性能。
1.3.1 Motivation
由于reward只有在类似游戏这种场景中比较容易定义出来,但是在真实的情况中定义reward是非常困难的,比如无人驾驶。
当定义了不合适的reward的时候就会产生比较奇怪的结果,例如《机械公敌》的电影中人类定义机器人不可以伤害人类,但是最终由机器学习得到的行动是把人类监禁起来,因为人类会伤害自己,如下图所示。
1.3.2 Imitation Learning
Imitation Learning是不产生reward,而是让人类里面的expert和environment互动作为示范,然后让机器来模仿expert行为,如下图所示。
1.3.3 Imitation Learning和Supervised Learning
假如自动驾驶使用监督学习来实现,存在的一个最大问题就是expert示范只是众多可能性中sample出来的,机器碰到不是示范的场景时,机器就不知道做出正确的判断。路口左转是对的,但是如果快要撞到墙了呢,可能车子就撞上去了,因为他没有见过车子还能快要撞到墙。所以supervised learning学出来的行为就是克隆行为了,实用性很差,如下图所示。
另一方面,experts的一些行为,actor是不需要模仿的;actor能力有限,可能无法模仿所有行为,而模仿的行为可能并不能带来好的结果。
1.3.3 Inverse Reinforcement Learning
Inverse Reinforcement Learning中没有reward,而是把专家和环境地互动去学出一个Reward Function,然后用Reward Function去训练actor。这里的Reward Function可能是比较简单的,但训练出来的actor却是比较复杂的,如下图所示。
IRL和原来的RL的过程相反,想要从环境和专家的示范中反推reward function应该长什么样,如下图所示。
逆向RL的原则是:老师永远是最好的
基本思想是
- 先定义一个actor(什么都不会)
- actor和environment互动进行学习来获取一些知识
- 定义一个reward function,并且老师和环境进行互动给出的reward要高于actor和环境互动给出的reward
- 不断重复这个过程最后输出结果
上图的IRL过程其实就类似于下图所示的GAN的过程 - GAN中的generator会产生比较差的图片
- discriminator会根据真实的图片给真实图片高分,给generator产生的图片低分
- generator就会去update参数,然后想方设法骗过discriminator
- discriminator也会不断的update参数,期望能够更大化真实图片与generator产生图片的差距
总结
本周的学习内容主要涵盖了强化学习领域的几个关键方向。在Actor-Critic部分,深入研究了蒙特卡洛和时序差分方法的应用,分析了不同版本的Actor-Critic框架,以及训练技巧的应用。在奖励塑造方面,学习了如何应对稀疏奖励问题,以及如何通过奖励塑造和好奇心机制来提升强化学习的效果。最后,深入探讨了在缺乏奖励的情况下,如何利用模仿学习和逆强化学习来训练智能体。