Sim2Sim理论与实践3:深度强化学习

目录

[1 强化学习的核心框架------马尔可夫决策过程MDP](#1 强化学习的核心框架——马尔可夫决策过程MDP)

(1)理论框架

(2)性质

(3)定义

[2 方法论](#2 方法论)

[2.1 动态规划DP](#2.1 动态规划DP)

[2.2 策略部分](#2.2 策略部分)

策略梯度(PolicyGradient,PG)

[2.3 值函数部分](#2.3 值函数部分)

[2.3.1 时序差分TD](#2.3.1 时序差分TD)

[2.3.2 蒙特卡洛MC](#2.3.2 蒙特卡洛MC)

[2.4 策略值函数部分](#2.4 策略值函数部分)

混合模式比如TD+MC

[3 解决MDP的方法](#3 解决MDP的方法)

[3.1 价值模型派(Value-Based)](#3.1 价值模型派(Value-Based))

(1)代表算法

(2)思路

(3)局限

[3.1.1 Q-Learning(无模型、离线)](#3.1.1 Q-Learning(无模型、离线))

[3.1.2 DQN(无模型、离线)](#3.1.2 DQN(无模型、离线))

[3.1.3 SARSA(无模型、在线)](#3.1.3 SARSA(无模型、在线))

[3.1.4 策略迭代](#3.1.4 策略迭代)

[3.1.5 价值迭代](#3.1.5 价值迭代)

[3.2 策略模型派 (Policy-Based)](#3.2 策略模型派 (Policy-Based))

(1)代表算法

REINFORCE(无模型、在线)

[3.3 演员-评论家派 (Actor-Critic Based)](#3.3 演员-评论家派 (Actor-Critic Based))

(1)代表算法

(2)思路

(3)现状

[3.3.1 PPO(无模型、在线)最常用](#3.3.1 PPO(无模型、在线)最常用)

[3.3.2 A3C](#3.3.2 A3C)

[3.3.3 SAC](#3.3.3 SAC)


1 强化学习的核心框架------马尔可夫决策过程MDP

(1)理论框架

用于模拟在一个智能体(Agent)的行为既受随机性影响,又受其自身决策影响的情况下,如何做出决策。

(2)性质

未来只取决于现在,而与过去无关。

(3)定义

找到一个策略(Policy),最大化累积折扣奖励

策略 (a|s)

一个从状态到动作的映射,告诉智能体在什么状态下该做什么。

S(States - 状态)

环境中所有可能存在的情况的集合。

A(Actions - 动作)

智能体在特定状态下可以采取的所有行为的集合。

P(Transition Probability - 转移概率)

描述环境的动力学。即在状态s下采取动作a后,转移到下一个状态s'的概率

R(Reward - 奖励)

智能体执行动作后从环境获得的即时反馈

(Discount Factor - 折扣因子)

取值在0-1之间,用于平衡当前奖励和未来长期奖励的重要性。

2 方法论

2.1 动态规划DP

**必须提前知道完美的物理模型才能推算(太难)。基于DP方法的代表算法:策略迭代 、价值迭代。**动态规划 (Dynamic Programming, 简称 DP) 是强化学习(以及算法设计)中最基础的理论框架。它并不是指一种具体的代码,而是一种通过将复杂问题分解为子问题来求解的方法论。

DP通常分为这两步循环进行,策略评估 (Policy Evaluation):给定一个巡检路线,计算机器人按照这个路线走下去,在每个位置预期的得分是多少;策略改进 (Policy Improvement):根据计算出的分值,看看有没有更好的走法。如果有,就更新路线。

2.2 策略部分
策略梯度(PolicyGradient,PG)

基于策略梯度方法的代表算法:REINFORCE(PG+MC)、PPO(PG+TD、MC)、SAC(PG+TD、MC)。

策略梯度方法是训练一个神经网络,输入状态state,直接输出动作action,不再计算Q。其直接优化策略,通过调整智能体在每个状态下选择动作的概率分布来提升整体表现。与基于价值的算法不同,策略梯度方法不需要明确估计Q值或V值,而是直接优化策略,使其能够在环境中做出更优决策。智能体通过采样轨迹,不断学习并改进自己选择动作的策略。

2.3 值函数部分
2.3.1 时序差分TD

TD算法结合了蒙特卡洛方法和动态规划的优点。基于TD方法的代表算法有:Q-learningSARSA 、**DQN。**通过对当前状态的价值估计进行更新,使用当前的奖励以及下一状态的价值来进行预测。这种更新方式可以在每一个时间步进行,使得智能体在学习时能够更快地适应环境的变化,而不是等待整个回合结束。TD误差是这一更新过程中的核心概念,它衡量了当前价值估计与实际获得的奖励和下一个状态价值之间的差距。

2.3.2 蒙特卡洛MC

**必须等整局游戏结束,看到最后结果才去更新(太慢)。基于MC方法的代表算法:REINFORCE。**MC是强化学习中的一种方法,用于估计当前状态到最终状态的累积奖励。智能体在t时刻选择动作a后,会在t+1时刻进入新的状态并获得奖励,因此我们定义G值为从当前状态S开始直到最终状态所收获的总奖励。蒙特卡洛采样的核心思想是:当前的G值等于当前动作获得的即时奖励r,加上未来的G值乘以一个折扣率γ。这个过程是迭代的,意味着智能体会在多次尝试中不断修正对累积奖励的估计。折扣率γ的作用在于衡量时间的影响,距离当前时刻越远的奖励,对当前决策的影响越小。蒙特卡洛采样的核心特点是,它是无模型(free-model)方法的基础,即不需要知道环境的具体动态,仅通过采样来进行学习。蒙特卡洛采样还分为同策略(on-policy)和异策略(off-policy)两种方式,区别在于采样的策略不同。同策略采样使用的是智能体当前的行为策略,而异策略采样则允许智能体使用一个不同的策略来收集数据。

2.4 策略值函数部分

策略值函数是通过一个或两个神经网络同时学习策略函数、负责"决策"(在当前状态下,该选哪个动作)和值函数V/Q**、**负责"打分"(现在的处境好不好?如果按这个策略走下去,能拿多少分)。

混合模式比如TD+MC

基于TD+MC方法的代表算法:PPOSACActor-Critic。

3 解决MDP的方法

3.1 价值模型派(Value-Based)
(1)代表算法

Q-Learning、DQN、SARSA、策略迭代 (Policy Iteration)、价值迭代 (Value Iteration)

(2)思路

学习"查表",预测每个动作的Q值,选最高分的。

PS.

查表是指在离散的状态空间和动作空间下,将每个"状态-动作对" (s, a) 所对应的长期价值期望(即Q值)存储在一个二维矩阵(Q-Table)中。当智能体感知到当前状态s时,通过访问矩阵中对应的行,对比不同动作列的数值,从而选出分值最高的动作。

Q值(Quality Value),动作价值。评估的是在某个状态下选择某个动作后,从当前状态到最终状态,智能体所能获得的累积奖励的期望。计算Q值的过程类似于:从当前状态出发,假设有多个"分身",每个分身选择不同路径前进,最终记录每个分身获得的奖励,然后计算这些分身奖励的平均值,得到Q值。

V值,(状态价值)。评估的是智能体在某个状态下,从这个状态到最终状态所能获得的累积奖励的期望。计算V值的方式类似于:从当前状态出发,分身出来多个智能体,分身根据当前策略选择动作,走到终点后计算各自获得的总奖励,然后取这些分身的奖励平均值作为V值。

(3)局限

很难处理像机器人关节旋转这种连续动作

3.1.1 Q-Learning(无模型、离线)

Q-Learning是强化学习中的经典方法。它通过选择最大Q值的动作来优化策略,通常使用一个Q-table来记录每个状态下各个动作的Q值,帮助智能体找到S-A的对应关系。其本质是求解贝尔曼最优方程

3.1.2 DQN(无模型、离线)

DQN通过结合深度神经网络解决了Q-Learning的Q-table局限性问题,尤其在连续空间和大状态空间中表现优异。DQN通过神经网络拟合Q值,并采用ε-greedy策略 来平衡探索与利用。ReplayBuffer技术 通过保存状态转换,进行批量训练,避免过拟合。同时,它使用双Q网络来计算更新目标。

PS.

**ε-greedy策略,**为了在探索新策略与利用已有知识之间取得平衡。智能体以一定概率ε随机选择一个动作,以便探索新的策略;而在其他情况下,则选择当前Q值最大的动作,从而利用已有的知识。

**ReplayBuffer技术,**一个用来存储 {(s, a, r, s{next})}这种经历片段的缓冲区。通过批量训练的方式,DQN可以从这些存储的数据中随机抽取样本进行训练,降低了数据之间的相关性,从而有效地避免过拟合。这种方法使得智能体能够更稳定地学习。

**双Q网络,**结构完全一样,但参数更新步调不一致的两个网络:Q-eval(评估网络) 和 Q-target(目标网络)。分别计算当前动作的Q值和目标Q值,从而减少因过估计而导致的训练不稳定性。这一设计使得DQN在更新目标时更加精确。

3.1.3 SARSA(无模型、在线)

SARSA是基于TD算法的Q值估计方法。智能体通过输入当前状态S和动作A,来学习最优策略。它的核心思想是用相同状态下产生的动作Q值来代替下一个状态的价值估计。SARSA主要用于求解贝尔曼方程。

3.1.4 策略迭代

策略迭代是一个"双重循环"的过程。它就像一个教练带运动员:

(1)策略评估 (Policy Evaluation)

给机器人一个初始策略(比如:遇到墙就右转)。让它在脑子里推演一万遍,算出按照这个策略走,每个格子最后能得多少分(算出V值)。

(2)策略改进 (Policy Improvement)

拿着算好的分数表看一看。诶?如果在第 5 个格子改左转,分会不会更高?如果有更好的走法,就更新策略。

(3)循环

重复这两步,直到策略不再变化。

特点:每一步迭代都非常沉重(因为要算准当前策略下的所有分),但通常只需要很少的次数就能找到最优解。

3.1.5 价值迭代

价值迭代是一个"单循环"的过程。它更直接,甚至不关心现在的策略是什么:

(1)直接算分

它直接扫一遍地图,根据贝尔曼方程计算:如果我在这个格子里选那个能让未来得分最高的动作,我现在的得分应该是多少?

(2)更新V值

它不断刷新地图上每个格子的"身价"。

(3)提取策略

等到全地图的分数都算得"纹丝不动"了(收敛了),再看一眼:在每个格子里选分最高的动作,这就成了最优策略。

特点:每一步迭代很轻快,但它可能需要很多次迭代才能让分数传遍全图。它把"评估"和"改进"揉在了一起。

3.2 策略模型派 (Policy-Based)
(1)代表算法
REINFORCE(无模型、在线)

(2)思路

直接学习动作的概率分布。

(3)局限

训练慢,容易崩盘。

3.3 演员-评论家派 (Actor-Critic Based)

AC算法把机器人变成了两个相互配合的模块,就像"运动员"和"教练员":

Actor(演员/策略)

职责: 负责干活。它直接输出动作(Action)

依据: 根据状态s决定做什么,目标是让评分越来越高

对应: 它是策略梯度 (PG) 流派的代表

Critic(评论家/价值)

职责: 负责打分,只评价Actor做得好不好

依据: 它学习的是价值函数V(s),告诉你当前状态预期能得多少分

对应: 它是价值派 (Value-based/TD) 流派的代表

(1)代表算法

PPO、A3C、SAC

(2)思路

结合前两者的优点,既学概率又学打分。

(3)现状

这是目前解决复杂 MDP(如LLM 微调、四足机器人)的绝对主流。

3.3.1 PPO(无模型、在线)最常用

PPO(Proximal Policy Optimization,近端策略优化),策略梯度 (PG) 流派,直接输出动作概率;Actor-Critic (AC) 架构,有一个Actor选动作,一个Critic给环境打分;混合模式 (TD + MC),使用 GAE (广义优势估计),通过一个参数在"看一步 (TD)"和"看全局 (MC)"之间寻找最佳平衡点。

3.3.2 A3C

A3C(AsynchronousAdvantagedActor-Critic,异步优势演员-评论家)。存在一个全局网络(GlobalNetwork)和多个工作者网络(worker)。全局网络和每个工作者网络的结构是完全相同的,但全局网络并不会直接与环境交互,它仅用于收集并更新梯度。

3.3.3 SAC

目前处理连续控制任务(比如四足机器人的关节控制)最先进、最常用的算法之一。AC架构 +离线学习 (Off-policy)+最大熵随机性。

相关推荐
爱学习的小可爱卢1 小时前
算法—Java Map 核心方法与实战场景指南
java·开发语言·算法
2301_764441331 小时前
小红书开源高性能多模态强化学习框架Relax
人工智能·开源
会编程的土豆1 小时前
【数据结构与算法】栈的应用
数据结构·c++·算法
IT_陈寒1 小时前
SpringBoot这个"自动配置"差点让我加班到凌晨
前端·人工智能·后端
菜菜的顾清寒1 小时前
力扣hot100(17) 缺失的第一个正数
算法·leetcode·职场和发展
telllong1 小时前
Cursor AI vs GitHub Copilot vs Cline:三大AI编程工具深度横评
人工智能·github·copilot
hhhhhh_we1 小时前
预颜美历:AI驱动的私人面部美学与皮肤全周期管理工具
前端·图像处理·人工智能·python·aigc
xiaotao1311 小时前
01-编程基础与数学基石:线性代数
人工智能·python·线性代数
光泽雨1 小时前
c#数值类型之间的自动转换
java·算法·c#