深度强化学习与控制(二):无模型强化学习

文章目录

一、无模型强化学习

在现实问题中,通常没有明确地给出状态转移和奖励函数,模型无关的强化学习可以直接从经验中学习 value 和 policy,而无需构建马尔可夫决策过程模型

值函数估计

在模型无关的强化学习中,无法直接获得 P s a P_{sa} Psa 和 R R R,但是,我们拥有一系列可以用来估计值函数的方法

蒙特卡洛方法

目标:从策略 π \pi π 下的敬业片段学习 V π V^\pi Vπ

蒙特卡洛是模型无关的,不使用 bootstrapping 的方法。只能将蒙特卡洛方法应用于有限长度的马尔可夫决策过程中,即所有的片段都有终止状态

时序差分学习

时序差分方法直接从经验片段中进行学习,通过 bootstrapping,时序差分从不完整的片段中学习。时序差分更新当前预测值使之接近估计累计奖励(非真实值)

蒙特卡洛 vs. 时序差分

  • 时序差分能够在每一步之后进行在线学习;蒙特卡洛必须等待片段结束,直到累计奖励已知
  • 时序差分能够从不完整的序列中学习;蒙特卡洛只能从完整序列中学习
  • 时序差分在连续(无终止的)环境下工作;蒙特卡洛只能在片段化的(有终止的)环境下工作
  • 蒙特卡洛具有高方差,无偏差(良好的收敛性质,对初始值不敏感,易于理解和使用);时序差分具有低方差,有偏差( 通常比蒙特卡洛更加高效,时序差分最终收敛到 V π ( S t ) V^\pi(S_t) Vπ(St),但使用函数近似并不总是如此,比蒙特卡洛对初始值更加敏感)

实际使用中,时序差分方法更加常见

优化策略

SARSA

对于当前策略执行的每个(状态-动作-奖励-状态-动作)元组,SARSA 更新状态-动作值函数为

Q ( s , a ) ← Q ( s , a ) + α ( R + γ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a)\leftarrow Q(s,a)+\alpha\left(R+\gamma Q(s^\prime,a^\prime)-Q(s,a)\right) Q(s,a)←Q(s,a)+α(R+γQ(s′,a′)−Q(s,a))

Q-Learning

学习状态-动作值函数 Q ( s , a ) ∈ R Q(s,a)\in\mathbb R Q(s,a)∈R,不直接优化策略,是一种离线策略(off-policy)学习方法

  • 根据行为策略选择动作 a t ∼ μ ( ⋅ ∣ s t ) a_t\sim\mu(\cdot|s_t) at∼μ(⋅∣st)
  • 根据目标策略选择后续动作 a t + 1 ′ ∼ π ( ⋅ ∣ s t ) a^\prime_{t+1}\sim\pi(\cdot|s_t) at+1′∼π(⋅∣st)
  • 更新 Q ( s t , a t ) Q(s_t,a_t) Q(st,at) 的值以逼近目标状态-动作值
    Q ( s t , a t ) ← Q ( s t , a t ) + α ( R t + 1 + γ Q ( s t + 1 , a t + 1 ′ ) − Q ( s t , a t ) ) Q(s_t,a_t)\leftarrow Q(s_t,a_t) + \alpha\left(R_{t+1}+\gamma Q(s_{t+1},a^\prime_{t+1})-Q(s_t,a_t)\right) Q(st,at)←Q(st,at)+α(Rt+1+γQ(st+1,at+1′)−Q(st,at))

离线策略学习

  • 目标策略 π ( a ∣ s ) \pi(a|s) π(a∣s) 进行值函数评估
  • 行为策略 μ ( a ∣ s ) \mu(a|s) μ(a∣s) 收集数据

为什么使用离线策略学习

  • 平衡 exploration 和 exploitation
  • 通过观察人类或其他智能体学习策略
  • 重用旧策略所产生的经验
  • 遵循探索策略时学习最优策略
  • 遵循一个策略时学习多个策略

二、深度强化学习

  • 基于价值的方法:DQN
  • 基于随机策略的方法:使用神经网络的策略梯度,自然策略梯度,信任区域策略优化(TRPO),
    PPO,A3C
  • 基于确定性策略的方法:确定性策略梯度(DPG),DDPG

DQN

  • 不直接更新策略
  • 是一种基于值的方法
  • 学习一个由 θ \theta θ 作为参数的函数 Q θ ( s , a ) Q_\theta(s,a) Qθ(s,a)
    • 目标值: y t = r t + γ max ⁡ a ′ Q θ ( s t + 1 , a ′ ) y_t=r_t+\gamma\max\limits_{a^\prime}Q_\theta(s_{t+1},a^\prime) yt=rt+γa′maxQθ(st+1,a′)
    • 更新方程: Q θ ( s t , a t ) ← Q θ ( s t , a t ) + α ( r t + γ max ⁡ a ′ Q θ ( s t + 1 , a ′ ) − Q θ ( s t , a t ) ) Q_\theta(s_t,a_t)\leftarrow Q_\theta(s_t,a_t)+\alpha\left(r_t+\gamma\max\limits_{a^\prime}Q_\theta(s_{t+1},a^\prime)-Q_\theta(s_t,a_t)\right) Qθ(st,at)←Qθ(st,at)+α(rt+γa′maxQθ(st+1,a′)−Qθ(st,at))
    • 优化目标: θ ∗ ← arg ⁡ min ⁡ θ 1 2 ∑ ( s t , a t ) ∈ D ( Q θ ( s t , a t ) − ( r + γ max ⁡ a ′ Q θ ( s t + 1 , a ′ ) ) ) 2 \theta^*\leftarrow\arg\min\limits_\theta\frac12\sum\limits_{(s_t,a_t)\in D}\left(Q_\theta(s_t,a_t)-\left(r+\gamma\max\limits_{a^\prime} Q_\theta(s_{t+1},a^\prime)\right)\right)^2 θ∗←argθmin21(st,at)∈D∑(Qθ(st,at)−(r+γa′maxQθ(st+1,a′)))2

增强稳定性

  • 经验回放:存储训练过程中的每一步于数据库 D D D 中,采样时服从均匀分布
  • 使用目标网络:使用较旧的参数,每隔 C C C 步和训练网络的参数同步一次
相关推荐
蓦然回首却已人去楼空8 小时前
深度学习进阶:自然语言处理|4.2.3 QA|交叉熵、激活函数与 y − t:一套数学框架的三个侧面
人工智能·深度学习·自然语言处理
malog_8 小时前
Milvus向量数据库:AI时代的搜索革命
数据库·人工智能·后端·milvus
lizhihai_998 小时前
股市学习心得-技术指标学习(布林线+MACD)
大数据·人工智能·学习
徐安安_ye18 小时前
FlashAttention遇上旋转位置编码:RoPE是怎么跟注意力计算配合的?
人工智能·深度学习·机器学习
qq_411262428 小时前
Minimax WebSocket TTS 文档里 bitrate / sample_rate 的真实取值
人工智能
嗝o゚8 小时前
昇腾CANN elec-ops-inspection 仓:电力巡检AI算子实战
人工智能·cann·电力巡检
zhangxingchao8 小时前
AI 大模型面试核心二:微调、RAG、MCP、Agent 与工程落地
前端·人工智能·后端
zhangxingchao8 小时前
AI 大模型面试核心三: RAG、Agent 到 Prompt Engineering 的工程化理解
前端·人工智能·后端
救救孩子把8 小时前
66-机器学习与大模型开发数学教程-6-2 矩阵运算的数值误差分析
人工智能·机器学习·矩阵