强化学习

强化学习的历史

19世纪未,有个年轻的心理学家叫爱德华桑代克(Edward Thorndike-1949),想知道动物是怎么学习的。

  • 他设计了一系列的笼子、迷宫之类的装置,用小鸡、小猫小狗甚至鱼类做实验看它们怎么才能学会从中逃脱出来获得食物。
  • 有的是你得知道走哪条路,有的得会开锁,有的是按一个按钮,又或者只是做个特殊的动作一一比如小猫舔一下自己一一桑代克就会替它开门。
  • 桑代克本来设想,动物应该是模仿学习:看别人怎么做的,记住,就像上课一样。
  • 但他发现不是这样。看是看不会的。
    • 那些小动物都是自己先摸索,在里面到处走,这儿动一下,那儿动一下,偶尔一次成功走出来,得到奖励。
    • 然后它们下次面对同样的谜题就会解 决得快一点,然后再快一点。

这也就是「试错」。连鱼都有这个能力。

  • 很多人说鱼只有三秒钟的记忆力,其实根本不是。
  • 鱼不但可以用试错的方式学会怎样从一个复杂的鱼缸迷宫中找到出口,而且哪怕过上几年之后,你再把它放回那个鱼缸,它还记得当初的路线

1950年代迎来了第一波AI热潮,就有人借鉴桑代克的发现,设计神经网络用试错的方法学习走迷宫和下棋

  • 然而科学家很快发现,这种方法只对简单的 问题有效。稍微复杂一点的东西,比如下 棋,一局要走好几百步,走到最后才知道是 赢是输,中间那么多步骤怎么学习?
  • 此后三四十年间,没有人能解决这个问 题。

一直到1984年,才由一位大神级人物,理查德·萨顿(Richard S.Sutton),解决了这个问题。

  • 他本科学的是心理学,从中获得了灵感。
  • 萨顿的洞见是,你不应该把最终结果作为奖励,而应该把中间每一步对结果的「预期」 作为奖励。
  • 萨顿把强化学习分解成两个独立的部分,各自训练:「行动者(actor)」和「批评者(critic),」
    • 行动者每走一步,批评者都要预测这一步 之后的全局取胜概率是多少。
    • 萨顿说我们应该强化的不是最终的胜负奖励,而是走完这一步后胜率的变化。
    • 比如赢棋的概率本来是51%,你走了这一步,批评者说现在赢棋的概率变成了61%,那我们就说你这一步是个好棋,应该强化。
    • 这样一来,我们学习参考的不是棋局最终的输赢,而是每一步是好棋还是坏棋,我们就等于是每一步都在学习
      • 哪怕最后这局棋输了,你还是从中学到了很多步好棋。
  • 这叫「时序差分学习(temporal difference learning)」,是现在强化学习的基本原理, 包括AlphaGo也是这么做的。
    • 其实早在1990年代初,就有人用萨顿这个方法做了一个能下西洋双陆棋的A1,达到了极高的水平。

强化学习算法取得了巨大成功,让AI在很多个电子游戏里都超过了人类水平。但是,有一个游戏,1984年发售的《蒙特祖玛的复仇》(Montezuma’s Revenge),Al的水平却是怎么也上不去。

  • 求玩家穿过一个充满障碍的房间,找到暗门出口。
  • 跟其他游戏相比,这里的暗门可以出现在任何地方,没有里程碑性的中间步骤,在找到暗门之前你根本不知道自己做对了还是做错了什么。
  • 强化学习为了试错,一般会留下比如说5%的空间允许行动者随机做动作,但是在这里似乎远远不够。
    • 可你如果纯粹毫无章法地乱走,你又找得太慢。

一直到2018年,才由Google的DeepMind团队攻克了《蒙特祖玛的复仇》,打败了人类玩家。他们的解决方法是引入「好奇心」。

  • 讲《为什么伟大不能被计划》一书的时候说过这个思想,这叫「新奇性搜索」。
    • 核心思路是如果一个动作虽然没有给你带来什么回报,但是它很新颖,让你探索了未知区域,满足了好奇心,那么这个动作也应该得到强化鼓励。
    • AI就是凭着好奇心,主动探索房间里没去过的地方,才找到暗门。