Axi's Blog

Back

RL 学习笔记(1):强化学习简介Blur image

什么是强化学习?#

学习与机器学习#

  • 学习 (Learning):根据 Mitchell (1997) 的定义,若一个计算机程序在某类任务 TT 上的性能 PP 能通过经验 EE 改善,则称该程序从经验 EE 中学习了关于任务 TT 和性能 PP 的知识。
  • 机器学习 (Machine Learning):设计能从经验(数据)中学习的算法,目标是持续改善系统在特定任务上的性能。其关键要素包括经验(数据)、学习算法,以及支撑现代人工智能发展的算力。
  • 机器学习三大范式
    1. 监督学习 (Supervised Learning):从有标签数据中学习输入到输出的映射。
    2. 无监督学习 (Unsupervised Learning):从无标签数据中发现隐藏结构或模式。
    3. 强化学习 (Reinforcement Learning):智能体通过与环境交互,依据获得的奖励或惩罚来学习最优决策,以最大化累积奖励。

强化学习的核心思想与目标#

  • 强化学习旨在构建智能体 (Agent),使其能在动态、开放的环境中通过学习完成任务或实现目标。这区别于传统方法在静态环境中执行预设程序。
  • 核心问题:如何让智能体通过在动态环境中的试错 (Trial-and-Error),自主提升达成目标的能力?
  • 奖励假设 (Reward Hypothesis):强化学习的一个基本假设是,所有形式的目标和意图都可以形式化为最大化期望累积标量奖励信号的过程。智能行为被认为是最大化奖励过程的自然涌现。

    “That all of what we mean by goals and purposes can be well thought of as the maximization of the expected value of the cumulative sum of a received scalar signal (called reward).” - Rich Sutton, David Silver, et al.

强化学习基本框架:智能体与环境交互#

强化学习可以被视为智能体从与环境交互的经历 (Experience) 中学习的计算理论。

交互过程#

  • 智能体 (Agent):学习者和决策制定者。
  • 环境 (Environment):智能体外部的一切,是交互的对象。
  • 交互循环:在离散的时间步 t=0,1,2,t = 0, 1, 2, \dots
    1. 智能体接收环境的状态 (State) StS_t (或观测 Observation OtO_t)。
    2. 智能体基于状态 StS_t 选择并执行一个动作 (Action) AtA_t
    3. 环境根据 StS_tAtA_t 转换到新的状态 St+1S_{t+1}
    4. 环境向智能体反馈一个奖励 (Reward) Rt+1R_{t+1}
    5. 智能体接收新的状态 St+1S_{t+1} (或 Ot+1O_{t+1}),循环继续。

序贯决策 (Sequential Decision Making)#

  • RL 解决的是智能体需要连续做出一系列决策的问题,每个决策后接收新信息,直至任务结束。例如,游戏中每一帧都需要决定移动方向。

经历 (Experience) 与 轨迹 (Trajectory)#

  • 一次完整的交互过程(从开始到结束)称为一个回合 (Episode)轨迹 (Trajectory)
  • 交互产生序列数据:S0,A0,R1,S1,A1,R2,S2,A2,R3,S_0, A_0, R_1, S_1, A_1, R_2, S_2, A_2, R_3, \dots。RL 算法利用这些序列进行学习。

关联任务 vs 非关联任务#

  • 非关联任务 (Non-associative):无需区分状态,目标是找到全局最优的单个动作或追踪变化环境中的最优动作。典型例子是k臂赌博机 (k-armed Bandit)
  • 关联任务 (Associative):动作选择需与当前状态 (State)情境 (Context) 关联。智能体需学习从状态到最优动作的映射。上下文赌博机 (Contextual Bandit) 是简单例子,而完整的 RL 问题(如导航)是典型的关联任务。

强化学习问题的关键要素#

历史 (History) 与 状态 (State)#

  • 历史 (History) HtH_t:到时间 tt 为止的所有观测、动作、奖励序列:Ht=O1,R1,A1,,At1,Ot,RtH_t = O_1, R_1, A_1, \dots, A_{t-1}, O_t, R_t。它包含了智能体交互的全部原始信息。
  • 状态 (State) StS_t:是对历史的总结,包含决定未来所需的所有相关信息。状态是历史的函数:St=f(Ht)S_t = f(H_t)
  • 环境状态 (Environment State) SteS_t^e:环境内部决定下一状态/奖励的完整信息,不一定对智能体可见。
  • 智能体状态 (Agent State) StaS_t^a:智能体内部用于决策的表示,是智能体可利用的信息,也是历史的函数 Sta=f(Ht)S_t^a = f(H_t)。RL 算法基于 StaS_t^a 学习。

