1.2 马尔可夫决策过程(Markov Decision Process, MDP)

news/2025/10/7 20:22:53/文章来源:https://www.cnblogs.com/zzzxx/p/19128840

定义

强化学习(Reinforcement Learning, RL)方法适用于智能体(agent)以离散时间步与环境交互的问题(@fig-agentenv)。
在时间 \(t\),智能体处于状态 \(s_t\),并决定执行一个动作 \(a_t\)。在下一时刻,它进入新的状态 \(s_{t+1}\),并获得奖励 \(r_{t+1}\)
在一般情况下,状态转移和奖励都是随机的(即执行相同动作后到达不同状态的概率不同)。
智能体的目标是在长期内最大化获得的累计奖励。

rl-agent

这些问题被形式化为马尔可夫决策过程(MDP),定义为六元组:

\[<\mathcal{S}, \mathcal{A}, p_0, \mathcal{P}, \mathcal{R}, \gamma> \]

对于一个有限MDP,有:

  1. 状态空间 \(\mathcal{S} = \{ s_i\}_{i=1}^N\),每个状态满足马尔可夫性质。

  2. 动作空间 \(\mathcal{A} = \{ a_i\}_{i=1}^M\)

  3. 初始状态分布 \(p_0(s_0)\),表示智能体最有可能从哪些状态开始。

  4. 状态转移概率函数

    \[\begin{aligned}\mathcal{P}: \mathcal{S} \times \mathcal{A} \rightarrow & P(\mathcal{S}) \\p(s' | s, a) & = P (s_{t+1} = s' | s_t = s, a_t = a) \end{aligned} \]

  5. 期望奖励函数

    \[\begin{aligned}\mathcal{R}: \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow & \Re \\r(s, a, s') &= \mathbb{E} (r_{t+1} | s_t = s, a_t = a, s_{t+1} = s') \end{aligned} \]

  6. 折扣因子 \(\gamma \in [0, 1]\)

在深度强化学习(Deep RL)中,状态空间与动作空间可以是无限的,但我们先讨论有限MDP。

智能体的行为序列称为轨迹(trajectory)回合(episode)

\[\tau = (s_0, a_0, s_1, a_1, \ldots, s_T, a_T) \]

每个转移 \((s_t, a_t, s_{t+1})\) 以概率 \(p(s'|s,a)\) 发生,并产生奖励 \(r(s,a,s')\)
回合型任务中,时间跨度 \(T\) 有限;在持续型任务中,\(T\) 无限。


马尔可夫性质(Markov Property)

智能体的状态应包含做出决策所需的全部信息。
例如,一个机器人导航任务中,状态可能包括所有传感器读数、位置、与其他物体的相对位置等。
在棋类游戏中,棋盘的布局通常足以表示状态。

马尔可夫性质:未来与过去无关,只依赖当前状态。

形式化定义:

\[ p(s_{t+1}|s_t, a_t) = p(s_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, \dots s_0, a_0) \]

也就是说,只要当前状态定义完整,就不需要整个历史记录。
若问题不满足马尔可夫性质(例如观测部分缺失),RL算法可能不收敛。

这类问题称为部分可观测马尔可夫决策过程(POMDP)
观测 \(o_t\) 来自观测空间 \(\mathcal{O}\),且满足 \(p(o_t | s_t)\)
由于观测不是马尔可夫的,解决POMDP通常需要完整的观测历史 \(h_t = (o_0, a_0, ..., o_t, a_t)\)
这时循环神经网络(RNN)可用于帮助记忆历史。


奖励与回报(Rewards and Returns)

与bandit问题类似,我们关注期望奖励

\[r(s, a, s') = \mathbb{E} (r_{t+1} | s_t = s, a_t = a, s_{t+1} = s') \]

bandit-example

奖励可分为:

  • 稀疏奖励(Sparse rewards):仅在关键事件(如胜利、失败、到达目标)时非零;
  • 密集奖励(Dense rewards):每个时间步都提供奖励(如速度、距离、能耗等)。

稀疏奖励更难学习。

