diff --git a/new/rl-tf/07.md b/new/rl-tf/07.md index 544dc481f0133f2323e3b642514cb992c4bce445..509575da030a1ab6afe13460b04c03a3059f5786 100644 --- a/new/rl-tf/07.md +++ b/new/rl-tf/07.md @@ -32,7 +32,7 @@ Brett Sperry 首先使用术语**实时策略**(**RTS**)作为宣传其游 # 强化学习和其他方法 -已经设计出许多方法来解决实时策略游戏的问题。 强化学习之前的主要方法之一是**在线基于案例的计划**。 基于案例的在线计划涉及基于案例的实时推理。 在基于案例的推理中,使用了一组方法来学习计划。 基于案例的在线计划在实施计划获取和执行的同时也实时地实现了此属性。 +已经设计出许多方法来解决实时策略游戏的问题。 强化学习之前的主要方法之一是**基于案例的在线规划**。 基于案例的在线计划涉及基于案例的实时推理。 在基于案例的推理中,使用了一组方法来学习计划。 基于案例的在线计划在实施计划获取和执行的同时也实时地实现了此属性。 # 基于案例的在线计划 @@ -54,7 +54,7 @@ Brett Sperry 首先使用术语**实时策略**(**RTS**)作为宣传其游 在检索步骤中,从案例库中选择与问题相关的案例子集。 在重用步骤中,将根据所选情况调整解决方案。 然后,在修订步骤中,通过在实际环境中进行测试来验证适应的解决方案,并观察到量化预测解决方案准确率的反馈。 保留步骤决定是否将此新解决的案例存储在案例库中。 因此,基于案例的推理和计划涉及重用以前的计划,并使它们适应新情况。 -基于案例的推理主要应用于静态域,也就是说,代理有时间决定要采取的操作,与此同时,环境的状态也不会改变。 但是现实世界中的问题是动态的,并且有时间限制。 因此,基于案例的推理不适合实际的策略游戏,这导致**在线基于案例的计划**,其中与基于案例的推理不同,实时进行计划和执行。 下图给出了基于案例的在线计划的架构: +基于案例的推理主要应用于静态域,也就是说,代理有时间决定要采取的操作,与此同时,环境的状态也不会改变。 但是现实世界中的问题是动态的,并且有时间限制。 因此,基于案例的推理不适合实际的策略游戏,这导致**基于案例的在线规划**,其中与基于案例的推理不同,实时进行计划和执行。 下图给出了基于案例的在线计划的架构: ![](img/2296ca03-8f44-4eff-b1f6-5e92a222af79.png) @@ -131,7 +131,7 @@ Brett Sperry 首先使用术语**实时策略**(**RTS**)作为宣传其游 强化学习中的奖励功能必须与每个状态相关联,以使从开始状态开始的动作通过一系列中间状态导致达到目标状态,从而使预期的奖励总和最大化,从而导致 最佳路径。 -基本的强化学习算法,例如 Q 学习和 SARSA 算法(在第 5 章, *Q-Learning 和深度 Q 网络*中进行了解释)在收敛时间和比率方面表现更好 与早期的在线案例学习相比。 +基本的强化学习算法,例如 Q 学习和 SARSA 算法(在第 5 章,“Q 学习和深度 Q 网络”中进行了解释)在收敛时间和比率方面表现更好 与早期的在线案例学习相比。 此外,在深度强化学习领域中正在进行大量研究,该研究集中于使用图像进行代理感知以在更复杂的领域中更好地工作。 以前的自编码器方法有助于将非常复杂的域转换为更简单的域。 此外,学习奖励功能和自编码器的其他变体,尤其是去噪堆叠式自编码器,将进一步改善结果。 diff --git a/new/rl-tf/08.md b/new/rl-tf/08.md index 6d7c33e01f4022c173cb51856c54fa548f78046c..249ed46e382ace47eb4cc65dc9140eec1c909670 100644 --- a/new/rl-tf/08.md +++ b/new/rl-tf/08.md @@ -91,11 +91,11 @@ DeepBlue 搜索国际象棋的游戏树到最低深度(因为不可能创建 AlphaGo 的架构中使用了两个神经网络,分别是: * **策略网络**:此神经网络决定要采取的下一步行动/行动 -* **价值网络**:此神经网络从当前位置预测游戏的获胜者 +* **值网络**:此神经网络从当前位置预测游戏的获胜者 -AlphaGo 使用策略和价值网络的方式是将搜索树的巨大复杂性降低到较小的可管理搜索空间。 因此,它没有考虑每个步骤的数百个不同动作,而是考虑了策略网络建议的一些最佳可能动作。 +AlphaGo 使用策略和值网络的方式是将搜索树的巨大复杂性降低到较小的可管理搜索空间。 因此,它没有考虑每个步骤的数百个不同动作,而是考虑了策略网络建议的一些最佳可能动作。 -此外,价值网络减少了搜索的深度。 在每个位置,价值网络都试图预测哪个玩家将获胜,而不是遍历搜索树进行评估。 因此,它能够返回一个值,该值量化可能的网络建议的移动量。 +此外,值网络减少了搜索的深度。 在每个位置,值网络都试图预测哪个玩家将获胜,而不是遍历搜索树进行评估。 因此,它能够返回一个值,该值量化可能的网络建议的移动量。 人类在游戏寿命方面存在弱点,也就是说,他们在长时间比赛中会感到疲倦,从而导致失误,而这并不是计算机的问题。 而且,人类的时间有限。 他们一生可以玩大约数千场围棋游戏,而 AlphaGo 一天可以玩一百万场游戏。 因此,经过足够的处理,足够的训练,足够的搜索和足够的计算能力,AlphaGo 击败了世界上最好的专业围棋选手。 @@ -115,18 +115,18 @@ AlphaGo 之前的 Go 的 AI 程序完全依赖于 Monte Carlo Tree Search。 这 # AlphaGo 的架构和属性 -所有方法都依赖于结合某些领域知识和人工干预的树搜索。 AlphaGo 使用树搜索和两种 CNN(策略和价值网络)来指导树搜索。 这些 CNN 类似于 DeepBlue 中使用的评估功能,但有一个区别,即 CNN 在手工制作 DeepBlue 中使用的评估功能时学习评估功能。 +所有方法都依赖于结合某些领域知识和人工干预的树搜索。 AlphaGo 使用树搜索和两种 CNN(策略和值网络)来指导树搜索。 这些 CNN 类似于 DeepBlue 中使用的评估功能,但有一个区别,即 CNN 在手工制作 DeepBlue 中使用的评估功能时学习评估功能。 较早使用的树搜索是一种蛮力方法,而 CNN 是一种基于学习的方法,它提供了一种基于直觉的游戏方式。 因此,第一个任务是减少搜索空间(Go 的搜索空间大约为 10 170 )。 这可以通过两种方法来完成: -* 减少*动作候选,即*,即广度减少(避免在游戏树中探索它们时避免出现不必要的动作) +* 减少*动作候选*,即广度减少(避免在游戏树中探索它们时避免出现不必要的动作) * 在时间之前减少评估功能,即深度减少(避免遍历整个游戏树来评估所采取的移动并根据当前游戏状态预测获胜状态) 策略网络并入当前游戏状态,并输出给定​​状态下每个可能动作的概率。 具有较高概率的动作有较高的获胜机会。 首先,使用专家玩家玩游戏的数据集,通过监督学习来训练策略网络。 输入数据包含游戏板的图像,输出将采取的措施。 来自 160000 个专家游戏的大约 3000 万个棋盘位置的训练数据集最初用于训练 AlphaGo 的策略网络。 在专家数据集上进行训练后,通过自我扮演改进了预测可能学习到的动作的模型,在自我扮演的过程中,它与自身无数次比赛,以使用策略梯度从过去的错误中学习。 因此,策略网络通过提供可能采取行动的可能性来帮助减少候选行动。 -价值网络提供当前状态的估计值,该值是黑人玩家在当前状态下赢得比赛的概率。 策略和价值网络的输入与当前游戏状态(具有当前石头位置的棋盘游戏的图像)相同。 策略网络的输出是获胜的概率。 因此,价值网络的作用类似于评估功能,该功能是通过 3000 万个董事会职位的监督学习集获得的。 +值网络提供当前状态的估计值,该值是黑人玩家在当前状态下赢得比赛的概率。 策略和值网络的输入与当前游戏状态(具有当前石头位置的棋盘游戏的图像)相同。 策略网络的输出是获胜的概率。 因此,值网络的作用类似于评估功能,该功能是通过 3000 万个董事会职位的监督学习集获得的。 -因此,价值网络输出直觉(赢和输的机会),而策略网络输出反思(训练游戏知识)。 因此,AlphaGo 中直觉和反射的混合使其比任何基于搜索的方法都强大。 但是在 AlphaGo 中,这些网络可根据所开发的直觉和学习的反射来帮助更快,优化树搜索。 +因此,值网络输出直觉(赢和输的机会),而策略网络输出反思(训练游戏知识)。 因此,AlphaGo 中直觉和反射的混合使其比任何基于搜索的方法都强大。 但是在 AlphaGo 中,这些网络可根据所开发的直觉和学习的反射来帮助更快,优化树搜索。 下图是神经网络训练管道和架构: @@ -136,38 +136,39 @@ Silver et。的 Google DeepMind 在 AlphaGo in Nature(https://storage.googleap 让我们讨论前面详细显示的 AlphaGo 的神经网络架构图: -* `a`:快速部署策略*ρπ* 和监督学习策略网络*ρσ* 受过专家训练 播放包含 3000 万个董事会职位的数据集,以像人类专家一样学习预测动作。 通过学习的监督学习策略网络的权重初始化强化学习策略网络,并通过使用策略梯度来最大化策略质量,从而改进其策略*ρρ* 策略网络的早期版本。 通过使用此更新的策略网络进行自我播放,将生成一个新的数据集。 数据集包含棋盘位置的图像及其相应的最终结果,即获胜或失败。 最后,使用该自玩数据集通过回归训练值网络*νθ* ,以输出获胜的概率。 +* `a`:快速部署策略`ρ[π]`和监督学习策略网络`ρ[σ]`受过专家训练 播放包含 3000 万个董事会职位的数据集,以像人类专家一样学习预测动作。 通过学习的监督学习策略网络的权重初始化强化学习策略网络,并通过使用策略梯度来最大化策略质量,从而改进其策略`ρ[ρ]`策略网络的早期版本。 通过使用此更新的策略网络进行自我播放,将生成一个新的数据集。 数据集包含棋盘位置的图像及其相应的最终结果,即获胜或失败。 最后,使用该自玩数据集通过回归训练值网络`ν[θ]`,以输出获胜的概率。 -* **b:**该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数*σ*的卷积层传播(如果它 是一个有监督的学习策略网络)或*ρ*(如果它是强化学习策略网络),并针对所有可能的动作*和*返回概率分布![](img/a20e03f6-d7b8-4a24-9ed4-c0e49948b873.png)或![](img/b319e230-6055-4a7d-97eb-3b94f0b8886e.png) 输出。 价值网络还使用参数`θ`的许多卷积层,返回标量值![](img/e967cc42-4300-4276-8f1b-e362c4705662.png),该标量值表示在给定位置 *s'中获胜或失败的结果(最终结果)的概率:* +* `b`:该流程的架构流程,其中策略网络将棋盘位置(游戏状态)的图像表示作为输入,并通过参数`σ`的卷积层传播(如果它 是一个有监督的学习策略网络)或`ρ`(如果它是强化学习策略网络),并针对所有可能的动作`a`返回概率分布![](img/a20e03f6-d7b8-4a24-9ed4-c0e49948b873.png)或![](img/b319e230-6055-4a7d-97eb-3b94f0b8886e.png) 输出。 值网络还使用参数`θ`的许多卷积层,返回标量值![](img/e967cc42-4300-4276-8f1b-e362c4705662.png),该标量值表示在给定位置`s'`中获胜或失败的结果(最终结果)的概率: ![](img/8d06defa-4382-48e4-a4c2-2a831bdf246f.png) -Silver et。 等 +Silver 等 让我们讨论前面详细显示的在 AlphaGo 中使用的**蒙特卡罗树搜索**(**MCTS**): -* `a`:在每次仿真过程中,遍历树时选择了该边,该边具有作用值`Q`和值 *u(P)之和的最大值。 HTG5]是该边存储的先验概率`P`的函数。* +* `a`:在每次仿真过程中,遍历树时选择了该边,该边具有作用值`Q`和值`u(P)`之和的最大值。 HTG5]是该边存储的先验概率`P`的函数。 * `b`:扩展叶节点,即在策略网络![](img/401ce6a8-cd7f-48ee-8df4-f55cb8e8747b.png)之后处理新节点,并将每个操作的输出概率存储为先验概率`P`。 * `c`:在仿真结束时,以两种方式对叶节点进行评估: - * 使用价值网络![](img/e9c40645-7e2f-403d-b976-413405948161.png) + * 使用值网络![](img/e9c40645-7e2f-403d-b976-413405948161.png) * 使用学习到的快速推广策略![](img/a453b581-4415-4d30-81e6-96e93018c288.png)进行推广,直到游戏结束,并使用函数`r`计算获胜者 * `d`:更新动作值`Q`,以跟踪该动作下方子树中所有评估值 r(·)和![](img/e9c40645-7e2f-403d-b976-413405948161.png)(·)的平均值。 -如前所述,对一个策略网络进行了 3000 万个游戏职位的训练。 在不使用树搜索的情况下,AlphaGo 赢得了与 Pachi(Go 最强的 AI 程序)对战的 85% 的比赛,其中 Pachi 依靠基于 Monte Carlo Tree Search 的 100,000 次模拟。 价值网络接受了 3000 万个游戏位置的训练,并学习了预测获胜概率的模型。 策略网络输出充当树搜索的指南。 对于给定的游戏状态,策略网络为每个可能的移动提供了概率。 这有助于减少树搜索期间的候选动作。 +如前所述,对一个策略网络进行了 3000 万个游戏职位的训练。 在不使用树搜索的情况下,AlphaGo 赢得了与 Pachi(Go 最强的 AI 程序)对战的 85% 的比赛,其中 Pachi 依靠基于 Monte Carlo Tree Search 的 100,000 次模拟。 值网络接受了 3000 万个游戏位置的训练,并学习了预测获胜概率的模型。 策略网络输出充当树搜索的指南。 对于给定的游戏状态,策略网络为每个可能的移动提供了概率。 这有助于减少树搜索期间的候选动作。 # 能耗分析– Lee Sedol 与 AlphaGo 下表是能耗分析(Lee Sedol 与 AlphaGo): -| **Lee Sedol(9 人围棋棋手)** | **Google DeepMind 的 AlphaGo** | -| 每人每天的卡路里〜2,500 kCal(平均 BMR) | 假设:CPU〜100W,GPU〜300W1,202 CPUs and 176 GPUs used | -| 假设 Lee Sedol 在一场比赛中消耗了所有精力。Therefore, 2,500 kCal * 4184 J/kCal ![](img/77dec649-fc0f-4dfe-988e-152ebe9f2de0.png) 10M J | 因此,[1,202 * 100 + 176 * 300] W = [1,202 * 100 + 176 * 300] J / s = 173,000 J / sConsidering it to be atleast 4 hours game.Therefore, 173,000 J/s * 3 * 3,600 s ![](img/167ffd0a-8b09-46de-88af-6e4b4deaa26a.png) 2,500M J | +| **Lee Sedol(9 段围棋棋手)** | **Google DeepMind 的 AlphaGo** | +| --- | --- | +| 每人每天的卡路里 ~ 2,500 kCal(平均 BMR) | 假设:CPU ~ 100W,GPU ~ 300W,使用了 1,202 个 CPU 和 176 个 GPU | +| 假设 Lee Sedol 在一场比赛中消耗了所有精力, 因此为`2,500 kCal * 4184 J/kCal ≈ 10 MJ` | `[1,202 * 100 + 176 * 300] W = [1,202 * 100 + 176 * 300] J/s = 173,000 J/s`,考虑到它是至少四小时的游戏,因此,`173,000 J/s * 3 * 3,600 s ≈ 2,500 MJ` | # AlphaGo 零 第一代 AlphaGo 能够击败专业的 Go 玩家。 2017 年 10 月,Google DeepMind 在 Nature 上发表了有关[《AlphaGo Zero》](https://www.nature.com/articles/nature24270)的论文。 AlphaGo Zero 是 AlphaGo 的最新版本。 早期版本的 AlphaGo 在接受过数以千计的从业余到专业游戏的人类游戏训练后,学会了玩游戏。 但是 AlphaGo 的最终版本(即 AlphaGo Zero)从零开始学到了一切,这是从第一个基本原理开始的,既没有使用任何人工数据也没有任何人工干预,并且能够实现最高水平的性能。 因此,AlphaGo Zero 通过与自己对战来学习玩围棋。 最大的壮举之一是,AlphaGo Zero 在 19 小时内就能够学习更高级的围棋策略的基础知识,包括生与死,影响力和领土。 在短短的三天内,AlphaGo Zero 击败了所有先前的 AlphaGo 版本,并在 40 天内超过了人类对 Go 的一千年了解。 -AlphaGo Zero 背后最重要的想法是,它完全从空白状态(即清晰的 Go 棋盘)中学习,并通过自己的玩法自行弄清楚,而无需任何人类知识,没有任何人类游戏示例和数据,甚至没有任何东西 人为干预。 它从最初的基本原理中发现并发展了学习围棋游戏的直觉。 这种从头开始的学习称为**表格学习**或**空白板学习**。 +AlphaGo Zero 背后最重要的想法是,它完全从空白状态(即清晰的 Go 棋盘)中学习,并通过自己的玩法自行弄清楚,而无需任何人类知识,没有任何人类游戏示例和数据,甚至没有任何东西 人为干预。 它从最初的基本原理中发现并发展了学习围棋游戏的直觉。 这种从头开始的学习称为**表格学习**或**白板学习**。 Tabula rasa 学习对于任何 AI 代理都是非常重要的,因为如果有一个代理已实现 Tabula rasa 学习,则可以将其从 Go 游戏移植到其他域环境(可能是其他任何游戏)。 Tabula rasa 学习将代理与其所在领域的具体情况脱钩,并尝试开发一种算法,该算法足够通用,可以学习以实现与该环境相关的目标,并且可以在任何地方应用。 @@ -186,7 +187,7 @@ Google DeepMind 已经开始使用 AlphaGo Zero 来了解蛋白质折叠,因 * 完全从自我游戏中训练,这不是人类专家的游戏数据,而是从头开始学习一切。 较早的版本监督学习策略网络,该网络经过专家游戏训练。 * 没有手工制作的功能。 * 用残差卷积架构替换了普通卷积架构。 -* AlphaGo Zero 并没有将其单独的策略和价值网络,而是将它们两者合并为一个大型网络。 +* AlphaGo Zero 并没有将其单独的策略和值网络,而是将它们两者合并为一个大型网络。 * 简化了蒙特卡洛树搜索,该搜索使用此大型神经网络进行仿真。 网络输入包括: @@ -221,7 +222,7 @@ Silver 等人从 Google DeepMind 在 Nature 出版物上的[《AlphaGo Zero》]( 因此,对于当前的董事会职位,这种重复过程将爆发成一棵大树。 运行更多的模拟,并且树将随着扩展呈指数扩展。 因此,该想法是将该搜索树爆炸到一定深度,因为由于有限的计算能力,进一步的搜索将是不可能的。 -AlphaGo 团队决定为每个单板位置评估进行大约 1600 次仿真。 因此,对于每个单板状态,将运行 Monte Carlo 树搜索,直到获得 1600 个模拟为止。 之后,价值网络决定哪个结果董事会职位是最好的,即获胜的可能性最高。 然后将所有这些值备份到树的顶部,直到当前的游戏状态(即正在评估的当前棋盘位置),并获得对真正有力的,但不是强势的动作的非常强的估计: +AlphaGo 团队决定为每个单板位置评估进行大约 1600 次仿真。 因此,对于每个单板状态,将运行 Monte Carlo 树搜索,直到获得 1600 个模拟为止。 之后,值网络决定哪个结果董事会职位是最好的,即获胜的可能性最高。 然后将所有这些值备份到树的顶部,直到当前的游戏状态(即正在评估的当前棋盘位置),并获得对真正有力的,但不是强势的动作的非常强的估计: ![](img/925fa614-0a5c-4230-a5f8-b55fe744aab2.png)