强化学习一撇

2 篇文章 0 订阅

强化学习一撇


强化学习,说起来也和神经网络一样,上世纪50年代左右,就有相关强化学习的研究。其历史概述可以从机器之心这篇文章看到。当时,也是由于算力、内存等限制了强化学习在实际中的广泛应用,真正对强化学习研究兴趣的爆发是16年Google的AlphaGo的问世,引爆了人们对于强化学习的兴趣。
可视化

对于RL,相信大家或多或少都有了解,如上图,自动飞翔的flappy bird,会跑的波士顿动力狗,吃豆人以及Google的AlphaGo等。这些案例的背后,都有RL的影子,那么强化学习是什么呢?

其实,RL是一类机器学习算法,与 supervised learning 和 unsupervised learning 并列。supervised learning 是 learn from teacher,从已知的标签中进行学习;unsupervised learning 是 learn from partner,从相似的样本中学习;而 reinforcement learning 是 learn from experience,能够让计算机一开始什么都不懂,通过不断的尝试,从经验中学习,找到规律,学会达到目的策略。
在这里插入图片描述
以踢足球为例,假设一个完全不懂足球的小孩,在球场乱踢,不知道所谓的规则,但是告诉他,会对他踢球的动作给出反馈,奖励或者惩罚,例如踢场外罚50,踢自家球门扣100等,那么小孩的目的就是多多的获取奖励,少获取惩罚。那粗略的来分,他可以采取的动作有在中场上踢,踢自家球门,踢场外,以及踢对家球门。小孩在完全不知道每个动作对应奖励还是惩罚的前提,只能通过一次次的尝试,也就是自己的经历,判断出采取哪个动作是好的还是坏的,最终在自己的经历中,学会了踢对家球门有奖励拿的,这个过程就是RL学习的过程。
在这里插入图片描述
在上面的例子当中,已经包含了 RL 的基本的概念,我们可以看到,

  • 小孩(可以看做是一个 agent)可以向场外踢、场内踢、自己球门踢和对家球门踢,这些是小孩的可执行动作(action);
  • 罚钱或者奖励钱,就是奖励(reward);
  • 假如裁判站在中场,小孩在球门,加上整个球场,就是当前的一个状态(state),可以理解为一个画面,另外,需要说明的一点,有些地方 state 也叫作 observation;
  • 裁判和球场,构成了一个环境(environment),每当 agent 执行 action 后,会给出 reward 和 下一个 state;
  • 而小孩在每个状态(state)下,指导动作选择的想法,就是策略(policy);
  • 小孩的目的是获取更多的奖励,那么 RL 的 target 也就是累计奖励的期望最大化,后面会给出这个 target 的解释。

基于上述的概念,RL 的大体思想就是

agent 在 policy 的指导下,执行某个 action,environment 接收当前的 state 和 action,对 agent 进行 reward 的反馈和产生下一个 state,在最终结束时,获得的累积的 reward 能够最大。
在这里插入图片描述
我们详细看一下 RL 学习的过程。以游戏为例。

玩游戏的时候,游戏主机 env 会产生初始的画面 s1,基于画面 s1,actor 执行特定的动作 a1,这样 reward function 决定了 s1 情况下采取动作 a1 的奖励 r1;基于画面 s1 和动作 a1,env 产生下一个动作 s2,也很好理解,画面是连续,后续画面的产生和之前的画面也是有一定关系的。这样一直走下去,直到游戏的结束。

游戏结束时候,我们可以收集到一串数据,就是图片上的 Trajectory,相当于一场游戏从开始到结束的所有数据。想让游戏获得高分,也就是想让 𝑅(𝜏) 最大,但我们考虑到两个地方存在着随机性

  1. 游戏画面的随机性,例如连连看游戏,同个关卡的初始画面可能都是不同的
  2. 动作 action 往往是通过 sample 的方法执行,对同一个画面,可能采取的不同的动作

基于上述的随机性,所以往往不是计算一次的 𝑅(𝜏) 最大化,而是计算 𝑅(𝜏) 的期望最大化。考虑到计算的可能性,往往是 N 场游戏的均值当做累计期望。

在上图中,Actor 就相当于是 policy,对 Actor 的修改,就是 policy-based 的方法,例如 policy gradient,对 reward 的修改,是 value-based 的方法,两者的结合,就构成了 actor-critic 的方法。

可以根据 function 的输出情况,将 RL 算法分为 Policy-based 和 value-based 的方法。其中 policy-based 方法直接输出各种动作的概率,然后根据概率选择动作,每种都做都有被选中的概率,只是概率大小不同。而 value-based 方法直接输出 reward,直接选择 reward 最大的对应的 action。以早上起床为例,不饿情况下赖床概率90%,起床概率10%,大概率选择赖床;如果是 value-based 方法,赖床带来的奖励是-10,起床带来的奖励是10的话,此时会选择起床.
在这里插入图片描述
注:图片来自莫烦强化学习教程

我们了解了 RL 大致的思想,就是通过让 agent 不断的和环境交互,积累经验,从而实现奖励最大化的目标,而且从一开始就说了 RL 和 supervised learning 以及 unsupervised learning 一样,也是一种学习方法,那他们有什么不同呢,可以从下图中看出来。
在这里插入图片描述

  • RL 中没有label,只有 reward。对于一个 function 而言,在监督学习中,输入 x,输出 y;而在 RL 中,输入的是 s,输出的是 a 和 r,理解上可以把 a 当做label,而 r 是 a 的某种加权
  • 在 RL 中,反馈具有延时性,因为 RL 的目标是累计奖励(的期望)最大,那么在游戏过程中,每个 action 对最终结果的好坏影响是不知道的,例如象棋中的丢车保帅
  • 在数据上,监督学习和强化学习具有明显的不同。监督学习中,收集一批数据,然后可以直接进行模型的训练;而 RL 中,每次更新后需要重新收集数据,因为 reward function 或 actor 的变更,在同样 state 的情况下,所采取的动作以及奖励都可能不同。

以棋类游戏为例,相比监督学习中的依赖 label,也就是在某种状态下,应该怎么样落子的“照着葫芦画瓢”的学习,不一定学出最优的下棋策略,因为棋谱也不一定是最优的抉择,和臭棋篓子学不成绝世高手;RL 的方式是自行探索,基于反馈从经验中学习,即使是臭棋篓子,反馈的结果是输赢,也可以自学成才呢。

RL 和 GAN 具有一定的相似性,尤其是 RL 的 actor-critic 方法,关于 RL 和 GAN 的对比,后续补充上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝士AI吃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值