【强化学习纲要】学习笔记之Markov Decision Processes

【强化学习纲要】学习笔记系列


Markov Chain → Markov Reward Process(MRP)→ Markov Decision Processes(MDP)

在这里插入图片描述
MDP基本假设:环境是完全可观测的

  • MDP可以用于处理最优控制问题,根据环境确定出最佳控制策略
  • 部分可观测的问题可以转化为MDP

Markov Process

未来状态依赖于给定的历史状态

  • 历史状态: h t = { s 1 , s 2 , … , s t } h_t = \{s_1, s_2, \dots, s_t\} ht={s1,s2,,st}
  • 状态转移: p ( s t + 1 ∣ s t ) = p ( s t + 1 ∣ h t ) p(s_{t+1}|s_t) = p(s_{t+1}|h_t) p(st+1st)=p(st+1ht), p ( s t + 1 ∣ s t , a t ) = p ( s t + 1 ∣ h t , a t ) p(s_{t+1}|s_t, a_t) = p(s_{t+1}|h_t, a_t) p(st+1st,at)=p(st+1ht,at)
  • 状态转移矩阵
    在这里插入图片描述

Markov Reward(MRPs)

  • MRP = Markov Chain + reward
  • reward function R ( s t = s ) = E [ r t ∣ s t = s ] R(s_t = s) = \mathbb{E}[r_t|s_t =s] R(st=s)=E[rtst=s]
  • Discouted sum of reward: G t = R t + 1 + γ R t + 2 + ⋯ + γ T − t − 1 R T G_t = R_{t+1} + \gamma R_{t+2}+\dots + \gamma^{T-t-1} R_T Gt=Rt+1+γRt+2++γTt1RT
  • value funciton V t ( s ) = E [ G t ∣ s t = s ] = E [ R t + 1 + γ R t + 2 + ⋯ + γ T − t − 1 R T ∣ s t = s ] V_t(s) = \mathbb{E}[G_t|s_t =s] = \mathbb{E}[R_{t+1} + \gamma R_{t+2}+\dots + \gamma^{T-t-1} R_T|s_t =s] Vt(s)=E[Gtst=s]=E[Rt+1+γRt+2++γTt1RTst=s]

其中 γ \gamma γ即为折扣因子(Discout factor), 作用包括:

  • 避免循环Markov processes的无限return(迭代到一定长度, γ \gamma γ作用下数值极小)
  • 表征未来的不确定性
  • 体现出及时反馈和延迟反馈的差异性,agent普遍倾向于及时反馈(生物本性贪婪和没耐心)
  • γ = 0 \gamma=0 γ=0,只考虑及时反馈,当 γ = 1 \gamma=1 γ=1,延迟反馈的价值等同于及时反馈

MRP的value function满足Bellman equation:
V ( s ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) V(s) = R(s) + \gamma \sum_{s' \in S}P(s'|s)V(s') V(s)=R(s)+γsSP(ss)V(s)
其中右边两项分别是及时反馈和未来反馈,未来反馈是状态发生概率与对应状态的value的乘积之和
对于N个状态,可以写成局长表达式:
V = R + γ P V V=R+\gamma PV V=R+γPV
由此,当系统收敛时,即状态不再发生变化,可以得到MRP的解:
V = ( I − γ P ) − 1 R V=(I-\gamma P)^{-1}R V=(IγP)1R
方程求解是 O ( N 3 ) O(N^3) O(N3)复杂度,只适合于N较小的时候,即状态数少的问题
更常用的做法是迭代求解:

  • 动态规划(Dynamic Programming)
  • Monte-Carlo evaluation
    在这里插入图片描述
  • Iterative Algorithm(policy iteration and value iteration,Temporal-Difference learning)
    在这里插入图片描述

Markov Decision Processes(MDPs)

MDP = MRP + decision
在MRP基础上考虑policy
R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t =s, a_t =a) = \mathbb{E}[r_t|s_t=s,a_t =a] R(st=s,at=a)=E[rtst=s,at=a]

