Lecture 12(Preparation):Reinforcement Learning

目录

What is RL? (Three steps in ML)

Policy Gradient

Actor-Critic

Reward Shaping

No Reward: Learning from Demonstration


It is challenging to label data in some tasks. 例如下围棋时,下一步下在哪个位置最好是不太好确定的,此时可以考虑使用RL。

What is RL? (Three steps in ML)

machine learning ≈ looking for a function

RL作为机器学习的一种,它也在找一个function:Actor

下面会用space invader这个小游戏和围棋对RL的整体流程进行举例说明:

Example 1: playing video game

Example 2: learning to play Go

下面介绍RL和机器学习的framework之间的关系:

        machine learning有三个步骤:

        RL也是和machine learning一模一样的三个步骤:

        Step 1: Function with Unknown. 如下图绿框,在多数RL应用里面,都是采取sample,而不是取得分最大的那个值。采取sample可以加入一些随机性,对很多游戏来说,这种随机性是重要的。

        Step 2: Define “Loss”

        Step 3: Optimization. RL在这一步,困难的是,它要解的不是一个一般的optimization的问题。这里存在很多问题导致它和一般的network training不太一样。

        第一个问题是Actor的输出具有随机性,下图中的ai是随机产生的。

        第二个问题是environment和reward不是network,environment是一个黑盒子,而reward是一个规则。并且environment和reward往往也是具有随机性的。

        所以RL真正的难点:怎么解optimization的问题。

Policy Gradient

——做RL的optimization常用的一个演算法

How to control actor:

如何收集训练资料s和a的pair:用一个actor去跟环境做互动,就可以收集到s和a的pair

接下来是关于如何去定义A,有几个不同的版本(不同rl的方法,其实就是对A做文章,有不同的定义A的方法):

        version 0: (一个短视的版本)

        An action affects the subsequent observations and thus subsequent rewards.

        Reward delay: Actor has to sacrifice immediate reward to gain more ng-term reward.

        In space invader, only “fire” yields positive reward, so vision 0 will learn an actor that always “fire”.

        version 1:

        version 2:

        version 3: (在version 2的基础上对A做标准化)

上面介绍的是大的概念,下面介绍policy gradient实际上是怎么操作的:

The actor to train and the actor for interacting is the same. → On-policy

Can the actor to train and the actor for interacting be different? → Off-policy

Off-policy → Proxima Policy Optimization(PPO): The actor to train has to know its difference from the actor to interact.

On-policy vs.Off-policy

        对于Off-policy,不需要update一次就收集一次data:

另一个重要的概念是exploration:actor在采取行为的时候,具有一些随机性。这个随机性非常重要,很多时候如果随机性不够,会train不起来。

Actor-Critic

Critic的工作是去评估一个actor的好坏。

Critic: Given actor θ, how good it is when observing s (and taking action α)

下面介绍value function这个critic:

discounted cumulated reward是指G':

下面介绍critic是怎么被训练出来的,有两种常用的训练方法:

        ① Monte-Carlo(MC) based approach

        The critic watches actor θ to interact with the environment.

        需要玩完整场游戏去得到训练资料。

        ② Temporal-difference (TD) approach

同样的问题,用MC和TD分别去计算,算出来的value function很有可能是不同的。举例如下:

下面介绍critic怎么被用在训练actor上面:

        对于version 3中b的值如何计算,在version 4中给出了答案:

训练Actor-Critic的小技巧:The parameters of actor and critic can beshared.

Actor和Critic都是network。Actor这个network的输入是一个游戏画面,输出是每一个action的分数。Critic这个network的输入也是一个游戏画面,输出是一个scalar,代表接下来会得到的cumulative的reward。这两个network的输入是一样的东西,所以这两个network有部分参数可以共用:

Reward Shaping

Sparse Reward:

Reward shaping在VizDoom这个游戏上的实例如下:

Reward shaping有个特别知名的做法,叫做curiosity based的reward shaping:Obtaining extra reward when the agent sees something new (but meaningful).

No Reward: Learning from Demonstration

有时候在RL里面,会有没有reward的情况,原因有两点:

  • Even define reward can be challenging in some tasks
  • Hand-crafted rewards can lead to uncontrolled behavior

在没有reward的情况下,如何训练一个actor去和环境互动:

        方法一:Imitation Learning

        有expert的示范,此时这是一个supervised learning,也叫做behavior cloning。

        例如self-driving:

        让机器去复制expert的行为,可能带来的一个问题是,expert和机器,他们可能可以观察到的s是不一样的。还是以self-driving为例,机器和人类expert学习开自驾车,人类expert在转弯的时候,都能顺利通过弯道,所以对机器来说,它从来没有看过转弯失败的情况,那机器就不知道当车子转弯失败快要撞墙的时候如何处理。

        第二个可能遇到的问题是,人类expert在开车的时候可能很厉害,但也许不是每一个行为机器都需要去完全模仿。假设expert有一部分行为是机器要去学习的,另一部分机器学习了没什么作用,但是机器无法分辨它要学哪些行为,只能全部进行学习。更惨的情况是机器学习能力有限,但它恰好学到的是没什么意义的那些行为。

        方法二:Inverse Reinforcement Learning

        Reinforcement Learning:

        Inverse Reinforcement Learning:

        下面是图像化的方法介绍IRL的framework:

        GAN v.s. IRL: 它们可以理解为同一个framework,用不同的方法、不同的角度去描述

        IRL这种方法,常常被用来训练机器手臂。未来我们可能可以用demonstrate的方法教机器事情。也可以给机器一个画面,让机器去做画面中的行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值