#15 增强学习101 闪电入门 reinforcement-learning

是先用自己的”套路”边试边学, 还是把所有情况都考虑之后再总结, 这是一个问题 — David 9

David 9 本人并不提倡用外部视角或者”黑箱”来看待”智能”和”机器学习”.

正如《西部世界》迷宫的中心是自己的内心. 神经网络发展到目前的深度学习, 正是因为内部的结构发生了变化(自编码器, 受限玻尔兹曼机, 改进的激活函数, 等等…) . 所以David 9 相信神经网络未来的发展在于人类对内部结构的新认知, 一定有更美的内部结构存在 !

而今天所说的增强学习, 未来更可能作为辅助外围框架, 而不是”智能核心”存在. 不过作为闪电入门, 我们有必要学习这一流行理论:

来自: http://www.cis.upenn.edu/~cis519/fall2015/lectures/14_ReinforcementLearning.pdf

没错, 这张图和文章特色图片是一个思想:

训练实体(Agent)不断地采取行动(action), 之后转到下一个状态(State), 并且获得一个回报(reward), 从而进一步更新训练实体Agent.

就像要训练小老鼠走出迷宫, 你可以在迷宫的几个关键地点放上奶酪, 这些奶酪就是算法中的回报(reward)了, 剩下你只要坐着等小老鼠走出迷宫啦:

当然这个简单思想的背后是马尔可夫决策过程(MDP):

一个马尔可夫决策过程由一个四元组构成M = (S, A, Tsa, R)

  • S: 表示状态集(states),有s∈S,si表示第i步的状态。
  • A:表示一组动作(actions),有a∈A,ai表示第i步的动作。
  • Tsa: 表示状态转移概率。s 表示的是在当前s ∈ S状态下,经过a ∈ A作用后,会转移到的其他状态的概率分布情况。比如,在状态s下执行动作a,转移到s’的概率可以表示为p(s’|s,a)。
  • R: S×A⟼ℝ ,R是回报函数(reward function)。有些回报函数状态S的函数,可以简化为R: S⟼ℝ。如果一组(s,a)转移到了下个状态s’,那么回报函数可记为r(s’|s, a)。如果(s,a)对应的下个状态s’是唯一的,那么回报函数也可以记为r(s,a)。

MDP 的动态过程如下:某个智能体(agent)的初始状态为s0,然后从 A 中挑选一个动作a0执行,执行后,agent 按Psa概率随机转移到了下一个s1状态,s1∈ Ts0a0。然后再执行一个动作a1,就转移到了s2,接下来再执行a2…,我们可以用下面的图表示状态转移的过程。

我们知道, 增强学习的本质是学习从环境状态到动作的映射(即行为策略),记为策略π: S→A。而仅仅使用立即回报r(s,a)肯定是不够的(一个策略π的长期影响才是至关重要的). 

因此, 衍生出了两个增强学习的训练算法: 价值迭代策略迭代

考虑下面这个简单的迷宫问题:

从入口(Start)走到出口(Goal)就算胜利. 小方格的位置就是我们状态S, 行为Action只有四种(上下左右), 回报函数就定为每远离一步Goal, 回报-1.

价值迭代

如果使用价值迭代算法, 我们更新每个状态s的长期价值V(s), 这个价值是立即回报r(s,a)与下一个状态s+1的长期价值的综合(想想是不是很有道理?), 从而获得更新:

有两个点要注意:

  1. 每次迭代, 对于每个状态s, 都要更新价值函数V(s)
  2. 对于每个状态s的价值更新, 需要考虑所有行动Action的可能性, 这就非常消耗时间. 

最后可以训练出所有状态s的价值, 大概是下面这样:

值得注意的是, 如果价值迭代完成后, 每个状态下一步的策略也就有了(选下一步价值较高的格子走, 就可以了)

策略迭代

如果使用收敛较快的策略迭代算法, 每次迭代我们分两步走:

第一步: 先任意假设一个策略πk ,  使用这个策略迭代价值函数直到收敛, 

最后得到的V(s)就是我们用策略πk , 能够取得的最好价值函数V(s)了(其实是策略的一种评估)

第二步: 我们重新审视每个状态所有可能的行动Action, 优化策略πk看看有没有更好的Action可以替代老的Action:

这样就最终优化了策略函数πk. 最终效果大概是这样的:

这就是策略迭代, 最后得到了每个状态应有的最佳策略.

正如我们开头说的, “是先用自己的”套路”边试边学, 还是把所有情况都考虑之后再总结”, 正是策略迭代与价值迭代的区别, 我们需要权衡考虑.

最后, 我们学习两组增强学习中的常用概念:

“模型学习”和”无模型学习”

来自: https://www.youtube.com/watch?v=w33Lplx49_A
来自: https://www.youtube.com/watch?v=w33Lplx49_A

这组思想其实在机器学习中都非常常见, 如果要解决一个问题, 我们一般有两种选择:

  1. 先假设一个模型, 然后通过一些手段, 后续优化和改进这个模型的参数, 最后达到最优
  2. 不使用模型, 直接用已有样本估计问题的期望.

如上图的计算学生年龄期望的例子, 也是有两种方法对应“模型学习”和”无模型学习”:

  1. 先假设每个年龄有一个概率, 通过抽样去估计每个年龄的概率, 最后对于每个年龄求联合概率, 就是最终的年龄期望.
  2. 把所有抽样的年龄求和, 除以样本个数, 就是期望了.

“积极学习”和”消极学习”

消极学习是不采取任何行动Action改进策略的学习:

小机器人只是在视频中观看一些可能发生的情况和行为, 用来评估策略, 自己并没有采取行动改进策略.

这种只是”记录型”的学习, 有点像我们策略迭代的第一步, 策略评估. 没有考虑视频意外行为的可能性. 而”积极学习”则相反.

如果大家有意继续深入学习, 别忘了戳下面的参考文献. 以及, 要关注我的微信, 在下面二维码~

 

参考文献:

  1. https://www.youtube.com/watch?v=w33Lplx49_A
  2. https://www.youtube.com/watch?v=jUoZg513cdE
  3. https://www.youtube.com/watch?v=2pWv7GOvuf0&t=5s
  4. http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html
  5. http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching_files/intro_RL.pdf
  6. http://www.cis.upenn.edu/~cis519/fall2015/lectures/14_ReinforcementLearning.pdf
  7. https://github.com/dennybritz/reinforcement-learning
  8. http://people.eecs.berkeley.edu/~russell/classes/cs188/f14/lecture_videos.html
  9. 增强学习(二)—– 马尔可夫决策过程MDP

本文章属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注