policy in MDP

  • Policy: 在特定state下所采取的action
    π ( a ∣ s ) = P ( a t = a ∣ s t = s ) \pi(a|s) = P(a_t=a|s_t =s) π(as)=P(at=ast=s)

  • Policy 是稳定的,时间独立,也就是不管时间变化,特定状态对应特定policy

  • Bellman Expectation Equation for value function
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v π ( s ′ ) ) v^\pi(s) = \sum_{a\in A}\pi(a|s)(R(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)v^\pi(s')) vπ(s)=aAπ(as)(R(s,a)+γsSP(ss,a)vπ(s))
    其中, v π ( s ) v^\pi(s) vπ(s)用于评估在给定state-action的映射之后,当前state的value,
    外层 ∑ \sum 是指所有action, R ( s , a ) R(s,a) R(s,a)是当前reward,内层 ∑ \sum 是指特定action导致的未来状态的概率和value的乘积,也就是未来reward

  • Bellman Expectation Equation for Q-function
    q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q^\pi(s,a)=R(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)\sum_{a'\in A}\pi(a'|s')q^\pi(s',a') qπ(s,a)=R(s,a)+γsSP(ss,a)aAπ(as)qπ(s,a)
    其中, Q-function的 q π ( s , a ) q^\pi(s,a) qπ(s,a)用于评估给定state采取某个action的value, R ( s , a ) R(s,a) R(s,a)是指当前reward,外层 ∑ \sum 是每个action到新状态s’的转移概率与对应reward乘积之和,内层 ∑ \sum 是未来state-action概率和action对应value的乘积之和

预测和控制

预测是输出 v π v^\pi vπ
控制是输出最佳的value function v ∗ v^* v和最佳policy v ∗ v^* v
预测和控制都可以由动态规划求解
动态规划的特性:

  • 系统可分解为最佳子结构:状态
  • 最佳子结构之间可以多次递归:状态转移

Policy evaluation in MDP

  • objective: 评估给定policy π \pi π
  • 输出:给定policy下的value function v π v^\pi vπ
  • 基于Bellman expectation进行迭代直至收敛
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v π ( s ′ ) ) v^\pi(s) = \sum_{a\in A}\pi(a|s)(R(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)v^\pi(s')) vπ(s)=aAπ(as)(R(s,a)+γsSP(ss,a)vπ(s))

Policy iteration

  • policy iteration = policy evaluation + policy improvement
    π ′ = g r e e d y ( v π ) \pi' = greedy(v^\pi) π=greedy(vπ)
    根据收敛的 v π v^\pi vπ得到当前最佳的policy
    往复迭代 policy evaluation 和 policy improvement,直到二者不发生变化
    (据理论证明,policy性能是单调提升的)
    在这里插入图片描述

Value Iteration

  • objective: 找到最佳的policy
  • solution:使用Bellman optimality equation

q k + 1 ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v k ( s ′ ) q_{k+1}(s,a)=R(s,a)+\gamma\sum_{s' \in S}P(s'|s,a)v_k(s') qk+1(s,a)=R(s,a)+γsSP(ss,a)vk(s)
v_{k+1}(s) = max_a q_{k+1}(s,a)

对于子问题,如果我们总能得到最佳state及value function,那么可以直接对value function进行迭代
v ( s ) = max ⁡ a ∈ A ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ∣ s , a ) v ( s ′ ) ) v(s) = \max_{a\in A}\left(R(s,a)+\gamma\sum_{s'\in S}P(s|s,a)v(s')\right) v(s)=aAmax(R(s,a)+γsSP(ss,a)v(s))

当值迭代完成,则只需要选择最优策略即可
π ( s ) = arg ⁡ max ⁡ a R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v k + 1 ( s ′ ) \pi(s) = \arg\max_aR(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)v_{k+1}(s') π(s)=argamaxR(s,a)+γsSP(ss,a)vk+1(s)

Policy Iteration vs Value Iteration

  • Policy iteration: 包含policy evaluation和policy improvement两个步骤往复迭代直到收敛
  • Value iteration:只需要找到最优的value function + one policy extraction
  • value iteration相当于融合了policy iteration的两个过程,每次迭代就已经要求找到最佳policy来得到当前最佳value;而policy iteration只是给定policy去确定value(非最佳),然后基于value优化policy,再去确定value

在这里插入图片描述

同步动态规划的缺点

  • 需要知道状态全集
  • 当全集特别大,则迭代次数非常大
  • 不同状态之间的更新速度不一样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值