目录
探索和开发。马尔可夫决策过程。Q-learning,政策学习和深度强化学习。
“我只吃了一些巧克力来完成最后一节。”
在有监督的学习中,训练数据带有来自某些神圣的“主管”的答案。如果只有这样的生活!
在强化学习(RL)中没有答案关键,但你的强化学习代理仍然必须决定如何执行其任务。在没有现有培训数据的情况下,代理可以从经验中学习。它通过试错来收集训练样例(“这个动作很好,行动很糟糕”),因为它试图完成任务,目的是最大化长期奖励。
在人类机器学习的最后一节中,我们将探讨:
- 该勘探/开发权衡
- 马尔可夫决策过程(MDP),RL任务的经典设置
- Q-learning,政策学习和深度强化学习
- 最后,价值学习问题
最后,我们一如既往地编制了一些最喜欢的资源,以便进一步探索。
让我们把机器人鼠标放在迷宫中
考虑强化学习的最简单背景是具有明确目标和分数系统的游戏。
假设我们正在玩一个游戏,我们的鼠标?正在迷宫结束时寻求奶酪的最终奖励(?+ 1000点),或沿途的水奖励较少(?+ 10点)。同时,机器人鼠标希望避免触电的位置(⚡-100点)。
奖励是奶酪。
经过一番探索,老鼠可能会发现三个水源的迷你天堂聚集在入口附近,并花费所有的时间利用这些发现,不断攫取这些水源的小奖励,永远不再进入迷宫追求更大的奖金。
但是正如你所看到的那样,鼠标会在迷宫中进一步错过一个更好的绿洲,或最终的奶酪终极奖励!
这带来了勘探/开发权衡。一个简单的探索策略是鼠标在大多数时间(例如,80%的时间)采取最着名的动作,但偶尔会探索一个新的,随机选择的方向,即使它可能远离已知的奖励。
这种策略被称为epsilon-greedy策略,其中epsilon是代理采取随机选择的行动的时间百分比,而不是采取最有可能最大化奖励的行动,因为它知道到目前为止(在这种情况下,20 %)。我们通常从很多探索开始(即epsilon的值更高)。随着时间的推移,当老鼠更多地了解迷宫以及哪些行为产生最长期的奖励时,将epsilon稳定地降低到10%甚至更低是有意义的,因为它开始利用它所知道的东西。
重要的是要记住,奖励并不总是立竿见影的:在机器人 - 鼠标示例中,您可能需要走很长一段时间才能走过迷宫并在到达奶酪之前有几个决策点。
代理人观察环境,采取行动与环境互动,并获得积极或消极的回报。图片来自伯克利的CS 294:John Schulman和Pieter Abbeel的深度强化学习
马尔可夫决策过程(MDP)
鼠标在迷宫中徘徊可以形式化为马尔可夫决策过程,这是一个从州到州指定转移概率的过程。我们将通过参考我们的机器人鼠标示例来解释它。MDP包括:
- 一组有限的状态。这些是我们的鼠标在迷宫中的可能位置。
- 每个州都有一系列行动。这是走廊中的{前进,后退}和十字路口上的{前,后,左,右}。
- 国家之间的过渡。例如,如果你在十字路口离开,你最终会处于一个新的位置。这些可以是一组链接到多个可能状态的概率(例如,当你在神奇宝贝游戏中使用攻击时,你可能会错过,造成一些伤害,或造成足够的伤害来击倒你的对手)。
- 与每次转换相关的奖励。在机器人 - 鼠标示例中,大多数奖励为0,但如果您到达有水或奶酪的点,则它们是正的,如果到达触电点则为负。
- 折扣系数γ介于0和1之间。这可以量化即时奖励和未来奖励之间的重要性差异。例如,如果γ是.9,并且在3个步骤后获得5的奖励,则该奖励的现值为.9³* 5。
- Memorylessness。一旦知道当前状态,就可以擦除鼠标在迷宫中行进的历史,因为当前马尔可夫状态包含来自历史的所有有用信息。换句话说,“未来与现在的过去无关”。
现在我们知道MDP是什么,我们可以正式确定鼠标的目标。我们试图在长期内最大化奖励总额:
让我们按期限来看这个和词。首先,我们总结所有时间步骤t。我们现在将γ设置为1并忘记它。r(x,a)是奖励函数。对于状态X和行动一(即,走在一个十字路口左),它为您提供了采取这一行动相关的奖励一个在状态X。回到我们的等式,我们试图通过在每个州采取最佳行动来最大化未来奖励的总和。
现在我们已经建立了强化学习问题并将目标正式化,让我们探索一些可能的解决方案。
Q-learning:学习行动价值功能
Q-learning是一种技术,它根据动作值函数评估要采取的动作,该动作值函数确定处于某种状态的值并在该状态下采取某种动作。
我们有一个函数Q,它将一个状态和一个动作作为输入,并返回该状态下该动作(以及所有后续动作)的预期奖励。在我们探索环境之前,Q给出相同(任意)的固定值。但是,随着我们更多地探索环境,Q给了我们一个状态s的动作a值的更好和更好的近似值。我们继续更新功能Q.
来自维基百科Q-learning页面的这个等式非常好地解释了这一点。它显示了我们如何根据我们从环境中获得的奖励来更新Q的价值:
让我们再次将其设置为1来忽略折扣因子γ。首先,请记住,Q应该通过选择动作Q和之后的所有最佳动作向您展示全部奖励。
现在我们来看看从左到右的等式。当我们在州st采取行动时,我们通过添加一个术语来更新Q(st,at)的值。该术语包含:
- 学习率alpha:这是我们在更新价值时想要的积极性。当alpha接近0时,我们不会非常积极地更新。当alpha接近1时,我们只是用更新的值替换旧值。
- 该奖励是我们有采取行动的奖励 ,在状态ST。因此,我们将此奖励添加到我们的旧估算中。
- 我们还添加了估计的未来奖励,这是xt + 1所有可用操作的最大可实现奖励Q.
- 最后,我们减去Q的旧值,以确保我们只是通过估计的差异递增或递减(当然乘以α)。
现在我们对每个状态 - 行动对进行了估值,我们可以根据我们的行动选择策略选择要采取的行动(我们不一定只选择每次都能获得最期望奖励的行动,例如一个贪婪的探索策略我们会在一定比例的时间内采取随机行动。
在机器人鼠标示例中,我们可以使用Q学习来计算迷宫中每个位置的值以及每个位置处的动作{前进,后退,左,右}的值。然后我们可以使用我们的动作选择策略来选择鼠标在每个时间步骤实际执行的操作。
政策学习:从州到行动的地图
在Q学习方法中,我们学习了一个估计每个状态 - 动作对的值的值函数。
政策学习是一种更直接的选择,我们学习一种政策功能π, 它是从每个州到该州最佳相应行动的直接映射。把它看成是一种行为的政策:“当我观察状态小号,做的最好的事情是采取行动的一个 ”。例如,自动驾驶汽车的政策可能有效地包括:“如果我看到黄灯并且距离十字路口超过100英尺,我应该刹车。否则,继续前进。“
一个政策是地图从状态到 行动。
因此,我们正在学习一种能够最大化预期奖励的功能。我们知道什么才能真正擅长学习复杂的功能?深度神经网络!
来自Pixels的 Andrej Karpathy的Pong提供了一个很好的演练,使用深度强化学习来学习Atari游戏Pong的策略,它将来自游戏的原始像素作为输入(状态)并输出向上或向下移动划桨的概率(动作) 。
在策略梯度网络中,代理通过基于来自环境的奖励信号通过梯度下降调整其权重来学习最优策略。图片来自http://karpathy.github.io/2016/05/31/rl/
如果你想深入了解RL,请通过Andrej的帖子。您将在130行代码中实现一个2层策略网络,并将学习如何插入OpenAI的Gym,它允许您快速启动并运行您的第一个强化学习算法,在各种游戏中进行测试,并了解其性能与其他提交的比较。
DQNs,A3C和深RL的进步
2015年,DeepMind采用了一种称为深度Q网络(DQN)的方法,这种方法使用深度神经网络逼近Q函数,在许多Atari游戏中击败人类基准:
我们证明,仅接收像素和游戏分数作为输入的深度Q网络代理能够超越所有先前算法的性能,并且在49个游戏中达到与专业人类游戏测试者相当的水平,使用相同的算法,网络架构和超参数。这项工作弥合了高维度感官输入和行动之间的鸿沟,从而产生了第一个能够学习在各种具有挑战性的任务中表现出色的人工智能代理。(Silver et al。,2015)
以下是DQN代理在不同领域中相对于线性学习者和人类的位置的快照:
这些是针对专业人类游戏测试者的标准化:0%=随机游戏,100%=人类表现。资料来源:DeepMind的DQN论文,通过深度强化学习进行人机控制
为了帮助您建立一些关于如何在RL研究中取得进步的直觉,下面是一些改进非线性Q函数逼近器尝试的例子,可以提高性能和稳定性:
- 体验重播,通过随机抽取较长的先前观察序列和相应的奖励来学习,以避免过度拟合最近的经历。这个想法受到生物大脑的启发:老鼠穿越迷宫,例如,在睡眠期间“重放”神经活动的模式,以优化迷宫中的未来行为。
- 递归神经网络( RNN )增强DQN。当一个特工只能看到它周围的环境时(例如机器人 - 鼠标只看到迷宫的某一部分而不是整个迷宫的鸟瞰图),代理人需要记住更大的图片,以便记住事物的位置。这类似于人类婴儿如何发展物体持久性,即使它们离开婴儿的视野,也知道存在的东西。RNN是“经常性的”,即它们允许信息在较长期的基础上持续存在。这是一个令人印象深刻的视频,介绍了一个深度反复出现的Q-network(DQRN)播放Doom。
https://youtu.be/oo0TraGu6QY?list=PLduGZax9wmiHg-XPFSgqGg8PEAV51q1FT
论文:https://arxiv.org/abs/1609.05521。资料来源:Arthur Juliani使用Tensorflow系列进行简单强化学习
2016年,就在DQN论文发布一年后,DeepMind发布了另一种名为Asynchronous Advantage Actor-Critic(A3C)的算法,该算法在训练了一半之后超过了Atari游戏的最新表现(Mnih et al。,2016))。A3C是一个演员评论算法,它结合了我们之前探索过的两种方法中的最佳方法:它使用一个演员(一个决定如何行动的政策网络)和一个评论家(一个决定事物价值的Q网络)。亚瑟朱利安尼(Arthur Juliani)对A3C的具体工作方式有一个很好的写作。A3C现在是OpenAI的Universe Starter Agent。
从那以后,已经有无数令人着迷的突破 - 从AI 发明自己的语言到教自己走在各种各样的地形。这个系列只是划伤了RL的前沿表面,但希望它可以作为进一步探索的起点!
作为一个分开的注释,我们想分享这个令人难以置信的DeepMind代理商的视频,这些代理人学会了走路......增加了声音。拿一些爆米花,调高音量,见证人工智能的全部荣耀。
练习材料和进一步阅读
代码
- 来自Pixels的 Andrej Karpathy的Pong将让您第一次使用强化学习代理快速上手。正如文章所描述的那样,“我们将学习用PG,从头开始,用像素,用深度神经网络玩一个ATARI游戏(Pong!),整个事情是130行Python只使用numpy作为依赖(要点链接)。“
- 接下来,我们强烈推荐Arthur Juliani的Tensorflow简单强化学习教程。它通过使用TensorFlow实现DQN,策略学习,演员评论方法和探索策略。尝试理解然后重新实现所涵盖的方法。
阅读+讲座
- 理查德萨顿的书,强化学习:简介 - 一本很棒的书,非常易读
- John Schulman的CS 294:深度强化学习(伯克利)
- David Silver的强化学习课程(UCL)
你做到了!
如果你已经做到这一点,那就是我们所希望的所有奖励。
我们希望您喜欢这个系列作为机器学习的介绍。如果你准备好看看这个兔子洞有多深,我们已经在附录中编了一些我们最喜欢的ML资源。
请不要犹豫,伸手与想法,问题,意见,或者你喜欢的GIF!
直到下一次,
维沙尔和萨默尔
结束思考
有一个基本问题激发了这个系列,我们也想向你提出这个问题。
作为人类,我们的目标功能是什么?我们如何定义 在现实生活中最大化的奖励?除了基本的愉悦和痛苦,我们对奖励的定义也往往包括诸如是非,满足,爱,灵性和目的等混乱的事物。
自古以来,一直致力于解决我们的客观功能是什么或应该是什么的知识领域,它被称为道德哲学。道德哲学的核心问题是:我们应该做什么?我们该怎么生活?哪些行为是对还是错?答案很清楚:这取决于你的价值观。
随着我们创造越来越多的高级人工智能,它将开始脱离像Atari游戏这样的玩具问题领域,其中“奖励”由游戏中赢得多少点清晰地定义,并且在现实世界中越来越多地存在。例如,自动驾驶汽车必须通过更复杂的奖励定义来做出决策。起初,奖励可能与“安全到达目的地”有关。但是,如果被迫选择停留路线并撞击五个行人或转弯并撞到一个,车辆是否应该转弯?如果一个行人是小孩怎么办?松散的,或下一个爱因斯坦的枪手?这是如何改变决定的?为什么?如果转弯也会摧毁一件有价值的艺术?当我们试图定义目标函数时,突然间我们遇到了一个更为复杂的问题,
在本系列中,我们探讨了为什么很难明确地向计算机指定猫的样子 - 如果被问及我们如何了解自己,答案是,最简单的是“直觉” - 但我们已经探索了机器视觉方法来教授机器自己学习这种直觉。同样,在机器道德领域,可能很难确切地指定如何评估一个动作与另一个动作的正确性或错误性,但也许机器可能以某种方式学习这些值。这被称为价值学习问题,它可能是人类必须解决的最重要的技术问题之一。
有关此主题的更多信息,请参阅此关于人工智能风险的概要文章。当你进入使机器变得更聪明,更聪明的世界时,我们鼓励你记住,人工智能的进步是一把双刃剑,对双方都特别敏锐。
原文:https://medium.com/machine-learning-for-humans/reinforcement-learning-6eacf258b265