当前位置: 首页 > news >正文

强化学习笔记

强化学习的总体目标:寻找最优策略。

关键名词

  • 智能体(Agent)

  • 状态(State):智能体相对于环境的状态 s ∈ S s∈S sS

  • 状态空间(State space):把所有状态放在一起,所有状态的集合(set) S = { s 1 , s 2 , … , s n } S=\{s_1,s_2,…,s_n\} S={s1,s2,,sn}

  • 动作(Action):对于每个状态,所可能采取的行动 a ∈ A ( s ) a∈A(s) aA(s)

  • 动作空间(Action space):某状态下所可能采取的所有动作的集合(动作依赖于状态) A ( s ) = { a 1 , a 2 , … , a m } A(s)=\{a_1,a_2,…,a_m\} A(s)={a1,a2,,am}

  • 状态转移(State transition):通过采取一个动作,智能体从一个状态进入另一个

  • 状态转移概率(State transition probability):用条件概率描述状态转移 P ( s ′ ∣ s , a ) P(s′∣s,a) P(ss,a)

  • 策略(Policy):策略告诉智能体在某一状态下应采取什么行动

    在数学上,策略被定义为在给定状态 s s s 时选择行动 a a a 的概率,即 π ( a ∣ s ) π(a∣s) π(as)

    策略 π π π 需要满足以下条件:对于所有状态 s ∈ S s∈S sS,所有可能行动 a ∈ A ( s ) a∈A(s) aA(s) 的概率之和等于 1:

∑ a ∈ A ( s ) π ( a ∣ s ) = 1 \sum_{a∈A(s)}π(a∣s)=1 aA(s)π(as)=1

  • 回报(Reward):回报 R ( s , a ) R(s,a) R(s,a) 是智能体在状态 s s s 下执行动作 a a a 后获得的标量值。它可以是正数(奖励)或负数(惩罚)。

  • 轨迹(Trajectory)和收益(Return):轨迹是一系列状态、动作和回报的序列,形式为 ( s 0 , a 0 , r 0 , s 1 , a 1 , r 1 , … , s T ) (s_0,a_0,r_0,s_1,a_1,r_1,…,s_T) (s0,a0,r0,s1,a1,r1,,sT)。轨迹的收益 G G G 是沿轨迹收集的所有回报的总和:
    G = ∑ t = 0 T − 1 r t G=\sum_{t=0}^{T−1}r_t G=t=0T1rt

  • 折扣收益(Discounted Return):在无限或长期的环境中,折扣收益用于优先考虑即时回报,而不是未来的回报。它通过折扣因子 γ γ γ(其中 0 ≤ γ ≤ 1 0≤γ≤1 0γ1)来计算:
    G = ∑ ∑ t = 0 ∞ γ t r t G=\sum_{∑t=0}^{∞}γ_tr_t G=t=0γtrt
    γ = 1 \gamma=1 γ=1 时,它就是标准的收益。折扣因子可使得无限序列的总和是有限的,并且模型能够捕捉到即时回报比未来回报更有价值这一概念。 γ \gamma γ越接近1越远视(注重长期回报), γ \gamma γ越接近0越近视(注重及时回报)。

  • Episode:一个有限的轨迹,通常在特定的终止状态处结束。

  • 马尔科夫决策过程(Markov decision process, MDP):MDP 的目标是找到一个策略 π π π,使得从起始状态开始的预期折扣收益最大化。具有无记忆性(和之前的状态无关)。

π ∗ = a r g m a x π E π [ G ∣ s 0 ] π^∗=\mathrm{argmax_{\pi}}E_π[G∣s0] π=argmaxπEπ[Gs0]

其中 E π [ G ∣ s 0 ] E_π[G∣s0] Eπ[Gs0] 表示在策略 π π π 下,从初始状态 s 0 s_0 s0 开始的预期折扣收益。

MDP 由以下组件定义:

  • 状态空间 S S S
  • 动作空间 A ( s ) A(s) A(s)
  • 状态转移概率 P ( s ′ ∣ s , a ) P(s′∣s,a) P(ss,a)
  • 回报函数 R ( s , a ) R(s,a) R(s,a)
  • 折扣因子 γ γ γ

贝尔曼公式

状态值函数(State Value Function)

