🌞欢迎来到图解强化学习的世界
🌈博客主页:卿云阁
💌欢迎关注🎉点赞👍收藏⭐️留言📝
📆首发时间:🌹2026年3月27日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
马尔可夫观测过程(看)
马尔可夫性
状态空间(S)
状态转移矩阵(P)
马尔可夫决策过程(MDP)(做)
动作空间
策略
马尔可夫奖励过程(MRP)(想)
奖励函数
回报 Return
价值函数
状态价值函数 V(s)
动作价值函数 Q(s,a)
为什么需要贝尔曼方程?
贝尔曼方程
状态价值函数
矩阵形式的贝尔曼方程
策略价值函数
动作价值函数
强化学习的分类
按是否学习环境模型分类
有模型 Model-based
无模型 Model-free
按主要学习的函数分类
基于价值 Value-based
基于策略 Policy-based
两者兼顾 Actor-Critic
按学习数据与当前策略的关系分类
同策略 On-policy
异策略 Off-policy
马尔可夫观测过程(看)
智能体未来状态的条件概率分布 仅依赖于当前状态
马尔可夫性,状态空间,状态转移矩阵
本小节介绍的马尔可夫观测过程(看)实际上就是马尔可夫过程(Markov Process)
马尔可夫性
智能体未来状态的条件概率分布,仅依赖于当前状态
比如:这些下一步会发生什么,只取决于他现在正在上第二节课这个状态,而不取决于他是怎么来
到第二节课的。 只要他现在都处于 C2,那么从 C2 出发的下一步转移概率就是一样的。
P(C3 | C2) = 0.8 P(FB | C2) = 0.280% 的概率去上第三节课
20% 的概率去刷朋友圈
状态空间(S)
状态空间是智能体可能处于的所有状态的集合。
状态空间可以分为两类:
离散状态空间:状态是有限或可数的,例如迷宫格子、课程阶段。
连续状态空间:状态是连续取值的,例如机器人位置坐标、速度、温度。
以学生的一天为例
状态 State(S)
C1:上第一节课C2:上第二节课C3:上第三节课Pass:通过考试Pub:去酒吧
FB:刷 Facebook / 刷朋友圈Sleep:睡觉(终止态)
状态转移矩阵(P)
智能体从一个状态到另外一个状态构成的矩阵。
P这是状态转移矩阵,把所有状态之间的转移概率都打包成一张表。比如第1行就是从状态
s1出发,到所有其他状态的概率。
学生一天的状态变化过程,可以看作马尔可夫过程产生的一条轨迹(trajectory),也称为一条样
本路径(sample path)。若从强化学习视角看,从初始状态到终止状态(Sleep)的完整过程,
又可以称为一个episode(回合)。
马尔可夫决策过程(MDP)(做)
有动作影响环境,动作空间,策略
动作空间
智能体在每个状态下可以选择的动作
例如:Study(学习) Facebook(刷朋友圈) Pub(去酒吧) Sleep(睡觉)
Quit(放弃/退出)
策略
在状态 s 下选择动作 a 的概率分布。
在策略 下,从 s到 s' 的总概率.在当前状态下选择某个动作的概率
马尔可夫奖励过程(MRP)(想)
奖励函数(状态奖励函数,动作奖励函数),回报,价值函数(状态价值函数,动作价值函数)
奖励函数
状态奖励函数
状态奖励函数只由当前状态决定:R(S)只要智能体进入状态 s,就获得对应奖励。
R(C1) = -2 R(C2) = -2 R(C3) = -2 R(Pass) = +10 R(Pub) = +1 R(FB) = -1 R(Sleep) = 0动作奖励函数
由当前状态 s 和动作 a 共同决定的奖励信号,通常表示为R(s,a)。
在状态 s 下选择动作 a,会获得一个奖励。
R(C2, study) = -1 R(C2, browse) = -2 R(C2, skip) = -3选择状态奖励函数,还是动作奖励函数取决于任务性质和特点。
回报 Return
回报 Return =从某个时间点开始,沿着后续轨迹获得的累计奖励。如果是完整回合,从初始状态
开始算,那回报就是:这一整个回合的总奖励。
从当前状态出发的每个回合都有对应的回报
价值函数
在理解价值函数之前,先明确几个概念。
期望 Expectation
期望可以理解为“加权平均”。如果一个随机事件有多种可能结果,每种结果都有对应的发生概率,
那么期望就是:
期望 = 每种结果 × 对应概率,然后全部加起来60% 的概率得到 10 分 40% 的概率得到 1 分 0.6 × 10 + 0.4 × 1 = 6.4回合 Episode
回合指的是:智能体从初始状态开始,与环境进行一系列交互,直到终止状态为止的完整过程。
在学生例子中,一个回合可以是:
C1 → C2 → C3 → Pass → Sleep状态价值函数 V(s)
从当前状态 s 开始,一直走到任务结束,未来能够获得的回报的期望值。
V(s) = E[G_t | S_t = s]
G_t:从当前时刻 t 开始的回报
E:求期望,也就是对所有可能轨迹做加权平均
用学生例子来说,计算 C1 状态下的价值,实际上就是在问:
如果一个学生现在处于 C1:第一节课, 按照图中的概率一直走下去, 他这一轮学习过程平均能获得多少分?这里不是问某一条路线能得多少分,而是问:从 C1 出发,所有可能路线的回报平均是多少?
例如从 C1 出发,可能有很多条轨迹,每条轨迹都有自己的回报,也有自己的发生概率。
轨迹1:C1 → C2 → C3 → Pass → Sleep 轨迹2:C1 → C2 → C3 → Pub → Sleep 轨迹3:C1 → FB → Pub → Sleep 轨迹4:C1 → FB → Sleep ...所以 C1 的价值就是:V(C1) = 所有可能轨迹的回报 × 该轨迹发生的概率,然后全部加起来
也可以说:C1 的价值 = 未来所有可能收益的折现加权平均值
轨迹概率怎么得到
以轨迹1为例:
C1 → C2 → C3 → Pass → Sleep P(C2 | C1) = 0.5 P(C3 | C2) = 0.8 P(Pass | C3) = 0.6 P(Sleep | Pass) = 1.0 P(轨迹1) = P(C2 | C1) × P(C3 | C2) × P(Pass | C3) × P(Sleep | Pass) = 0.5 × 0.8 × 0.6 × 1.0 = 0.24动作价值函数 Q(s,a)
在状态 s 下,如果先选择动作 a,然后再继续走下去,未来平均能获得多少回报?
Q(s,a) = E[G_t | S_t = s, A_t = a]
Q(s,a):评价在某个状态下选择某个动作好不好
Q 函数可以直接用来指导智能体选动作: 在状态 s 下,选择 Q(s,a) 最大的动作。
为什么需要贝尔曼方程?
理论上,我们可以通过枚举所有可能轨迹来计算价值:
V(C1) = 轨迹1概率 × 轨迹1回报 + 轨迹2概率 × 轨迹2回报 + 轨迹3概率 × 轨迹3回报 + ...但现实中,轨迹可能非常多,甚至无限多。手动列出一万条轨迹再加权平均是不现实的。
所以我们用贝尔曼方程直接递归求解价值。
V(s) = R(s) + γ Σ P(s' | s) V(s')
当前状态的价值= 当前状态的即时奖励+ 折扣因子 × 下一状态价值的加权平均
以 C3 为例,假设:
R(C3) = -2 P(Pass | C3) = 0.6 P(Pub | C3) = 0.4 γ = 1V(C3) = R(C3) + P(Pass | C3)V(Pass) + P(Pub | C3)V(Pub) = -2 + 0.6V(Pass) + 0.4V(Pub)C3 的价值 = C3 本身的奖励 + 从 C3 可能到达的所有下一状态价值的加权平均贝尔曼方程
状态价值函数
“一个状态的价值,等于你现在能拿到的奖励,加上你下一步所在状态价值的折现。”
矩阵形式的贝尔曼方程
求解贝尔曼方程
贝尔曼方程是线性方程 ,可以直接求解:
这种方法只适合“小世界”。如果你的迷宫有几百万个格子,算这个矩阵逆的开销会大到让电脑爆
炸。
对于大规模的 MRPs 问题, 可以使用迭代或基于数据的方法,
例如
(1)动态规划
(2)蒙特卡洛估计
(3)时间差分学习
策略价值函数
状态 s的状态价值,等于我所有可能采取的动作(a)及其对应动作价值(Q)的加权平均数。
动作价值函数
一个动作的价值 = 现在的即时反馈 + 未来所有可能状态的平均价值
强化学习的分类
强化学习主要研究的就是3类函数,状态转移函数,策略函数,价值函数。
状态转移函数:环境会怎么变化
策略函数:智能体会怎么选动作
价值函数:状态或动作到底有多好
按是否学习环境模型分类
有模型 Model-based
有模型强化学习会尝试学习或使用一个环境模型。
这个模型可以预测:在状态 s 下采取动作 a,下一步可能到达哪个状态 s'会获得多少奖励 r。智能
体不只是直接在真实环境中试错,还额外拥有一个“虚拟环境”。它可以在脑子里提前模拟未来,然
后选择更好的动作。
World Models MuZero 基于模型预测控制的方法无模型 Model-free
无模型强化学习不显式学习环境转移模型。它不去建模:P(s' | s, a) 而是直接通过和环境交互获得
经验:我做了动作 a 环境给了我奖励 r 我进入了新状态 s' 然后根据这些反馈改进策略或价值函
数。可以理解为:机器人不知道世界规则,只能一步一步试,根据真实反馈慢慢学。
Q-learning Sarsa DQN Policy Gradient PPO按主要学习的函数分类
基于价值 Value-based
基于价值的方法主要学习价值函数,例如:
V(s) Q(s,a)它会显式计算“某个状态或动作有多好”。
比如 Q-learning 会学习:Q(s,a)
策略本身通常是隐式的。也就是说,算法没有直接输出一个完整策略,而是根据 Q 值选动作:选
择 Q(s,a) 最大的动作a = argmax Q(s,a)
Q-learning DQN动作空间离散、动作数量有限
基于策略 Policy-based
基于策略的方法直接学习策略函数: π(a | s) 在状态 s 下,选择动作 a 的概率是多少 它不一定先
计算每个动作的 Q 值,而是直接输出动作概率。
Policy Gradient REINFORCE连续动作空间
两者兼顾 Actor-Critic
Actor-Critic 同时学习策略函数和价值函数。
Actor:演员,负责选择动作,也就是学习策略 π(a | s)
Critic:评论家,负责评价动作好不好,也就是学习价值函数 V(s) 或 Q(s,a)
A2C A3C DDPG PPO SAC按学习数据与当前策略的关系分类
同策略 On-policy
同策略学习指的是:
用当前策略采集的数据,来改进当前策略。也就是说,我现在怎么行动,就用我现在行动产生的经验来学习。
Sarsa Policy Gradient PPO 通常也属于 On-policy 风格异策略 Off-policy
异策略学习指的是:
学习用的数据,不一定来自当前要优化的策略。它可以使用过去的数据、别的策略产生的数据,甚至随机探索产生的数据。
代表算法:
Q-learning DQN DDPG SAC