强化学习笔记

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

马尔可夫决策 Markov decision process - MDP

背景知识信息

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

历史信息为( S~1~, S~2~, ..., S~t~),下一时刻状态为S~t+1~的概率为P(S~t+1~|S~1~, ..., S~t~)

马尔可夫性质

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

i.e. P(S~t+1~|S~t~) = P(S~t+1~|S~1~, ..., S~t~)

注意: 虽然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 则更考虑短期奖励。

回报

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

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

G~t~ = R~t~ + γR~t+1~ + γ^2^R~t+2~ + ...

价值函数

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

V(s) = E[G~t~|S~t~ = s]

其中,E[R~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(A~t~ = a | S~t~ = 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 价值函数更新后,提取当前状态下最优的策略

直至价值函数收敛

相关推荐
TT哇9 小时前
【Java】数组的定义与使用
java·开发语言·笔记
黑叶白树10 小时前
包和模块(上) python复习笔记
开发语言·笔记·python
L_Z_J_I10 小时前
超子物联网HAL库笔记:多指针定位+循环收发缓冲区方案设计
笔记
我是水怪的哥10 小时前
一些有用的科研数据网站
经验分享·笔记
zhilanguifang11 小时前
ERC论文阅读(02)--SAC;-LSTM论文阅读笔记
论文阅读·笔记·lstm
尘佑不尘14 小时前
shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
数据库·笔记·mongodb·web安全·jenkins·1024程序员节
Iqnus_12315 小时前
vue下载安装
前端·vue.js·笔记
CLCNboss15 小时前
Mac安装Ruby
开发语言·经验分享·笔记·macos·ruby
呵呵哒( ̄▽ ̄)"18 小时前
尚硅谷-react教程-求和案例-优化3-整合UI组件和容器组件-总结优化-笔记
前端·笔记·react.js
l1x1n018 小时前
【IT基础中英笔记】符号系统与数据类型 | CompTIA ITF+
笔记·学习