强化学习(RL)是机器学习的一个子集,它允许一个由AI驱动的系统(有时被称为代理)通过试错使用其行为的反馈来学习。这种反馈要么是负面的,要么是正面的,分别作为惩罚或奖励信号,当然,目的是最大化奖励函数。RL从错误中学习,并提供尽可能接近自然智能的人工智能。
在学习方法方面,RL仅在使用输入和输出之间的映射时与监督学习相似,但这只是它们共有的唯一特征。而在监督学习中,反馈包含了代理要遵循的正确动作集。在RL中没有这样的答案键。代理自己决定做什么以正确地执行任务。与非监督学习相比,RL有不同的目标。非监督学习的目标是发现数据点之间的相似性或差异。RL的目标是找到最适合的动作模型以最大化RL代理的总累积奖励。由于没有训练数据集,RL问题通过代理自己的行动以及来自环境的输入得到解决。
像蒙特卡罗、状态-动作-奖励-状态-动作(SARSA)、Q-learning等RL方法提供了比传统机器学习更动态的方法,因此正在开辟该领域的新的领域。
RL的三种实现类型包括:
基于策略的RL使用一种策略或确定性的策略来最大化累积奖励
基于价值的RL试图最大化任意的价值函数
基于模型的RL为特定环境创建虚拟模型,代理在这个模型中学习执行
强化学习是如何工作的?
在一个文章中完整描述强化学习的工作原理并非易事。为了更好地理解这个主题,Andrew Barto和Richard S. Sutton撰写的《强化学习:导论》是一本很好的资源。
理解强化学习的最佳方式是通过视频游戏,这些游戏遵循奖励和惩罚机制。正因为如此,经典的Atari游戏已经被用作强化学习算法的测试平台。在游戏中,你扮演的角色就是存在于特定环境中的代理。他们遇到的情景相当于一种状态。你的角色或代理通过执行动作来反应,这会将他们从一个状态带到一个新的状态。在此转换之后,他们可能会收到奖励或惩罚。策略是一种策略,它决定了代理根据其状态及其所处环境采取的动作。
为了建立最佳策略,RL代理面临着是否同时探索新状态并在最大化其奖励之间做出权衡的困境,这被称为探索与利用的权衡。目标不是寻找即时的奖励,而是优化整个训练过程中最大的累积奖励。时间也很重要——奖励代理不仅仅依赖于当前状态,而是依赖于整个历史状态。策略迭代是一种帮助找到给定状态和动作的最优策略的算法。
在强化学习算法中,环境通常被表示为马尔可夫决策过程(MDP),几乎所有的RL问题都是通过MDPs来形式化的。SARSA是一个学习马尔可夫决策的算法。它是流行的Q-learning算法的一种轻微变体。SARSA和Q-learning是两种最常用的RL算法。
其他常用的方法还包括Actor-Critic,这是策略梯度方法的时间差分版本。它类似于一种叫做REINFORCE with baseline的算法。贝尔曼方程是许多强化学习算法的核心元素之一。它通常指的是与离散时间优化问题相关的动态规划方程。
异步优势演员评论家(A3C)算法是深度强化学习算法领域最新发展的算法之一。与其他流行如Deep Q-Learning (DQN)这类使用单一代理和单一环境的深度RL算法不同,A3C使用多个具有各自网络参数的代理和环境副本。代理异步地与他们的环境互动,在每次互动中学习,为全局网络贡献知识。全局网络还允许代理拥有更多样化的训练数据。这模仿了现实生活中人类从他人经验中获取知识的方式,使整个全球网络受益。
强化学习需要数据吗?
在RL中,数据是从使用试错方法的机器学习系统中积累的。数据并不是你将在监督或非监督机器学习中找到的那种输入的一部分。
时间差分(TD)学习是一类无模型的RL方法,它通过从价值函数的当前估计值进行引导来学习。“时间差分”这个名字来源于这样一个事实,即它使用连续时间步骤中预测的变化——或差异——来推动学习过程。在任何给定的时间步骤,预测都会更新,使其更接近下一个时间步骤的同一数量的预测。TD学习常用于预测未来奖励的总额,它是蒙特卡罗思想和动态编程的结合。然而,与学习发生在任何蒙特卡罗方法结束时不同,TD学习在每次交互后发生。
TD-Gammon是一款计算机西洋双陆棋程序,由IBM托马斯·J·沃森研究中心的Gerald Tesauro于1992年开发。它使用了RL,并且特别是一种非线性的TD算法来训练电脑玩西洋双陆棋达到大师级水平。这是教机器如何玩复杂游戏的重要一步。
蒙特卡罗方法代表了一大类依靠重复随机抽样获得数值结果以指向概率的算法。蒙特卡罗方法可以用来计算诸如:
对手在类似象棋的游戏中移动的概率
未来某个天气事件发生的可能性
特定条件下汽车事故的可能性
蒙特卡罗方法因摩纳哥同名城市的一家赌场而得名,最早出现在粒子物理学领域,并促成了首批计算机的发展。蒙特卡罗模拟让人们在定量分析和决策制定中考虑到风险。它是一种广泛应用于金融、项目管理、制造业、工程、研发、保险、运输和环境等多个领域的技术。
在机器学习或机器人技术中,蒙特卡罗方法为估计人工智能问题结果的可能性提供了基础。Bootstrap方法建立在蒙特卡罗方法之上,是一种用于估计有限数据集上模型准确性的重新采样技术。
强化学习的应用
DeepMind使用RL启动了如何玩复杂游戏如国际象棋、围棋和日本象棋的AI。它被用于构建AlphaGo,这是第一个击败专业人类围棋选手的计算机程序。由此产生了能够自我学习下棋并能在短短四小时内击败国际象棋引擎Stockfish的神经网络代理AlphaZero。
AlphaZero只有两个部分:一个神经网络和一种称为蒙特卡罗树搜索的算法。对比之下,即使是1997年击败世界国际象棋冠军加里·卡斯帕罗夫的深蓝计算机,也允许每秒考虑2亿种可能的棋局位置。然而,像AlphaZero使用的深层神经网络的表现形式是不透明的,所以我们对其决策的理解是受限的。论文《AlphaZero对国际象棋知识的获取》探讨了这一难题。
深度RL也被提议用于无人驾驶航天器导航新环境,无论是火星还是月球。MarsExplorer是由一群希腊科学家开发的与OpenAI Gym兼容的环境。团队已经在MarsExplorer环境中训练了四种深度强化学习算法,分别是A3C、Ranbow、PPO和SAC,其中PPO表现最佳。MarsExplorer是第一个针对未知地形探索优化的开源AI兼容强化学习框架。