UA CSC696H 强化学习理论选讲1 强化学习概览

  • 强化学习相关概念
  • Markov Decision Processes(MDP)简介
  • Policy Evaluation

强化学习(reinforcement learning, RL)研究智能体(intelligent agents)在给定情景下为了最大化累积奖励(cumulative reward)应该如何采取行动(take actions)。按照这个描述,在应用强化学习时,至少需要明确应用情景、奖励函数、以及可行的行动方案。比如要设计一个能自动开方子的智能体,就可以设想一个患者定期来问诊的场景,第ttt期患者前来问诊时智能体获得患者当前身体状况xtx_txt​作为输入,同时开出这一期的方子ata_tat​,把患者按这个方子抓药服用后健康状况增益作为当期奖励rtr_trt​,设计这个智能体的目标定为最大化患者的长期身体健康状况∑rt\sum r_t∑rt​。

但这个专题课我是旁听的,课程内容并不是强化学习的具体应用和算法,而是强化学习的理论基础与分析强化学习算法的数学工具。其中理论基础部分主要涉及Markov Decision Process、Optimization、Probability Contraction等,分析的强化学习performance用到的指标主要包括online regret(简单来说就是如果从前我那样做了,累积奖励会不会更高,分析算法理论性质时我们希望是不会), sample complexity(希望用尽可能少的行动获得最高奖励,主要是因为造训练数据很贵), computational complexity(计算复杂度当然是越低越好)。这一讲是第一讲,主要是叙述一些与强化学习有关的概念,并简单引入Markov Decision Process。


强化学习相关概念

Online Supervised Learning
以垃圾邮件自动过滤器为例,用t=1,⋯,Tt=1,\cdots,Tt=1,⋯,T表示收到邮件的时间点;在第ttt次收到邮件xtx_txt​时,过滤器根据xtx_txt​做出关于这封邮件是否是垃圾邮件的判断y^t\hat y_ty^​t​(用{(xs,ys)}s=1t−1\{(x_s,y_s)\}_{s=1}^{t-1}{(xs​,ys​)}s=1t−1​训练过滤器并完成预测,目标是最小化误判总数),同时记录下邮箱用户看到这封邮件后的判断yty_tyt​;这个例子中预测基于实时样本进行,并且样本中有label,每一次进行预测时都是监督学习的框架,所以是一个online supervised learning,设计相关算法时需要着重考虑过滤器的泛化能力,也就是如何保证收到第ttt封邮件时的实时样本{(xs,ys)}s=1t−1\{(x_s,y_s)\}_{s=1}^{t-1}{(xs​,ys​)}s=1t−1​中关于垃圾邮件分类的知识能够迁移到xtx_txt​上。

Online Bandit Learning
用前文的自动开方子智能体作为例子,设想一个患者定期来问诊的场景,第ttt期患者前来问诊时智能体获得患者当前身体状况xtx_txt​作为输入,同时开出这一期的方子ata_tat​,把患者按这个方子抓药服用后健康状况增益作为当期奖励rtr_trt​,设计这个智能体的目标定为最大化患者的长期身体健康状况∑rt\sum r_t∑rt​。这就不是online supervised learning了而是online bandit learning,因为在第ttt期做行动决策时已知信息只有xtx_txt​,以及{at},{rt}\{a_t\},\{r_t\}{at​},{rt​}。

Multi-armed bandits也是Online Bandit Learning中的一类,它可以用来解决exploration-exploitation trade-off的问题。比如要考虑接下来一学期中午吃黄焖鸡米饭、隆江猪脚饭、重庆鸡公煲还是咸肉菜饭,假设我们没有关于这几家店的先验信息,而目标是最大化自己这学期午饭的体验。按Multi-armed bandits的思路,我们首先应该先来体验一下这几家店,也就是exploration,但是不能只去一次,毕竟去一次有可能遇到老板和老板娘吵架影响用餐体验,应该每家店都多去几次,获得多个体验感的记录,每多获得一次记录都可以重新计算各店体验感的置信区间,根据置信区间选择下一次午饭吃哪家。这样做的好处是在exploration的同时收集数据,尽量降低潜在的bias。

Online Episodic RL
这类问题例子如下,在这一关中,小A应该怎么操作才能尽快拿到小星星。