定义
在策略 π \pi π下从状态 s s s出发的预期折扣收益,其定义为:
V π ( s ) = E π [ G ∣ s 0 = s ] = E π [ ∑ t = 0 ∞ γ t r t ∣ s 0 = s ] V^{\pi}(s) = \mathbb{E}_{\pi} \left[ G \mid s_0 = s \right] = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \bigg| s_0 = s \right] Vπ(s)=Eπ[Gs0=s]=Eπ[t=0γtrt s0=s]
其中:

  • E π [ ⋅ ] \mathbb{E}_{\pi}[\cdot] Eπ[]表示在策略$\pi $下的期望,覆盖动作选择和状态转移的随机性。
  • G = ∑ t = 0 ∞ γ t r t G = \sum_{t=0}^{\infty} \gamma^t r_t G=t=0γtrt是折扣收益, γ ∈ [ 0 , 1 ) \gamma \in [0,1) γ[0,1)是折扣因子,确保无穷级数收敛。
  • r t = R ( s t , a t ) r_t = R(s_t, a_t) rt=R(st,at)是时刻 t t t的即时回报, a t ∼ π ( ⋅ ∣ s t ) a_t \sim \pi(\cdot \mid s_t) atπ(st),状态转移由 s t + 1 ∼ P ( ⋅ ∣ s t , a t ) s_{t+1} \sim P(\cdot \mid s_t, a_t) st+1P(st,at)决定。

贝尔曼方程(Bellman Equation)

状态值函数满足递归关系:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] , ∀ s ∈ S V^{\pi}(s) = \sum_{a \in A} \pi(a \mid s) \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^{\pi}(s') \right], \quad \forall s \in S Vπ(s)=aAπ(as)[R(s,a)+γsSP(ss,a)Vπ(s)],sS
含义
当前状态的值等于即时回报的期望,加上未来状态的期望折扣值。

矩阵形式

V π = R π + γ P π V π \mathbf{V}^{\pi} = \mathbf{R}^{\pi} + \gamma \mathbf{P}^{\pi} \mathbf{V}^{\pi} Vπ=Rπ+γPπVπ
其闭式解为:
V π = ( I − γ P π ) − 1 R π \mathbf{V}^{\pi} = (I - \gamma \mathbf{P}^{\pi})^{-1} \mathbf{R}^{\pi} Vπ=(IγPπ)1Rπ
γ < 1 \gamma < 1 γ<1 时,矩阵 ( I − γ P π ) (I - \gamma \mathbf{P}^{\pi}) (IγPπ)可逆。

动作值函数(Action Value Function)

定义
动作值函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)表示从状态 s s s执行动作 a a a后,遵循策略$ \pi $的预期折扣收益:
Q π ( s , a ) = E π [ ∑ t = 0 ∞ γ t r t ∣ s 0 = s , a 0 = a ] Q^{\pi}(s,a) = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \bigg| s_0 = s, a_0 = a \right] Qπ(s,a)=Eπ[t=0γtrt s0=s,a0=a]

与状态值函数的关系
状态值函数可表示为动作值函数的期望:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^{\pi}(s) = \sum_{a \in A} \pi(a \mid s) Q^{\pi}(s,a) Vπ(s)=aAπ(as)Qπ(s,a)

