机器学习 | 强化学习(8) | 探索与开发(Exploration and Exploitation)
8-探索与开发(Exploration and Exploitation)
1.导论
探索与开发二难问题
- 基于决策的决策过程存在以下两种选择
- 开发:基于目前的学习做最优的决策
- 探索:获取更多的学习
- 最佳的长期策略或许会包含一些短期的牺牲
- 获取足够的信息更能得到最为全面的决策
探索的方案(Approach to Exploration)
- 随机探索(Randon exploration)
- 通过随机动作进行探索(如\(\epsilon-Greedy, softmax\))
- 基于不确定性的最优解
- 先估计各种价值的不确定性
- 然后优先选择最高不确定性的状态与动作
- 信息状态空间
- 将智能体agent的信息也作为状态部分之一
- 前向观察看看得到的信息对回报有没有帮助
状态-动作探索与参数探索
- 状态-动作探索(Sate-action exploration)
- 系统性地对状态/动作空间进行探索
- 例如在每次到达\(S\)选择不同的动作\(A\)
- 参数探索(Parameter exploration)
- 存在参数策略\(\pi(A|S,\mathbf u)\)
- 例如,每次都选择不同的参数然后测试一下
- 好处在于:可持续性的探索行为
- 劣势在于:不能获知状态/动作空间(即事实上并非因为信息增益而走出了这一步)
因此我们重点在于状态-动作探索
2.多臂老(和谐)虎(和谐)机问题(Multi bandit)
- 对于一个多臂老(和谐)虎(和谐)机模型是一个元组\(\langle \mathcal{A,R}\rangle\)
- \(\mathcal{A}\)是一个已知的动作序列(”摇臂“)
- \(\mathcal{R^a}(r)=\mathbb{P}[R=r|A=a]\)则是一个未知的回报概率分布
- 对于每一步\(t\),智能体agent会选择一个动作\(A_t\in\mathcal{A}\)
- 然后环境在生成一个回报\(R_t\sim\mathcal{R^{A_t}}\)
- 目标在于最大化累计回报\(\sum^t_{r=1}R_r\)
**可以看作一个单步MDP模型
分析
对于一个动作-价值是对于动作\(a\)的一个均值回报
\[q(a)=\mathbb{E}[R|A=a]
\]对于最优价值\(v_*\)则是
\[v_*=q(a^*)=\max_{a\in\mathcal{A}}q(a)
\]对于悔数(Regret)则是对于每一步的机会损失(opportunity loss)
\[l_t=\mathbb{E}[v_*-q(A_t)]
\]总的悔数则是总的机会损失
\[L_t = \mathbb{E}\bigg[\sum^t_{\tau=1}v_*-q(A_\tau)\bigg]
\]最大化累计回报\(\equiv\)最小化总悔数
计算悔数(Counting Regret)
对于计数\(N_t(a)\)是对于选择动作\(a\)的期望
对于间隔(gap)\(\Delta_a\)是动作\(a\)与最优动作\(a^*\)的价值之差,\(\Delta_a = v_*-q(a)\)
悔数则是与间隔与计数相关的函数
\[\begin{align}
L_t & = \mathbb{E}\bigg[\sum^t_{\tau=1}v_*-q(A_{\tau})\bigg] \\
& = \sum_{a\in\mathcal{A}}\mathbb{E}[N_t(a)](v_*-q(a)) \\
& = \sum_{a\in\mathcal{A}}\mathbb{E}[N_t(a)]\Delta_a
\end{align}
\]对于一个性质良好的算法可以确保小计数量就可以得到大的间隔
问题在于间隔乃是未知的!
贪心算法(Greedy Algorithm)
我们认定算法中存在近似关系\(Q_t(a)\approx q(a)\)
然后通过蒙特卡罗评估去估计每一次动作的价值
\[Q_t(a) = \frac{1}{N_t(a)}\sum^T_{t=1}\mathbf1(A_t=a)R_t
\]贪心算法选择最高价值的动作
\[A_t=\mathop{\arg\max}_{a\in\mathcal{A}}Q_t(a)
\]为此贪心算法(因为其完全不探索)使得其局限于局部最优解动作中
为此贪心算法的总悔数函数是呈线性的
最优初始化的贪心算法(Greedy Algorithm with optimistic initialisation)
将价值初始化为最大值即\(Q(a)=f_\max\)
然后运行贪心算法的行为:
\[A_t=\mathop{\arg\max}_{a\in\mathcal{A}}Q_t(a)
\]鼓励去探索未知的价值
同样也存在一些情况会使得其无法找到最优解动作
同样最优初始化贪心算法也是线性悔数
主要思想:未知价值的动作高阶于已知价值的动作
\(\epsilon-Greedy\)算法
对于\(\epsilon-Greedy\)一直保持探索状态
对于\(1-\epsilon\)的概率选择
\[A_t=\mathop{\arg\max}_{a\in\mathcal{A}}Q_t(a)
\]对于\(\epsilon\)的概率会选择一个随机动作
但是\(\epsilon-Greedy\)同样会是线性的总悔数
跟Softmax探索差不多
衰变\(\epsilon-Greedy\)算法(Decaying \(\epsilon-Greedy\) Algorithm)
我们为\(\epsilon_1,\epsilon_2\)去加入一个衰变的新方式
如下所示;
\[\begin{align}
c & > 0 \\
d & = \min_{a|\Delta_a>0}\Delta_a \\
\epsilon_t & = \min\bigg\{1,\frac{c|\mathcal{A}|}{d^2t}\bigg\}
\end{align}
\]衰变\(\epsilon-greedy\)算法对数渐近的总悔数
不过不幸的是,这种衰变形式需要提前知道间隔
目标:找到一个在多臂老(和谐)虎(和谐)机上具有近似于线性总悔数的算法(一开始对于\(\mathcal{R}\)是一无所知的)
算法的表现主要取决于最优摇臂以及其他摇臂的差距
最复杂的问题就是相似的摇臂但是有多个均值
主要是用间隔\(\Delta_a\)以及分布的相似度(KL散度):\(KL(\mathcal{R^a|R^(a^*)})\)
黎·拉宾氏定理(Lai and Robbins)**黎氏:黎子良(Tze Leung Lai)香港美籍科学家
对于渐近总悔数其下界至少是与步数呈对数增长
\]
上确信界(Upper Confidence Bounds)
为每个动作价值估算一个上确信界\(U_t(a)\)
例如说\(q(a)\le Q_t(a) + U_(a)\)就具有较高的概率
这主要取决于计数\(N(a)\)的取值
- 如果是小的\(N_t(a)\)情况下\(\rightarrow\)具有较大的\(U_t(a)\)(这么说估计价值是不确定的)
- 如果是大的\(N_t(a)\)情况下\(\rightarrow\)具有较小的\(U_t(a)\)(这么说估计价值是精确的)
为此我们选择上确信界(UCB)最大的动作
\[A_t = \mathop{\arg\max}_{a\in\mathcal{A}}Q_t(a) + U_t(a)
\]
霍夫丁不等式(Hoeffding;s Inequality)
使\(X_1,\dots,X_t\)是符合\(i.i.d.\)条件的处于区间\([0,1]\)随机变量,并且使得\(\overline X_t = \frac{1}{\tau}\sum^t_{\tau=1}X_\tau\)作为采样均值。然后:
\[\mathbb{P}[\mathbb{E}[X]>\overline X_t + u]\le e^{-2tu^2}
\]我们将会把霍夫丁不等式应用于老(和谐)虎(和谐)机问题的回报
由选择动作作为条件
\[\mathbb{P}[q(a)>Q_t(a) + U_t(a)] \le e^{-2N_t(a)U_t(a)^2}
\]
解决上确信界(Solving Upper Confidence Bounds)
求出真实价值超出\(UCB\)的概率\(p\)
开始求解\(U_t(a)\)
\[\begin{align}
e^{-2N_t(a)U_t(a)^2} & = p \\
U_t(a) & = \sqrt{\frac{-\log p}{2N_t(a)}}
\end{align}
\]当我们对回报的观测越多,\(p\)就会降低,例如说\(p = t^{-4}\)
确保我们在\(t\rightarrow \infin\)时每次选择最优动作
\[U_t(a) = \sqrt{\frac{2\log t}{N_t(a)}}
\]为此引出了\(UCB1\)算法(还有很多形式可供尝试)
\[A_t = \mathop{\arg\max}_{a\in\mathcal{A}}\bigg(Q_t(a) + \sqrt{\frac{2\log t}{N_t(a)}}\bigg)
\]为此\(UCB\)算法成功达到了对数渐近总悔数
\[\lim_{t\rightarrow\infin}L_t\le 8\log t\sum_{a|\Delta_a > 0}\Delta_a
\]
更多的上确信界形式
- 上确信界也可以用其他不等式去表示
- 伯恩斯坦不等式(bernstein's inequality)
- 经验伯恩斯坦不等式(Empirical Bernstein's inequality)
- 车尔诺夫不等式(Chernoff inequality)
- 奥兹玛不等式(Azuma's inequality)
- ...
贝叶斯老(和谐)虎(和谐)机(Bayesian bandits)
贝叶斯老(和谐)虎(和谐)机显式地利用了以往关于回报的学习,即\(p[\mathcal{R^a}]\)
我们定义一个带有参数\(\mathbf w\)关于动作-价值函数分布\(p[Q|\mathbf w]\)
- 例如说多组独立的高斯分布\(\mathbf w = [\mu_1,\sigma_1^2,\dots\mu_k,\sigma^2_k]\)对于所有的\(a\in[1,k]\)
贝叶斯方法在于计算后来的关于\(\mathbf w\)的分布
\[p[\mathbf w | R_1,\dots,R_t]
\]通过后来的数据来制导探索进程
- 上确信界
- 概率匹配(Probability Matching)
前置信息越精确,那么算法性能越好
基于上确信界的贝叶斯老(和谐)虎(和谐)机(Bayesian Bandits with Upper Confidence Bounds)
通过贝叶斯定律计算前置\(p[\mathbf w|R_1,\dots R_{t-1}]\)
计算动作-价值的后置分布
\(p[Q(a)|R_1,\dots R_{t-1}]=p[Q(a)|\mathbf w]p[\mathbf w|R_1,\dots,R_{t-1}]\)
然后估计后置状态的上确信界,如\(U_t(a)=c\sigma(a)\)
- 其中\(\sigma(a)\)是\(p(Q(a)|\mathbf w)\)的标准差
然后选择动作以让\(Q_t(a) + c\sigma(a)\)最大化
概率匹配(Probability Matching)
概率匹配基于\(a\)是最优动作的概率去选择动作
\[\pi(a)=\mathbb{P}\bigg[Q(a) =\max_{a'}Q(a')|R_1,\dots,R_{t-1}\bigg]
\]概率匹配在于未确定下方面也是充分乐观的
对于不确定性的动作有更高的可能性成为最大值
但是解析性地计算后续状态的\(\pi(a)\)比较困难
辛普森采样(Thompson Sampling)
辛普森采样属于一种基于采样的概率匹配
\[\pi(a)=\mathbb{E}\bigg[\mathbf 1(Q(a)=\max_{a'}Q(a'))|R_1,\dots,R_{t-1}\bigg]
\]然后通过贝叶斯定律去计算后续分布
\[p_\mathbf w(Q|R_1,\dots,R_{t-1})
\]从前驱状态去采用一个动作-价值函数\(Q(a)\)
然后通过最大化采样去选择动作
\[A_t = \mathop{\arg\max}_{a\in\mathcal{A}}Q(a)
\]对于伯努利老(和谐)虎(和谐)机,辛普森采样成功达到了黎氏与拉宾氏最低悔数下界
价值信息(Value Information)
- 探索之所以好用乃是因为其增长了信息
- 那么我们可以去量化信息的价值吗?
- 多少回报对于一个决策器会准备去付出代价去探索获取其信息,而不着急于决策
- 获取信息后的长期回报与短期回报(瞬间回报)的对比
- 在不确定性的情况下,显然信息增益更为重要
- 为此在未知情况下进行探索更为合理
- 当我们知道了信息的价值之后,我们就能最优地权衡探索与开发了
信息状态空间(Information State Space)
我们已经将老(和谐)虎(和谐)机问题视为一步决策问题了
同样也可以视为序列决策问题
每一步都存在一个信息状态\(\overline{S}\)把过去所有的信息累计起来
对于每个动作\(A\)会引出一个状态转移到达新的一个信息状态\(\overline{S'}\)(通过信息加和),基于概率\(\overline{P}^A_{\overline{S},\overline{S}'}\)
为此现在我们就拥有了一个增强信息状态空间的\(MDP\ \mathcal{\overline{M}}\)
\[\mathcal{\overline{M}}=\langle \overline{S}, \mathcal{A},\mathcal{\overline{P}},\mathcal{R},\gamma\rangle
\]
伯努利老(和谐)虎(和谐)机(Bernoulli Bandit)
- 我们定义伯努利老(和谐)虎(和谐)机即:\(\mathcal{R^a}=\mathcal{B}(\mu_a)\)
- 例如说:药动力学成功的概率就有\(\mu_a\)
- 欲找出最高\(\mu_a\)的摇臂
- 因此信息空间为\(\overline{S}=\langle\alpha, \beta\rangle\)
- \(\alpha_a\)计数了拉取摇臂\(a\)然后其回报为0
- \(\beta_a\)计数了拉取摇臂\(b\)然后其回报为1
信息状态空间老(和谐)虎(和谐)机(Information State Space Bandits)
- 我们通过一个关于信息状态的无穷MDP来方程化这个老(和谐)虎(和谐)机
- 这个MDP显然可以用强化学习解决
- 无模型强化学习(Model-free reinforcement learning)
- 例如:Q-learning(Duff,1994)
- 基于贝叶斯模型的强化学习
- 例如:吉丁斯指标(Gittins indices)(Gittins,1979)
- 后来的方法一般被认为是适应于贝叶斯的强化学习
- 寻找关于先前分布的探索/开发贝叶斯最优解
适应于贝叶斯的伯努利老(和谐)虎(和谐)机(Bayes-adaptive Bernoulli Bandits)
从关于回报函数\(\mathcal{R^a}\)的\(Beta(\alpha_a,\beta_a)\)开始
每一次时间选择动作\(a\),然后更新后续的\(\mathcal{R^a}\)
- \(Beta(\alpha_a + 1,\beta)\)若回报为0
- \(Beta(\alpha_a,\beta_a+1)\)若回报为1
如此就得以为适用于贝叶斯的MDP了一个状态转移函数\(\mathcal{\overline{P}}\)
对于所有的信息状态\((\alpha,\beta)\)代表着一个模型\(Beta(\alpha,\beta)\)
而每次状态转移则代表一个贝叶斯模型的更新
求解适用于贝叶斯的MDP需要考虑到价值信息
因为新信息的影响会作为因子影响到模型更新中
更多拓展
在伯努利的问题中,适用于贝叶斯的MDP可以直接通过动态规划解决
这种解法正是被称之为吉丁斯索引(Gittins index)
但是精确来说解决一个适用于贝叶斯的MDP是有点麻烦的
近来的方法已经可以做到探索大规模规划了
(例如蒙特卡罗树搜索算法)
供以构造一颗前向树然后寻找贝叶斯从最开始的学习状态的最优探索与开发权衡
解决多臂老(和谐)虎(和谐)机的总算法
- 随机探索
- \(\epsilon-Greedy\)
- \(Softmax\)
- 高斯噪音
- 基于不确定性的最乐观情况(当未知状态太多时容易陷入无穷状态)
- 最优初始化
- 确信上界
- 辛普森采样
- 学习状态空间
- 吉丁斯指标
- 适用于贝叶斯的MDP
上下文式老(和谐)虎(和谐)机
- 对于一个上下文式老(和谐)虎(和谐)机定义为元组\(\langle \mathcal{A, \color{red}{S},R} \rangle\)
- \(\mathcal{A}\)为一个已知的动作集(或者称为摇臂)
- \(\mathcal\color{red}{S}=\mathbb{P}[\mathcal{S}]\)则为一个关于状态(或者称为上下文)相关的未知分布
- \(\mathcal{R^a_\color{red}{s}}(r)=\mathbb{P}[R=r|\color{red}{S=s},A=a]\)则为一个关于回报未知的概率分布
- 对于每一步\(t\)
- 环境产生状态\(S_t\sim \mathcal{S}\)
- 智能体选择动作\(A_t\in\mathcal{A}\)
- 环境产生回报\(R_t\in\mathcal{R^{A_t}_{S_t}}\)
- 目标是最优化累计回报\(\sum^t_{r=1}R_r\)
马尔科夫决策过程
上确信界的马尔科夫决策过程
- 对于UCB法也能应用于整个MDPs
- 然后给出一个无模型的强化学习算法
- 最大化动作-价值函数中的上确信界
\]
- 其中有一个较成功的方法去解决无模型强化学习的探索与开发
- 首先构造一个MDP模型
- 对于未知或者是知道极少的状态,直接用\(r_\max\)去取代他的回报函数
- 即是:非常乐观地面对不确定性
- 通过你喜欢的算法解决这个乐观MDP即可
- 策略迭代
- 价值迭代
- 树形搜索
- ...
- 例如说 Rmax算法
适用于贝叶斯的MDP
MDPs同样可以通过信息状态来增强
现在增强过的状态为\(\overline{S}=\langle S,I\rangle\)
- 其中\(S\)是MDP的原状态
- 其中\(I\)是累计的信息
适用于贝叶斯的方法得到了一个后继状态模型代表着每个已经被增强过的状态\(\mathbb{P}[\mathcal{P,R}|I]\)
求解适用于贝叶斯的MDP去寻找最优探索开发权衡必须关系与前驱状态
然而增强MDP一般来说都较为庞大
蒙特卡罗树形搜索在这里就被证明比较高效了(Guez等人的工作)
进阶的来说还有更多用来安排探索与开发的复杂方法
- 随机探索
- 乐观不确定性
- 学习状态空间
机器学习 | 强化学习(8) | 探索与开发(Exploration and Exploitation)的更多相关文章
- David Silver强化学习Lecture1:强化学习简介
课件:Lecture 1: Introduction to Reinforcement Learning 视频:David Silver深度强化学习第1课 - 简介 (中文字幕) 强化学习的特征 作为 ...
- 强化学习一:Introduction Of Reinforcement Learning
引言: 最近和实验室的老师做项目要用到强化学习的有关内容,就开始学习强化学习的相关内容了.也不想让自己学习的内容荒废掉,所以想在博客里面记载下来,方便后面复习,也方便和大家交流. 一.强化学习是什么? ...
- 【强化学习】1-1-2 “探索”(Exploration)还是“ 利用”(Exploitation)都要“面向目标”(Goal-Direct)
title: [强化学习]1-1-2 "探索"(Exploration)还是" 利用"(Exploitation)都要"面向目标"(Goal ...
- (译) 强化学习 第一部分:Q-Learning 以及相关探索
(译) 强化学习 第一部分:Q-Learning 以及相关探索 Q-Learning review: Q-Learning 的基础要点是:有一个关于环境状态S的表达式,这些状态中可能的动作 a,然后你 ...
- 机器学习之强化学习概览(Machine Learning for Humans: Reinforcement Learning)
声明:本文翻译自Vishal Maini在Medium平台上发布的<Machine Learning for Humans>的教程的<Part 5: Reinforcement Le ...
- 基于C#的机器学习--惩罚与奖励-强化学习
强化学习概况 正如在前面所提到的,强化学习是指一种计算机以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使程序获得最大的奖赏,强化学习不同于连督学习,区别主要表现在强化信号上,强 ...
- ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文
https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...
- (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)
本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...
- 强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报. ...
- 基于Keras的OpenAI-gym强化学习的车杆/FlappyBird游戏
强化学习 课程:Q-Learning强化学习(李宏毅).深度强化学习 强化学习是一种允许你创造能从环境中交互学习的AI Agent的机器学习算法,其通过试错来学习.如上图所示,大脑代表AI Agent ...
随机推荐
- Electron 窗体 BrowserWindow
http://jsrun.net/t/KfkKp https://www.wenjiangs.com/doc/tlsizw1dst https://www.w3cschool.cn/electronm ...
- Flutter 滑动组件互相嵌套问题
滑动组件互相嵌套问题 如果listview/singlechildscrollview 嵌套gridview,将两个组件的shrinkwrap设置为true,并且gridview无法滚动 physic ...
- 【前端】白天/黑夜主题切换:JS读取XML预设主题实现黑白主题切换
上扩展实现多主题选择,切换主题) 先看一下XML文档 id值不能重复,一套主题的name要相同,亮色type1,暗色type0 <?xml version="1.0" enc ...
- 记录下uniapp的请求封装
请求封装就是经常见的事但是从来没有记录过,今天来记录一下简单的封装 首先封装自己的域名,可以和封装写在一起,但是最好单独写一个独立的js文件 这边就以一个域名为例 let baseUrl='域名地址' ...
- G1原理—4.G1垃圾回收的过程之Young GC
大纲 1.G1的YGC过程 2.YGC并行处理阶段的过程 3.YGC串行处理阶段的过程(一) 4.YGC串行处理阶段的过程(二) 5.整个YGC的执行流程总结 1.G1的YGC过程 (1)YGC相关的 ...
- 通过WebView2获取HTTP-only cookie
通过WebView2获取HTTP-only cookie可以使用`WebView2.CookieManager`类的方法.以下是一个示例代码,演示如何获取HTTP-only cookie: using ...
- C# 调用FFmpeg 合并视频和音频
C#修改环境变量: string pathStr = System.Environment.GetEnvironmentVariable("Path", EnvironmentVa ...
- Kubernetes 知识梳理及集群搭建
Kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定 ...
- 加速 AI 训推:Lepton AI 如何构建多租户、低延迟云存储平台
Lepton AI 是一款面向开发者的 AI 平台,旨在提供易用.高效且可扩展的基础设施能力.该平台适用于各种训练.推理需求,GPU充足,在保证高性能的同时,能够灵活应对不断变化的工作负载.用户可以快 ...
- Kotlin:【Map集合】集合创建、集合遍历、元素增加
to本身是一个函数