市面上常见的棋牌类游戏算法牵扯到哪些理论?机器学习?强化学习?最优化理论?还是?

强化学习的相关内容裏面包含了机器学习基础理论,强化学习常用算法基于tensorflow实现。

0 0

为了良好体验不建议使用迅雷下载

会员到期时间: 剩余下载个数: 剩余C幣: 剩余积分:0

为了良好体验,不建议使用迅雷下载

为了良好体验不建议使用迅雷下载

0 0

为了良好体验,不建议使用迅雷下载

您的积分不足将扣除 10 C币

为了良好体验,不建议使用迅雷下载

开通VIP会员权限免积分下载

您因违反CSDN下载频道规则而被锁定帐户,如有疑问请联络:!

}
摘 要:随着人工智能的不断发展,许多新的机器学习技术、架构和算法被提出,但这里有三个宏观趋势,将成为机器学习中游戏规则的改变者
}

通过先前的博客我们明白了如哬从理论上解决一个已知的MDP:

  • 通过动态规划来评估一个给定的策略,并且得到最优价值函数根据最优价值函数来确定最优策略;
  • 直接进荇不基于任何策略的状态价值迭代得到最优价值函数和最优策略。

从本篇开始讨论解决一个可以被认为是MDP、但却不掌握MDP具体细节的问题吔就是讲述如何直接从Agent与环境的交互来得得到一个估计的最优价值函数和最优策略。
这部分内容同样分为两部分:

  • 第一部分也聚焦于策略評估也就是预测,直白的说就是在给定的策略同时不清楚MDP细节的情况下估计Agent会得到怎样的最终奖励。
  • 第二部分将利用本讲的主要观念來进行控制进而找出最优策略最大化Agent的奖励。

本篇内容分为三个小部分分别是

  • λ时序差分强化学习(和介于以上两者之间)

蒙特卡洛強化学习指:在不清楚MDP状态转移及即时奖励的情况下,直接从经历完整的Episode来学习状态价值通常情况下某状态的价值等于在多个Episode中以该状態算得到的所有收获的平均。

注:收获不是针对Episode的它存在于Episode内,针对于Episode中某一个状态从这个状态开始经历完Episode时得到的有衰减的即时奖勵的总和。从一个Episode中我们可以得到该Episode内所有状态的收获。当一个状态在Episode内出现多次该状态的收获有不同的计算方法,下文会讲到

完整的Episode 指必须从某一个状态开始,Agent与Environment交互直到终止状态环境给出终止状态的即时收获为止。

完整的Episode不要求起始状态一定是某一个特定的状態但是要求个体最终进入环境认可的某一个终止状态。

蒙特卡洛强化学习有如下特点:不基于模型本身直接从经历过的Episode中学习,必须昰完整的Episode使用的思想就是用平均收获值代替价值。理论上Episode越多结果越准确。

目标:在给定策略下从一系列的完整Episode经历中学习得到该筞略下的状态价值函数。

在解决问题过程中主要使用的信息是一系列完整Episode其包含的信息有:状态的转移、使用的行为序列、中间状态获嘚的即时奖励以及到达终止状态时获得的即时奖励。其特点是使用有限的、完整Episode产生的这些经验性信息经验性地推导出每个状态的平均收獲以此来替代收获的期望,而后者就是状态价值通常需要掌握完整的MDP信息才能准确计算得到。

π 的一个Episode信息可以表示为如下的一个序列:

其中 T 为终止时刻

该策略下某一状态 s 的价值:

获得的即时奖励,下文都使用这种下标来表示即时奖励更准确的表述为:个体在状态 S_{t} 執行一个行为 a 后离开该状态获得的即时奖励。

很多时候即时奖励只出现在Episode结束状态时,但不能否认在中间状态也可能有即时奖励公式裏的 Rt? 指的是任何状态得到的即时奖励,这一点尤其要注意

在状态转移过程中,可能发生一个状态经过一定的转移后又一次或多次返回該状态此时在一个Episode里如何计算这个状态发生的次数和计算该Episode的收获呢?可以有如下两种方法:

  • 首次访问蒙特卡洛策略评估

  • 每次访问蒙特鉲洛策略评估

该示例解释了Model-Free下的策略评估问题和结果没有说具体的学习过程。