动作值的贝尔曼方程
动作值函数同样满足递归关系:
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) Q^{\pi}(s,a) = R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^{\pi}(s') Qπ(s,a)=R(s,a)+γsSP(ss,a)Vπ(s)


贝尔曼最优公式

最优策略与最优值函数

最优策略定义
策略 π ∗ \pi^* π是最优的,当且仅当对任意状态 s s s,其满足:
π ∗ ( a ∣ s ) = { 1 , a = arg ⁡ max ⁡ a ′ Q π ∗ ( s , a ′ ) 0 , 其他 \pi^*(a \mid s) = \begin{cases} 1, & a = \arg\max_{a'} Q^{\pi^*}(s,a') \\ 0, & \text{其他} \end{cases} π(as)={1,0,a=argmaxaQπ(s,a)其他

最优状态值函数
最优值函数 V ∗ ( s ) V^*(s) V(s)是所有策略中最大的状态值:
V ∗ ( s ) = max ⁡ π V π ( s ) V^*(s) = \max_{\pi} V^{\pi}(s) V(s)=πmaxVπ(s)

贝尔曼最优方程
最优值函数满足:
V ∗ ( s ) = max ⁡ a ∈ A [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] , ∀ s ∈ S V^*(s) = \max_{a \in A} \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^*(s') \right], \quad \forall s \in S V(s)=aAmax[R(s,a)+γsSP(ss,a)V(s)],sS
对应动作值函数的最优方程为:
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) max ⁡ a ′ Q ∗ ( s ′ , a ′ ) Q^*(s,a) = R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) \max_{a'} Q^*(s',a') Q(s,a)=R(s,a)+γsSP(ss,a)amaxQ(s,a)

存在性与唯一性

  1. 存在性:在有限马尔可夫决策过程MDP中,若 γ < 1 \gamma < 1 γ<1,则存在唯一的最优值函数 V ∗ V^* V Q ∗ Q^* Q,以及至少一个确定性最优策略 π ∗ \pi^* π
  2. 唯一性:存在唯一最优解(最优策略不一定唯一)。放缩映射证明。
  3. 收敛性:通过值迭代或策略迭代算法,可逐步逼近 V ∗ V^* V π ∗ \pi^* π(指数级收敛)。

值迭代(Value Iteration)

基本思想

通过直接迭代贝尔曼最优方程求解最优值函数,最终从最优值函数中提取最优策略。通过同步备份(synchronous backup)更新所有状态的值。

算法步骤
V k ( s ) → Q k ( s , a ) → π k + 1 ( a ∣ s ) → V k + 1 ( s ) → max ⁡ a Q k ( s , a ) V_{k}(s)\to Q_{k}(s,a) \to \pi_{k+1}(a|s) \to V_{k+1}(s) \to \max_aQ_{k}(s,a) Vk(s)Qk(s,a)πk+1(as)Vk+1(s)amaxQk(s,a)

  1. 初始化
    对所有状态 s ∈ S s \in S sS,设置初始值 V 0 ( s ) = 0 V_0(s) = 0 V0(s)=0(或其他任意值)

  2. 迭代更新
    重复以下更新直至收敛:
    V k + 1 ( s ) = max ⁡ a ∈ A [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V k ( s ′ ) ] , ∀ s ∈ S V_{k+1}(s) = \max_{a \in A} \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V_k(s') \right], \quad \forall s \in S Vk+1(s)=aAmax[R(s,a)+γsSP(ss,a)Vk(s)],sS
    更新方式为同步备份(先计算所有新值,再整体替换旧值)

  3. 终止条件
    max ⁡ s ∈ S ∣ V k + 1 ( s ) − V k ( s ) ∣ < ε \max_{s \in S} |V_{k+1}(s) - V_k(s)| < \varepsilon maxsSVk+1(s)Vk(s)<ε(预设阈值)时停止

  4. 策略提取
    最终通过最优值函数 V ∗ V^* V得到确定性策略:
    π ∗ ( s ) = arg ⁡ max ⁡ a ∈ A [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] \pi^*(s) = \arg\max_{a \in A} \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^*(s') \right] π(s)=argaAmax[R(s,a)+γsSP(ss,a)V(s)]

特性分析

  1. 收敛性

    • γ < 1 \gamma < 1 γ<1时,值迭代以指数速度收敛到唯一最优解
    • 迭代次数与状态数无关,仅依赖 γ \gamma γ ε \varepsilon ε
  2. 时间复杂度
    每轮迭代复杂度为 O ( ∣ S ∣ 2 ∣ A ∣ ) O(|S|^2|A|) O(S2A),适用于状态空间较小的问题

  3. 与贝尔曼方程关系
    值迭代本质是不断应用贝尔曼最优算子的不动点迭代


策略迭代(Policy Iteration)

基本思想

通过**交替进行策略评估(Policy Evaluation)和策略改进(Policy Improvement)**来优化策略,直到收敛到最优策略。

算法步骤

  1. 初始化
    随机选择一个初始策略 π 0 \pi_0 π0

  2. 策略迭代循环
    Repeat:

    • (1) 策略评估
      计算当前策略 π k \pi_k πk的值函数 V π k V^{\pi_k} Vπk
      通过求解贝尔曼方程:
      V π k ( s ) = ∑ a π k ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π k ( s ′ ) ] V^{\pi_k}(s) = \sum_{a} \pi_k(a|s) \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^{\pi_k}(s') \right] Vπk(s)=aπk(as)[R(s,a)+γsP(ss,a)Vπk(s)]
      可通过迭代法(重复应用上式直至收敛)或直接求解线性方程组获得精确解

    • (2) 策略改进
      对每个状态 s s s,选择使动作值最大的动作:
      π k + 1 ( s ) = arg ⁡ max ⁡ a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π k ( s ′ ) ] \pi_{k+1}(s) = \arg\max_{a} \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^{\pi_k}(s') \right] πk+1(s)=argamax[R(s,a)+γsP(ss,a)Vπk(s)]

    Until π k + 1 = π k \pi_{k+1} = \pi_k πk+1=πk(策略稳定,实际上是无限逼近)

特性分析

  1. 收敛速度

    • 通常比值迭代更快(尤其当策略空间较小时)
    • 策略改进阶段保证每次迭代策略至少不劣化
  2. 计算复杂度

    • 策略评估阶段需要 O ( ∣ S ∣ 3 ) O(|S|^3) O(S3)(直接求解)或 O ( m ∣ S ∣ 2 ) O(m|S|^2) O(mS2)(迭代m次)
    • 适用于中等规模状态空间问题

截断策略迭代(Truncated Policy Iteration)

基本思想

在标准策略迭代的基础上,放宽策略评估的精度要求。通过限制策略评估阶段的迭代次数(如固定次数 k k k次),提前截断对当前策略的值函数计算,以降低每次迭代的计算量,同时仍能保证策略逐步优化。

算法步骤

  1. 初始化

    • 随机初始化策略 π 0 \pi_0 π0
    • 设置策略评估阶段的迭代次数上限 k k k(例如 k = 3 k=3 k=3
  2. 策略迭代循环
    Repeat:

    • (1) 截断策略评估
      对当前策略 π i \pi_i πi,执行以下步骤(从初始值函数 V 0 V_0 V0开始):

      • For t = 0 t=0 t=0 to k − 1 k-1 k1 do:
        更新值函数:
        V t + 1 ( s ) = ∑ a π i ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V t ( s ′ ) ] V_{t+1}(s) = \sum_{a} \pi_i(a|s) \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V_t(s') \right] Vt+1(s)=aπi(as)[R(s,a)+γsP(ss,a)Vt(s)]

      • 最终得到近似值函数 V k ≈ V π i V_k \approx V^{\pi_i} VkVπi

    • (2) 策略改进
      基于近似值函数 V k V_k Vk,贪婪更新策略:
      π i + 1 ( s ) = arg ⁡ max ⁡ a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V k ( s ′ ) ] \pi_{i+1}(s) = \arg\max_{a} \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V_k(s') \right] πi+1(s)=argamax[R(s,a)+γsP(ss,a)Vk(s)]

    Until π i + 1 = π i \pi_{i+1} = \pi_i πi+1=πi(策略稳定)

特性分析

  1. 收敛性
    • 即使策略评估未完全收敛,只要策略改进阶段能提升策略,算法仍能收敛到最优策略
    • 收敛速度可能慢于标准策略迭代,但快于值迭代
  2. 精度-效率权衡
    • 增大 k k k:策略评估更精确,策略改进更有效,但单次迭代时间增加
    • 减小 k k k:单次迭代更快,但可能需要更多轮次策略迭代

相关文章:

  • Revit API:对元素过滤的三点思考
  • jmeter接口测试(一)
  • PMIC电源噪声对SOC芯片电源完整性的影响
  • 正点原子[第三期]Arm(iMX6U)Linux系统移植和根文件系统构建-5.3 xxx_defconfig过程
  • 嵌入式开发岗位认识
  • [Android]上架商店时用户隐私协议要求
  • 贝叶斯估计习题
  • 总结UML类图几种关系画法
  • Hutool - DB 连接池配置集成
  • JUC并发总结二
  • WEB前端将指定DOM生成图片并下载最佳实践(html2canvas)
  • 跟着AI学vue第六章
  • 以ChatGPT为例解析大模型背后的技术
  • Nginx 请求超时
  • uniapp中引入Vant Weapp的保姆级教学(包含错误处理)
  • CV -- 基于GPU版CUDA环境+Pycharm YOLOv8 目标检测
  • 将Google文档导入WordPress:简单实用的几种方法
  • Linux的指令与热键
  • 《动手学机器人学》笔记
  • 软件著作权申请流程详解:从准备到登记的完整指南
  • 阿里云的网站建设花钱么/全国教育培训机构平台
  • c 2015 做网站/重庆网站建设软件
  • 阿里云9元做网站/百度收录链接提交入口
  • 网站搭建软件/百度首页广告
  • 深圳模板建站企业/悟空建站seo服务
  • 一站式手机网站制作/全网营销外包