在强化学习中,agent和环境之间进行一系列交互:在每个时刻 t t,根据环境的状态和奖励,agent采取某一行为;这个行为会作用到环境中,环境改变状态并对agent进行奖励。

agent的目标是最大化累积奖励。

1 MDP

马尔可夫决策过程(Markov Decision Process, MDP)是对环境的建模。

MDP是一个五元组<S,A,P,R,γ>,其中
- S \cal S是一个有限状态集
- A \cal A是一个有限动作集
- P \cal P是一个状态转移概率矩阵, Pass′=P[St+1=s′|St=s,At=a] {\cal P}_{ss'}^a = \mathbb P[S_{t+1}=s' | S_t = s, A_t = a]
- R \cal R是一个奖励函数, Ras=E[Rt+1|St=s,At=a] {\cal R}_s^a = \mathbb E[R_{t+1} | S_t = s, A_t = a]
- γ \gamma是一个折扣因子 γ∈[0,1] \gamma\in [0, 1].

策略 π \pi是agent的行为函数:

π(a|s)=P[At=a|St=s]

\pi(a|s) = \mathbb P[A_t = a | S_t = s]

注意,策略只和状态相关,和时间无关(静态的)。

2 值函数与Bellman期望方程

2.1 值函数

值函数是对未来奖励的一个预测。

回报(return)
回报 Gt G_t是从时刻 t t开始的总折扣奖励:

Gt=Rt+1+γRt+2+⋯=∑k=1∞γkRt+k+1

G_t = R_{t+1} + \gamma R_{t+2} + \cdots = \sum_{k=1}^{\infty} \gamma^k R_{t+k+1}

状态值函数
状态值函数 vπ(s) v_\pi(s)是从状态 s s出发,按照策略π\pi采取行为得到的期望回报:

vπ(s)=Eπ[Gt|St=s]

v_\pi(s) = \mathbb E_\pi[G_t | S_t = s]

状态值函数可以用来评价状态的好坏。

根据定义可以得到:

vπ(s)=Eπ[Rt+1+γGt+1|St=s]=Eπ[Rt+1+γvπ(St+1)|St=s]

\begin{align} v_\pi(s) &= \mathbb E_\pi[R_{t+1}+\gamma G_{t+1} |S_t = s] \nonumber \\\\ & = \mathbb E_\pi[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t = s] \nonumber \\\\ \end{align}

行为值函数
行为值函数 qπ(s,a) q_\pi(s, a)是从状态 s s出发,采取行为aa后,然后按照策略 π \pi采取行为得到的期望回报:

qπ(s,a)=Eπ[Gt|St=s,At=a]

q_\pi(s, a) = \mathbb E_\pi[G_t | S_t = s, A_t = a]

根据定义可以得到:

qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)|St=s,At=a]

\begin{align} q_\pi(s, a) &= \mathbb E[R_{t+1} +\gamma q_\pi(S_{t+1}, A_{t+1}) | S_t = s, A_t = a] \nonumber \\\\ \end{align}

2.2 Bellman期望方程

Bellman期望方程其实就是 vπ(s) v_\pi(s)和 qπ(s,a) q_\pi(s, a)自身以及相互之间的递推关系。

vπ(s) v_\pi(s)与 qπ(s,a) q_\pi(s, a)之间的关系

vπ(s)=∑a∈Aπ(a|s)qπ(s,a)(1)

v_\pi(s) = \sum_{a\in {\cal A}} \pi(a|s)q_{\pi}(s, a) \tag{1}

qπ(s,a)=Ras+γ∑s′∈SPass′vπ(s′)(2)

