本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体(3)

时间:2017-04-04 19:22来源:118图库 作者:www.wzatv.cc 点击:
现在我们设计一张表格,其中每行是训练实体的状态,而每列是训练实体可能采取的动作。所以上例有 165 种可能的状态-行动对,其中每种状态都是迷宫中

现在我们设计一张表格,其中每行是训练实体的状态,而每列是训练实体可能采取的动作。所以上例有 16×5 种可能的状态-行动对,其中每种状态都是迷宫中的一个单元格。

首先我们初始化矩阵(上文所述的 16×5 表格)为零矩阵,然后根据不同动作所获得的奖励更新矩阵的元素。当然,更新该矩阵的方法为计算贝尔曼方程(Bellman Equation):

「S」代表当前状态,「a」代表训练实体在当前状态下所采取的动作,「S'」代表采取该动作所产生的状态,「r'」是采取该动作所得到的奖励。贴现系数(discount factor)「γ」决定了训练实体对未来奖励的重视程度,γ越大,训练实体就会越重视以往经验,而γ越小,训练实体只重视眼前的利益。如果说训练实体向远离目标状态的状态运动,而该状态遇到蛇的概率减少,那么实时奖励将减少,未来奖励将增加,j2直播,训练实体更注重未来的奖励。

我们将每次迭代(训练主体的尝试动作)作为一个 episode。对于每一次 episode,训练主体将尝试到达目标状态,并且对于每一次动作,Q 矩阵元素都会进行一次更新。

现在让我们了解一下 Q 矩阵是如何计算的(为了更简洁,我们采用更小的 2×2 迷宫):

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

Q 矩阵的初始状态如下(每行代表一个状态,每列代表一个动作):

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

U—向上走, D—向下走, L—向左走, R—向右走

奖励矩阵如下所示:

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

其中 E 代表空值(NULL,训练主体不能采取该动作)

算法:

初始化 Q 矩阵为零矩阵,设定「γ」值,完成奖励矩阵。

对于每一 episode,选择一个随机起始状态(在这个案例中,我们严格限制起始状态为-1)。

在当前状态(S)的所有可能动作中选择一个。

作为该动作(a)的结果,训练主体移往下一个状态(S')。

对于状态(S')产生的所有可能动作,选择 Q 值最大的动作。

使用贝尔曼方程(Bellman Equation)更新 Q 矩阵。

将下一个状态设置为当前状态。

如果到达目标状态,结束算法。

我们可以从以下一段伪代进一步理解:

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

现在假设训练主体从状态 1 开始,其可以采取动作 D 或 R。如果采取了动作 D,那么训练主体到达状态 3(蛇),并可以采取动作 U 或 R。现在取值γ = 0.8,那么方程有:

Q(1,D) = R(1,D) + γ*[max(Q(3,U) & Q(3,R))]

Q(1,D) = -10 + 0.8*0 = -10

其中,因为 Q 矩阵还没有更新,max(Q(3,U) & Q(3,R)) = 0。设定设定踩上蛇的奖励为-10。现在新的 Q 矩阵的值就如下所示:

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

现在,状态 3 为当前状态,从状态 3 采取了动作 R。训练主体就到达状态 4,并其可以采取动作 U 或 L。

Q(3,R) = R(3,R) + 0.8*[max(Q(4,U) & Q(4,L))]

Q(3,R) = 10 + 0.8*0 = 10

再一次更新 Q 矩阵的值:

【组图】从强化学习基本概念到Q学习的实现,<a href=j2直播,打造自己的迷宫智能体" src="http://www.wzatv.cc/atv/uploads/allimg/170404/1924106419_0.png" />

所以,现在训练主体到达目标状态 4。接下来终止该进程,并进行更多的训练直到训练主体理解了所有状态和动作,且所有的 Q 矩阵元素成为常数。这也就意味为训练主体已经尝试了所有的状态-动作对。

这一过程的 Python 实现:

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

最后 Q 矩阵的输出:

【组图】从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容