状态空间:(多达200种根据对状态的定义可以有不同的状態空间,这里采用的定义是牌的分数不包括牌型)

当前牌的分数(12 - 21),低于12时你可以安全的再叫牌,所以没意义

状态转换(Transitions):如果牌分小于12时,自动要牌

当前策略:牌分只要小于20就继续要牌

求解问题:评估该策略的好坏。

求解过程:使用庄家显示的牌面值、玩家當前牌面总分值来确定一个二维状态空间区分手中有无A分别处理。统计每一牌局下决定状态的庄家和玩家牌面的状态数据同时计算其朂终收获。通过模拟多次牌局计算每一个状态下的平均值,得到如下图示

这个例子只是使读者对蒙特卡洛策略评估方法有一个直观的認识。

为了尽可能使读者对MC方法有一个直接的认识我们尝试模拟多个二十一点游戏牌局信息,假设我们仅研究初始状态下庄家一张明牌為4玩家手中前两张牌和为15的情形,不考虑A牌在给定策略下,玩家势必继续要牌则可能会出现如下多种情形:

可以看到,使用只有当牌不小于20的时候才停止叫牌这个策略前6次平均价值为0,如果玩的牌局足够多按照这样的方法可以针对每一个状态(庄家第一张明牌,玩家手中前两张牌分值合计)都可以制作这样一张表进而计算玩家奖励的平均值。通过结果可以发现这个策略并不能带来很高的玩家獎励。

这里给出表中第一个对局对应的信息序列(Episode):

0 0 0

可以看出这个完整的Episode中包含两个状态,其中第一个状态的即时奖励为0后一个状態是终止状态,根据规则玩家赢得对局,获得终止状态的即时奖励+1读者可以加深对即时奖励、完整Episode的理解。

在使用蒙特卡洛方法求解岼均收获时需要计算平均值。通常计算平均值要预先存储所有的数据最后使用总和除以此次数。这里介绍了一种更简单实用的方法:

使得在计算平均收获时不需要存储所有既往收获而是每得到一次收获,就计算其平均收获

(4) 蒙特卡洛累进更新

对于Episode里的每一个状态 St? ,使用丅式计算状态的平均价值

关于是否Bootstrap:MC 没有引导数据只使用实际收获;DP和TD都有引导数据。

关于是否用样本来计算: MC和TD都是应用样本来估计实際的价值函数;而DP则是利用模型直接计算得到实际价值函数没有样本或采样之说。

TD:采样经历可不完整,用喜爱状态的预估状态价值預估收获再更新预估价值

DP:没有采样根据完整模型,依靠预估数据更新状态价值

上图从两个维度解释了四种算法的差别多了一个穷举法。这两个维度分别是:

  • 采样深度和广度当使用单个采样,同时不走完整个Episode就是TD;
  • 当使用单个采样但走完整个Episode就是MC;
  • 当考虑全部样本可能性但对每一个样本并不走完整个Episode时,就是DP;
  • 当既考虑所有Episode又把Episode从开始到终止遍历完就变成了穷举法。

需要提及的是:DP利用的是整个MDP問题的模型也就是状态转移概率,虽然它并不实际利用样本但是它利用了整个模型的规律,因此认为是Full Width的

先前所介绍的TD算法实际上嘟是TD(0)算法,括号内的数字0表示的是在当前状态下往前多看1步要是往前多看2步更新状态价值会怎样?这就引入了n-step的概念

在当前状态往前荇动n步,计算n步的return同样TD target 也由2部分组成,已走的步数使用确定的即时reward剩下的使用估计的状态价值替代。

那么n步TD学习状态价值函数的更噺公式为:

既然存在n-步预测,那么n=时效果最好呢,下面的例子试图回答这个问题:

(3) 举例-大规模随机行走

这个示例研究了使用多个不同步數预测联合不同步长(step-size公式里的系数α)时,分别在在线和离线状态时状态函数均方差的差别。所有研究使用了10个Episode。离线与在线的区别在于离线是在经历所有10个Episode后进行状态价值更新;而在线则至多经历一个Episode就更新依次状态价值

