【机器学习15】强化学习入门、Q-Learning、贝尔曼方程
文章目录
- 一 强化学习入门 (Reinforcement Learning)
- 1.1 强化学习的基本概念
- 1.2 强化学习的应用
- 二 强化学习的关键术语
- 2.1 状态、行动与奖励
- 2.2 回报 (Return) 与折扣因子
- 2.3 策略 (Policy)
- 2.4 强化学习的目标
- 2.5 术语总结
- 三 Q-Learning 算法
- 3.1 马尔可夫决策过程 (MDP)
- 3.2 状态-行动价值函数 (Q-function)
- 3.3 利用Q函数选择行动
- 3.4 Jupyter Notebook 实验分析
- **3.5 贝尔曼方程 (BELLMAN EQUATION)**
- **四 随机环境 (STOCHASTIC ENVIRONMENT)**
视频链接
吴恩达机器学习p129-137
一 强化学习入门 (Reinforcement Learning)
在完成监督学习和无监督学习的探讨之后,我们将进入机器学习的第三大分支:强化学习(Reinforcement Learning, RL)。
1.1 强化学习的基本概念
![[在此处插入图片1]](https://i-blog.csdnimg.cn/direct/33fac9347f704c2d95df91eea7f2f6ef.png)
强化学习(RL)研究的是一个智能体(agent)如何在一个环境(environment)中采取一系列行动(actions),以最大化其获得的累积奖励(reward)。
- 应用案例:自动驾驶直升机
- 目标:教会计算机如何自主飞行一架配备了GPS、加速计、罗盘等传感器的直升机。
- 挑战:我们很难像监督学习那样,为直升机的每一种可能状态都提供一个“正确”的操控指令作为标签。
![[在此处插入图片2]](https://i-blog.csdnimg.cn/direct/32a19b38584f408cbefc22be5d59eb15.png)
强化学习与监督学习的核心区别:
- 监督学习 (Supervised Learning):数据是成对的
(x, y),算法学习一个从输入x到正确输出y的直接映射。 - 强化学习 (Reinforcement Learning):数据是一系列的状态
s和行动a。算法不是学习一个“正确”的行动y,而是通过奖励函数(reward function的反馈来学习。- 状态 (State
s): 描述环境在某一时刻的状况(例如,直升机的位置和姿态)。 - 行动 (Action
a): 智能体可以执行的操作(例如,如何移动直升机的控制杆)。 - 奖励函数 (Reward Function):用于评估在某个状态下采取某个行动的好坏。
- 正奖励 (Positive reward):鼓励好的行为(例如,直升机平稳飞行,奖励
+1)。 - 负奖励 (Negative reward):惩罚坏的行为(例如,直升机飞行糟糕或坠毁,奖励
-1000)。
- 正奖励 (Positive reward):鼓励好的行为(例如,直升机平稳飞行,奖励
- 状态 (State
- 算法的目标是通过与环境的交互(试错),学习一个能获得最高总奖励的行动策略。
1.2 强化学习的应用
![[在此处插入图片3]](https://i-blog.csdnimg.cn/direct/2351071095aa4162aa6b0930f57262f9.png)
强化学习在许多需要进行序贯决策的复杂问题中都取得了巨大成功:
- 机器人控制:训练机器人完成行走、抓取等复杂任务。
- 工厂优化:优化生产线的调度和资源分配,以提高效率。
- 金融交易:制定股票买卖策略以最大化收益。
- 玩游戏:训练AI在围棋、星际争霸、视频游戏中达到甚至超越人类顶尖水平。
二 强化学习的关键术语
为了更深入地理解RL,我们需要定义一些核心术语。我们将以一个简化的火星车(Mars Rover示例来贯穿整个讲解。
2.1 状态、行动与奖励
![[在此处插入图片4]](https://i-blog.csdnimg.cn/direct/ecffa43bf4054192ac8b7a4b2197e7c7.png)
火星车示例环境:
- 状态 (States
s): 火星车所在的位置格子。这个环境共有6个离散状态,标记为s=1到s=6。- 状态1和状态6是终止状态(terminal states),到达这些状态后,任务(episode)结束。
- 行动 (Actions
a): 在任何非终止状态下,火星车都可以选择向左(left)或向右(right)移动。 - 奖励 (Rewards
R(s)): 奖励仅与到达的状态有关。- 到达状态1,获得
+100的奖励。 - 到达状态6,获得
+40的奖励。 - 到达任何其他状态(2, 3, 4, 5),奖励为
0。
- 到达状态1,获得
- 状态转移 (State Transition):RL中的一个基本单元可以表示为元组
(s, a, R(s'), s'),意为:在状态s,采取行动a,会转移到新状态s',并获得与新状态相关的奖励R(s')。例如,(4, left, 0, 3)表示在状态4向左移动,会到达状态3,并获得0奖励。
2.2 回报 (Return) 与折扣因子
![[在此处插入图片5]](https://i-blog.csdnimg.cn/direct/5b9021c419094c58aa9ab74728782cf0.png)
智能体的目标是最大化其获得的累积奖励,这个累积奖励被称为回报(Return)。
- 问题:直接将未来的所有奖励相加可能会导致问题(例如,在一个无限循环的任务中,回报可能是无限大)。更重要的是,通常我们更看重眼前的奖励,而不是遥远的未来奖励。
- 折扣回报 (Discounted Return):为了解决这个问题,我们引入折扣因子(Discount Factor)
γ(gamma),一个介于0和1之间的数(例如0.9)。 - 回报公式:
Return = R₁ + γ*R₂ + γ²*R₃ + γ³*R₄ + ...R_t是在第t个时间步获得的奖励。
- 折扣因子的作用:
γ值越接近0,智能体越“短视”,只关心眼前的奖励。γ值越接近1,智能体越有“远见”,会更多地考虑长远未来的奖励。
- 示例计算:
- 假设火星车从状态4开始,依次向左移动三次到达状态1。
- 如果
γ = 0.9,回报为0 + (0.9)*0 + (0.9)²*0 + (0.9)³*100 = 72.9。 - 如果
γ = 0.5,回报为0 + (0.5)*0 + (0.5)²*0 + (0.5)³*100 = 12.5。
![[在此处插入图片6]](https://i-blog.csdnimg.cn/direct/43bd5aca506048e4b8b4bd9d193c2a2a.png)
上图展示了从不同状态出发,采取不同行动序列所能获得的回报。回报的值不仅取决于最终的奖励,还严重依赖于采取的行动路径和折扣因子 γ 的大小。
2.3 策略 (Policy)
![[在此处插入图片7]](https://i-blog.csdnimg.cn/direct/6783afadc2e9489d903aa41d64f7b4f1.png)
策略(Policy)π 是一个函数,它定义了智能体的行为方式。
- 定义:策略
π(s)是一个从状态s到行动a的映射,即a = π(s)。 - 作用:策略告诉智能体,在给定的任何一个状态下,应该采取什么行动。
- 例如,一个可能的策略是:在状态2, 3, 4都向左移动,在状态5向右移动。
2.4 强化学习的目标
![[在此处插入图片8]](https://i-blog.csdnimg.cn/direct/1ee7818f53b24afa9ef175fdc1fb7d4e.png)
强化学习的最终目标是:找到一个最优策略 π*,使得智能体在任何状态 s 下,遵循这个策略所能获得的回报(的期望值)最大化。
2.5 术语总结
![[在此处插入图片9]](https://i-blog.csdnimg.cn/direct/820b62435cc240678a0da54cfa8a5111.png)
下表总结了我们在不同RL问题中遇到的核心术语:
| 术语 | 火星车 (Mars Rover) | 直升机 (Helicopter) | 国际象棋 (Chess) |
|---|---|---|---|
状态 s | 6个离散位置 | 直升机的位置、姿态 | 棋盘上棋子的布局 |
行动 a | 向左、向右 | 如何移动控制杆 | 所有合法的下一步棋 |
奖励 R | 100, 0, 40 | +1 (平稳), -1000 (坠毁) | +1 (赢), 0 (平), -1 (输) |
折扣因子 γ | 例如 0.5 | 例如 0.99 (有远见) | 例如 0.995 |
| 回报 (Return) | R₁ + γR₂ + ... | R₁ + γR₂ + ... | R₁ + γR₂ + ... |
策略 π | π(s) -> a | π(s) -> a | π(s) -> a |
三 Q-Learning 算法
现在,我们介绍一种非常经典和重要的强化学习算法:Q-Learning。它通过学习一个称为Q函数的特殊函数来找到最优策略。
3.1 马尔可夫决策过程 (MDP)
![[在此处插入图片10]](https://i-blog.csdnimg.cn/direct/9c5bcd0fb80b4692b68334bc375962e3.png)
强化学习问题通常被建模为马尔可夫决策过程(Markov Decision Process, MDP)。
- MDP描述了智能体(Agent)与环境(Environment)之间的交互循环:
- 智能体在一个状态
s,根据其策略π选择一个行动a。 - 环境接收到行动
a,更新其状态,并返回一个新的状态s'和一个奖励R。 - 智能体接收到新的状态和奖励,然后重复这个过程。
- 智能体在一个状态
- 马尔可夫性质:未来的状态只取决于当前的状态和行动,而与过去的历史无关。
3.2 状态-行动价值函数 (Q-function)
![[在此处插入图片11]](https://i-blog.csdnimg.cn/direct/52a13d28277e4d85ad715daadd9e36f1.png)
状态-行动价值函数 Q(s, a),简称Q函数,是Q-Learning算法的核心。
- 定义:
Q(s, a)的值代表了回报,这个回报是在你处于状态s,首先执行了一次行动a,然后从那以后都遵循最优策略所能得到的。 Q(s, a)衡量了在状态s下,采取行动a有多好。
3.3 利用Q函数选择行动
![[在此处插入图片12]](https://i-blog.csdnimg.cn/direct/1ba856aac73b44749ec4da1af6e9f686.png)
一旦我们拥有了最优的Q函数 Q*,找到最优策略 π* 就变得非常简单:
- 最优回报:在任何状态
s,你能获得的最大可能回报是max_a Q*(s, a)。 - 最优策略
π*(s):在任何状态s,应该选择那个能使Q*(s, a)值最大的行动a。π*(s) = argmax_a Q*(s, a)
3.4 Jupyter Notebook 实验分析
Jupyter Notebook中的交互式示例极好地展示了环境的关键参数——特别是奖励(rewards)和折扣因子(discount factor γ)——如何深刻地影响最终学到的最优策略 π* 和状态-行动价值函数 Q(s,a)。
![[在此处插入图片13]](https://i-blog.csdnimg.cn/direct/9b647f7f93ed40388310bde252ba5cd8.png)
实验一:基准情况 (Baseline)
- 参数设置:
terminal_left_reward = 100terminal_right_reward = 40each_step_reward = 0gamma = 0.5
- 结果分析:
- Q(s,a) 表:
Q(4, left): 值为12.5。计算方式为:R(3) + γ * max(Q(3,left), Q(3,right)) = 0 + 0.5 * 25 = 12.5。Q(4, right): 值为20.0。计算方式为:R(5) + γ * max(Q(5,left), Q(5,right)) = 0 + 0.5 * 40 = 20.0。
- 最优策略:
- 在状态4,因为
Q(4, right) = 20.0 > Q(4, left) = 12.5,所以最优行动是向右。 - 在状态3,因为
Q(3, left) = 25.0 > Q(3, right) = 12.5,所以最优行动是向左。
- 在状态4,因为
- 策略解读: 这个策略表现出一种平衡。在离高奖励(100)较远的位置(状态4、5),智能体倾向于先去获取较近但较低的奖励(40)。当离高奖励足够近时(状态2、3),它才会选择朝高奖励方向前进。这反映了
γ=0.5时,未来的奖励有显著折扣,使得距离成为一个重要的考量因素。
- Q(s,a) 表:
![[在此处插入图片14]](https://i-blog.csdnimg.cn/direct/561e8158ce5a44da83a479d604289694.png)
实验二:降低右侧奖励
- 参数变化:
terminal_right_reward从 40 降低到 10。- 博主注:这张截图的代码单元格中显示的参数
terminal_right_reward = 40与其下方的输出结果不符。从输出结果中Optimal policy在状态5的价值为10.0以及Q(5, right)的值为10.0来看,实际运行的参数应为terminal_right_reward = 10。以下分析基于此推断。
- 博主注:这张截图的代码单元格中显示的参数
- 参数设置:
terminal_right_reward = 10,gamma = 0.5 - 结果分析:
- Q(s,a) 表: 右侧终点奖励的大幅降低,导致所有导向右侧的Q值全面下降。例如,
Q(5, right)直接等于10,而Q(4, right)则变为R(5) + γ * max(Q(5,left), Q(5,right)) = 0 + 0.5 * 10 = 5.0。 - 最优策略: 现在,在所有中间状态(2, 3, 4, 5),最优策略都统一变成了向左。
- 策略解读: 当右侧的奖励变得几乎没有吸引力时,即使考虑到折扣,向左去追求100的巨大奖励也成为了在任何位置的唯一合理选择。
- Q(s,a) 表: 右侧终点奖励的大幅降低,导致所有导向右侧的Q值全面下降。例如,
![[在此处插入图片15]](https://i-blog.csdnimg.cn/direct/a57e685897ab42d7868960e8d5803368.png)
实验三:增加折扣因子 (更有远见)
- 参数变化:
gamma从 0.5 增加到 0.9。- 博主注:这张截图的代码单元格显示
gamma = 0.9,但下方的输出结果与上一个实验(gamma=0.5,reward=10)完全相同。这通常意味着代码单元格被修改后没有被重新执行。因此,我们在此分析如果正确执行了gamma = 0.9且terminal_right_reward = 40(恢复基准奖励)会发生什么。
- 博主注:这张截图的代码单元格显示
- 假如执行的参数:
terminal_left_reward = 100,terminal_right_reward = 40,gamma = 0.9 - 预期结果分析:
- Q(s,a) 表: 所有Q值都会显著增加,因为未来的奖励衰减得更慢了。
Q(4, right)会变为R(5) + 0.9 * Q(5, right) = 0 + 0.9 * (R(6) + ...) = 0 + 0.9 * 40 = 36。Q(4, left)会变为R(3) + 0.9 * Q(3, left) = 0 + 0.9 * (R(2) + 0.9 * Q(2,left)) = 0.9 * (0.9 * (R(1))) = 0.81 * 100 = 81。
- 最优策略: 由于
Q(4, left) = 81 > Q(4, right) = 36,在状态4的最优策略会从基准情况的向右,戏剧性地变为向左。事实上,所有中间状态的策略都会变成向左。 - 策略解读: 当智能体变得更有远见(
γ值高)时,它愿意为了一个遥远的、更大的奖励(100)而放弃一个较近的、较小的奖励(40)。高γ值放大了长期回报的价值。
- Q(s,a) 表: 所有Q值都会显著增加,因为未来的奖励衰减得更慢了。
![[在此处插入图片16]](https://i-blog.csdnimg.cn/direct/4b3ce982c9dd45c3b9b0e16242f35f03.png)
实验四:降低折扣因子 (更短视)
- 参数变化:
gamma从 0.5 降低到 0.3。 - 参数设置:
terminal_left_reward = 100,terminal_right_reward = 40,gamma = 0.3 - 结果分析:
- Q(s,a) 表: 所有Q值都大幅下降,因为未来的奖励被剧烈地折扣了。
Q(4, left)变为R(3) + 0.3 * Q(3, left) = 0 + 0.3 * (R(2) + 0.3 * Q(2, left)) = 0 + 0.3 * (0 + 0.3 * (0 + 0.3*100)) = 2.7。Q(4, right)变为R(5) + 0.3 * Q(5, right) = 0 + 0.3 * 40 = 12.0。
- 最优策略: 在状态4,
Q(4, right) = 12.0 > Q(4, left) = 2.7,最优策略是向右。在状态3,Q(3, left)=9.0>Q(3, right)=3.6,策略是向左。最终策略与基准情况相同,但Q值的差异更悬殊。 - 策略解读: 极度短视的智能体(
γ=0.3)更不愿意为了遥远的奖励而付出多步的行动。在状态4,即使左边的最终奖励更高,但需要走3步(0.3³的剧烈衰减),而右边只需要走2步(0.3²的衰减)。计算下来,走右边在当前看来“更划算”。这清晰地展示了折扣因子如何决定智能体的决策是偏向即时满足还是长期规划。
- Q(s,a) 表: 所有Q值都大幅下降,因为未来的奖励被剧烈地折扣了。
3.5 贝尔曼方程 (BELLMAN EQUATION)
![[在此处插入图片17]](https://i-blog.csdnimg.cn/direct/5f96eb6caea84707b0e79d83cb5f416f.png)
我们如何能计算出这些Q值呢?答案是贝尔曼方程。它是动态规划和强化学习的基石,为 Q(s, a) 函数提供了一个至关重要的递归关系。
方程定义
Q(s, a) = R(s') + γ * max_a' Q(s', a')
- 符号解释:
s: 当前状态a: 在当前状态下采取的行动s': 采取行动a后转移到的下一个状态R(s'): 到达下一个状态s'后获得的即时奖励γ: 折扣因子a': 在下一个状态s'时,所有可能的行动max_a' Q(s', a'): 在下一个状态s',采取最优行动所能带来的最大Q值。
![[在此处插入图片19]](https://i-blog.csdnimg.cn/direct/dd736a8d4218498786a04e68f004229f.png)
贝尔曼方程的深入解释
贝尔曼方程的核心思想是将一个长期、多步的价值评估问题,分解为一个单步的即时奖励和下一步的价值评估问题。让我们拆解这个方程来理解其内在逻辑:
Q(s, a) 的定义是:从状态 s 开始,执行一次行动 a,然后从此以后都遵循最优策略所能获得的总回报。
这个总回报 Q(s, a) 可以被精确地分为两个部分:
- 即时奖励 (Reward you get right away): 当你从
s采取行动a并到达s'时,你立即获得的奖励。在我们的火星车例子中,这个奖励是R(s')。 - 未来最优回报的折扣值 (Return from behaving optimally starting from state s’): 当你到达状态
s'之后,如果你从此开始遵循最优策略,你所能获得的最大未来回报。这个值,根据Q函数的定义,正是max_a' Q(s', a')。由于这部分回报发生在一步之后,我们需要用折扣因子γ对其进行折现。
将这两部分加起来,就得到了贝尔-曼方程。
![[在此处插入图片20]](https://i-blog.csdnimg.cn/direct/fc04e869f8734d4f8d4b644147b8688d.png)
从回报公式推导贝尔曼方程
我们知道回报的完整定义是 Return = R₁ + γR₂ + γ²R₃ + ...。
那么 Q(s, a) 就是从 s 开始,执行 a 后的这个回报序列。
Q(s, a) = R₁ + γR₂ + γ²R₃ + ...
Q(s, a) = R₁ + γ * (R₂ + γR₃ + γ²R₄ + ...)
R₁是你马上得到的奖励,即R(s')。- 括号里的
(R₂ + γR₃ + ...)正是从下一个状态s'开始,遵循最优策略所能获得的回报。根据定义,这正是max_a' Q(s', a')。 - 因此,
Q(s, a) = R(s') + γ * max_a' Q(s', a')。
![[在此处插入图片18]](https://i-blog.csdnimg.cn/direct/860ded3976764b4eb7bc31a621927363.png)
通过火星车示例验证方程
让我们用基准实验(γ = 0.5)的结果来具体验证:
- 计算
Q(2, right):s = 2,a = right,s' = 3R(s') = R(3) = 0max_a' Q(3, a')是在状态3能获得的最大Q值,从图中可知是25。- 代入方程:
Q(2, right) = R(3) + 0.5 * max_a' Q(3, a') = 0 + 0.5 * 25 = 12.5。这与图中Q(2, right)的值完全吻合。
- 计算
Q(4, left):s = 4,a = left,s' = 3R(s') = R(3) = 0max_a' Q(3, a') = 25- 代入方程:
Q(4, left) = R(3) + 0.5 * max_a' Q(3, a') = 0 + 0.5 * 25 = 12.5。这也与图中Q(4, left)的值吻合。
这个方程建立了一个所有Q值之间必须满足的自洽关系。Q-Learning等算法就是通过不断迭代更新,使得整个Q值表逐渐趋近于满足贝尔曼方程,从而找到最优的Q函数。
四 随机环境 (STOCHASTIC ENVIRONMENT)
![[在此处插入图片21]](https://i-blog.csdnimg.cn/direct/a2dad0232c514cddbc97cbb3317684c9.png)
在之前的讨论中,我们假设环境是确定性的(deterministic),即在状态s采取行动a,总会100%转移到同一个新状态s'。但在现实世界中,环境往往是随机的(stochastic)。
- 例如,当火星车选择向左移动时,可能有90%的概率成功向左,但有10%的概率因为轮子打滑而意外向右移动。
![[在此处插入图片22]](https://i-blog.csdnimg.cn/direct/39a0c2590c914fb1884e2701d91bb0f4.png)
期望回报 (Expected Return)
- 在随机环境下,我们无法保证单次任务能获得确定的回报。
- 因此,强化学习的目标被修正为:最大化期望回报(Expected Return),即在所有可能发生的随机结果上,对回报求平均值。
- 相应的,
Q(s, a)的定义也变为期望回报,贝尔曼方程也会引入期望的计算,形式会变得更复杂。这超出了本入门课程的范围,但在更高级的RL课程中是核心内容。
