白话强化学习之Q-Learning

2018-12-28 17:10:47 浏览数 (1)

用最朴素的语言来解释一下这看起来晦涩难懂的东西系列。。。

场景:假设你要从大连去沈阳,然而你并不知道该怎么走,此时你手里有一张假地图(或者干脆就是一张白纸),其次还有个很重要的高科技,就是你每走一步,都能清晰的知道你离目的地的距离(假设你走的是直线,或者是开飞机的,无视障碍物),但是恶心的是起了大雾,你除了能在假地图上记录当前位置和外界的反馈以外啥也干不了。最终目的:把真·地图画出来

image.png

好了,游戏规则设置完了,在这个规则下要是人来做的话估计会很简单,估计很快就能猜出来目的地的大概方向,然后轻松到达,但是机器不会,那机器在我们的主角Q-Learning的算法下会怎么走呢?

机器的走法: ① 确定自己的位置 ② 瞅一眼地图,然后看看自己应该往哪个方向走 ③ 按地图走一步,然后根据反馈,修改地图 ④ 重复②③步骤直到到达目的地 ⑤ 再回到原点再来一次,直到手里的地图满意为止

最终结果大概是长这个样子,就是一个表格:

假设是个真地图

真地图的用法就是以后再从头走的时候就可以每次都选数最大的那个操作走,也就是回报最高的那个操作,这里就是Action,下面的A也是Action的意思。

大家可能觉得这不就是人工智障么,这么笨的方法,但是虽然在我们看来很笨,但是如果能让机器代替人把活干了,哪怕再笨的方法,也是聪明的。比如你觉得计算机加减乘除或者开根号啥的很厉害,你以为是咋做到的,它脑子里除了0就是1,除了真就是假,还不是用一些大家看着很弱智的操作一点一点累积起来的。so,不要小瞧任何一个能教给机器去做能代替人干活的操作,它累积起来可能会聪明的要命。

白话故事讲完了。接下来是严谨一点的逻辑分析,但也不至于看不懂。首先看一下公式:

Q-Learning.png

这个公式代表了假地图的更新修改逻辑。 S:当前位置或状态,State A:当前的动作 Q(S,A):当前位置当前动作的价值,回报 α: 学习率,新学习到的Q占比多少 R:当前位置当前动作的真实回报 γ:在当前位置当前动作到达的state以后的期望回报留存率 max a Q(S`,a):下一个位置预计最有价值的动作预计回报值 当然,如果把(1-α)展开,放到后面的中括号里,可以得到另一个公式的变形,依然可以理解。

Q-Learning展开式

具体的代码实现就不贴了,网上一大把,主要是对算法的理解,理解了就ok了,到位了。如果有写的不对的地方,欢迎下方留言评论。

0 人点赞