深度强化学习


文档摘要

深度强化学习 强化学习(RL)被视为机器学习的基本范式之一,与监督学习和无监督学习并列。在监督学习中,我们依赖于已知结果的数据集。而在强化学习中,我们依靠的是通过行动来学习。例如,当我们第一次看到一个电脑游戏时,我们会开始玩,即使不知道规则,很快我们就能通过玩游戏和调整行为来提高技能。 课前测验 为了进行强化学习,我们需要: 一个环境或模拟器,它定义了游戏的规则。我们应该能够在模拟器中运行实验并观察结果。 一些奖励函数,它指示我们的实验有多成功。对于学习玩电脑游戏来说,奖励就是最终得分。 根据奖励函数,我们应该能够调整自己的行为并提升技能,以便下次玩得更好。与其他类型的机器学习相比,强化学习的主要区别在于,我们通常直到游戏结束才知道自己是赢还是输。

深度强化学习

强化学习(RL)被视为机器学习的基本范式之一,与监督学习和无监督学习并列。在监督学习中,我们依赖于已知结果的数据集。而在强化学习中,我们依靠的是通过行动来学习。例如,当我们第一次看到一个电脑游戏时,我们会开始玩,即使不知道规则,很快我们就能通过玩游戏和调整行为来提高技能。

课前测验

为了进行强化学习,我们需要:

  • 一个环境模拟器,它定义了游戏的规则。我们应该能够在模拟器中运行实验并观察结果。
  • 一些奖励函数,它指示我们的实验有多成功。对于学习玩电脑游戏来说,奖励就是最终得分。

根据奖励函数,我们应该能够调整自己的行为并提升技能,以便下次玩得更好。与其他类型的机器学习相比,强化学习的主要区别在于,我们通常直到游戏结束才知道自己是赢还是输。因此,我们不能说某个特定的动作单独是否好——我们只会在游戏结束时收到奖励。

在强化学习过程中,我们通常会执行许多实验。在每次实验中,我们需要平衡遵循迄今为止学到的最佳策略(开发)和探索新的可能状态(探索)。

OpenAI Gym

一个非常有用的强化学习工具是OpenAI Gym——一个模拟环境,它可以模拟许多不同的环境,从Atari游戏到倒立摆背后的物理原理。它是训练强化学习算法最流行的模拟环境之一,并由OpenAI维护。

注意:您可以在此处查看所有可用的OpenAI Gym环境:这里

小车倒立摆平衡

大家可能都见过现代的平衡装置,如SegwayGyroscooters。它们能够通过调整轮子来自动保持平衡,以响应加速度计或陀螺仪发出的信号。在这个章节中,我们将学习如何解决一个类似的问题——倒立摆平衡。这类似于马戏团表演者需要在手上平衡一根杆的情况——但这个倒立摆只发生在一维空间。

简化版的平衡问题被称为小车倒立摆问题。在小车倒立摆世界中,我们有一个可以左右移动的水平滑块,目标是在滑块移动时保持垂直杆的平衡。

一个小车倒立摆

要创建和使用此环境,我们只需要几行Python代码:

import gym env = gym.make("CartPole-v1") env.reset() done = False total_reward = 0 while not done: env.render() action = env.action_space.sample() observaton, reward, done, info = env.step(action) total_reward += reward print(f"Total reward: {total_reward}")

每个环境都可以用相同的方式访问:

  • env.reset starts a new experiment
  • env.step执行一次模拟步骤。它接收来自动作空间的动作,并返回观测值(来自观测空间)、奖励以及终止标志。

在上面的例子中,我们在每一步执行随机动作,这就是为什么实验寿命非常短的原因:

不平衡的小车倒立摆

强化学习算法的目标是训练一个模型——所谓的策略π——它将在给定状态下返回相应的动作。我们也可以将策略视为概率性的,例如,对于任何状态s和动作a,它将返回我们应在状态s中采取a的概率π(a|s)。

策略梯度算法

最直接的方法来建模策略是通过创建一个神经网络,该网络将状态作为输入,并返回相应的动作(或者更确切地说,是所有动作的概率)。从某种意义上讲,这类似于一个普通的分类任务,但有一个主要的区别——我们不知道在每一步应该采取哪些动作。

这里的想法是估计这些概率。我们构建一个累积奖励向量,显示了实验每一步的总奖励。我们还通过乘以前面的奖励乘以某些系数γ=0.99来应用奖励折扣,以减小早期奖励的作用。然后,我们加强那些产生较大奖励的步骤。

了解更多关于策略梯度算法及其实际应用,请参阅示例笔记本

行动者-评论家算法

策略梯度方法的一个改进版本称为行动者-评论家。其背后的主要思想是神经网络将被训练以返回两件事:

  • 策略,它决定了应采取哪个动作。这部分称为行动者
  • 在该状态下我们可以期望获得的总奖励的估计值——这部分称为评论家

在某种程度上,这种架构类似于一个生成对抗网络(GAN),其中有两个相互对抗的网络。在行动者-评论家模型中,行动者提出我们需要采取的动作,而评论家试图做出批判性的评估。然而,我们的目标是同时训练这两个网络。

因为我们知道实验中的真实累积奖励和评论家在实验期间返回的结果,所以相对容易构建一个损失函数来最小化它们之间的差异。这将给我们评论家损失。我们可以通过与策略梯度算法相同的方法计算行动者损失

在运行其中一个算法后,我们可以期望我们的小车倒立摆的行为如下:

平衡的小车倒立摆

✍️ 练习:策略梯度和行动者-评论家强化学习

继续学习以下笔记本:

其他强化学习任务

强化学习现在是一个快速发展的研究领域。一些有趣的强化学习例子包括:

  • 教计算机玩Atari游戏。这个问题的挑战在于,我们没有简单地表示为向量的状态,而是屏幕截图——我们需要使用CNN将其转换为特征向量,或提取奖励信息。Atari游戏可以在Gym中找到。
  • 教计算机玩棋盘游戏,如国际象棋和围棋。最近,像Alpha Zero这样的顶级程序从头开始训练,两个代理相互对弈,并在每一步中改进。
  • 在工业界,RL用于创建从仿真中得到的控制系统。一个专门为此设计的服务叫做Bonsai

结论

我们现在学会了如何通过提供一个定义游戏理想状态的奖励函数,并给予智能探索搜索空间的机会来训练代理以取得良好效果。我们已经尝试了两种算法,并在相对较短的时间内取得了良好的结果。但这只是你进入RL旅程的开始,如果你想深入研究,你应该考虑参加一门专门的课程。

挑战

探索“其他强化学习任务”部分中列出的应用,并尝试实现一个!

课后测验

复习与自学

在我们的机器学习入门课程中了解更多关于经典强化学习的内容。

观看,讨论计算机如何学会玩超级马里奥。

作业:训练山地车

你的目标是在这个作业中训练一个不同的Gym环境——山地车

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U