在强化学习中,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. openssl在64位的机器上编译32位的库
  2. linux系统下docker安装,Linux下Docker的安装与使用
  3. 22/11/2010
  4. Average and Median(500)dp,二分 AtCoder Beginner Contest 236
  5. boost::mpl模块at相关的测试程序
  6. Winform DataGridView控件添加行号
  7. ElasticSearch插件demo
  8. 注解、路径、 Log4J、<settings>标签
  9. vit-pytorch
  10. 新消费催生新制造:拼多多一年将培育百家销量过亿家纺企业
  11. vue 结合swiper插件实现广告公告上下滚动的效果
  12. python多线程下载多个文件_python多线程下载文件 练习1
  13. 计算机永远无法超越人类——从李世石与阿尔法的人机大战中想到的
  14. Redis布隆过滤器和布谷鸟过滤器
  15. 学会有礼貌的拒绝应聘者
  16. 前端笔记 -- 不重复造轮子(遇到就更新内容)
  17. EIP-1559究竟在吵什么
  18. python爬取公众号文章_python爬取微信公众号历史文章
  19. android应用和苹果,同一款软件,在安卓和苹果间差别原来这么大
  20. ELK学习--Kibana 5.6.5 安装

热门文章

  1. 产品真题笔试题目--牛客网
  2. 如何让aboboo 便携版在citrix下使用(aboboo在IPAD上使用)aboboo苹果版
  3. 加速计简单使用---迷宫游戏
  4. agGrid表格对同列不同数据添加不同背景色
  5. 教你彻底学会动态规划——进阶篇
  6. 学习笔记之selenium_grid2
  7. DCDC电源PCB布局
  8. 如何平衡创造性和可靠性?
  9. 数码管段选码表,你值得get
  10. 浅谈领导力之 - 价值决策