当RNN碰上强化学习-为空间建立通用模型(2)
然后深度强化学习从何而来? 现实生活中的状态太多,如围棋有3的361次方个状态,你的表格几乎可以布满银河系。所以你不能用表格法,这就自然的引入了机器学习。 因为机器学习,尤其是神经网络,本质就是函数逼近, 或者某种插值方法。 当表格大到填不完,我们就用一个函数来替代它,然后用神经网络来学习这个函数,这就自然的引入了深度强化学习。通过数据可以模拟函数,有了函数就可以把值函数的问题解决。
DQN深度值函数算法最基本的深度强化学习算法,2015年发表的关于Alpha-Go的文章就是值函数法,策略梯度,蒙卡树,结合了CNN得到的算法。
然而Alpha-Go再强大也不能解决所有问题,比如星际争霸,因为当下游戏画面当中的信息是不足以进行决策的,针对决策的信息并没有全部在一个画面当中呈现出来,所有就需要使用其它的方法。这也是我们的另一个主角RNN登场的机会。
我们用要一个最微小的例子来说明,还是那个走方格的问题,骷髅就是有危险的意思,我们希望走到有奖励的地方。 我只做一个小的改动将使得之前问题面目全非,之前的马尔科夫决策附加的条件就是当下的状态含有用来决策的所有信息,方格问题里, 这个信息就是位置坐标。而如果我没有位置这个信息, 取之以感知信息, 比如我只能感知我所在方格的周围两个方格有什么(下图中的骷髅或金币)。
注意如果我们处在下图灰色方格的区域(左右各一个),此时相邻的两个方格的情况是完全一致的(白色),也就是说我无法确定我是处于左边还是右边的灰色方格, 这导致无法决策正确的行为(左边和右边的正确决策是相反的! 一个向左一个向右, 但是我无法确定是哪一个!)。
真实的生物天天生活在非完全信息环境下, 到处都是刚刚图中的灰色方格。 它们还得学到正确的行为, 那么它们是如何解决这个问题呢?
主要有三种方法:一种就是策略梯度的方法,虽然所知状态和信息是不全面的,我们可以利用概率的方法来学习。当不知道该往左走还是该往右走时,随便走出一步,这样有百分之五十的概率得到最后要的奖励(一个驴子在沙漠里, 怎么都要选择一个方向走,不走一定渴死),利用直接学习的策略函数也就是Policy Gradient解决掉这个问题。这个方法大家可以看到效率是比较低的, 如果时间有限那就死了。
另外一种方法就是引入记忆,你有了记忆, 事实上你就可以把一些不同时间点的信息凑成一个整体,你的信息当然比之前多。在上图走方格的例子里如果你知道你上一步是从左边边界来还是从右边边界来问题迎刃而解。 而最后一种就是加入精确的世界模型, 你的信息不全面, 但是我可以用我的大脑给世界建模, 这样一个不完全信息的世界在我脑补下就变成了完整的世界。
引入记忆的方法,就很自然的引入了是RNN,它是类似模仿生物工作记忆的原理,信息放在记忆里面,将其作为决策的依据。