环境的可观测性 (Observability)#

  • 完全可观测环境 (Fully Observable):智能体观测等于环境真实状态 (Ot=SteO_t = S_t^e)。当前观测包含所有决策所需历史信息。这类问题通常用 马尔可夫决策过程 (Markov Decision Process, MDP) 建模。
    • 马尔可夫性质 (Markov Property):未来只依赖于当前状态,与历史路径无关。即 P[St+1St]=P[St+1S1,,St]P[S_{t+1} | S_t] = P[S_{t+1} | S_1, \dots, S_t]。环境状态 SteS_t^e 通常满足此性质。在完全可观测时,智能体状态 Sta(=Ste)S_t^a (=S_t^e) 也满足。
  • 部分可观测环境 (Partially Observable):智能体观测仅提供部分环境信息 (OtSteO_t \neq S_t^e)。当前观测不足以确定状态,历史信息变得重要。这类问题用 部分可观测马尔可夫决策过程 (POMDP) 建模。
    • 处理方法:智能体需构建状态估计 StaS_t^a。常用方法包括使用历史 HtH_t、循环神经网络 (RNN) 或维护信念状态 (Belief State) b(se)=P(Ste=seHt)b(s^e) = P(S_t^e = s^e | H_t)(即关于真实状态的概率分布)。

奖励信号 (Reward Signal) RtR_t#

  • 奖励 RtR_t 是一个标量反馈信号,表明智能体在 tt 时刻动作后的即时“好坏”程度。
  • 目的:定义 RL 的目标。智能体旨在最大化累积奖励。
  • 奖励设计 (Reward Shaping) 非常关键,直接引导学习方向。例如:
    • 游戏胜利:高正奖励。
    • 失败/碰撞:高负奖励。
    • 触发特定事件(如吃金币):小正奖励。
    • 无事发生:零奖励或小的负奖励(鼓励效率)。

回报 (Return) 与 折扣 (Discounting)#

  • 回报 (Return) GtG_t:从时间步 tt 开始的未来累积奖励。它衡量了当前状态或状态-动作对在长期来看的价值。
  • 任务类型与回报定义
    • 分幕式任务 (Episodic Tasks):有明确终止状态 TTGtRt+1+Rt+2++RT=k=t+1TRkG_{t} \doteq R_{t+1} + R_{t+2} + \dots + R_{T} = \sum_{k=t+1}^{T} R_k\doteq 表示定义)
    • 持续式任务 (Continuing Tasks):无终点,无限进行。
  • 折扣回报 (Discounted Return) GtG_t (或 UtU_t): 为了处理无限和以及权衡近期与远期奖励,引入折扣因子 (Discount Factor) γ[0,1]\gamma \in [0, 1]GtRt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1G_{t} \doteq R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} 此定义统一适用于分幕式(令 Rk=0R_k=0 for k>Tk>T)和持续式任务。
  • 为什么需要折扣 (γ\gamma)?
    1. 数学便利:确保回报有界,利于算法收敛。
    2. 模型不确定性:远期奖励预测难度大,折扣降低其影响。
    3. 偏好即时奖励:符合直觉,现在的奖励通常更有价值。
    4. 模拟终止概率:可视为每步有 1γ1-\gamma 概率终止。
  • 折扣因子的影响
    • γ0\gamma \approx 0:智能体“近视”,更关注短期奖励。
    • γ1\gamma \approx 1:智能体“远视”,更关注长期奖励。
  • 回报的递归关系:折扣回报满足重要的递归性质: Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}
  • 回报的随机性:由于未来的动作和状态可能随机,未来的奖励也是随机的。因此,在时间 ttGtG_t 是一个随机变量。算法通常使用实际观测到的回报值(一个回合结束后计算出的具体数值,有时记作 gtg_tutu_t)来估计其期望。

