美文网首页
增强学习 Q-learning

增强学习 Q-learning

作者: 翩翩公子银圈圈 | 来源:发表于2018-09-11 17:51 被阅读0次

对于小白菜来说,首先是了解Q-learning的基本原理,最好是像学习bp,学习CNN一样可以将一条计算走通,这里分享比较好理解的两个博客,
英文原版:http://mnemstudio.org/path-finding-q-learning-tutorial.htm
中文翻译:https://blog.csdn.net/itplus/article/details/9361915
1.Q-learning训练模型的基本思路:以(状态,行为,奖励,下一个状态)构成的元组(s^{_{t}},a^{_{t}},r^{_{t+1}},s^{_{t+1}})为样本进行训练,其中s^{_{t}}为当前状态,a^{_{t}}为当前状态下执行的action ,r^{_{t+1}}为执行action后的奖励,s^{_{t+1}}为下一个状态。而Q-learning的学习目标是r_{t+1}+\gamma*max_{a}Q(s^{_{t+1}},a),这个学习目标是当前action获得reward加上下一步可获得的最大期望价值。学习目标中包含Q-learning的函数本身,所以其中使用了递归求解的思想。
2.一个具体例子

一栋房子
一栋房子里面有五个房间,对门进行依次编号,将上述图简化为图2(0与4互通,2与3互通.....)
图2 状态图

首先,我们给出一个情景,一个机器人处于这栋房子之中,希望他能够走出5号门。假定此时机器人处于0号房间之中。0号房间只能通往4号房间,所以给出其中reward为0,无法到达的地方仍为-1。当机器人到达4号房间时,他有两个选择,到达5号房间和0号房间。假设机器人到达5号房间(目标),给出其相应reward为100.因此绘制出图3

图3
在这里,状态s就是我们的节点,action就是行动的方向,因此就会有下列reward值R矩阵:
R矩阵
由于一开始机器人一无所知,我们初始化将Q为0,根据Q-learning的转移规则:
Q矩阵
查看矩阵R的第二行(状态1)。当前状态1有两种可能的动作:转到状态3,或转到状态5.通过随机选择,我们选择转到5作为我们的动作。
R(1,5)=100
现在让我们想象如果机器人处于状态5会发生什么。查看奖励矩阵R的第六行(即状态5)。它有3种可能的动作:进入状态1,4或5。
Q(5,1)=0,Q(5,4)=0,Q(5,5)=0

进行下一次episode,选取状态3为起始点看矩阵R的第四行; 它有3个可能的动作:转到状态1,2或4.通过随机选择,我们选择转到状态1作为我们的动作。

现在我们想象我们处于状态1.看第二行奖励矩阵R(即状态1)。它有两个可能的动作:转到状态3或状态5.然后,我们计算Q值:

Q(状态,动作)= R(状态,动作)+ Gamma * Max [ Q(下一个状态,所有动作)]

Q(1,5)= R(1,5)+ 0.8 * Max [ Q(1,2),Q(1,5)] = 0 + 0.8 * Max(0,100)= 80更新之后的Q

经过多次episode,最终收敛为Q:
,对Q矩阵进行归一化(省略百分号),

最后找到最优路径(红色线):

相关文章

网友评论

      本文标题:增强学习 Q-learning

      本文链接:https://www.haomeiwen.com/subject/vqeugftx.html