极简Qlearning入门教程
在当前的机器学习中,主流方向为有监督学习、无监督学习以及强化学习,今天我想介绍的就是强化学习的一个小入门Qleaning算法。
回想我们小时候在妈妈的教育下进行学习,首先我们是什么都不会,但是在父母的教育下,慢慢地开始学习起来,比如看见猫,第一次见到不知道这是什么物种,于是妈妈告诉你这是猫,下次见到就知道了,这就是监督学习,当我们做出一个动作,立即得到反馈,而强化学习则不然,当我们做出动作的时候,却不会有立即的反馈,只能到结束才能知道效果,因此本人在学习的过程中,将网上的资料收集了一下,发现这篇文章是特别棒的http://mnemstudio.org/path-finding-q-learning-tutorial.htm
假设有这样的房间
这样看,我们可以将其进行建模:
这就是房间对应的图。我们首先将agent(机器人)处于任何一个位置,让他自己走动,直到走到5房间,表示成功。为了能够走出去,我们将每个节点之间设置一定的权重,能够直接到达5的边设置为100,其他不能的设置为0,这样网络的图为:
Qlearning中,最重要的就是“状态”和“动作”,状态表示处于图中的哪个节点,比如2节点,3节点等等,而动作则表示从一个节点到另一个节点的操作。
首先我们生成一个奖赏矩阵: