强化学习笔记

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

马尔可夫决策 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) = E[Gt|St = s]

其中,E[Rt|S = s] = r(s)

E[γV(St+1)| St = 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 价值函数更新后,提取当前状态下最优的策略

直至价值函数收敛

相关推荐
烧冻鸡翅QAQ20 分钟前
考研408笔记
笔记·考研
StarPrayers.22 分钟前
卷积层(Convolutional Layer)学习笔记
人工智能·笔记·深度学习·学习·机器学习
能不能别报错1 小时前
K8s学习笔记(十五) pause容器与init容器
笔记·学习·kubernetes
无言以对,沉默不语,随你随你。1 小时前
【解决办法】GitBash不能在任意文件夹打开
经验分享·笔记·git
牛马大师兄2 小时前
STM32独立看门狗IWDG与窗口看门狗WWDG知识梳理笔记
笔记·stm32·单片机·嵌入式硬件·嵌入式·看门狗
wan5555cn2 小时前
Windows 11系统鼠标键盘被禁用问题的全面解决方案
windows·笔记·深度学习·计算机外设
zhangrelay3 小时前
ROS云课三分钟-使用动态参数重配置调试Teb导航案例-251008
笔记·学习
BingeBlog3 小时前
[01] Qt的UI框架选择和对比
开发语言·c++·笔记·qt·ui·开源软件
生物小卡拉3 小时前
R脚本——Deseq2差异表达分析--v1.0
windows·经验分享·笔记·学习·信息可视化·数据分析
初九之潜龙勿用5 小时前
技术与情感交织的一生 (十四)
笔记·印象笔记