假设ttt表示关卡或者章节(episodic),每一关初始状态为s1ts_1^ts1t​,用hhh表示这一关的第hhh次操作,ahta_h^taht​表示这次操作采取的行动,奖励为rht∼R(⋅∣sht,aht)r_h^t\sim R(\cdot|s_h^t,a_h^t)rht​∼R(⋅∣sht​,aht​),状态转移函数为sh+1t∼P(⋅∣sht,aht)s_{h+1}^t \sim P(\cdot|s_h^t,a_h^t)sh+1t​∼P(⋅∣sht​,aht​),比如在上图中,记A左下格子为(1,1)(1,1)(1,1),则星星的位置为(5,4)(5,4)(5,4),A的初始状态为s1t=(2,2)s_1^t=(2,2)s1t​=(2,2),每一次可以采取的行动为{x→x+1,x→x−1,y→y+1,y→y−1}\{x \to x+1,x \to x-1,y \to y+1, y \to y-1\}{x→x+1,x→x−1,y→y+1,y→y−1},奖励函数为R=1(5,4)R=1_{(5,4)}R=1(5,4)​,也就是只有在到达小星星的位置时才有奖励。这类问题的难点在于每一次操作的后果是在关卡结束时结算的(delayed consequence),就不像是online bandit learning一样每一步操作都有相应奖励能用来帮助决策。以上的这些例子也涉及了RL算法设计需要处理的挑战:generalization、exploration与delayed consequence。


Markov Decision Processes(MDP)简介

MDP是分析序贯决策的常用工具。记MDP为M=(S,A,P,r,γ,μ)M=(S,A,P,r,\gamma,\mu)M=(S,A,P,r,γ,μ)

其中SSS表示state space,AAA表示action space,PPP代表transition kernel(用来表示uncertainty in the environment),当前状态为sss,采取行动aaa,则下一期状态为s′s's′的概率可以表示为P(s′∣s,a)P(s'|s,a)P(s′∣s,a),r:S×A→[0,1]r:S \times A \to [0,1]r:S×A→[0,1]代表reward function,γ∈[0,1)\gamma \in [0,1)γ∈[0,1)是折现因子,μ\muμ是initial state distribution。

用上面那个小A找小星星的例子说明怎么用MDP来建模,思路很简单,就是把MDP的相关参数写出来就好。
S={1,2,3,4,5,6}×{1,2,3,4,5}A={上,下,左,右,不动}S = \{1,2,3,4,5,6\} \times \{1,2,3,4,5\} \\ A = \{上,下,左,右,不动\}S={1,2,3,4,5,6}×{1,2,3,4,5}A={上,下,左,右,不动}

