强化学习基础概念
随着人工智能的发展,强化学习(Reinforcement Learning)作为机器学习的重要分支,受到了越来越多的关注。它在机器人控制、游戏 AI、自动驾驶等领域有着广泛的应用。本文将介绍强化学习的基本概念,帮助读者建立对强化学习的初步认识。
一、什么是强化学习?
强化学习是一种试图通过与环境交互来学习最优行为策略的机器学习方法。它模拟了生物体通过试错来获得最佳行为的过程。与监督学习不同,强化学习不需要大量的标注数据;与无监督学习不同,它强调通过奖励信号来指导学习过程。
在强化学习中,智能体(Agent)通过与环境(Environment)交互,从环境中获取状态(State),并根据某种策略(Policy)选择动作(Action),执行后会得到环境的反馈,即下一个状态和奖励(Reward)。智能体的目标是通过学习,使得其在一系列行动中获得累积奖励最大化。
二、强化学习的基本组成部分
强化学习系统通常由以下几个核心要素组成:
- 智能体(Agent):学习和决策的主体,负责在每个时间步选择动作。
- 环境(Environment):智能体所处的外部世界,与智能体交互,提供状态和奖励反馈。
- 状态(State,SSS):环境在某一时刻的描述,是智能体感知到的环境信息。
- 动作(Action,AAA):智能体可以对环境采取的行为。
- 奖励(Reward,RRR):环境对智能体动作的反馈,指导智能体的学习方向。
- 策略(Policy,π\piπ):智能体选择动作的规则,定义了在每个状态下采取某动作的概率分布。
- 价值函数(Value Function):衡量状态(或状态-动作对)的好坏,表示从某状态开始能获得的期望累积奖励。
核心要素关系图
下面使用 Mermaid 绘制强化学习核心要素之间的关系图:
三、马尔可夫决策过程(MDP)
强化学习通常被建模为马尔可夫决策过程(Markov Decision Process,MDP),它提供了一个数学框架,描述了决策过程中的状态转移和奖励机制。
1. 马尔可夫性质
马尔可夫性质指出,系统未来的状态只取决于当前状态和动作,与过去的历史无关。即:
P(St+1∣St,At)=P(St+1∣S1,A1,…,St,At)
P(S_{t+1} \mid S_t, A_t) = P(S_{t+1} \mid S_1, A_1, \dots, S_t, A_t)
P(St+1∣St,At)=P(St+1∣S1,A1,…,St,At)
其中:
- P(St+1∣St,At)P(S_{t+1} \mid S_t, A_t)P(St+1∣St,At) 表示在时间步 ttt,给定当前状态 StS_tSt 和动作 AtA_tAt,系统转移到下一状态 St+1S_{t+1}St+1 的条件概率。
- P(St+1∣S1,A1,S2,A2,…,St,At)P(S_{t+1} \mid S_1, A_1, S_2, A_2, \dots, S_t, A_t)P(St+1∣S1,A1,S2,A2,…,St,At) 表示在考虑了从初始时刻到时间步 ttt 的所有历史状态和动作的条件下,系统转移到下一状态 St+1S_{t+1}St+1 的条件概率。
解释:
-
未来只依赖当前:这个等式说明,下一时刻的状态 St+1S_{t+1}St+1 的概率分布只依赖于当前的状态 StS_tSt 和动作 AtA_tAt,而与之前的所有状态 S1,S2,…,St−1S_1, S_2, \dots, S_{t-1}S1,S2,…,St−1 和动作 A1,A2,…,At−1A_1, A_2, \dots, A_{t-1}A1,A2,…,At−1 无关。
-
无记忆性(Memoryless):系统具有“无记忆性”,即未来的发展不需要知道过去的全过程,只需要当前的信息。这是马尔可夫过程的一大特点。
在强化学习中的意义:
-
简化计算:马尔可夫性质使得我们可以简化对系统的建模和分析。由于未来的状态只依赖于当前状态和动作,我们在计算转移概率和期望奖励时,无需处理复杂的历史依赖关系。
-
贝尔曼方程的基础:价值函数的递归关系(贝尔曼方程)依赖于马尔可夫性质,它假设当前的价值等于即时奖励加上未来价值的折扣和。
2. MDP的组成
马尔可夫决策过程为强化学习提供了一个数学模型,描述了智能体与环境交互的动态过程。理解 MDP 的五个组成部分有助于我们构建有效的强化学习算法,解决复杂的决策问题。
一个马尔可夫决策过程(MDP) 由五元组 ⟨S,A,P,R,γ⟩\langle S, A, P, R, \gamma \rangle⟨S,A,P,R,γ⟩ 组成,其中:
-
SSS:状态空间(State Space)
状态空间是所有可能状态的集合。每个状态 s∈Ss \in Ss∈S 表示智能体在环境中的一个具体情境或配置。例如,在棋类游戏中,状态可以表示棋盘上棋子的摆放情况。
-
AAA:动作空间(Action Space)
动作空间是智能体可以采取的所有可能动作的集合。对于每个状态 sss,智能体可以选择一个或多个动作 a∈Aa \in Aa∈A。动作使得智能体能够影响环境,从而导致状态的变化。
-
PPP:状态转移概率函数(State Transition Probability Function)
状态转移概率函数 P(s′∣s,a)P(s' \mid s, a)P(s′∣s,a) 表示在状态 sss 下采取动作 aaa 后,转移到下一状态 s′s's′ 的概率。它刻画了环境的动态特性,定义了状态之间的转移规律。
数学形式:
P(s′∣s,a)=Pr{St+1=s′∣St=s,At=a} P(s' \mid s, a) = \Pr\{ S_{t+1} = s' \mid S_t = s, A_t = a \} P(s′∣s,a)=Pr{St+1=s′∣St=s,At=a}
-
RRR:奖励函数(Reward Function)
奖励函数 R(s,a)R(s, a)R(s,a) 表示在状态 sss 下采取动作 aaa 时,智能体期望获得的即时奖励。奖励函数衡量了动作在特定状态下的优劣,指导智能体趋向于有利的行为。
有时,奖励函数也可以表示为 R(s,a,s′)R(s, a, s')R(s,a,s′),即考虑转移到的下一状态 s′s's′ 对奖励的影响。
-
γ\gammaγ:折扣因子(Discount Factor)
折扣因子 γ\gammaγ 是一个介于 0 和 1 之间的数,0≤γ≤10 \leq \gamma \leq 10≤γ≤1。它用于权衡即时奖励和未来奖励的相对重要性。γ\gammaγ 越接近于 1,智能体越重视长期的、延迟的回报;γ\gammaγ 越接近于 0,智能体越关注即时的、短期的收益。
综合示例
假设一个机器人在一个迷宫中寻路,目标是找到出口。可以将问题建模为一个 MDP:
- 状态空间 SSS:迷宫中所有可能的位置。
- 动作空间 AAA:机器人可以选择向上、下、左、右移动。
- 状态转移概率函数 P(s′∣s,a)P(s' \mid s, a)P(s′∣s,a):由于迷宫中可能存在障碍物,机器人在某些方向上可能无法移动,或者移动时有一定的失败概率。
- 奖励函数 R(s,a)R(s, a)R(s,a):在非目标状态,奖励为 -1,表示时间消耗;到达出口时,奖励为 +100,表示任务完成。
- 折扣因子 γ\gammaγ:设置为 0.9,使得机器人在寻路时既关注尽快到达出口(减少步骤),又避免因为过度追求速度而冒险。
四、奖励(Reward)、回报(Return)和折扣因子
在强化学习中,回报(Return) 和 折扣因子(Discount Factor) 是关键概念,它们共同决定了智能体如何评估未来的奖励,从而指导策略的优化。
1. 回报(Return)
回报 GtG_tGt 定义为从时间步 ttt 开始,智能体在未来将获得的累积奖励。它表示在某个时间点开始,智能体预计还能获得多少奖励。
-
对于终止任务(Episodic Task),即具有明确结束状态的任务,例如游戏、棋局等,回报的计算方式为:
Gt=Rt+1+Rt+2+Rt+3+⋯+RT G_t = R_{t+1} + R_{t+2} + R_{t+3} + \dots + R_T Gt=Rt+1+Rt+2+Rt+3+⋯+RT
- 解释:
- GtG_tGt:在时间步 ttt 的回报。
- Rt+1,Rt+2,…,RTR_{t+1}, R_{t+2}, \dots, R_TRt+1,Rt+2,…,RT:从时间步 t+1t+1t+1 开始到终止时间 TTT 的奖励序列。
- 回报是从当前时间步开始直到任务结束期间累积的所有奖励之和。
- 解释:
-
对于持续任务(Continuing Task),即没有明确结束状态的任务,例如持续运行的系统,回报的计算方式为:
Gt=Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+… G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \dots Gt=Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+…
- 解释:
- γ\gammaγ:折扣因子,0≤γ<10 \leq \gamma < 10≤γ<1。
- γk\gamma^kγk:折扣因子的 kkk 次方,用于递减未来奖励的影响。
- 由于任务无限进行,未来的奖励序列可能无限长。引入折扣因子 γ\gammaγ,使得远期的奖励对当前回报的贡献逐渐减少,确保总回报有限。
- 解释:
折扣因子 γ\gammaγ 控制了未来奖励的重要性:
- γ\gammaγ 越接近于 1,智能体越重视长期奖励,未来的奖励在回报中占据较大比重。
- γ\gammaγ 越接近于 0,智能体越关注近期奖励,未来的奖励被快速折扣,影响较小。
2. 折扣因子的意义
引入折扣因子 γ\gammaγ 有以下几个重要的原因:
数学便利性
- 确保累积奖励有限: 在持续任务中,如果直接累加所有未来的奖励,可能会导致回报 GtG_tGt 发散为无穷大,无法进行有效的计算和优化。
- 收敛性: 引入 γ\gammaγ(0≤γ<10 \leq \gamma < 10≤γ<1)后,回报 GtG_tGt 成为一个收敛的无穷级数,累积奖励变为有限值,便于数学分析和计算。
时间价值
- 反映未来奖励的相对价值: 折扣因子体现了时间价值的概念,即人们通常认为当前的奖励比未来的同等奖励更有价值。
- 现实意义: 在很多实际问题中,立即获得的奖励可以更早地被利用或投资,因而更有价值。
不确定性
- 降低未来不确定性的影响: 未来的状态和奖励往往具有不确定性,通过折扣因子,可以减小远期奖励对回报的影响,从而使智能体的策略更稳健。
- 风险规避: 智能体可能更倾向于确保近期的收益,而非冒风险追求可能无法实现的远期回报。
进一步解释
1. 为什么要累加未来的奖励?
- 长期目标: 在强化学习中,智能体的目标是最大化累积的未来奖励,而非仅关注即时奖励。
- 避免短视: 累加未来的奖励可以让智能体考虑行动的长期影响,避免做出短视的决策。
2. 为什么要对未来的奖励进行折扣?
- 无折扣时的问题: 对于持续任务,没有折扣因子,累积奖励可能无限大,无法比较不同策略的优劣。
- 折扣的意义:
- 数学角度: 折扣因子确保累积奖励的总和是有限的,方便计算和理论分析。
- 决策角度: 折扣因子让智能体在决策时权衡近期和远期的奖励,根据任务需求调整策略的重心。
3. 折扣因子对策略的影响
- 高折扣因子(γ\gammaγ 接近 1)
- 重视长期收益: 智能体更关注长期累积奖励。
- 策略特点: 策略往往更持久地追求长期目标,即使短期内收益较小。
- 低折扣因子(γ\gammaγ 接近 0)
- 重视短期收益: 智能体更关注即时奖励。
- 策略特点: 策略可能倾向于立即获取奖励,忽视长期效果。
举例说明
例1:消费与储蓄
- 情境: 一个理财规划,需要决定当前消费和储蓄的比例。
- 高折扣因子:
- 行为倾向: 更看重未来的财富积累,愿意现在多储蓄、少消费。
- 低折扣因子:
- 行为倾向: 更享受当前的消费,愿意牺牲未来的积蓄。
例2:机器人路径规划
- 情境: 机器人需要从起点移动到终点,途中可能遇到障碍和奖励。
- 高折扣因子:
- 策略选择: 机器人会选择可能更长但更安全的路径,以期获得更高的累积奖励。
- 低折扣因子:
- 策略选择: 机器人可能选择立即获取奖励的路径,即使风险更高。
数学推导
-
收敛性证明:
当 γ<1\gamma < 1γ<1 且即时奖励 RRR 有界时,累积回报 GtG_tGt 是收敛的级数:
∣Gt∣=∣∑k=0∞γkRt+k+1∣≤∑k=0∞γk∣Rmax∣=∣Rmax∣1−γ |G_t| = \left| \sum_{k=0}^\infty \gamma^k R_{t+k+1} \right| \leq \sum_{k=0}^\infty \gamma^k |R_{\text{max}}| = \frac{|R_{\text{max}}|}{1 - \gamma} ∣Gt∣=k=0∑∞γkRt+k+1≤k=0∑∞γk∣Rmax∣=1−γ∣Rmax∣
其中,∣Rmax∣|R_{\text{max}}|∣Rmax∣ 是奖励的最大可能绝对值。
回报与奖励函数的区别
奖励函数(Reward Function)R(s,a)R(s, a)R(s,a)
-
定义: 奖励函数是环境在智能体采取某个动作后,给予的即时反馈,即在状态 sss 下采取动作 aaa 时获得的奖励 RtR_tRt:
Rt=R(st,at) R_t = R(s_t, a_t) Rt=R(st,at)
-
作用: 指导智能体在当前状态下的行为选择,反映即时的效果。
回报(Return)GtG_tGt
-
定义: 回报是从时间步 ttt 开始的累计奖励之和,通常对未来的奖励进行折扣:
Gt=Rt+1+γRt+2+γ2Rt+3+⋯ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dotsb Gt=Rt+1+γRt+2+γ2Rt+3+⋯
-
作用: 衡量从当前状态开始,智能体在未来能够获得的总收益,是策略优化的目标。
区别与联系
- 区别:
- 时间尺度不同: 奖励是即时的,回报是累积的。
- 作用不同: 奖励函数用于即时反馈,回报用于评估策略的长期价值。
- 联系:
- 回报是由奖励累积而成,二者共同影响智能体的学习过程。
回报在强化学习中的作用
-
策略优化的依据: 回报 GtG_tGt 是智能体优化策略的目标,智能体旨在最大化期望回报。
-
价值评估的基础: 状态价值函数 vπ(s)v_\pi(s)vπ(s) 和动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 基于回报的期望值,用于评估状态或动作的长期收益。
- 状态价值函数:
vπ(s)=Eπ[Gt∣St=s] v_\pi(s) = \mathbb{E}_\pi \left[ G_t \mid S_t = s \right] vπ(s)=Eπ[Gt∣St=s] - 动作价值函数:
qπ(s,a)=Eπ[Gt∣St=s,At=a] q_\pi(s, a) = \mathbb{E}_\pi \left[ G_t \mid S_t = s, A_t = a \right] qπ(s,a)=Eπ[Gt∣St=s,At=a]
- 状态价值函数:
-
连接核心要素: 回报将即时奖励、策略和价值函数等核心要素有机地联系在一起,构成强化学习的核心机制。
总结
- 回报 GtG_tGt 是评估策略优劣的关键指标,反映了当前决策对未来累积奖励的影响。
- 折扣因子 γ\gammaγ 的引入,使得累积回报在持续任务中可计算,并反映了智能体对未来奖励的重视程度。
- 实际应用中, 选择合适的折扣因子,可以根据任务需求,调整智能体在短期利益和长期收益之间的平衡。
- 回报与奖励是不同的概念,回报是对奖励的累积,二者在定义、作用和时间尺度上有明显区别。
- 在强化学习中, 回报是策略优化和价值评估的核心,与马尔可夫决策过程(MDP)的要素紧密相关。
五、策略(Policy)
策略 π\piπ 定义了智能体的行为规则,即在每个状态下如何选择动作的函数。策略告诉智能体在给定的状态下,应当以什么方式选择可执行的动作。
1. 策略的定义
-
策略是状态到动作的映射,指导智能体在每个时间步如何行动。
-
随机策略(Stochastic Policy) 的定义为:
π(a∣s)=P(At=a∣St=s) \pi(a \mid s) = P(A_t = a \mid S_t = s) π(a∣s)=P(At=a∣St=s)
含义:
- π(a∣s)\pi(a \mid s)π(a∣s) 表示在状态 sss 下选择动作 aaa 的概率。
- P(At=a∣St=s)P(A_t = a \mid S_t = s)P(At=a∣St=s) 表示在时间步 ttt,给定状态 St=sS_t = sSt=s 时,智能体选择动作 At=aA_t = aAt=a 的条件概率。
-
确定性策略(Deterministic Policy) 是状态到动作的确定映射,即:
a=π(s) a = \pi(s) a=π(s)
含义:
- 在状态 sss 下,智能体总是选择确定的动作 aaa,没有随机性。
2. 策略的类型
-
随机策略(Stochastic Policy)
- 在给定状态下,以某种概率分布选择动作。
- 有助于探索环境,避免陷入局部最优。
- 常用在需要平衡探索(探索未知区域)和利用(利用已知最佳行动)的情境中。
-
确定性策略(Deterministic Policy)
- 在给定状态下,总是选择同一个动作。
- 简单明了,更易于理解和实现。
- 可能缺乏探索性,不适用于环境存在随机性或不确定性的情况。
3. 策略的目标
智能体的目标是找到最优策略 π∗\pi^*π∗,使得在该策略下,累积期望奖励(回报)最大化。这意味着智能体希望在长远看来,获得尽可能多的奖励。
-
数学表示:
-
对于所有状态 sss,最优策略满足:
vπ∗(s)=maxπvπ(s) v_{\pi^*}(s) = \max_{\pi} v_{\pi}(s) vπ∗(s)=πmaxvπ(s)
-
其中,价值函数 vπ(s)v_{\pi}(s)vπ(s) 表示在策略 π\piπ 下,从状态 sss 开始的期望回报:
vπ(s)=Eπ[Gt∣St=s] v_{\pi}(s) = \mathbb{E}_{\pi} \left[ G_t \mid S_t = s \right] vπ(s)=Eπ[Gt∣St=s]
- Eπ[ ⋅ ]\mathbb{E}_{\pi}[\,\cdot\,]Eπ[⋅] 表示在策略 π\piπ 下的期望值。
- GtG_tGt 为从时间步 ttt 开始的累积回报。
-
-
解释:
- 最优策略 π∗\pi^*π∗ 能够在任意状态下,使得期望回报最大。
- 智能体通过优化策略,提升在各个状态下的价值函数,从而达到整体最优。
4. 策略与价值函数的关系
-
策略决定了智能体的行为方式,从而影响累积奖励和价值函数。
-
价值函数评估了策略的好坏,为策略的改进提供了依据。
-
策略优化通常通过价值函数来指导:
- 策略评估(Policy Evaluation): 给定策略 π\piπ,计算价值函数 vπ(s)v_{\pi}(s)vπ(s) 或动作价值函数 qπ(s,a)q_{\pi}(s, a)qπ(s,a)。
- 策略改进(Policy Improvement): 基于价值函数,更新策略以选择更优的动作。
5. 策略的优化方法
-
策略迭代(Policy Iteration)
-
过程:
-
策略评估: 计算当前策略 π\piπ 下的价值函数 vπ(s)v_{\pi}(s)vπ(s)。
-
策略改进: 对于每个状态 sss,选择能使价值函数最大的动作,形成新策略 π′\pi'π′:
π′(s)=argmaxa∑s′P(s′∣s,a)[R(s,a)+γvπ(s′)] \pi'(s) = \arg\max_{a} \sum_{s'} P(s' \mid s, a) \left[ R(s, a) + \gamma v_{\pi}(s') \right] π′(s)=argamaxs′∑P(s′∣s,a)[R(s,a)+γvπ(s′)]
-
迭代上述步骤,直到策略收敛。
-
-
-
价值迭代(Value Iteration)
-
过程:
-
直接更新价值函数,利用贝尔曼最优性方程:
vk+1(s)=maxa∑s′P(s′∣s,a)[R(s,a)+γvk(s′)] v_{k+1}(s) = \max_{a} \sum_{s'} P(s' \mid s, a) \left[ R(s, a) + \gamma v_{k}(s') \right] vk+1(s)=amaxs′∑P(s′∣s,a)[R(s,a)+γvk(s′)]
-
当价值函数收敛后,根据最优价值函数导出最优策略:
π∗(s)=argmaxa∑s′P(s′∣s,a)[R(s,a)+γv∗(s′)] \pi^*(s) = \arg\max_{a} \sum_{s'} P(s' \mid s, a) \left[ R(s, a) + \gamma v_{*}(s') \right] π∗(s)=argamaxs′∑P(s′∣s,a)[R(s,a)+γv∗(s′)]
-
-
-
蒙特卡洛方法(Monte Carlo Methods)
- 通过模拟随机样本,实现对策略的评估和改进,适用于模型未知的情况。
-
时序差分学习(Temporal-Difference Learning)
- 结合了蒙特卡洛方法和动态规划的思想,在线学习,更新价值函数。
6. 策略在强化学习中的作用
-
核心驱动力: 策略决定了智能体如何行动,这是强化学习的核心问题。
-
探索与利用: 策略需要在探索新动作(获得更多环境信息)和利用现有知识(选择已知最优动作)之间取得平衡。
-
学习目标: 强化学习的目标是通过优化策略,使得智能体在长期内获得最大累积奖励。
7. 举例说明
例子:机器人寻路
-
环境: 一个网格世界,机器人需要从起点到达目标位置。
-
状态 SSS: 机器人的当前位置。
-
动作 AAA: 上、下、左、右移动。
-
奖励 R(s,a)R(s, a)R(s,a):
- 到达目标位置,奖励为 +100+100+100。
- 每移动一步,奖励为 −1-1−1(消耗能量)。
- 撞到障碍物,奖励为 −10-10−10。
-
策略 π\piπ:
-
随机策略示例: 在每个位置,以相等的概率选择四个方向。
-
确定性策略示例: 在每个位置,选择朝向目标位置的方向移动。
-
-
目标: 找到最优策略,使得机器人以最短路径到达目标位置,获得最大累积奖励。
8. 总结
-
策略(Policy) 是强化学习中定义智能体行为的关键要素,决定了在每个状态下如何选择动作。
-
最优策略(Optimal Policy) 使得智能体从任何状态出发都能获得最大期望回报。
-
策略可以是确定性的或随机的,根据问题需求和环境特性选择合适的策略类型。
-
策略优化是强化学习的核心,通过迭代更新策略和价值函数,智能体逐步提高决策水平。
六、价值函数(Value Function)
价值函数评估了状态或状态-动作对的好坏,指导智能体优化策略。价值函数是强化学习中用于评估某一状态或状态-动作对在未来能获得多少累积奖励的一个重要概念。
1. 状态价值函数(State-Value Function)
定义:
状态价值函数 vπ(s)v_\pi(s)vπ(s) 表示在策略 π\piπ 下,从状态 sss 开始所能获得的期望累积回报(Return)。数学表达式为:
vπ(s)=Eπ[Gt∣St=s] v_\pi(s) = \mathbb{E}_\pi \left[ G_t \mid S_t = s \right] vπ(s)=Eπ[Gt∣St=s]
解释:
-
vπ(s)v_\pi(s)vπ(s):表示在策略 π\piπ 下,处于状态 sss 时的价值,即期望累积回报。
-
Eπ[⋅]\mathbb{E}_\pi [ \cdot ]Eπ[⋅]:表示在策略 π\piπ 下的期望值。
-
GtG_tGt:从时间步 ttt 开始的累积回报。
-
St=sS_t = sSt=s:智能体在时间步 ttt 处于状态 sss。
含义:
- 状态价值函数衡量了在策略 π\piπ 下,从状态 sss 出发,智能体在未来所能获得的平均累积奖励。它反映了状态 sss 的“好坏”。
2. 动作价值函数(Action-Value Function)
定义:
动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 表示在策略 π\piπ 下,在状态 sss 采取动作 aaa 后所能获得的期望累积回报。数学表达式为:
qπ(s,a)=Eπ[Gt∣St=s,At=a] q_\pi(s, a) = \mathbb{E}_\pi \left[ G_t \mid S_t = s, A_t = a \right] qπ(s,a)=Eπ[Gt∣St=s,At=a]
解释:
-
qπ(s,a)q_\pi(s, a)qπ(s,a):表示在策略 π\piπ 下,在状态 sss 采取动作 aaa 的价值。
-
At=aA_t = aAt=a:智能体在时间步 ttt 采取动作 aaa。
含义:
- 动作价值函数衡量了在策略 π\piπ 下,智能体在状态 sss 采取动作 aaa 后,未来所能获得的平均累积奖励。它反映了在状态 sss 下选择动作 aaa 的“好坏”。
3. 贝尔曼方程(Bellman Equation)
贝尔曼方程(Bellman Equation)在状态价值函数(State-Value Function)和动作价值函数(Action-Value Function)中扮演着核心的角色,它们之间的关系可以通过以下方式描述:
1. 状态价值函数的贝尔曼方程
对于一个给定策略 π\piπ,状态价值函数 vπ(s)v_\pi(s)vπ(s) 可以通过贝尔曼方程描述为:
vπ(s)=∑aπ(a∣s)∑s′,rP(s′,r∣s,a)[r+γvπ(s′)] v_\pi(s) = \sum_{a} \pi(a \mid s) \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v_\pi(s') \right] vπ(s)=a∑π(a∣s)s′,r∑P(s′,r∣s,a)[r+γvπ(s′)]
含义:
- 当前状态 sss 的价值 vπ(s)v_\pi(s)vπ(s) 是依据策略 π\piπ 选择动作 aaa 的期望值。
- 这个期望值是联合考虑了动作 aaa 可能导致的所有后续状态 s′s's′ 和即时奖励 rrr,所获得的即时奖励加上从后续状态 s′s's′ 开始的折扣后的未来价值 vπ(s′)v_\pi(s')vπ(s′)。
2. 动作价值函数的贝尔曼方程
动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 在策略 π\piπ 下,可以表示为:
qπ(s,a)=∑s′,rP(s′,r∣s,a)[r+γvπ(s′)] q_\pi(s, a) = \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v_\pi(s') \right] qπ(s,a)=s′,r∑P(s′,r∣s,a)[r+γvπ(s′)]
含义:
- 动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 评估在状态 sss 选择动作 aaa 的即期价值和未来价值。
- 它直接基于动作 aaa 的值,计算所有可能的后续状态 s′s's′ 和即时奖励 rrr 的期望,其中未来奖励也以未来状态价值 vπ(s′)v_\pi(s')vπ(s′) 表示,并考虑折扣因子 γ\gammaγ。
3. 身份关系
这两个函数之间的关系可以通过以下身份关系连接:
vπ(s)=∑aπ(a∣s)qπ(s,a) v_\pi(s) = \sum_{a} \pi(a \mid s) q_\pi(s, a) vπ(s)=a∑π(a∣s)qπ(s,a)
含义:
- 状态价值函数 vπ(s)v_\pi(s)vπ(s) 是对在该状态下所有可能动作 aaa 的动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 的加权平均。
- 权重是依据策略 π\piπ 中选择每个动作的概率 π(a∣s)\pi(a \mid s)π(a∣s) 来确定。
结论
贝尔曼方程将当前时刻的价值与未来时刻的价值连接起来,为价值函数提供了一种递归定义,并为状态价值函数和动作价值函数的计算奠定了基础。状态和动作价值函数的关系通过策略对动作的分布进行加权平均来体现,确保在给定策略下使得价值函数迭代得以进行,并最终达到收敛,用于策略评估和优化。
进一步解释与举例:
状态价值函数与动作价值函数的关系
-
关系:
状态价值函数可以通过动作价值函数表示为:
vπ(s)=∑aπ(a∣s)qπ(s,a) v_\pi(s) = \sum_{a} \pi(a \mid s) q_\pi(s, a) vπ(s)=a∑π(a∣s)qπ(s,a)
-
解释:
-
在状态 sss,价值等于在该状态下采取各个动作 aaa 的价值 qπ(s,a)q_\pi(s, a)qπ(s,a) 的期望。
-
期望是根据策略 π\piπ 中在状态 sss 选择动作 aaa 的概率 π(a∣s)\pi(a \mid s)π(a∣s) 加权计算的。
-
贝尔曼方程的直观理解
-
核心思想:
-
当前状态的价值等于即时奖励加上未来状态价值的折扣和。
-
即:
vπ(s)=当前奖励+γ×未来价值 v_\pi(s) = \text{当前奖励} + \gamma \times \text{未来价值} vπ(s)=当前奖励+γ×未来价值
-
-
举例:
假设一个游戏中,智能体在状态 sss 有两个可能的动作 a1a_1a1 和 a2a_2a2。策略 π\piπ 定义为:
- π(a1∣s)=0.7\pi(a_1 \mid s) = 0.7π(a1∣s)=0.7
- π(a2∣s)=0.3\pi(a_2 \mid s) = 0.3π(a2∣s)=0.3
假设已知:
-
采取动作 a1a_1a1:
- 以概率 1 转移到状态 s′s's′,即时奖励 r=5r = 5r=5
-
采取动作 a2a_2a2:
- 以概率 1 转移到状态 s′′s''s′′,即时奖励 r=2r = 2r=2
未来状态的价值:
- vπ(s′)=10v_\pi(s') = 10vπ(s′)=10
- vπ(s′′)=4v_\pi(s'') = 4vπ(s′′)=4
折扣因子 γ=0.9\gamma = 0.9γ=0.9。
计算当前状态价值 vπ(s)v_\pi(s)vπ(s):
-
计算动作价值 qπ(s,a1)q_\pi(s, a_1)qπ(s,a1):
qπ(s,a1)=∑s′,rP(s′,r∣s,a1)[r+γvπ(s′)]=(1)[5+0.9×10]=5+9=14 q_\pi(s, a_1) = \sum_{s', r} P(s', r \mid s, a_1) [ r + \gamma v_\pi(s') ] = (1) [5 + 0.9 \times 10] = 5 + 9 = 14 qπ(s,a1)=s′,r∑P(s′,r∣s,a1)[r+γvπ(s′)]=(1)[5+0.9×10]=5+9=14
-
计算动作价值 qπ(s,a2)q_\pi(s, a_2)qπ(s,a2):
qπ(s,a2)=∑s′′,rP(s′′,r∣s,a2)[r+γvπ(s′′)]=(1)[2+0.9×4]=2+3.6=5.6 q_\pi(s, a_2) = \sum_{s'', r} P(s'', r \mid s, a_2) [ r + \gamma v_\pi(s'') ] = (1) [2 + 0.9 \times 4] = 2 + 3.6 = 5.6 qπ(s,a2)=s′′,r∑P(s′′,r∣s,a2)[r+γvπ(s′′)]=(1)[2+0.9×4]=2+3.6=5.6
-
计算状态价值 vπ(s)v_\pi(s)vπ(s):
vπ(s)=π(a1∣s)qπ(s,a1)+π(a2∣s)qπ(s,a2)=0.7×14+0.3×5.6=9.8+1.68=11.48 v_\pi(s) = \pi(a_1 \mid s) q_\pi(s, a_1) + \pi(a_2 \mid s) q_\pi(s, a_2) = 0.7 \times 14 + 0.3 \times 5.6 = 9.8 + 1.68 = 11.48 vπ(s)=π(a1∣s)qπ(s,a1)+π(a2∣s)qπ(s,a2)=0.7×14+0.3×5.6=9.8+1.68=11.48
-
结论:
- 通过贝尔曼方程,我们可以递归地计算状态的价值。
贝尔曼方程在策略优化中的作用:
1. 策略评估(Policy Evaluation)
-
目的: 给定策略 π\piπ,利用贝尔曼方程计算价值函数 vπ(s)v_\pi(s)vπ(s)。
-
方法: 对所有状态 sss,反复迭代贝尔曼方程,直到价值函数收敛。
2. 策略改进(Policy Improvement)
-
目的: 基于当前价值函数,改进策略以获得更高的价值。
-
方法: 在每个状态 sss,选择使动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 最大的动作。
-
公式:
πnew(s)=argmaxaqπ(s,a) \pi_{\text{new}}(s) = \arg\max_{a} q_\pi(s, a) πnew(s)=argamaxqπ(s,a)
3. 策略迭代(Policy Iteration)
-
过程:
-
初始化策略 π\piπ。
-
策略评估: 计算 vπ(s)v_\pi(s)vπ(s)。
-
策略改进: 更新策略 π\piπ。
-
重复步骤 2 和 3,直到策略不再改变。
-
4. 价值迭代(Value Iteration)
-
方法: 将策略评估和策略改进合并,通过更新价值函数,直接逼近最优价值函数 v∗(s)v_*(s)v∗(s)。
-
更新公式:
vk+1(s)=maxa∑s′,rP(s′,r∣s,a)[r+γvk(s′)] v_{k+1}(s) = \max_{a} \sum_{s', r} P(s', r \mid s, a) [ r + \gamma v_k(s') ] vk+1(s)=amaxs′,r∑P(s′,r∣s,a)[r+γvk(s′)]
-
当价值函数收敛后,最优策略为:
π∗(s)=argmaxa∑s′,rP(s′,r∣s,a)[r+γv∗(s′)] \pi_*(s) = \arg\max_{a} \sum_{s', r} P(s', r \mid s, a) [ r + \gamma v_*(s') ] π∗(s)=argamaxs′,r∑P(s′,r∣s,a)[r+γv∗(s′)]
总结
-
价值函数是强化学习中评估状态或状态-动作对在未来所能获得的累积奖励的工具。
-
状态价值函数 vπ(s)v_\pi(s)vπ(s) 和 动作价值函数 qπ(s,a)q_\pi(s, a)qπ(s,a) 分别评估在状态 sss 和在状态 sss 采取动作 aaa 的长期收益。
-
贝尔曼方程提供了计算价值函数的递归关系,通过迭代可以求解价值函数,是策略优化的基础。
-
价值函数和贝尔曼方程在策略评估和策略改进中起着关键作用,帮助智能体找到最优策略以最大化累积奖励。
七、策略优化
策略优化的目标是找到最优策略 π∗\pi^*π∗,使得对于所有状态 sss:
vπ∗(s)=maxπvπ(s) v_{\pi^*}(s) = \max_\pi v_\pi(s) vπ∗(s)=πmaxvπ(s)
解释:
-
最优策略 π∗\pi^*π∗:是在所有可能的策略 π\piπ 中,使得从任意状态 sss 开始所能获得的期望累积奖励最大化的策略。
-
价值函数 vπ(s)v_\pi(s)vπ(s):表示在策略 π\piπ 下,从状态 sss 开始所能获得的期望累积回报(Return)。
-
公式含义:对于每个状态 sss,最优策略下的价值 vπ∗(s)v_{\pi^*}(s)vπ∗(s) 等于在所有策略中该状态价值的最大值。
直观理解:
- 目标:我们希望找到一个策略,使得无论智能体处于哪个状态,遵循该策略都能获得最大的期望累积奖励。
常用的策略优化方法有:
1. 策略迭代(Policy Iteration)
策略迭代是一种通过反复策略评估和策略改进来找到最优策略的方法。
流程:
-
初始化策略 π0\pi_0π0:
- 可随机初始化或使用启发式算法给定初始策略。
-
重复以下步骤,直到策略收敛(不再变化):
a. 策略评估(Policy Evaluation):
-
给定当前策略 πk\pi_kπk,计算其对应的价值函数 vπk(s)v_{\pi_k}(s)vπk(s)。
-
使用贝尔曼期望方程进行计算:
vπk(s)=∑aπk(a∣s)∑s′,rP(s′,r∣s,a)[r+γvπk(s′)] v_{\pi_k}(s) = \sum_{a} \pi_k(a \mid s) \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v_{\pi_k}(s') \right] vπk(s)=a∑πk(a∣s)s′,r∑P(s′,r∣s,a)[r+γvπk(s′)]
-
该步骤计算在策略 πk\pi_kπk 下,每个状态的期望累积回报。
b. 策略改进(Policy Improvement):
-
利用新的价值函数 vπk(s)v_{\pi_k}(s)vπk(s),更新策略以获得更高的价值。
-
对于每个状态 sss,更新策略为:
πk+1(s)=argmaxa∑s′,rP(s′,r∣s,a)[r+γvπk(s′)] \pi_{k+1}(s) = \arg\max_{a} \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v_{\pi_k}(s') \right] πk+1(s)=argamaxs′,r∑P(s′,r∣s,a)[r+γvπk(s′)]
-
即在每个状态选择能使未来累积回报最大的动作。
-
-
检查收敛性:
- 如果策略 πk+1=πk\pi_{k+1} = \pi_kπk+1=πk,则认为已收敛,最优策略为 π∗=πk+1\pi^* = \pi_{k+1}π∗=πk+1。
特点:
-
保证收敛:在有限的状态和动作空间下,策略迭代一定会收敛到最优策略。
-
效率较高:通常在较少的迭代次数内即可收敛。
2. 价值迭代(Value Iteration)
价值迭代是一种直接迭代价值函数的方法,通过更新价值函数逼近最优价值函数,进而导出最优策略。
流程:
-
初始化价值函数 v0(s)v_0(s)v0(s):
- 通常设为零或任意数值。
-
重复以下步骤,直到价值函数收敛(变化小于设定的阈值):
vk+1(s)=maxa∑s′,rP(s′,r∣s,a)[r+γvk(s′)] v_{k+1}(s) = \max_{a} \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v_k(s') \right] vk+1(s)=amaxs′,r∑P(s′,r∣s,a)[r+γvk(s′)]
- 这是贝尔曼最优性方程(Bellman Optimality Equation),用于更新价值函数。
-
导出最优策略:
-
当价值函数收敛到 v∗(s)v^*(s)v∗(s) 后,最优策略 π∗\pi^*π∗ 可以通过以下方式获得:
π∗(s)=argmaxa∑s′,rP(s′,r∣s,a)[r+γv∗(s′)] \pi^*(s) = \arg\max_{a} \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v^*(s') \right] π∗(s)=argamaxs′,r∑P(s′,r∣s,a)[r+γv∗(s′)]
-
特点:
-
直接逼近最优价值函数:价值迭代每次迭代都朝着最优价值函数前进。
-
计算量可能较大:在每次迭代中,需要对每个状态的所有可能动作计算期望并取最大值。
贝尔曼最优性方程的作用:
-
核心思想:当前状态的最优价值等于在当前状态下选择一个最优动作所能获得的即时奖励,加上折扣后的下一状态的最优价值。
-
公式表示:
v∗(s)=maxa∑s′,rP(s′,r∣s,a)[r+γv∗(s′)] v^*(s) = \max_{a} \sum_{s', r} P(s', r \mid s, a) \left[ r + \gamma v^*(s') \right] v∗(s)=amaxs′,r∑P(s′,r∣s,a)[r+γv∗(s′)]
-
在价值迭代中,该方程用于更新价值函数。在策略迭代的策略改进步骤中,也利用了这个思想来选择最优动作。
举例说明:
假设一个简单的环境:
-
状态空间 S={s1,s2}S = \{ s_1, s_2 \}S={s1,s2}
-
动作空间 A={a1,a2}A = \{ a_1, a_2 \}A={a1,a2}
-
状态转移概率和奖励已知:
-
在状态 s1s_1s1:
-
选择 a1a_1a1:
- 以概率 1 转移到 s2s_2s2,即时奖励为 5。
-
选择 a2a_2a2:
- 以概率 1 转移到 s1s_1s1,即时奖励为 2。
-
-
在状态 s2s_2s2:
- 无论选择什么动作,都转移到终止状态,奖励为 0。
-
-
折扣因子 γ=0.9\gamma = 0.9γ=0.9
使用价值迭代求解最优策略:
-
初始化:
- 设 v0(s1)=v0(s2)=0v_0(s_1) = v_0(s_2) = 0v0(s1)=v0(s2)=0
-
迭代更新价值函数:
-
第 1 次迭代:
-
对于 s1s_1s1:
v1(s1)=max{a1:5+0.9×v0(s2)=5+0=5a2:2+0.9×v0(s1)=2+0=2}=5 v_1(s_1) = \max \left\{ \begin{array}{l} a_1: 5 + 0.9 \times v_0(s_2) = 5 + 0 = 5 \\ a_2: 2 + 0.9 \times v_0(s_1) = 2 + 0 = 2 \end{array} \right\} = 5 v1(s1)=max{a1:5+0.9×v0(s2)=5+0=5a2:2+0.9×v0(s1)=2+0=2}=5
-
对于 s2s_2s2:
v1(s2)=0(终止状态,价值为 0) v_1(s_2) = 0 \quad (\text{终止状态,价值为 0}) v1(s2)=0(终止状态,价值为 0)
-
-
第 2 次迭代:
-
对于 s1s_1s1:
v2(s1)=max{a1:5+0.9×v1(s2)=5+0=5a2:2+0.9×v1(s1)=2+0.9×5=6.5}=6.5 v_2(s_1) = \max \left\{ \begin{array}{l} a_1: 5 + 0.9 \times v_1(s_2) = 5 + 0 = 5 \\ a_2: 2 + 0.9 \times v_1(s_1) = 2 + 0.9 \times 5 = 6.5 \end{array} \right\} = 6.5 v2(s1)=max{a1:5+0.9×v1(s2)=5+0=5a2:2+0.9×v1(s1)=2+0.9×5=6.5}=6.5
-
-
重复迭代,直到价值函数收敛。
-
-
导出最优策略:
-
根据收敛后的价值函数,在状态 s1s_1s1:
- 比较两个动作的价值,选择使右边最大化的动作作为最优策略。
-
总结:
-
策略优化的关键是利用价值函数来评估策略,并基于此改进策略。
-
策略迭代是通过交替进行策略评估和策略改进,逐步逼近最优策略。
-
价值迭代是通过迭代价值函数,直接逼近最优价值函数,然后导出最优策略。
-
贝尔曼方程在这两个方法中都起到了核心作用,提供了价值函数的递归关系。
重要提示:
-
在实际应用中,尤其是当状态空间和动作空间较大时,直接使用这些方法可能计算量过大。这时,可能需要使用近似方法,如函数逼近、深度强化学习等。
-
算法选择取决于问题的规模、环境的性质以及对精度和计算资源的要求。
八、探索与利用(Exploration vs. Exploitation)
在强化学习中,智能体(Agent)面临着探索未知环境与利用已知信息之间的权衡。这种权衡是强化学习的核心问题之一,因为它直接影响到智能体的学习效率和最终的策略质量。
1. 探索(Exploration)
探索是指智能体尝试新的或不熟悉的动作,以获取更多关于环境的知识。这可能涉及选择不一定是当前看起来最优的动作,但通过探索可能发现更好的策略或得到更多有用的信息。
-
目的:
- 获取新信息: 了解尚未尝试过的动作的结果和奖励。
- 避免局部最优: 超越当前已知的(可能是次优的)策略,找到全局最优策略。
-
特点:
- 短期收益不一定高: 探索性的动作可能不会立即带来高奖励,甚至可能有负回报。
- 长期收益潜力大: 有可能发现比当前策略更优的行动路径,提升长期累积奖励。
2. 利用(Exploitation)
利用是指智能体根据当前已有的信息,选择已知的最佳动作,以期望获得最大的即时或短期奖励。
-
目的:
- 最大化当前收益: 在已知的策略下,选择最有利的动作,获取尽可能高的奖励。
-
特点:
- 短期收益高: 利用已知最佳策略,通常能获得较高的即时奖励。
- 可能错过更优策略: 如果过度利用,可能无法发现更好的动作,导致陷入局部最优。
3. 探索与利用的权衡
-
必要性:
- 平衡性: 完全的探索或完全的利用都不是理想的策略。过度探索会导致浪费时间和资源,延迟收益;过度利用会阻碍智能体了解环境的其他潜在收益,可能错过全局最优策略。
-
挑战:
- 何时探索,何时利用: 确定最佳的探索和利用比例是一个复杂的问题,需要智能体根据环境反馈不断调整。
-
解决方案:
- 策略设计: 需要设计合理的策略,动态地平衡探索与利用,以确保智能体能够有效学习。
4. ϵ\epsilonϵ-贪婪策略(ϵ\epsilonϵ-Greedy Policy)
ϵ\epsilonϵ-贪婪策略是一种简单而常用的方法,用于在探索和利用之间取得平衡。
-
策略描述:
-
以概率 ϵ\epsilonϵ 进行探索: 随机选择动作,从动作空间中均匀随机地选择一个动作,无论其当前的估计价值如何。
-
以概率 1−ϵ1 - \epsilon1−ϵ 进行利用: 选择当前状态下估计价值最大的动作,即根据已知的信息,选择认为最优的动作。
-
-
参数 ϵ\epsilonϵ 的作用:
-
ϵ\epsilonϵ 值越大: 探索的概率越高,智能体更倾向于尝试新的或不确定的动作。
-
ϵ\epsilonϵ 值越小: 利用的概率越高,智能体更倾向于选择当前已知的最佳动作。
-
-
参数 ϵ\epsilonϵ 的调整:
-
固定 ϵ\epsilonϵ 值: 可以在整个学习过程中保持 ϵ\epsilonϵ 为一个固定值。
-
递减 ϵ\epsilonϵ 值: 随着时间的推移,逐渐减小 ϵ\epsilonϵ 的值,让智能体在早期更多地探索,后期更多地利用。
-
-
优点:
-
简单易行: 实现和理解都比较简单。
-
保证探索: 总是有一定的概率进行探索,避免了过度利用。
-
-
缺点:
- 探索方式随机: 在探索时,动作的选择是随机的,可能效率不高。
5. 其他探索策略
除了 ϵ\epsilonϵ-贪婪策略,还有其他策略用于平衡探索和利用:
-
软最大化策略(Softmax Policy):
- 根据动作价值的概率分布来选择动作,价值越高的动作被选择的概率越大。
-
上置信界策略(Upper Confidence Bound,UCB):
- 兼顾动作的价值估计和不确定性,优先选择既有高价值又未被充分探索的动作。
-
贝叶斯策略:
- 基于贝叶斯方法,利用先验和后验概率来平衡探索和利用。
6. 探索与利用的理论基础
-
多臂老虎机问题(Multi-Armed Bandit Problem):
- 是探索与利用问题的典型模型,智能体需要在多个拉杆(动作)中选择,以最大化累计奖励。
-
平衡难度:
- 理论上困难: 在不确定的环境中,找到最优的探索与利用策略是一项复杂的任务,有时需要权衡即时奖励与信息获取的价值。
7. 总结
-
探索与利用的权衡是强化学习中的核心问题,直接影响智能体学习的效率和最终性能。
-
ϵ\epsilonϵ-贪婪策略提供了一种简单有效的方法,通过引入一个参数 ϵ\epsilonϵ 来控制探索的程度。
-
实际应用中,可以根据任务的具体情况,调整 ϵ\epsilonϵ 的值,或者结合其他策略以提高学习效率。
-
持续平衡: 智能体需要在学习过程中持续地平衡探索与利用,才能更好地适应环境,学习到最优的策略。
九、强化学习的应用实例
- 游戏 AI:如 AlphaGo 在围棋中的应用,智能体通过与自身或他人对弈,不断学习最优策略。
- 机器人控制:机器人学习如何在复杂的环境中导航和操作。
- 自动驾驶:车辆通过与环境交互,学习安全、高效的驾驶策略。
- 推荐系统:根据用户的反馈(奖励),优化推荐策略,提高用户满意度。
十、总结
强化学习通过与环境的交互,利用奖励信号来指导智能体学习最优策略。理解强化学习的基本概念,如智能体、环境、状态、动作、奖励、策略、价值函数等,有助于深入学习和应用强化学习方法。随着算法和计算能力的提升,强化学习将在更多领域发挥重要作用。
参考文献
- Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction, Second Edition.
- 王天一等著,强化学习导论,机械工业出版社。