1、强化学习概述
强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环 境(environment)里面去最大化它能获得的奖励。如下图所示,强化学习由两部分组成:智能体和环境。
智能体在每个状态中选择一个动作,环境根据这个动作给出下一个状态和相应的奖励。智能体的目标是学习一个策略,这个策略能够指导它在不同状态下选择动作,以获得尽可能多的奖励。
下面,我将举一个很简单的例子,加深大家对强化学习概念的理解:训练一个小狗学会坐下。
-
环境:小狗所处的环境就是训练场所,可能是家里的客厅或者后院。
-
智能体:在这个例子中,智能体就是小狗。
-
状态:小狗的状态可以是“站立”或“坐下”。
-
动作:智能体(小狗)可以执行的动作是“坐下”或“不坐下”。
-
奖励:当小狗坐下时,主人会给予奖励,比如拍拍它、给它零食或者口头表扬。
-
目标:智能体(小狗)的目标是学会在听到“坐下”命令时执行“坐下”动作,以获得奖励。
在这个过程中,小狗通过不断尝试和错误来学习。每当它在听到命令后坐下,就会得到奖励,这强化了它的学习过程。如果它站立不动,就没有奖励,它就会慢慢学会在听到命令时坐下以获得奖励。这就是一个简单的强化学习的例子。
1.1、强化学习与监督学习
如下图,在图片分类的监督学习中,首先有两个假设:一是输入数据独立同分布,数据之间没有关联;二是正确标签已知,模型可以根据标签进行修正。训练过程中,模型根据输入数据和标签调整预测,当预测错误时,通过损失函数和反向传播进行优化。
通常假设样本空间中全体样本服从一个未知分布,每个样本都是独立地从这个分布上采样获得的, 即独立同分布(independent and identically distributed,i.i.d.)。当我们抛一枚公平的硬币多次时,每次抛掷都是独立的,不受之前结果的影响,并且每次抛掷得到正面或反面的概率都是相同的,这就是一个独立同分布(i.i.d.)的简单例子。
相比之下,强化学习中的这两个假设并不成立。以雅达利游戏 Breakout 为例,如下图,发现智能体得到的观测(observation)不是独立同分布的,上一帧与下一帧间其实有非常强的连续性。 我们得到的数据是相关的时间序列数据,不满足独立同分布。另外,我们并没有立刻获得反馈,游戏没有 告诉我们哪个动作是正确动作。比如我们现在把木板往右移,这只会使得球往上或者往左去一点儿,我们 并不会得到立刻的反馈。因此,强化学习之所以这么困难,是因为智能体不能得到即时的反馈,然而我们依然希望智能体在这个环境里面学习。
如下图所示,在强化学习中,训练数据是智能体与环境交互的过程。在打砖块游戏中,智能体从第 1 步开始采取动作(如移动木板接住球),接着在第 2 步再作出新的动作,整个过程形成一个序列。这个序列输入到网络后,网络根据当前状态输出动作(例如往右移或往左移)。
与监督学习不同,强化学习没有立即的标签来判断当前动作是否正确,必须等到游戏结束时(可能10秒后)才能知道结果。当前动作是否对游戏胜利有帮助是不明确的,这带来了延迟奖励(delayed reward)的问题。这意味着强化学习中的反馈是延迟的,导致训练网络更加困难。智能体需要通过长时间的训练,逐渐学会哪些动作能够带来长期的成功,而不是立即的回报。
强化学习与监督学习的主要区别和特征总结如下:
-
样本类型:
- 监督学习:样本是独立的,数据满足独立同分布(IID),样本之间没有关联。
- 强化学习:样本是序列数据,具有时间关联,上一状态和下一状态有密切关系,数据不是独立同分布的。
-
反馈机制:
- 监督学习:学习器知道每一步的正确标签,能够根据标签直接调整预测,训练过程有明确的反馈。
- 强化学习:学习器不知道每一步的正确动作,需要通过试错(trial-and-error)不断探索发现最优动作。反馈信号(奖励)通常是延迟的,环境不会立即提供正确与否的反馈。
-
探索与利用:
- 强化学习中的核心问题是“探索与利用”的权衡:
- 探索(exploration):尝试新的动作,虽然可能带来更大回报,也可能失败。
- 利用(exploitation):执行已知可以获得较高奖励的动作,通过重复执行已验证的策略来获得稳定的回报。
- 这一问题在监督学习中没有体现,因为监督学习明确知道每一步的正确标签。
- 强化学习中的核心问题是“探索与利用”的权衡:
-
反馈延迟:
- 强化学习:奖励信号是延迟的,智能体可能在执行一系列动作后很久才知道某个动作是否正确。这使得强化学习更具挑战性,因为无法立刻获得反馈。
- 监督学习:即时反馈,当预测出错时,立即通过标签修正。
-
时间与数据关联:
- 强化学习:时间非常重要,智能体的动作影响后续观测数据,形成关联性数据。这种序列数据使得训练不稳定,因为当前动作的效果可能影响未来的状态和奖励。
- 监督学习:时间不重要,所有数据都是独立的,可以无视它们的顺序进行训练。
-
动作与环境的影响:
- 强化学习:智能体的动作直接影响其所获得的观测数据。如果智能体的策略不稳定或行为不合理,数据质量可能变差,影响训练效果。
- 监督学习:输入数据与模型的预测过程没有直接的互动,数据是固定的,模型不会改变数据的生成过程。
总结: 强化学习的关键特征在于试错探索、延迟反馈、时间关联的样本,以及智能体通过与环境的交互不断优化自身行为。这与监督学习依赖独立同分布数据、标签驱动的明确反馈机制截然不同,也使得强化学习在实践中更加复杂和具有挑战性。
1.2、强化学习的例子
为强化学习的一个经典例子,即雅达利的 Pong 游戏。如下图,Pong 游戏是一个类似乒乓球的游戏,左边和右边的选手通过挡板把球来回击打。右边的选手把球打到左边,左边的选手要接住球并把球打回右边。强化学习的智能体就是这个游戏的一个玩家。
如果强化学习通过学习一个 策略网络来进行分类,那么策略网络会输入当前帧的图片,输出所有决策的可能性,比如往上移动的概率,如下图所示
对于监督学习,我们可以直接告诉智能体正确动作的标签是什么。但在 Pong 游戏中, 我们并不知道它的正确动作的标签是什么,如下图所示
在强化学习里面,我们让智能体尝试玩 Pong 游戏,对动作进行采样,直到游戏结束,然后对每个动作进行惩罚。如下图所示,这是一个预演(rollout)的过程,预演是指我们从当前帧对动作进行采样,生成很多 局游戏。我们将当前的智能体与环境交互,会得到一系列观测。每一个观测可看成一个轨迹(trajectory)。 轨迹就是当前帧以及它采取的策略,即状态和动作的序列:
最后结束时,我们会知道到底有没有把这个球拍到对方区域,对方有没有接住,我们是赢了还是输了。我 们可以通过观测序列以及最终奖励(eventual reward)来训练智能体,使它尽可能地采取可以获得最终奖励的动作。一场游戏称为一个回合(episode)或者试验(trial)。
1.3、强化学习的历史
标准强化学习 ——> 深度强化学习。如下图所示,它们的主要区别在于如何处理特征和动作选择:
1. 标准强化学习:
-
特征设计:在标准强化学习中,首先需要设计很多特征,这些特征用于描述当前的状态。举个例子,像在 TD-Gammon 玩 Backgammon(西洋双陆棋)的过程中,我们需要人为地提取出一些能够反映游戏局势的特征,这些特征能帮助智能体理解当前的状态。
-
动作选择:当得到这些特征后,可以训练一个分类器或价值估计函数,它会帮助智能体根据当前状态来选择动作。
-
例子:TD-Gammon 通过提前设计好的特征,使用强化学习的方法来训练智能体玩双陆棋。
2. 深度强化学习:
-
端到端训练:随着深度学习的发展,强化学习不再需要人为设计特征。通过神经网络,智能体可以直接从原始状态(比如屏幕上的图像或当前的数据信息)中学习到如何采取行动。
-
不需要特征工程:深度强化学习的优势在于不用人为地设计特征,省去了复杂的特征工程。我们不需要设计特征,直接输入状 态就可以输出动作。我们可以用一个神经网络来拟合价值函数或策略网络。 神经网络本身能够从数据中学习出有用的特征,并自动优化决策。
-
例子:深度强化学习的智能体(比如 AlphaGo 或雅达利游戏中的智能体)直接输入游戏画面,通过神经网络预测出下一步应该做的动作。这是一个端到端的过程,状态(比如当前屏幕的图片)直接输入,动作(比如移动挡板的方向)直接输出。
总结:
- 标准强化学习:需要人为设计特征,训练分类器或价值估计函数。
- 深度强化学习:直接从原始数据中学习特征,通过神经网络进行端到端训练。
1.4、强化学习的应用
近年来,强化学习在诸如游戏、机器人等领域得到了广泛应用,甚至能够击败顶尖的人类棋手,原因有以下几点:
- 计算能力提升:随着更强大的计算资源(如GPU)的发展,强化学习可以通过大量的试错来提升智能体的表现。
- 信息积累与环境反馈:智能体在不断尝试中,从环境中获取大量信息,进而学会在复杂环境中获取更高的奖励。
- 端到端优化:通过端到端训练,特征提取、价值估计和决策得以同时优化,使得智能体可以更有效地作出更优的决策。
经典的强化学习应用实例:
- DeepMind的走路智能体:通过奖励机制,智能体学习如何在复杂环境中行走。为了保持平衡,它学会了举手动作,展现了适应性和灵活性。当环境难度增加时,智能体还能抵抗扰动,表现出更强的鲁棒性。
- 机械臂抓取:强化学习让机械臂学会统一的抓取策略,无需为每个物体单独建模。分布式系统可以让多个机械臂同时训练,从而提升效率,使机械臂能够应对各种不同形状的物体进行最优的抓取。
- OpenAI的机械臂翻魔方:OpenAI开发的带有手指的机械臂,能够通过强化学习在虚拟环境中学习后,成功应用到现实中。这种方式降低了真实环境中机械臂损坏的风险,并显著节约了成本。
- 穿衣智能体:训练智能体完成复杂的穿衣操作,模拟人类穿衣过程中的精细动作,甚至能够处理扰动。虽然有时会失败,但整体上展现了强化学习在精细任务中的潜力。
总结:
强化学习通过结合强大的计算资源、丰富的环境反馈以及端到端优化,在多个复杂任务中展现出了极大的应用潜力,推动了游戏、机器人等领域的技术进步。