强化学习笔记

强化学习-解决序列决策问题

马尔可夫决策 Markov decision process - MDP

背景知识信息

St :某时刻的状态,通常取决于t时刻之前的状态

历史信息为( S1, S2, ..., St),下一时刻状态为St+1的概率为P(St+1|S1, ..., St)

马尔可夫性质

当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质(Markov property)

i.e. P(St+1|St) = P(St+1|S1, ..., St)

注意: 虽然t+1时刻的状态只与t时刻的状态有关,但是t时刻的状态其实包含了t-1时刻的状态的信息。

马尔可夫过程(Markov process)

马尔可夫过程 = 马尔可夫链(Markov chain)= <S,P>

指具有马尔可夫性质的随机过程, S是有限数量的状态集合,P是状态转移矩阵。

马尔可夫奖励过程(Markov reward process)

马尔可夫奖励过程MRP = 马尔可夫过程 + 奖励函数r + 折扣因子γ = 元组<S,P,r,γ>

r(s):转移到状态s时可以获得奖励的期望

γ:取值范围为[0,1),接近1则更关注长期的累计奖励,接近 0 则更考虑短期奖励。

回报

回报Gt (return): 从第时刻状态开始,直到终止状态时,所有奖励的衰减之和。

由于对未来奖励的不确定性 ,因此γ作为折扣因子,类似于置信度 ,越是近期的γ越大,越是未来的γ越小。

Gt = Rt + γRt+1 + γ2Rt+2 + ...

价值函数

一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值

V(s) = EG~t~\|S~t~ = s

其中,ER~t~\|S = s = r(s)

EγV(S~t+1~)\| S~t~ = s 考虑转移概率 来转化

得到:贝尔曼方程 Bellman equatio

矩阵形式,即

对于大规模计算,可使用蒙特卡洛方法,动态规划等以解决。

马尔可夫决策过程(Markov decision process)

MDP = MRP + Action = <S,A,P,r,γ>

策略

策略(policy) = π

π(a|s) = P(At = a | St = s) = 在状态s的情况下采取动作a的概率

MDP中的状态价值函数

基于策略π的状态价值函数,即从状态s出发遵循策略π能获得的期望回报

动作价值函数

由于动作action的存在,因此定义动作价值函数, MDP 遵循策略π时,对当前状态s执行动作a得到的期望回报Qπ(s,a)

Vπ(s)和Qπ(s,a)之间的关系:

(1) 在使用策略π下,状态的价值 等于在该状态下基于策略采取所有动作 的概率与相应的价值相乘再求和的结果:

这是对当前状态价值的拆解

(2) 在使用策略π下,状态s下采取动作a的价值 = 即时奖励 + 经过衰减后(γ)的所有可能的下一个状态的状态的价值 (转移概率与相应的价值的乘积):

当前reward+未来reward的预期

贝尔曼方程/贝尔曼期望方程


最优策略

当且仅当对于任意的状态s都有Vπ(s) ≥ \geq ≥ Vπ'(s),记π > π',则π被称为最优策略,可能有多个,都表示为π*(s)。

最优状态价值函数

最优策略都有相同 的状态价值函数

最优动作价值函数

为了maximize reward,在每一步需要maximize Q(s,a),因此寻找最优Q(s,a)

如何找到最优价值?-

动态规划法/时序差分法 (目前)

动态规划

基于动态规划的强化学习算法主要有两种:

  1. 策略迭代(policy iteration)= 策略评估 + 策略提升
  2. 价值迭代(value iteration)

动态规划思想:将当前问题分解为子问题,解决子问题则可解决当前问题。

因此,在已知状态转移函数 及奖励函数的条件下,把计算下一个可能状态的价值当成一个子问题,把计算当前状态的价值看作当前问题,的值子问题解即可求解当前问题。

基于动态规划的思想,根据Bellman optimality方程,maximize

策略评估

若当前策略 和更新后策略的状态价值差很小,则策略收敛,结束策略评估。

策略提升

Qπ(s,π'(s)) ≥ \geq ≥ Vπ(s),即策略π下执行动作π'(s)未来预期的价值 ≥ \geq ≥当前状态未来预期的价值:

Vπ'(s) ≥ \geq ≥ Vπ(s)

我们可以直接贪心地在每一个状态选择动作价值最大的动作,也就是

策略迭代算法 Policy Iteration

策略迭代交替进行"策略评估"和"策略提升",两者交替进行直至收敛:

step 1 固定当前策略π,评估当前策略的价值函数Vπ(s)

step 2 根据状态价值函数,利用贪心找更优价值函数进行策略提升

step 1&2 循环,直至π' = π (收敛)

价值迭代函数 Value Iteration

每次迭代都更新价值函数,最后通过该价值函数直接提取出最优策略:

step 1 根据贝尔曼最优方程找每个状态下的最优价值(执行不同动作确定最大价值)

step 2 价值函数更新后,提取当前状态下最优的策略

直至价值函数收敛

相关推荐
Rabitebla9 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
小lu飞10 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
无心水13 小时前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
蒸蒸yyyyzwd14 小时前
邓明 Agent 系统面试-意图识别学习笔记
笔记·学习
Zhao-Jichao17 小时前
AI Prompting for Everyone 课程笔记 - P21 总结 Conclusion
人工智能·笔记
欢欢李17 小时前
【LTE L3 笔记 05】LTE同步信号
笔记·无线通信·物理层·lte·空口协议
La Pulga19 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd19 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白20 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
欢欢李20 小时前
【LTE L3 笔记 04】LTE帧结构
笔记·无线通信·物理层·lte·空口协议