状态转移是确定的,所以transition kernel可以用identity function表示,比如
P(s′∣(2,2),上)=1(2,3)={0,s′≠(2,2)1,s′=(2,2)P(s'|(2,2),上)=\textbf 1_{(2,3)} = \begin{cases} 0, s' \ne (2,2) \\ 1,s' = (2,2) \end{cases}P(s′∣(2,2),上)=1(2,3)​={0,s′​=(2,2)1,s′=(2,2)​

而只有到达小星星的位置才有奖励,所以
r(s,a)=1(5,4)r(s,a) = \textbf 1_{(5,4)}r(s,a)=1(5,4)​

Initial state是给定为(2,2)(2,2)(2,2)的,
μ(s)=1(2,2)\mu(s) = \textbf 1_{(2,2)}μ(s)=1(2,2)​

因为中间步骤没有奖励,所以折现因子大于0即可。这样我们就用MDP的语言描述了小A找小星星的例子。

接下来我们给出MDP更具体的描述:

  1. 初始状态:S0∼μS_0 \sim \muS0​∼μ
  2. 在第ttt步时(t=0,1,2,⋯t=0,1,2,\cdotst=0,1,2,⋯)
    智能体采取行动ata_tat​;
    智能体获得奖励rt=r(st,at)r_t=r(s_t,a_t)rt​=r(st​,at​)
    智能体转移到下一个状态st+1∼P(⋅∣st,at)s_{t+1} \sim P(\cdot|s_t,a_t)st+1​∼P(⋅∣st​,at​)

在这个过程中,到第ttt步完成时,智能体记录下的数据为
(s0,a0,r0,⋯,st,at,rt,st+1)∈(S×A×[0,1])t×S≜Ht(s_0,a_0,r_0,\cdots,s_t,a_t,r_t,s_{t+1}) \in (S \times A \times [0,1])^{t} \times S \triangleq H_t(s0​,a0​,r0​,⋯,st​,at​,rt​,st+1​)∈(S×A×[0,1])t×S≜Ht​

这里HtH_tHt​表示智能体的历史数据集合。另外,智能体的目标是最大化奖励的期望现值:
E[G0]=E[∑t=0+∞γtrt]E[G_0]=E \left[\sum_{t=0}^{+\infty} \gamma^t r_t\right]E[G0​]=E[t=0∑+∞​γtrt​]

因为定义奖励是属于[0,1][0,1][0,1]的,所以
∑t=0+∞γtrt≤∑t=0+∞γt=11−γ\sum_{t=0}^{+\infty} \gamma^t r_t \le \sum_{t=0}^{+\infty} \gamma^t = \frac{1}{1-\gamma}t=0∑+∞​γtrt​≤t=0∑+∞​γt=1−γ1​

γ\gammaγ越大,折现效应越弱,未来奖励占比会增加,智能体倾向于长期决策;γ\gammaγ越小,折现效应越强,折现后的奖励主要由近期奖励构成,智能体倾向于更高的近期奖励。

Policy Evaluation

Policy的含义
尽管上文给出了用MDP来描述动态决策过程的一些思路,但我们对智能体行为的了解还只停留在具体的某一步选择什么行动上,为了对智能体整体的行为模式建模,我们需要用到Policy。记
H=⋃t=0+∞HtH = \bigcup_{t=0}^{+\infty}H_tH=t=0⋃+∞​Ht​

Policy用π\piπ表示,它是定义在AAA上关于HHH生成的Filter的条件概率,也就是当智能体的历史记录为τt\tau_tτt​时,采取行动aaa的概率可以记为π(a∣τt)\pi(a|\tau_t)π(a∣τt​)。如果π(a∣τt)=π(a∣st)\pi(a|\tau_t)=\pi(a|s_t)π(a∣τt​)=π(a∣st​),就称这样的Policy为stationary policy。

Value Function的定义
Value function的作用是评估policy,也就是评估智能体的整体行为,它的定义是
Vπ(s)=E[G0∣s0=s,π]V^{\pi}(s)=E[G_0|s_0=s,\pi] Vπ(s)=E[G0​∣s0​=s,π]

比较理想的Policy满足∀s∈S\forall s \in S∀s∈S,Vπ(s)V^{\pi}(s)Vπ(s)都已经是最大值了,也就是不管初始状态如何,我们理想中的最优Policy都应该最大化Value function。看起来这个理想好像很远大,但现有结果说明,至少存在一个deterministic、stationary π\piπ能达到这种最优。

Value Function的计算
虽然实践中可以用MC simulation等办法估计value function,但既然我们要从理论上研究MDP,那还是要尝试找出解析式的。下面讨论stationary policy的情况,
Vπ(s)=E[G0∣s0=s,π]=∑a∈Aπ(a∣s)E[G0∣s0=s,a0=a,π]=∑a∈Aπ(a∣s)Qπ(s,a)\begin{aligned}V^{\pi}(s)& =E[G_0|s_0=s,\pi] \\ & = \sum_{a \in A} \pi(a|s)E[G_0|s_0=s,a_0=a,\pi] \\ & = \sum_{a \in A} \pi(a|s)Q^{\pi}(s,a) \end{aligned}Vπ(s)​=E[G0​∣s0​=s,π]=a∈A∑​π(a∣s)E[G0​∣s0​=s,a0​=a,π]=a∈A∑​π(a∣s)Qπ(s,a)​

这里Qπ(s,a)=E[G0∣s0=s,a0=a,π]Q^{\pi}(s,a)=E[G_0|s_0=s,a_0=a,\pi]Qπ(s,a)=E[G0​∣s0​=s,a0​=a,π]也是一类value function。
Qπ(s,a)=E[G0∣s0=s,a0=a,π]=E[∑t=0+∞γtrt∣s0=s,a0=a,π]=E[r0+∑t=1+∞γtrt∣s0=s,a0=a,π]\begin{aligned}Q^{\pi}(s,a) & =E[G_0|s_0=s,a_0=a,\pi] \\ & = E\left[\sum_{t=0}^{+\infty} \gamma^t r_t|s_0=s,a_0=a,\pi \right] \\ & = E\left[r_0+\sum_{t=1}^{+\infty} \gamma^t r_t|s_0=s,a_0=a,\pi \right]\end{aligned}Qπ(s,a)​=E[G0​∣s0​=s,a0​=a,π]=E[t=0∑+∞​γtrt​∣s0​=s,a0​=a,π]=E[r0​+t=1∑+∞​γtrt​∣s0​=s,a0​=a,π]​

引入记号
Gτ=∑t=0+∞γtrt+τG_{\tau} = \sum_{t=0}^{+\infty} \gamma^t r_{t+\tau}Gτ​=t=0∑+∞​γtrt+τ​

代入上式
E[r0+∑t=1+∞γtrt∣s0=s,a0=a,π]=r(s,a)+γE[G1∣s0=s,a0=a,π]\begin{aligned} E\left[r_0+\sum_{t=1}^{+\infty} \gamma^t r_t|s_0=s,a_0=a,\pi \right] \\ = r(s,a)+\gamma E\left[G_1|s_0=s,a_0=a,\pi \right]\end{aligned}E[r0​+t=1∑+∞​γtrt​∣s0​=s,a0​=a,π]=r(s,a)+γE[G1​∣s0​=s,a0​=a,π]​

接下来处理E[G1∣s0=s,a0=a,π]E\left[G_1|s_0=s,a_0=a,\pi \right]E[G1​∣s0​=s,a0​=a,π],
E[G1∣s0=s,a0=a,π]=∑s′∈SP(s′∣s,a)E[G1∣s0=s,a0=a,s1=s′,π]E\left[G_1|s_0=s,a_0=a,\pi \right] \\ = \sum_{s' \in S}P(s'|s,a)E[G_1|s_0=s,a_0=a,s_1=s',\pi]E[G1​∣s0​=s,a0​=a,π]=s′∈S∑​P(s′∣s,a)E[G1​∣s0​=s,a0​=a,s1​=s′,π]

因为是stationary policy,
E[G1∣s0=s,a0=a,s1=s′,π]=E[G1∣s1=s′,π]=Vπ(s′)E[G_1|s_0=s,a_0=a,s_1=s',\pi] = E[G_1|s_1=s',\pi]=V^{\pi}(s')E[G1​∣s0​=s,a0​=a,s1​=s′,π]=E[G1​∣s1​=s′,π]=Vπ(s′)

综上
Qπ(s,a)=r(s,a)+γ∑s′∈SP(s′∣s,a)Vπ(s′)Q^{\pi}(s,a) =r(s,a)+\gamma \sum_{s' \in S}P(s'|s,a)V^{\pi}(s')Qπ(s,a)=r(s,a)+γs′∈S∑​P(s′∣s,a)Vπ(s′)

到现在,我们用QQQ表示了VVV,也用VVV表示了QQQ,可以考虑代入消元了
Qπ(s,a)=r(s,a)+γ∑s′∈SP(s′∣s,a)Vπ(s′)=r(s,a)+γ∑s′∈SP(s′∣s,a)∑a′∈Aπ(a′∣s′)Qπ(s′,a′)\begin{aligned} Q^{\pi}(s,a) & =r(s,a)+\gamma \sum_{s' \in S}P(s'|s,a)V^{\pi}(s') \\ & = r(s,a)+\gamma \sum_{s' \in S}P(s'|s,a)\sum_{a' \in A} \pi(a'|s')Q^{\pi}(s',a')\end{aligned}Qπ(s,a)​=r(s,a)+γs′∈S∑​P(s′∣s,a)Vπ(s′)=r(s,a)+γs′∈S∑​P(s′∣s,a)a′∈A∑​π(a′∣s′)Qπ(s′,a′)​

假设∣S×A∣|S \times A|∣S×A∣有限,则上式就是一个有∣S×A∣|S \times A|∣S×A∣个方程的线性方程组,求解出QQQ之后自然可以得到VVV的表达式。

UA CSC696H 强化学习理论选讲1 强化学习概览相关推荐

  1. [入门向选讲] 插头DP:从零概念到入门 (例题:HDU1693 COGS1283 BZOJ2310 BZOJ2331)

    转载请注明原文地址:http://www.cnblogs.com/LadyLex/p/7326874.html 最近搞了一下插头DP的基础知识--这真的是一种很锻炼人的题型-- 每一道题的状态都不一样 ...

  2. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第5章-强化函数设计方法及其在学习系统的应用

    第4章 回到目录 第6章 第5章-强化函数设计方法及其在学习系统的应用 5.1 引言 5.2 强化学习应用中的关键问题 5.2.1 泛化方法 5.2.2 探索与利用的权衡 5.2.3 强化函数与算法结 ...

  3. 练习图200例图纸讲解_【宅家数学课23】经典微课6:苏教版六年级下册比例尺典型例题选讲及练习(含答案)...

    (截止日期:3月31日) 学习过程 1.点击观看经典微课: 微课视频 <比例尺> 2.认真学习典型例题,完成下方练习题 3.查看答案,在家长指导下批改,订正错误. 苏教版小学数学六年级下册 ...

  4. C++11新特性选讲 语言部分 侯捷

    C++11新特性选讲 语言部分 侯捷 本课程分为两个部分:语言的部分和标准库的部分.只谈新特性,并且是选讲. 本文为语言部分笔记. 语言 Variadic Templates move semanti ...

  5. 20190509杂题选讲

    这次杂题选讲好多思维题神仙题啊= =顺便学了波线段树上二分= = Normal 题目大意戳这 CF1083C CDW讲的神仙题*1 题解戳这 AGC002E 我讲的题,是个人写的程序都比我写的程序跑得 ...

  6. PJ可能会用到的动态规划选讲-学习笔记

    PJ可能会用到的动态规划选讲-学习笔记 by Pleiades_Antares 难度和速度全部都是按照普及组来定的咯 数位状压啥就先不讲了 这里主要提到的都是比较简单的DP 一道思维数学巧题(补昨天) ...

  7. [统计学笔记] 统计学计算题选讲(精华)

    统计学计算题选讲 第 1 题 某班级学生物理课程考试成绩分别为:              68  89  88  84  86  87  75  73  72  68              75 ...

  8. 4.4 竞赛题目选讲

    竞赛题目选讲 这里的题目可能和大家在做的实验项目有些不太一样,希望大家根据自己的需要阅读本章节. 4-2 刽子手游戏 (UVA 489) 书上的题面少了一些很重要的东西,真正的题面请点开这里 分析:根 ...

  9. 苹果和虫子编程题python_2020智慧树《兽医寄生虫学》免费最全题库2020中国大学mooc《线性代数习题选讲》...

    2020智慧树<兽医寄生虫学>免费最全题库2020中国大学mooc<线性代数习题选讲>章节答案 更多相关问题 [多选题]<合同法>第122条规定,因当事人一方违约行 ...

最新文章

  1. 关于学习Python的一点学习总结(18->序列解包)
  2. 自定义Docker容器的 hostname
  3. VNF 的性能测试设计要点
  4. nginx php 配置 windows_Windows下配置Nginx使之支持PHP
  5. linux tomcat 开启apr,tomcat开启APR
  6. 微软75亿收购Github,微软以开发者为中心的初心不变
  7. iphone视频教程
  8. C/C++编程知识分享:C++ 手把手教你实现可变长的数组
  9. javadoc 程序包android.content不存在,Eclipse中的Javadoc无法识别包
  10. 谷粒商城高级篇爬坑笔记--错误异常信息乱码问题
  11. android debug bridge tools_飞凌干货丨Android 应用程序如何获取system权限
  12. kotlin特性之object、apply用法总结
  13. 数据库已关闭。请指定主机身份证明以访问数据库重新启动和诊断工具
  14. 三维散点图加colorbar
  15. oracle 自增长这么使用,Eova Oracle 自增长的处理
  16. 小学生如何用计算机写字,小学生练字笔顺电脑文章大全短文
  17. 下载和安装MyEclipse2014
  18. 【安全攻防知识-4】CTF之MISC
  19. 2017-2018 年终总结
  20. 奥奇手游怎么显示部分服务器,奥奇传说手游区服互通吗

热门文章

  1. Leetcode 166. 分数到小数 解题思路及C++实现
  2. 数据结构源码笔记(C语言):希尔插入排序
  3. Android内容提供程序
  4. Activity中加载器的总结
  5. 用python画蝴蝶_图形化编程经验分享,画笔基础,软件包括Python、Kittenblock
  6. java paintComponent的一些解读
  7. Python 技术篇-百度语音合成SDK接口调用演示
  8. 入门写博客之markdown语法
  9. pandas内容像日期的数据如何变成真DataTime,并赋予时间类似的操作
  10. 无重复字符的最长子串【三种解法】--LeetCode