​李宏毅机器学习——强化学习Reinforcement Learning

本文深入解析强化学习的原理和应用,包括其在电脑游戏中的运用,以及强化学习的三个核心步骤:定义未知参数的函数、损失函数和优化。文章详细探讨了Policy Gradient和Actor-Critic算法,阐述了策略梯度如何学习actor参数,并讨论了不同版本的Actor-Critic方法。此外,还介绍了训练技巧,如奖励塑造、无奖励场景下的模仿学习,以及监督学习和逆向强化学习的区别。
摘要由CSDN通过智能技术生成

目录

应用场景

强化学习的本质

以电脑游戏为例

强化学习三个步骤

第一步:有未知参数的函数

第二步:定义Loss

第三步:Optimization

RL的难点

类比GAN

Policy Gradient(策略梯度)

怎么学出actor中的参数

如何定义A

Version 0(最简单但不正确)

Version 1

Version 2

Version 3

Actor-Critic(行动者-批评者)

Critic介绍

Critic 怎么被训练出来的

Monte-Carlo (MC)

Temporal-difference (TD)

两种方法对比

version 3.5

version 4:Advantage Actor-Critic

训练Actor-Critic的小技巧

Deep Q Network (DQN)

Policy Gradient

策略梯度的流程

On-policy v.s. Off-policy

搜集资料的技巧:Exploration--增加Actor的随机性

Reward Shaping(sparse reward)

No Reward: Imitation Learning

无奖励的场景

示范学习和监督学习的不同

逆向强化学习

GAN VS IRL

RIG(Reinforcement Learning with Imagined Goals)


应用场景

  • 当我们给机器一个输入的时候,我们不知道最佳的输出应该是什么;
  • 收集有标注的资料很困难的时候

叫机器学习下围棋,最好的下一步可能人类根本就不知道。我们不知道正确答案是什么的情况下,往往就是 RL 可以派上用场的时候,

RL 在学习的时候,虽然不知道正确的答案是什么,但是机器会知道什么是好,什么是不好,机器会跟环境去做互动,得到Reward

强化学习的本质

强化学习的过程和机器学习是一样的,都是寻找函数。不过在强化学习中寻找的函数叫做actor,actor 跟Environment会进行互动,actor能够接受环境给予的observation(观察),做出action去影响 Environment,然后Environment会给这个 Actor 一些 reward(奖励),这个reward说明action是好是坏。我们的目的就是寻找一个用 Observation 当作Input,输出 Action,能将Reward总和最大化的actor。

以电脑游戏为例

游戏界面就是observation,人即决策者就是actor,向左向右跟开火就是action,游戏机就是Environment,得到的游戏分数就是reward。游戏的画面变的时候就代表了有了新的 Observation 进来,有了新的 Observation 进来,你的 Actor 就会决定採取新的 Action。我们想要 Learn 出一个 Actor,使用它在这个游戏裡面的时候,可以让我们得到的 Reward 的总和会是最大的

强化学习三个步骤

定义有未知参数的函数;根据训练资料定义loss;找出能够使loss最小化的函数(优化)

第一步:有未知参数的函数

将机器的观察用向量或矩阵来表示,作为actor的输入;actor输出的每个action对应输出层的每个神经元,每个action会有一个分数。这样看和分类任务是一个东西,不同的点是:强化学习将这些分数作为几率,按照这个几率随机产生输出,也就是sample(采样),而不是将分数最高的那个作为输出。

採取 Sample 有一个好处是说,就算是看到同样的游戏画面,机器每一次採取的行为也会略有不
同,在很多的游戏裡面这种随机性也许是重要的,比如说你在做剪刀石头布的时候如果总是会出石头,就很容易被打爆,如果有一些随机性就比较不容易被打爆。

第二步:定义Loss

这里定义loss也就是定义分数的获得机制,但是我们最后想要最大化的是整局的全部分数之和,而不是局部某一次的分数。负的 Total Reward当做 Loss

补充:一局游戏就是一个episode;reward是某一个行为能立即得到的奖励,return是所有分数相加(total reward)。

 

第三步:Optimization

环境产生的Observation s1 进入actor,actor通过采样输出一个a1,a1再进入环境产生s2,如此往复循环,直到满足游戏中止的条件。s 跟 a 所形成的这个 Sequence又叫做 Trajectory,用 𝜏 来表示。

需要注意的是reward不是只看action,还需要看 Observation,所以 Reward 是一个 Function。

优化目标:找到 Actor 的一组参数,让R(𝜏)的值越大越好。

RL的难点

强化学习最主要的难点就是如何做optimizaton:

  • action是通过采样产生的,具有很大的随机性,给相同的s,产生的a可能是不一样的。
    • 一般的Network在不同的random seed设定下的随机性,是"Training"中的随机性,比如初始化参数随机;但是在Testing中,同样的输入会获得同样的输出。 RL的随机性是在测试时,固定模型参数,同样的输入observation,会有不同的输出action。
  • 只有actor是网络,Environment 和 Reward,根本就不是 Network ,只是一个黑盒子而已;Environment与Reward都有随机性。
    • 环境是黑箱,採取一个行为环境会有对应的回应,但是不知道到底是怎麽产生这个回应,给定同样的行为,它可能每次的回应也都是不一样,具有随机性。
    • Reward就是一个奖励的规则,也不是 Network。

类比GAN

相同点:将actor看成是generator,将环境和reward看成是discriminator,训练出的generator能够使discriminator的corss entropy越大。

不同点:GAN的discriminator是network,而RL的discriminator不是network,无法用梯度下降等方法来调整参数来得到最好的结果。

Policy Gradient(策略梯度)

怎么学出actor中的参数

如果希望Actor在看到某个s时采取某一种行为,只需要把actor输出想成一个分类的问题,为每个Observation设定一个a ̂ (即Ground Truth或label)。针对某一个Observation,a ̂ 是向左移动,如果希望actor采取该行为,则计算Actor跟 Ground Truth 之间的 Cross-entropy,学习让Cross-entropy最小的 θ,就可以让这个 Actor的输出跟Ground Truth 越接近越好;

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值