sparse-dense

MDP经历状态序列:

\[s_0 \rightarrow s_1 \rightarrow \ldots \rightarrow s_T \]

并获得奖励序列:

\[r_1 \rightarrow r_2 \rightarrow \ldots \rightarrow r_T \]

rl-sequence

在MDP中,我们希望最大化回报(return)

\[R_t = \sum_{k=0}^\infty \gamma^k \, r_{t+k+1} \]

其中 \(\gamma\)折扣因子(discount factor),表示未来奖励的现值。
\(\gamma\) 越小,智能体越短视;\(\gamma\) 越大,越远见。

decayinggamma

  • 对于回合型任务

    \[R_t = \sum_{k=0}^{T} r_{t+k+1} \]

  • 对于持续型任务

    \[R_t = \sum_{k=0}^{\infty} \gamma^k \, r_{t+k+1} \]


为什么要看长期奖励?

某状态 \(s_1\) 下两个动作:

  • \(a_1\):暂时无奖励,但未来可获 \(10\)
  • \(a_2\):立即获得 \(1\)

\(\gamma\) 大,\(a_1\) 更优;若 \(\gamma\) 小,\(a_2\) 更优。
因此,\(\gamma\) 决定了智能体的行为倾向。


策略(Policy)

智能体在状态 \(s\) 下选择动作 \(a\) 的概率称为策略 \(\pi\)

\[\pi(s, a) = P(a_t = a | s_t = s) \]

策略可以是确定性随机性的,且满足:

\[\sum_{a \in \mathcal{A}(s)} \pi(s, a) = 1 \]

目标是找到最优策略 \(\pi^*\),最大化长期期望回报:

\[\pi^* = \text{argmax}_\pi \, \mathbb{E}_{\tau \sim \rho_\pi} [R(\tau)] \]


价值函数(Value Functions)

强化学习的核心思想之一是:
评估每个状态或动作的好坏程度。

状态价值函数

\[V^{\pi}(s) = \mathbb{E}_{\rho_\pi} \left[ \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \mid s_t=s \right] \]

动作价值函数(Q函数)

\[Q^{\pi}(s, a) = \mathbb{E}_{\rho_\pi} \left[ \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \mid s_t=s, a_t=a \right] \]

\(Q\) 值反映在状态 \(s\) 下执行动作 \(a\) 的期望回报。


贝尔曼方程(Bellman Equations)

\(V\)\(Q\) 的关系

\[V^{\pi}(s) = \sum_{a} \pi(s, a) Q^{\pi}(s, a) \]

即:若策略确定,则 \(V\) 等于该动作的 \(Q\) 值;若随机,则是加权平均。

并且有递推关系:

\[R_t = r_{t+1} + \gamma R_{t+1} \]

取期望得:

\[Q^{\pi}(s, a) = \mathbb{E}_{s'}[r(s,a,s') + \gamma V^{\pi}(s')] \]


贝尔曼方程形式

\[V^{\pi}(s) = \sum_{a} \pi(s,a) \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma V^{\pi}(s')] \]

\[Q^{\pi}(s,a) = \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma \sum_{a'} \pi(s',a') Q^{\pi}(s',a')] \]

这些递归方程是强化学习的理论基础。


最优贝尔曼方程(Optimal Bellman Equations)

存在最优策略 \(\pi^*\),定义最优状态值与动作值:

\[V^*(s) = \max_\pi V^{\pi}(s), \quad Q^*(s,a) = \max_\pi Q^{\pi}(s,a) \]

此时:

\[V^*(s) = \max_{a} \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma V^*(s')] \]

\[Q^*(s,a) = \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma \max_{a'} Q^*(s',a')] \]


动态规划(Dynamic Programming, DP)

gpi-scheme

强化学习通常分为两步循环:

  1. 策略评估(Policy Evaluation):计算给定策略的 \(V^\pi\)\(Q^\pi\)
  2. 策略改进(Policy Improvement):基于价值函数更新策略。

这种循环称为广义策略迭代(GPI)
动态规划(DP)是其一种精确实现方式。

矩阵形式解法

设:

\[\mathcal{P}^\pi_{ss'} = \sum_a \pi(s,a)p(s'|s,a), \quad \mathcal{R}^\pi_s = \sum_a \pi(s,a) \sum_{s'} p(s'|s,a)r(s,a,s') \]

则贝尔曼方程写为:

\[\mathbf{V}^\pi = \mathbf{R}^\pi + \gamma \mathcal{P}^\pi \mathbf{V}^\pi \]

解为:

\[\mathbf{V}^\pi = (\mathbb{I} - \gamma \mathcal{P}^\pi)^{-1} \mathbf{R}^\pi \]

但矩阵求逆复杂度高(\(\mathcal{O}(n^{2.37})\)),因此用迭代法近似。


策略迭代(Policy Iteration)

反复执行:

  1. 策略评估(使用贝尔曼方程更新 \(V\));
  2. 策略改进(基于 \(V\) 选择贪婪动作):

\[\pi(s) \leftarrow \text{argmax}_a \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma V(s')] \]

收敛后得到最优策略。


价值迭代(Value Iteration)

为加速收敛,将策略评估与改进交替进行:

\[V_{k+1}(s) = \max_a \sum_{s'} p(s'|s,a)[r(s,a,s') + \gamma V_k(s')] \]

即直接将贝尔曼最优方程转化为更新规则。
\(V\) 收敛时,即得最优值函数 \(V^*\)


总结

策略迭代与价值迭代均基于贝尔曼方程广义策略迭代(GPI)
求解最优策略需:

  • 了解环境动态 \(p(s'|s,a)\)\(r(s,a,s')\)
  • 足够的计算资源;
  • 满足马尔可夫性质。

时间复杂度约为 \(\mathcal{O}(N^2 M)\)
由于状态空间通常极大(如围棋约有 \(10^{170}\) 种状态),经典动态规划仅适用于小规模问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博弈论dp复习笔记

Stones 题目概述 集合 \(A\),小 \(X\) 和小 \(Y\) 选择其中一个数 \(x\),然后将石堆拿走 \(x\) 个,谁不能操作谁输,一开始石堆石头数量为 \(k\). 数据范围:\(1\leq k\leq 10^5,1\leq n\leq 100,1\leq a_i\leq 10^…

10.7阅读笔记

正当我对着空白的IDE发愁“该如何开始”时,这本书的《曳光弹开发》这一章给了我明确的方向。 ​​1. 曳光弹 vs. 原型—— 两种启动策略​​ 这是我第一次接触这两个概念,它们解决的是不同的问题。 ​​原型:用于探…

如果你的微信支付界面出现“摇一摇”,说明你的隐私正在泄露

你刚付完款,手机自己跳出摇一摇,红包没抢着,位置先被商家锁定。这不是错觉。<ignore_js_op>微信去年悄悄上线附近优惠,四月起推得更猛。很多人第一次见,以为中毒,其实是后台把付款记录和基站信号打包,算出…

多线程和网络总结

近期Python网络编程与多线程/多进程学习复盘 一、核心知识收获 1. 多线程与多进程编程多线程应用:实现图片下载(DownloadHanlder类继承Thread,重写run方法处理下载逻辑),利用线程并行处理网络IO任务,提高下载效率…

8.RV1126-OPENCV 视频中添加LOGO - 指南

8.RV1126-OPENCV 视频中添加LOGO - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

学习记录:响应式系统、文件通知与游戏输入机制的异同

引言 在学习前端开发和系统编程的过程中,我们常常会遇到“自动响应变化”的现象:Vue/React 中数据更新后 UI 自动刷新 删除文件后文件管理器图标立即消失 游戏中按下按键角色立刻移动这些现象看似都体现了“响应式”…

虎丘做网站价格个人网页设计作业总结

目录 写在开头1.了解情感分析的概念及其在实际应用中的重要性1.1 情感分析的核心概念1.1.1 情感极性1.1.2 词汇和上下文1.1.3 情感强度1.2 实际应用中的重要性 2. 使用情感分析库进行简单的情感分析2.1 TextBlob库的基本使用和优势2.1.1 安装TextBlob库2.1.2 文本情感分析示例2…

oppoR9m刷Linux系统: 制作 scatter.txt 和 导出手机preloader

前言全局说明COM、VCOM、9008模式备份系统与基带IMEI/NVRAM/QCN 前面两篇文章,用不同方式备份,这次用 MTK 自带的 COM、VCOM 方式备份。注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机…

做百科专用参考链接的网站仿站多少钱

前段时间,业务的虚机上安装了symantec Endpoint Protection(正版)&#xff0c; 发现虚机运行一段时间就会失去响应死机&#xff0c;并且有些安装symantec的虚机3389端口无法使用&#xff0c;怎么折腾都不行。最后决定卸载它。一、是否可以用停止服务和终止进程再卸载的方式卸载…

详细介绍:ASR技术(自动语音识别)深度解析

详细介绍:ASR技术(自动语音识别)深度解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

1.1 采样问题 Sampling and Bandits

n臂bandits(n-armed bandits) n臂bandits(multi-armed bandit)是最简单的试错式学习形式。学习与动作选择都发生在同一个状态中,在该状态下有 \(n\) 个可用动作,每个动作对应不同的奖励分布。目标是通过试错的方…

升级下载:进阶版(二级单工序)

升级下载:进阶版(二级单工序)Posted on 2025-10-07 20:09 EXLman 阅读(0) 评论(0) 收藏 举报. 当前款式:进阶版(二级单工序) . 文件名称:PXCtwobom.dll . 升级方法:下载解压后,直接替换该文件 .

绵阳 网站建设百度官网网址

最近接触一个新的传统项目&#xff0c;在联调过程中&#xff0c;查看日志特别不方便&#xff0c;既无trackId&#xff0c;即无接口耗时&#xff0c;所以写了该博客。话不多说&#xff0c;直接上代码 1、实体类user package com.yk.domain;import lombok.Data;Data public cla…

UCB-CS70_离散数学_个人笔记:至少和至多 - Zeeh

有趣的命题 在note1中,提出了两个关于“至少”和“至多”的命题:There are at least three distinct integers x that satisfy P(x). 有 最多 三个不同的整数x这满足p(x)。对于这两个命题,可以分别用下面两个式子…

太原网站制作开发域名怎么实名认证

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 找镜像&#xff1a; docker search nexus2. 拉取镜像&#xff1a;&#xff08;我已经拉取过&#xff0c;不选择版本时&#xff0c;默认…

模板做的网站 怎么提升排名商标设计公司推荐

冒泡排序 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素做同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。针对所有的元素重复以上的步骤&#xff0c;除了最后一个。持续每次对越…

10.7 NOIP 模拟赛 T2. 中心极限定理

思路 发现吃马不好维护, 考虑直接状态压缩马的存活情况, 可以做到 \(\mathcal{O} (n^2 2^m)\) 考虑进一步处理, 发现由于你的棋子不能回头, 吃掉一个马后, 最多走三步就跳出了马的范围, 所以我们可以直接把前两步的路线…

【题解】10.6 国庆中秋 提高组 热身赛

1.栅栏密码 题目传送门题目大意: 给定高度 h 和一行使用栅栏密码加密的密文字符串 s,请你输出一行明文字符串 plain。 即把明文排列成若干个 \/\/\/ 的形状,然后再逐行按从左到右的顺序取出字符,形成密文。STEP 1.…

深圳手机网站建设牛商网购物网站的排版

简介&#xff1a; 先说下什么是人脸识别系统&#xff1a;举个例子&#xff0c;公司门口有个人脸识别系统&#xff0c;员工站到门口&#xff0c;看着摄像头&#xff0c;大屏幕上会抓拍到你的人脸&#xff0c;然后和公司的员工照片库里的照片比对&#xff0c;比对成功就提示&…

深入解析:pikachu通关教程-File Inclusion

深入解析:pikachu通关教程-File Inclusion2025-10-07 20:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…