强化学习简介(第二部分):Q-Learning

2018年09月21日 由 yuxiangyu 发表 301254 0
强化学习简介Q-Learning

在本系列的强化学习介绍(一)中,我们学习了强化学习的基础知识。


Q-Learning是强化学习中基于价值的学习算法。在本文中,我们将了解Q-Learning的详细信息:




  • 什么是Q-Learning?

  • Q-Learning背后的数学原理


Q-Learning概述


假设机器人必须越过迷宫并到达终点。有地雷,机器人每次只能移动一格。如果机器人踏上地雷,机器人就死了。机器人必须在尽可能短的时间内到达终点。


得分/奖励系统如下:




  1. 机器人在每一步都失去1分。这样做是为了让机器人走最短的路径,并尽快达到目标。

  2. 如果机器人踩到地雷,则点损失为100分并且游戏结束。

  3. 如果机器人获得闪电,它会得1分。

  4. 如果机器人到达最终目标,则机器人获得100分。


现在的问题是:我们如何训练机器人以最短的路径到达最终目标且不踩地雷?


强化学习简介Q-Learning


那么,我们如何解决这个问题呢?



介绍Q表格


Q表格(Q-Table)只是一个简单查找表的奇特名称,我们计算每个状态行动的最大预期未来奖励。这个表格将指导我们在每个状态采取最佳行动。


强化学习简介Q-Learning

每个非边缘区块将有四个动作。当机器人处于这种状态时,它可以向上或向下移动,也可以向左或向右移动。


让我们用Q-表格中对这个环境进行建模。


在Q表格中,列代表动作,行代表状态。


强化学习简介Q-Learning

每个Q表格分数是机器人在该状态下采取该行动时将获得的最大预期未来奖励。这是一个迭代过程,因为我们需要在每次迭代时改进Q表格。


但问题是:




  • 我们如何计算Q表格的值?

  • 值是可用的还是预定义的?


为了学习Q表的每个值,我们使用Q-Learning算法。



Q-Learning算法数学原理


Q函数


Q函数(Q-function)使用贝尔曼方程和采用两个输入:状态(s)和动作(a)。


强化学习简介Q-Learning

使用上面的函数,我们得到表中单元格的Q值。


迭代开始时,Q表格中的所有值都是零。


这是个更新值的迭代过程。当我们开始探索环境时 Q函数通过不断更新表中的Q值为我们提供越来越好的近似。


现在,让我们了解这种更新是如何进行的。



介绍Q-Learning算法过程


强化学习简介Q-Learning

每个框都是一个步骤,让我们详细了解每个它们。



第1步:初始化Q表格


我们将首先构建一个Q表格。有n列,n =动作数。有m行,m =状态数。我们将值初始化为0。


强化学习简介Q-Learning

在我们的机器人示例中,我们有四个动作(a = 4)和五个状态(s = 5)。因此,我们将构建一个四列和五行的表格(事实上状态应该是格子上的位置)。



第2步和第3步:选择并执行动作


这些步骤的组合会不确定的时间内完成。这这意味着这个步骤会一直运行,直到我们停止训练(或者训练循环按照代码中的定义停止)。


我们将根据Q表格在状态(s)中选择一个动作(a)。但是,如前所述,最开始时,每个Q值都为0。


因此,现在探索和开发权衡的概念发挥作用(上一篇文所提到的)。


我们将使用一种叫做ε-贪心策略( epsilon greedy strategy)的东西。


一开始,ε率会较高。机器人将探索环境并随机选择动作。这背后的逻辑是机器人对环境一无所知。


随着机器人探索环境,ε率降低,机器人开始开发环境。


在探索过程中,机器人对q值的估计越来越有信心。


对于机器人这个例子来说,有四种操作可供选择:向上,向下,向左和向右。 我们现在开始训练,机器人现在对环境一无所知。所以机器人随机选择了动作。


强化学习简介Q-Learning

我们现在可以使用贝尔曼方程更新从起点向右移动一格的Q值。



第4步和第5步:评估


现在我们采取了行动并观察到了结果和奖励。我们需要更新函数Q(s,a)。


强化学习简介Q-Learning


在机器人游戏的情况下,反复迭代评分/奖励结构是:




  • 闪电= +1

  • 地雷= -100

  • 结束 = +100


强化学习简介Q-Learning


我们不断重复这一过程,直到学习停止。通过这种方式,Q-表格将会更新。



总结


Q-Learning是一种基于价值的强化学习算法,用于使用Q函数找到最优的动作选择策略。我们的目标是最大化价值函数Q。Q表格帮我们找到每个状态的最佳行动,通过找到所有可能行动的最佳者,它可以最大化预期奖励。可以使用Q-Learning来估计该函数,Q-Learning使用贝尔曼方程迭代地更新Q(s,a)。
最初,我们探索环境并更新Q表格。当Q表格准备好时,智能体将开始开发环境并开始采取更好的行动。

作者视频及代码:youtube.com/watch?v=yefGGgz20tY
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消