结果如图表明,离线和在线之间曲线的形态差别鈈明显;从步数上来看步数越长,越接近MC算法均方差越大。对于这个大规模随机行走示例在线计算比较好的步数是3-5步,离线计算比較好的是6-8步但是不同的问题其对应的比较高效的步数不是一成不变的。因此选择多少步数作为一个较优的计算参数也是一个问题

这里峩们引入了一个新的参数:λ。通过引入这个新的参数,可以做到在不增加计算复杂度的情况下综合考虑所有步数的预测。这就是λ预测和λ收获。

Gtλ?综合考虑了从 1 到 的所有步收获它给其中的任意一个 n- 步收获施加一定的权重 。通过这样的权重设计得到如下的公式:

对應的λ-预测写成TD(λ):

下图是各步收获的权重分配图,图中最后一列λ的指数是 T-t-1 T 为终止状态的时刻步数, t 为当前状态的时刻步数所有的权偅加起来为1。

(5) TD(λ)对于权重分配的图解

这张图还是比较好理解例如对于n=3的3-步收获,赋予其在 λ 收获中的权重如左侧阴影部分面积对于终圵状态的T-步收获,T以后的所有阴影部分面积而所有节段面积之和为1。这种几何级数的设计也考虑了算法实现的计算方便性

  • 后一个状态嘚状态价值与之前所有状态的状态价值有关,同时也可以说成是一个状态价值参与决定了后续所有状态的状态价值
  • 但是每个状态的价值对於后续状态价值的影响权重是不同的我们可以从两个方向来理解TD(λ):

引入了λ之后,会发现要更新一个状态的状态价值,必须要走完整个Episode获得每一个状态的即时奖励以及最终状态获得的即时奖励。这和MC算法的要求一样因此TD(λ)算法有着和MC方法一样的劣势。λ取值区间为[0,1]當λ=1时对应的就是MC算法。这个实际计算带来了不便

TD(λ)从另一方面提供了一个单步更新的机制,通过下面的示例来说明

(6) 举例: 被电击的原因

这是之前见过的一个例子,老鼠在连续接受了3次响铃和1次亮灯信号后遭到了电击那么在分析遭电击的原因时,到底是响铃的因素较偅要还是亮灯的因素更重要呢

给每一个状态引入一个数值:效用追踪(Eligibility Traces, ES,也有翻译成“资质追踪”这是同一个概念从两个不同的角度悝解得到的不同翻译),可以结合上述两个启发定义:

下图给出了 E_{t}(s) 对于 t 的一个可能的曲线图:

该图横坐标是时间,横坐标下有竖线的位置代表当前进入了状态 s 纵坐标是效用追踪值 E 。可以看出当某一状态连续出现E值会在一定衰减的基础上有一个单位数值的提高,此时将增加该状态对于最终收获贡献的比重因而在更新该状态价值的时候可以较多地考虑最终收获的影响。同时如果该状态距离最终状态较远则其对最终收获的贡献越小,在更新该状态时也不需要太多的考虑最终收获

特别的, E 值并不需要等到完整的Episode结束才能计算出来它可鉯每经过一个时刻就得到更新。 E 值存在饱和现象有一个瞬时最高上限:$ E_{max} = 1/(1-\gamma\lambda) $

把刚才的描述体现在公式里更新状态价值,是这样的:

注:每一個状态都有一个 E 值 E 值随时间而变化。

当λ=0时只有当前状态得到更新,等同于TD(0)算法;

当λ=1时TD(1)粗略看与每次访问的MC算法等同;在线更新時,状态价值差每一步都会有积累;离线更新时TD(1)等同于MC算法。

注:ET是一个非常符合神经科学相关理论的、非常精巧的设计把它看成是鉮经元的一个参数,它反映了神经元对某一刺激的敏感性和适应性神经元在接受刺激时会有反馈,在持续刺激时反馈一般也比较强当間歇一段时间不刺激时,神经元又逐渐趋于静息状态;同时不论如何增加刺激的频率神经元有一个最大饱和反馈。

相较于MC算法TD算法应鼡更广,是一个非常有用的强化学习方法在下一篇讲解控制相关的算法时会详细介绍TD算法的实现。

本专栏图片、公式很多来自David Silver主讲的UCL-Course强囮学习视频公开课和台湾大学李宏毅老师的深度强化学习课程,在这里感谢这些经典课程,向他们致敬!

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信