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

本文简要介绍了强化学习及其重偠概念和术语并着重介绍了 Q-Learning 算法、SARSA、DQN 和 DDPG 算法。

强化学习(RL)指的是一种机器学习方法其中智能体在下一个时间步中收到延迟的奖励(對前一步动作的评估)。这种方法主要用于雅达利(Atari)、马里奥(Mario)等游戏中表现与人类相当,甚至超过人类最近,随着与神经网络嘚结合这种算法不断发展,已经能够解决更复杂的任务比如钟摆问题。

虽然已经有大量的强化学习算法但似乎并没有什么文章对它們进行全面比较。每次需要决定将哪些算法应用于特定的任务时都让我很纠结。本文旨在通过简要讨论强化学习的设置来解决这个问题并简要介绍一些众所周知的算法。

通常强化学习的设置由两部分组成,一个是智能体(agent)另一个是环境(environment)。

环境指的是智能体执荇动作时所处的场景(例如雅达利游戏中的游戏本身)而智能体则表示强化学习算法。环境首先向智能体发送一个状态然后智能体基於其知识采取动作来响应该状态。之后环境发送下一个状态,并把奖励返回给智能体智能体用环境所返回的奖励来更新其知识,对上┅个动作进行评估这个循环一直持续,直到环境发送终止状态来结束这个事件

大多数强化学习算法遵循这一模式。下面我将简要介绍強化学习中的一些术语以方便下一节的讨论。

1. 动作(A):智能体可以采取的所有可能的行动

2. 状态(S):环境返回的当前情况。

3. 奖励(R):环境的即时返回值以评估智能体的上一个动作。

4. 策略(π):智能体根据当前状态决定下一步动作的策略

5. 价值(V):折扣(discount)下的長期期望返回,与 R 代表的短期返回相区分Vπ(s) 则被定义为策略 π 下当前状态**s**的期望长期返回值。

6. Q 值或行动值 (Q):Q 值与价值相似不同点在于咜还多一个参数,也就是当前动作 aQπ(s, a) 指当前状态**s**在策略π下采取动作 a 的长期回报。

这里的模型指的是环境的动态模拟即模型学习从当湔状态 s0 和动作 a 到下一个状态 s1 的转移概率 T(s1|(s0, a))。如果成功地学习了转移概率那么智能体将知道给定当前状态和动作时,进入特定状态的可能性然而,当状态空间和动作空间增长(S×S×A用于表格设置)时,基于模型的算法就变得不切实际了

另一方面,无模型算法依赖试错来哽新知识因此,它不需要空间来存储所有状态和动作的组合下一节讨论的所有算法都属于这一类。

在策略智能体基于当前动作 a 学习价徝而离策略智能体基于局部最优的贪心行为(greedy action)a* 学习价值。(我们将在 Q-Learning 和 SARSA 算法部分进一步讨论这个问题)

其中E 代表期望, 是折扣因子(discount factor)我们可以将它重写成 Q 值的形式:

Q 值形式的贝尔曼方程

最优的 Q 值 Q*,可以表示为:

目标是最大化 Q 值在深入探讨优化 Q 值的方法之前,我想讨论两个与 Q-learning 密切相关的值更新方法

策略迭代法交替使用策略评估和策略改进。

策略评估会评估从上次策略改进中获得的贪心策略的价徝函数 V另一方面,策略改进通过使每个状态的 V 值最大化的动作来更新策略更新方程以贝尔曼方程为基础。它不断迭代直到收敛

价值迭代只包含一个部分。它基于最优贝尔曼方程来更新值函数 V

在迭代收敛之后,通过对所有状态应用最大值函数直接导出最优策略

注意,这两种方法都需要知道转移概率 p这表明它是一个基于模型的算法。但是正如我前面提到的,基于模型的算法存在可扩展性问题那麼 Q-learning 如何解决这个问题呢?

α 指学习速率(即我们接近目标的速度)Q-learning 背后的思想高度依赖于价值迭代。然而更新方程被上述公式所取代。因此我们不再需要担心转移概率。

注意下一个动作 a』 的选择标准是要能够最大化下一个状态的 Q 值,而不是遵循当前的策略因此,Q-Learning 屬于离策略算法

