翻译Deep Learning and the Game of Go(13)第十一章 用价值网络进行强化学习

本章介绍了使用Q-learning算法训练游戏AI,通过Keras实现多输入神经网络来估计action-value函数。讲解了Q-learning的工作原理、ε-greedy策略以及如何在Keras中构建和训练Q-learning模型。Q-learning代理通过自我对弈和不断更新来提升性能,最终能够预测行动的未来回报,类似于人类棋手的直觉。
摘要由CSDN通过智能技术生成

本章包括

  • 利用Q-learning算法制作一个自我提升的游戏AI
  • 利用Keras定义和训练多输入神经网络
  • 使用Keras构建和训练Q-learning AI

你读过关于国际象棋或围棋高级比赛的专家评论吗?你会经常看到这样的评论:“黑棋在这一点上远远落后”或者“”到这里为止白棋结果略好一些"。在这样一个战略游戏中,“领先”或“落后”意味着什么?这不是篮球,有一个正在进行的分数可以参考。在围棋游戏中,评论员口中领先的意思是棋局对一个或另一个玩家有利。如果你想精确这种有利,你可以用一个思想实验来定义它。找到一百对均匀匹配的玩家,从游戏的中间开始给每一个玩家一个中间棋局,告诉他们要从那里开始下。如果黑方赢得了100局的一部分,如100局赢50局,你就可以认为棋局对黑棋有利。(蒙特卡洛的思想)

当然,这些评论员们并没有这样做。相反,他们是依靠自己下了几千盘后建立的直觉做出的对可能发生的事情的判断。在这章里,我们将展示如何训练AI玩家做出类似的判断。计算机将以与人类意愿相似的方式学到这一点:通过玩很多很多游戏。

本章要介绍Q-learning算法。Q-learning是一种训练强化学习代理的方法,可以预测它在未来能得到多少回报。(在游戏中,回报就意味着赢得对局)首先,我们描述了怎样让一个Q-learning是如何随着时间的推移做出决策和改进的。在此之后,我们将展示如何在Keras框架内实现Q-learning,然后你就可以准备训练另一种自我提高的游戏AI,这与第10章的策略学习代理不同。 

11.1 使用Q-learning算法玩游戏

 假设你有一个函数,它可以告诉你在下了一个特定落子后获胜的几率,而这就是所谓的action-value函数-它能告诉你一个特定的落子有多有价值,这样玩游戏就会很容易:你只需要在每个回合上选择最高的价值移动。那么,问题在于你是如何想出一个action-value函数的。

本节要描述Q-learning技术,它可以通过强化学习来训练action-value函数,当然,你永远学不到围棋中真正的action-value函数:因为这需要读出整个游戏树,而围棋有着许许多多的可能性,不过你可以通过自我对弈迭代地改进action-value函数的估计。估计得越来越准确,基于这种价值估计的AI将变得更强。

Q-learning这个名字来自标准数学符号。传统上,Q(s,a)被用于表示action-value函数,这是一个函数的两个变量:s表示代理所面临的状态(例如,棋局盘面),而a就表示代理正在考虑的落子(下一步可能的落子)。图11.1说明是一个action-value函数的输入。本章的重点是深度Q-learning,将使用神经网络来估计Q函数,但其大多数原则也适用于经典的Q-learning,其中您用一个简单的表来近似Q函数,该表每一行是每个可能的状态,每列都是可能的落子。

图11.1  action-value函数需要两个输入:状态(棋局局面)和落子(建议的落子)。它将返回选择该落子后估计的预期回报(获胜的机会)。在数学表示法中,action-value函数传统上被称为Q。 

在上一节中,您通过直接学习策略----选择移动的规则来学习强化学习。Q-learning的结构与此有点相似。首先你让一个你让代理与其本身进行对弈,记录所有的决策和游戏结果,游戏结果将会告诉你一些关于决策是否好的事情,然后你回相应地更新代理的行为。不过Q-learning 与策略学习做出决策的方式和它根据结果更新行为的方式不同。

要在Q函数中中构建一个游戏代理,您需要将Q函数转换为一个策略。一种选择是将每一个可能的落子插入到Q函数,并以最高的预期回报选择落子,如图11.2所示。这种策略被称为贪心策略(greedy policy)。 

图11.2  在贪婪的action-value策略中,循环每一个可能的落子并估计该价值,然后选择估计值最高的落子。(为节省空间省略大量合法落子)

 如果你对落子价值的估计有信心,那贪心策略就是最好的选择。但为了提高你的估计,你需要你的机器人偶尔去探索未知。这个被称为ϵ­-greedy policy(随机贪心策略):在少于ϵ­一些时间,策略采用完全随机;而其余时间,就是一个正常的贪心策略。图11.3显示了该过程的流程图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值