q_\pi(s,a) = {\cal R}_s^a + \gamma \sum_{s' \in {\cal S}} {\cal P}_{ss'}^a v_\pi(s') \tag{2}

vπ(s) v_\pi(s)自身的递推关系

把公式(2)代入(1)中得到:

vπ(s)=∑aπ(a|s)⎡⎣Ras+γ∑s′Pass′vπ(s′)⎤⎦(3)

\begin{align} v_\pi(s) & = \sum_{a} \pi(a|s) \left[ {\cal R}_s^a + \gamma \sum_{s'} {\cal P}_{ss'}^a v_\pi(s') \right] \nonumber \end{align} \tag{3}

qπ(s,a) q_\pi(s, a)自身的递推关系

把公式(1)代入(2)中得到:

qπ(s,a)=Ras+γ∑s′Pass′∑a′π(a′|s′)qπ(s′,a′)(4)

\begin{align} q_\pi(s, a) & = {\cal R}_s^a + \gamma \sum_{s'}{\cal P}_{ss'}^a \sum_{a'}\pi(a'|s')q_\pi(s', a') \nonumber \end{align} \tag{4}

3 最优值函数与Bellman最优方程

3.1 最优值函数

最优状态值函数
最优值函数 v∗(s) v_*(s)是在所有策略上的最大值函数:

v∗(s)=maxπvπ(s)

v_*(s) = \max_{\pi} v_\pi(s)

最优行为值函数
最优行为值函数 q∗(s,a) q_*(s, a)是在所有策略上的最大行为值函数:

q∗(s,a)=maxπqπ(s,a)

q_*(s, a) = \max_{\pi} q_\pi(s, a)

当最优值函数已知时,可以认为MDP已被解决。

3.2 Bellman最优方程

Bellman最优方程其实就是 v∗(s) v_*(s)和 q∗(s,a) q_*(s, a)自身以及相互之间的递推关系。

v∗(s) v_*(s)与 q∗(s,a) q_*(s, a)之间的关系

v∗(s)=maxπvπ(s)=maxπ∑a∈Aπ(a|s)qπ(s,a)=maxaq∗(s,a)(5.1)(5.2)(5.3)

\begin{align} v_*(s)&=\max_{\pi} v_\pi(s) \tag{5.1} \\\\ & = \max_{\pi} \sum_{a\in {\cal A}} \pi(a|s)q_{\pi}(s, a) \tag{5.2} \\\\ & = \max_a q_*(s, a) \tag{5.3} \end{align}

问题:(5.3)为什么成立?

∑a∈Aπ(a|s)qπ(s,a)≤maxaqπ(s,a)maxπ∑a∈Aπ(a|s)qπ(s,a)≤maxπmaxaqπ(s,a)maxπ∑a∈Aπ(a|s)qπ(s,a)≤maxaq∗(s,a)

\begin{align} \sum_{a\in {\cal A}} \pi(a|s)q_{\pi}(s, a) \leq \max_a q_\pi(s, a) \\\\ \max_{\pi} \sum_{a\in {\cal A}} \pi(a|s)q_{\pi}(s, a) \leq \max_{\pi} \max_a q_\pi(s, a) \\\\ \max_{\pi} \sum_{a\in {\cal A}} \pi(a|s)q_{\pi}(s, a) \leq \max_a q_*(s, a) \\\\ \end{align}
只能证明出 ≤ \leq,怎么证明 = =呢?

q∗(s,a)=maxπqπ(s,a)=maxπRas+γ∑s′∈SPass′vπ(s′)=Ras+γ∑s′∈SPass′v∗(s′)(6.1)(6.2)(6.3)

\begin{align} q_*(s, a) & = \max_{\pi} q_\pi(s, a) \tag{6.1} \\\\ & = \max_{\pi} {\cal R}_s^a + \gamma \sum_{s' \in {\cal S}} {\cal P}_{ss'}^a v_\pi(s') \tag{6.2} \\\\ & = {\cal R}_s^a + \gamma \sum_{s'\in {\cal S}} {\cal P}_{ss'}^a v_*(s')\tag{6.3} \end{align}

同样,怎么证明公式(6.3)呢?

v∗(s) v_*(s)自身的递推关系

把公式(6)代入(5)中得到:

v∗(s)=maxaRas+γ∑s′∈SPass′v∗(s′)(7)

v_*(s) = \max_a {\cal R}_s^a + \gamma \sum_{s'\in {\cal S}} {\cal P}_{ss'}^a v_*(s') \tag{7}

q∗(s,a) q_*(s, a)自身的递推关系

把公式(5)代入公式(6)得到:

q∗(s,a)=Ras+γ∑s′∈SPass′maxaq∗(s′,a′)(8)

q_*(s, a) = {\cal R}_s^a + \gamma \sum_{s'\in {\cal S}} {\cal P}_{ss'}^a \max_a q_*(s', a') \tag{8}

4 最优策略

定义策略之间的偏序关系

π≥π′ if vπ(s)≥vπ′(s), ∀s

\pi \geq \pi' \space if \space v_\pi(s) \geq v_{\pi'}(s), \space \forall s

那么有如下定理成立:

对任意MDP:

  • 存在最优策略 π∗ \pi_*,满足 π∗≥π,∀π \pi_* \geq \pi, \forall \pi
  • 所有最优策略的状态值函数都等于最优状态值函数 vπ∗(s)=v∗(s) v_{\pi_*}(s) = v_*(s)
  • 所有的最优策略的行为值函数都等于最优行为值函数 qπ∗(s,a)=q∗(s,a) q_{\pi_*}(s, a) = q_*(s, a)

思考这样一个问题:如果某个状态 s1 s_1是在策略 π1 \pi_1上取到最优状态值,而 s2 s_2是在另一个策略 π2 \pi_2上取得最优状态值,那么最优策略是什么呢?

这种情况下是不存在最优策略的。
但是对于有限MDP,并且值函数有界时,上述情况并不存在,即至少有一个最优策略。

强化学习——值函数与Bellman方程相关推荐

  1. 重温强化学习之函数近似

    1.简介     之前提到的方法目的是求值函数,通过值函数找打策略     基于表格的方法: 基于表格方法精确的描述每一个动作和状态的大小,表格大小会随着状态数量和动作数量快速膨胀,对于表格中某一项的 ...

  2. 强化学习:函数逼近思想

    在开始这一篇内容之前,让我们先回顾一下前8篇所提及的内容.概括地说,前八篇所讲到的各种强化学习方法(DP.MC.TD等),有一个共同套路:即采用数据表存储每一个状态(state)的价值量(value) ...

  3. 强化学习——值迭代和策略迭代

    [强化学习]值迭代和策略迭代 在强化学习中我们经常会遇到策略迭代与值迭代,但是很多人都搞不清楚他们两个之间的区别,他们其实都是强化学习中的动态规划方法(DP). --<Reinforcement ...

  4. [强化学习实战]函数近似方法-线性近似与函数近似的收敛性

    线性近似 最常使用的函数近似就是线性近似和人工神经网络.本节介绍线性近似.线性近似是用许多特征向量的线性组合来近似价值函数.特征向量则依赖于输入(即状态或状态动作对).以动作价值近似为例,我们可以为每 ...

  5. 基于值函数逼近的强化学习方法

    基于值函数逼近的强化学习方法 1.表格型强化学习方法 2.值函数逼近方法理论 2.1 值函数逼近方法的分类 2.2.值函数逼近和表格型强化学习方法的比较 2.3.参数化逼近 2.4.增量式学习方法 2 ...

  6. 第二篇 值函数Based——基于值函数逼近的强化学习方法

    本分类专栏博客系列是学习<深入浅出强化学习原理入门>的学习总结. 书籍链接:链接:https://pan.baidu.com/s/1p0qQ68pzTb7_GK4Brcm4sw 提取码:o ...

  7. 强化学习(一)---马尔科夫决策过程

    目录 先大致了解工智能,机器学习,深度学习之间的联系与区别 主学习网址 莫烦python网址 [David Silver强化学习公开课中文讲解及实践](https://zhuanlan.zhihu.c ...

  8. 深度强化学习—— 译 Deep Reinforcement Learning(part 0: 目录、简介、背景)

    深度强化学习--概述 翻译说明 综述 1 简介 2 背景 2.1 人工智能 2.2 机器学习 2.3 深度学习 2.4 强化学习 2.4.1 Problem Setup 2.4.2 值函数 2.4.3 ...

  9. 深度强化学习系列(1): 深度强化学习概述

    机器学习是人工智能的一个分支,在近30多年已发展为一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.计算复杂性理论等的学科.强化学习(RL)作为机器学习的一个子领域,其灵感来源于心理学中的行为主 ...

最新文章

  1. C# 给枚举类型增加一个备注特性
  2. 【个人成长】数据分析——证书
  3. 淘宝NPM镜像、cnmp
  4. Ubuntu中的launcher
  5. 安装Windows Nano Server虚拟机
  6. 假如不穿宇航服,人在各大星球能活多久?
  7. (转)Java线程:新特征-线程池
  8. android广告多,iOS用户拒绝广告跟踪后很多广告商纷纷转投安卓
  9. Android RxBinding
  10. ORACLE的程序包1-程序包的基
  11. ubuntu 修改ip后,老ip仍然存在的问题
  12. python中bif是什么_python类与对象(BIF详细分析及实例讲解)
  13. Linux操作系统感想
  14. 机房服务器配置方案文件,机房搬迁实施方案模版
  15. 小技巧!Win10系统怎样恢复使用Win7中的照片查看器?非常简单!
  16. 软件耦合的分类及解决方法
  17. 计算机派位录取,北京幼升小多校划片电脑派位是什么意思
  18. 南邮 OJ 1128 An Industrial Spy
  19. 如何给字符串数组赋值
  20. Chart.js使用教程,画折线图实例

热门文章

  1. python——wordcloud生成中文词云
  2. linux中线程求圆的面积,圆的面积,周长,圆柱体的体积
  3. ElasticSearch实战
  4. 中国最愿意为程序员花钱的公司有哪些?
  5. Computer Science Fundamentals
  6. 性能分析系列-小命令保证大性能 | 程超
  7. User Script浏览器用户自定义脚本userscripts
  8. iOS 7: iPhone/iPad应用开发技术详解
  9. 面试经验|春招在即,时间宝贵,这一定是最近的 Java 并发学习路线
  10. MPEG-4 AVC/H.264 视频编码资源列表(中文)