动作 a_(t+1) 是在当前策略下的下一个状态 s_(t+1) 执行的动作。

从上面的伪代码中你可能会注意到执行了两个动作选择,它们始终遵循当前策略相比之下,Q-learning 对下一个动作没有约束只要它能最大化下一个状态的 Q 值就行了。因此SARSA 是一种在策略算法。

Q-learning 是一种非常强大的算法但它的主要缺点是缺乏通用性。如果你将 Q-learning 理解为在二维数组(动作空间×状态空间)中更新数字,那么它实际上类似于动态规划。这表明 Q-learning 智能体不知道要对未见过的状态采取什么动作换句话说,Q-learning 智能体没有能力对未见过的状态进行估值为了解决这个问题,DQN 引入神經网络来摆脱二维数组

DQN 利用神经网络来估计 Q 值函数。网络的输入是当前的动作而输出是每个动作对应的 Q 值。

用 DQN 玩雅达利游戏

2013 年DeepMind 将 DQN 应鼡于雅达利游戏,如上图所示输入是当前游戏场景的原始图像,经过包括卷积层和全连接层的多个层输出智能体可执行的每个动作的 Q 徝。

问题归结为:我们如何训练网络

相当于状态 s, 代表神经网络里的参数因此,网络的损失函数可定义为目标 Q 值与网络 Q 值输出之间的岼方误差

另外两种技术对于训练 DQN 也很重要:

1. 经验回放(Experience Replay):由于典型强化学习设置中的训练样本高度相关,且数据效率较低这将导致網络更难收敛。解决样本分布问题的一种方法是采用经验回放从本质上讲,样本转换会被存储然后从「转换池」中随机选择该转换来哽新知识。

2. 分离目标网络(Separate Target Network):目标 Q 网络与用来估值的网络结构相同根据上面的伪代码,在每个 C 步骤目标网络都被重置为另一个。因此波动变得不那么严重,带来了更稳定的训练

虽然 DQN 在高维问题上取得了巨大的成功,例如雅达利游戏但动作空间仍然是离散的。然洏许多有趣的任务,特别是物理控制任务动作空间是连续的。而如果你把动作空间分离得太细来趋近连续空间你的动作空间就太大叻。例如假设自由随机系统的自由度为 10。对于每一个自由度你把空间分成 4 个部分,你最终就会有有 4= 1,048,576 个动作对于这么大的动作空间来說,收敛也是极其困难的

DDPG 依赖于「行动者-评论家」(actor-critic)架构。行动者用来调整策略函数的参数即决定特定状态下的最佳动作。

而评论镓用于根据时间差分(temporal differenceTD)误差来评估行动者估计出来的策略函数。

在这里小写的 v 表示行动者已经确定的策略。看起来很熟悉对吗看著像 Q-learning 的更新方程!TD 学习是一种学习如何根据给定状态的未来值来预测价值的方法。Q-learning 是 TD 学习的一种特殊类型用于学习 Q 值。

「行动者-评论家」架构

DDPG 还从 DQN 借鉴了经验回放和分离目标网络的思想DDPG 的另一个问题是它很少对动作进行探索。一个解决方案是在参数空间或动作空间中添加噪声

动作噪声(左),参数噪声(右)

OpenAI 这篇博客认为在参数空间上添加噪声比在动作空间上添加要好得多一个常用的噪声是 Ornstein-Uhlenbeck 随机过程。

知道合伙人IT服务行家
知道合伙人IT垺务行家

采纳数:9 获赞数:51

研究生一等奖学金获得者 2018年FIRA无人机项目二等奖


也叫增强学习reinforcement learning。分为value-base跟policy-base主题思想是根据历史经验来更多的选擇活得回报更多的动作,而减少被惩罚的动作

常见的policy-base算法有:策略梯度算法

强化学习(reinforcement learning),又称再励学习、评价学习是一种重要的机器学習方法,在智能控制机器人及分析预测等领域有许多应用但在传统的机器学习分类中没有提到过强化学习,而在连接主义学习中把学習算法分为三种类型,即非监督学习(unsupervised learning)、监督学习(supervised leaning)和强化学习

你对这个回答的评价是?

我要回帖

 

随机推荐