通过 Q-learning 深入理解强化学习(上)

紧接着上两周的强化学习入门知识,本周我们学习以下Q-Learning哦~

读完本文,你会清楚以下两个问题:

Q-Learning是什么?
如何利用数组(Numpy)来实现Q-Learning.

故事案例:骑士和公主


假设你是一位王子,需要拯救被困的公主。如上图,每次,你可以移动一个方块。你的敌人无法移动,但是如果你和敌人落在同一个方块里,你会死亡。你的目标是,尽可能以最快的路线前往城堡,这可以利用“积分评分”系统来评估。

每一步丢失一分(每一步丢失的分数有助于agent训练得更快)
如果你触碰到了敌人,你就会丢失100分,而游戏继续。
如果你最终进入了城堡,获得胜利,那么你可以得100分。

问题是:如何创建一个可以做到这些的agent呢?

我们先来看看第一种策略。假设agent试图走过每一个方块,并且给每个方块涂色。绿色代表安全,红色代表危险。

那么我们可以训练agent只走绿色方块。

但问题是,这并不是很有用。绿色方块都是相连的,我们无法知道哪个方块是最佳选择。因此agent在找寻城堡的途中可能陷入无限的循环之中。

Q-table简介

第二种策略:创建一个table,可以计算每个state中每个action的未来预期的最大奖励值。这样我们可以知道每个state下的最佳action。

每个state(这里指的是方块)允许四种可能性的action,即上、下、左、右。

0代表的是无法移动(如果你在左上角,那你是无法向左或向上移动的)

通过计算方式,我们可以将这个网格图变成一个table。

这个table就叫做Q-table(Q指的是这个action的质量quality)。Q-table中有四个action(上下左右)。行代表state。每个单元格的值将是特定状态(state)和行动(action)下未来预期的最大奖励值。


如果我在特定状态下,利用特定的最佳策略,采取了特定的行为,那么我将会得到未来预期的最大奖励值,也就是每一个Q-table的分数。

为什么我们要说“特定的策略”呢?因为我们并不是执行一个策略。相反,我们只是提升Q-table效果来选择最佳行为。

你可以将这个Q-table想象成是一个游戏的“备忘单”。幸亏有这样的备忘单,我们才能通过寻找最高分数来知道每个state(Q-table的每一行)下的最佳action该怎么走。

是的!城堡问题解决了!但是……如何计算Q-table中每个元素的价值呢?

那我们就需要使用到Q-learning算法了。

具体如何,且听下回分解哟~

年关将近,祝大家回程一路平安,新年快乐哦~

年后见啦~


大家好,我是AI搬运工

致力于将国外的AI好文,翻译成大家都懂的中国话!

本文属于AI搬运工自行翻译,如有错误,欢迎指正!

原文来源:Diving Deeper into Reinforcement Learning with Q-learning

近期文章回顾:

用有趣的文字,教你强化学习入门知识(下)

用有趣的文字,教你强化学习入门知识(上)

如何辨别哪些是人工智能生成的虚假图像?

机器学习之通过开发集和评价指标加速迭代

机器学习之优化指标和满意度指标

发布于 2019-01-30

文章被以下专栏收录

    建立这个公众号的目的是给在从事人工智能相关领域(包括视觉领域,机器人领域,语音处理合成领域,医学人工智能领域,优化领域以及搜索领域等)工作和学习的人士以及对人工智能感兴趣的兴趣团体提供交流和分析信息的平台。 群主会定期组织相关的人工智能相关的学习会和分享会。以及撰写相关的博文供大家学习和讨论。同时也会分享一些开源技术以供大家参考。群主的愿景是希望把世界各个地区的人工智能从业人工凝聚起来,组成一个完整的人工智能团体。