环境模型 (Environment Model)#

  • 模型描述环境行为,预测环境对动作的响应。包含:
    1. 状态转移概率 (State Transition Probability) p(ss,a)p(s'|s, a):在状态 ss 执行动作 aa 后,转移到状态 ss' 的概率。 p(ss,a)=P(St+1=sSt=s,At=a)p(s'|s, a) = \mathbb{P}(S_{t+1}=s' | S_t=s, A_t=a) 环境可能是随机的 (Stochastic)
    2. 奖励函数 (Reward Function) r(s,a)r(s, a)Rsa\mathcal{R}_{s}^{a}:在状态 ss 执行动作 aa 后,期望获得的立即奖励。 Rsa=E[Rt+1St=s,At=a]\mathcal{R}_{s}^{a} = \mathbb{E}[R_{t+1} | S_t=s, A_t=a] (注意:有时奖励函数定义为 p(rs,a)p(r|s, a)p(s,rs,a)p(s', r|s, a),包含奖励的分布)。
  • 引出两种主要方法类型:
    • 基于模型 (Model-Based):尝试学习或利用环境模型。
    • 无模型 (Model-Free):不依赖显式模型,直接从经验学习。

随机性来源 (Randomness)#

  • RL 中存在多个随机源:
    1. 动作随机性 (Stochastic Action):智能体的策略 π(as)\pi(a|s) 可能输出概率分布,Atπ(St)A_t \sim \pi(\cdot | S_t)
    2. 状态转移随机性 (Stochastic State Transition):环境本身可能随机,St+1p(St,At)S_{t+1} \sim p(\cdot | S_t, A_t)
    3. 奖励随机性:奖励 Rt+1R_{t+1} 也可能依赖于 (St,At,St+1)(S_t, A_t, S_{t+1}) 并且是随机的。

强化学习智能体的核心组成#

一个典型的 RL 智能体通常包含以下一个或多个组件:

策略 (Policy) π\pi#

  • 策略是智能体的“大脑”或行为方式,定义了智能体在给定状态下如何选择动作。
  • 确定性策略 (Deterministic Policy)a=π(s)a = \pi(s)
  • 随机性策略 (Stochastic Policy)π(as)=P(At=aSt=s)\pi(a|s) = P(A_t = a | S_t = s),输出动作的概率分布。随机策略在探索和处理不确定性时有优势。
  • 目标:找到最优策略 π\pi^*,使得期望累积回报最大化: π=argmaxπEπ,Env[Gt]\pi^* = \arg\max_{\pi} \mathbb{E}_{\pi, \text{Env}} [G_t]

价值函数 (Value Function) Vπ,QπV^{\pi}, Q^{\pi}#

  • 价值函数用于评估状态或状态-动作对的“好坏”程度(长期价值),即遵循特定策略 π\pi 能获得的期望回报。
  • 状态价值函数 (State-Value Function) Vπ(s)V^{\pi}(s):从状态 ss 开始,遵循策略 π\pi 的期望折扣回报。 Vπ(s)=Eπ[GtSt=s]V^{\pi}(s) = \mathbb{E}_{\pi} [G_t | S_t = s] 衡量处于状态 ss 的好坏。
  • 动作价值函数 (Action-Value Function) Qπ(s,a)Q^{\pi}(s, a) (Q-function):在状态 ss 采取动作 aa 后,继续遵循策略 π\pi 的期望折扣回报。 Qπ(s,a)=Eπ[GtSt=s,At=a]Q^{\pi}(s, a) = \mathbb{E}_{\pi} [G_t | S_t = s, A_t = a] 衡量在状态 ss 执行动作 aa 的好坏。
  • 关系Vπ(s)V^{\pi}(s)Qπ(s,a)Q^{\pi}(s,a) 在策略 π\pi 下的期望值:
    • 离散动作: Vπ(s)=aAπ(as)Qπ(s,a)V^{\pi}(s) = \sum_{a \in \mathcal{A}} \pi(a|s) Q^{\pi}(s, a)
    • 连续动作: Vπ(s)=aAπ(as)Qπ(s,a)daV^{\pi}(s) = \int_{a \in \mathcal{A}} \pi(a|s) Q^{\pi}(s, a) da
  • 价值函数帮助评估和改进策略。

模型 (Model)#

  • 模型是对环境动态的模拟。如果智能体拥有或学习了模型,就可以进行规划 (Planning)

强化学习的关键挑战与权衡#

探索 (Exploration) vs 利用 (Exploitation)#

  • RL 的核心困境:是利用当前已知最好的选择(利用),还是尝试未知的选择以期发现更好的策略(探索)?
  • 利用:选择当前估计价值最高的动作,最大化短期收益。
  • 探索:尝试非最优或未充分尝试的动作,收集信息,可能发现长期更优的策略,但可能牺牲短期收益。
  • 平衡是关键。过度利用可能陷入局部最优,过度探索则效率低下。常用策略有 ϵ\epsilon-greedy、UCB、乐观初始值等。

预测 (Prediction) vs 控制 (Control)#

  • RL 的两大任务类型:
  • 预测 (Prediction) / 策略评估 (Policy Evaluation)
    • 问题:给定策略 π\pi,评估其价值。
    • 目标:计算 Vπ(s)V^{\pi}(s)Qπ(s,a)Q^{\pi}(s, a)
  • 控制 (Control) / 策略改进 (Policy Improvement)
    • 问题:找到最优策略 π\pi^*
    • 目标:最大化长期回报,找到最优价值函数 V(s),Q(s,a)V^*(s), Q^*(s, a) 和最优策略 π\pi^*
  • 关系:控制问题通常通过迭代地进行预测和改进来解决,这个过程称为 广义策略迭代 (Generalized Policy Iteration, GPI)

学习 (Learning) vs 规划 (Planning)#

  • 学习 (Learning)
    • 环境模型未知。
    • 通过与真实环境交互(试错)获得经验。
    • 直接从经验改进策略或价值函数。
  • 规划 (Planning)
    • 环境模型已知或已习得。
    • 利用模型进行模拟计算(“思考”、“推演”),产生模拟经验
    • 基于模拟经验改进策略或价值函数,无需与真实环境交互。
    • 例子:动态规划 (DP)、蒙特卡洛树搜索 (MCTS)。
  • 结合:许多方法(如 Dyna-Q)结合两者,通过真实交互学习模型,再利用模型进行规划加速学习。

强化学习方法分类#

RL 算法可从不同维度分类:

  • 基于价值 (Value-Based)
    • 学习价值函数 V(s)V(s)Q(s,a)Q(s,a)
    • 策略隐式(如对Q值贪心)。
    • 代表:Q-Learning, Sarsa, DQN。
  • 基于策略 (Policy-Based)
    • 直接学习策略 π(as)\pi(a|s)
    • 可处理连续动作空间,能学随机策略。
    • 代表:REINFORCE, Policy Gradients。
  • 演员-评论家 (Actor-Critic)
    • 结合前两者。演员 (Actor) 学策略,评论家 (Critic) 学价值函数指导演员。
    • 代表:A2C, A3C, DDPG, SAC。
  • 无模型 (Model-Free)
    • 不学习环境模型,直接从经验学习。
    • 样本效率通常较低。
    • 包括上述大部分方法。
  • 基于模型 (Model-Based)
    • 学习环境模型,并利用模型进行规划或生成模拟数据。
    • 样本效率通常较高,但受模型精度限制。
    • 代表:Dyna-Q, MCTS 相关方法。

深度强化学习 (Deep Reinforcement Learning, DRL)#

  • 深度学习 (Deep Learning) 与 RL 结合。
  • 使用深度神经网络 (DNNs) 作为函数逼近器来表示策略、价值函数或模型,尤其适用于高维状态/动作空间。
    • 策略网络 π(as;θ)\pi(a|s; \theta)
    • 价值网络 V(s;θ)V(s; \theta)Q(s,a;θ)Q(s, a; \theta)
    • 模型网络 (状态转移,奖励)
  • 学习过程即调整网络参数 θ\theta 以最大化回报。

符号约定#

本笔记将遵循以下主要符号:

  • S\mathcal{S}: 状态空间 (State Space)
  • A\mathcal{A}: 动作空间 (Action Space)
  • St,sS_t, s: 当前状态 (State at time t, a specific state) - 大写为随机变量,小写为具体值
  • At,aA_t, a: 当前动作 (Action at time t, a specific action) - 大写为随机变量,小写为具体值
  • Rt,rR_{t}, r: 奖励 (Reward at time t, a specific reward value) - 大写为随机变量,小写为具体值
  • π\pi: 策略 (Policy)
  • Vπ(s)V^{\pi}(s): 策略 π\pi 下的状态价值函数 (State-value function under policy π\pi)
  • Qπ(s,a)Q^{\pi}(s, a): 策略 π\pi 下的动作价值函数 (Action-value function under policy π\pi)
  • GtG_t: 回报 (Return, cumulative future reward from t) - 随机变量
  • γ\gamma: 折扣因子 (Discount factor)
  • p(ss,a)p(s'|s, a): 状态转移概率 (State transition probability)
  • E[]\mathbb{E}[\cdot]: 期望 (Expectation)
  • HtH_t: 历史 (History)
RL 学习笔记(1):强化学习简介
https://axi404.top/blog/rl-note-1
Author 阿汐
Published at April 8, 2025
Comment seems to stuck. Try to refresh?✨