Lec2 交互学习策略和度量(MAB问题)
Chapter 2 MAB问题
参考:动手学强化学习,建议读者去看看原文
2.1 简介
- 智能体与环境交互学习,试错型学习。
- 多臂lh机(后简称MAB)问题,是一种简化的强化学习问题。
- 不存在状态信息,仅存在动作和奖励,是最简单的交互学习形式。
- 主要有探索和利用问题。
2.2 问题介绍
2.2.1 定义问题
- MAB问题中有一个有K根拉杆的lh机。
- 每个拉杆具有一个关于奖励的概率分布 \(\mathcal{R}\). 每次拉动一次一根拉杆,就从该概率中获得一个奖励 \(r\)。
- 需要在操作 \(T\) 次拉杆后获得最大奖励。
2.2.2 形式化描述
- 一个元组 \(<\mathcal{A},\mathcal{R}>\)。
- \(\mathcal{A}\) 是动作集合,一个动作就是拉动一根杆。我们有:\(\mathcal{A} = \{a_1,\cdots,a_K\}\)
- \(\mathcal{R}\) 奖励概率分布,每次拉动一根拉杆的动作有 \(\mathcal{R}(r|a_i)\) 的奖励概率分布。下标标识了分布对于每根杆不相同。
- 每次只能拉一根,因此目标为:\(\max\sum\limits_{t=1}^Tr_t~,~r_t\sim\mathcal{R}(\cdots|a^i_t)\)。\(a^i_t\)为在第 \(t\) 时间步拉动第 \(i\) 根拉杆的动作。\(r_t\) 表示动作 \(a_t\) 获得的奖励。
2.2.3 累积懊悔
- 对于动作 \(a\) 的期望奖励为 \(Q(a)=\mathbb{E}_{r\sim\mathcal{R}(\cdot|a)}[r]\)
- 将最优奖励表示成 \(Q^*=\max\limits_{a\in\mathcal{A}}Q(a)\)
- 当前奖励与最优奖励的差距为 \(R(a)=Q(a)-Q^*\),称为懊悔。这样累积总量就是累积懊悔。
- 累积懊悔为拉动T次拉杆后的总量。有:\(\sigma_R=\sum\limits_{t=1}^TR(a_t)\)
- MAB目标为最大化累计奖励,也就是最小化累积懊悔。
2.2.4 估计期望奖励
- 算法流程如下:

- 更新的期望公式解释如下:
Q_{n+1}(a^i)&:=\dfrac{1}{n}\sum\limits_{i=1}^{n}r_i
\\
&=\dfrac{1}{n}(r_n+\sum\limits_{i=1}^{n-1}r_i)
\\
&=\dfrac{1}{n}r_n+\dfrac{n-1}{n}Q_n\\
&=Q_n(a^i)+\dfrac{1}{n}(r_n-Q_n)
\end{aligned}
\]
- 增量式更新时间复杂度和空间复杂度均为 \(O(n)\).
2.3 探索(Exploration)和利用(Exploitation)
- 探索:尝试更多的拉杆。
- 利用:拉动已知奖励最大的那根拉杆。
- 目标是设计一个算法进行权衡。
2.4 \(\varepsilon\)-贪心算法
- 完全贪婪:仅有利用而没有探索。
- 进行稍微的修改,增加噪声,使得算法具有探索的能力。
- 这样算法将会以 \(\varepsilon\) 的概率随机选择一根杆子(探索),以 \(1-\varepsilon\) 的概率选择最大奖励拉杆(利用)。
- 随着探索次数增加,我们应该减少探索的次数。这样我们就可以衰减 \(\varepsilon\) 实现降低探索的概率。
完全贪心和\(\varepsilon\)-贪心算法对比

2.5 衰减贪心策略
- \(\varepsilon\) 随着时间衰减
- 理论上对数渐进收敛
- 最优的衰减方式:\(\text{regret} R(T)=O(\frac{L}{\Delta}\log{T})\)
- \(c\geqslant 0~,~\Delta=\min\limits_{a\cdot\Delta_a>0}\Delta_a~,~\varepsilon_t=\min\{1,\frac{c|\mathcal{A}|}{\Delta^2 t}\}\)
乐观初始化
- 给 \(Q(a^i)\) 一个较高的初始化的值。
- 增量式蒙特卡洛估计更新 \(\hat{Q}(a^i):=\hat{Q}(a^i)+\dfrac{1}{N(a^i)}(r_t-\hat{Q}(a^i))\)
- 有偏估计,但是随着采样增加,偏差将会越来越小。
2.6 UCB:置信上界算法
不确定性越大的老虎臂 \(Q(a^i)\) 越具有探索的价值,越有可能是最好的策略。
- 不确定性度量 \(U(a)\),随着动作尝试的次数增加而减少。
- UCB(Upper confidence bound),置信上界算法,基于经典的Hoeffding不等式。
Hoeffding 不等式:
\(X_1,\ldots,X_n\) 为 \(n\) 个独立同分布的随机变量,取值范围为 \([0,1]\)。这样我们具有经验期望 \(\bar{x}_n=\dfrac{1}{n}\sum\limits_{j=1}^{n}X_j\), 我们有:
\]
- \(\hat{Q}_t(a)\) 代入 \(\bar{x}_t\). 不等式中的参数 \(u=\hat{U}_t(a)\). 给定概率 \(p=e^{-2N_t(a)U_t(a)^2}\)。
- 这样 \(Q_t(a) < \hat{Q}_t(a) + \hat{U}_t(a)\) 至少以 \(1-p\) 的概率成立。 \(p\) 很小时就得到了我们的上界 \(\hat{Q}_t(a) + \hat{U}_t(a)\).
- 选取上界最大的动作,我们将会选择 \(a=\argmax_{a\in\mathcal{A}}[\hat{Q}(a)+\hat{U}(a)]\).其中 \(\hat{U}_t(a)=\sqrt{\dfrac{-\log p}{2N_t(a)}}\).
2.7 汤普森采样算法
- 假设拉动每根拉杆的奖励服从一个特定的概率分布,然后根据拉动每根拉杆的奖励进行选择。
- 根据当前每个动作\(a\)的奖励概率分布进行一轮采样,得到一组各根拉杆的奖励样本,再选择样本中奖励最大的动作。
- 我们通常用 Beta 分布对当前每个动作的奖励概率分布进行建模。
- 具体来说,若某拉杆被选择了 \(k\) 次,其中 \(m_1\) 次奖励为 1,\(m_2\) 次奖励为 0,则该拉杆的奖励服从参数为 \((m_1+m_2)\)的 Beta 分布。

Lec2 交互学习策略和度量(MAB问题)的更多相关文章
- 【SAP BO】【WEBI】【转】Webi实现动态选择度量
我们都知道Web Intelligence具有高级的分析功能,是一个非常灵活的报表工具.在这篇文章里,我会演示一个使用Webi实现动态选择度量对象的方案.首先解释一下什么是”动态选择度量”:例如我们有 ...
- 深入理解HTML5:语义、标准与样式(勇猛精进早登大师殿堂创最优品质交互)
深入理解HTML5:语义.标准与样式(勇猛精进早登大师殿堂创最优品质交互) [美]布拉德福(Bradford,A.) [美]海涅(Haine,P.)著 高京译 ISBN 978-7-121-20552 ...
- [译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量
原文地址:All you need to know to really understand the Node.js Event Loop and its Metrics 原文作者:Daniel Kh ...
- UED视觉交互设计与流程介绍
UED视觉交互设计与流程介绍 ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, ...
- PowerBI开发 第五篇:关系和交互
PowerBI 使用 内存的列式数据库 VertiPaq,用于对已发布的数据集进行数据压缩和快速处理,能够使PowerBI报表执行脱机访问,面向列的处理,高度优化对1:N关系的处理性能.关系是数据分析 ...
- expect实现自动分发密钥、网站度量术语
1.优化ssh命令 sed -ir '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\n UseDNS no\nGSSAPIAu ...
- 10、Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking-----基于记忆注意的潜在关系度量协同排序
一.摘要: 本文模型 LRML(潜在相关度量学习)是一种新的度量学习方法的推荐.[旨在学习用户和项目之间的相关关系,而不是简单的用户和项目之间的push和pull关系,push和pull主要针对LMN ...
- HTML入门(列表、表单、常用表单控件、浮动框架、iframe、 摘要与细节、度量标签)
一.列表 1.作用:默认显示方式为从上到下的显示数据 2.列表的组成 列表类型和列表项 3.列表的分类:有序列表 无序列表 自定义列表 无序列表语法为ul>li, 语法:ul代表列表,l ...
- Sublime Text3配置在可交互环境下运行python快捷键
安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...
- JS与APP原生控件交互
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
随机推荐
- 1007acm 感想
代码是抄的 代码在 discuss里面 注释是思路, 简单的讲就是先把近的点放在一起然后看周围6个点的距离最近的值 #include <cstdio> using namespace st ...
- paraview 导出表面网格
简介 RT 步骤 如下所示 然后save data即可
- linu想递归改名
简介 rt 参考链接 https://www.cnblogs.com/adong7639/p/10529168.html 推荐命令 find ./ -name "*.h" | aw ...
- Day3 备战CCF-CSP练习
Day3 题目描述 目前在一个很大的平面房间里有 \(n\) 个无线路由器,每个无线路由器都固定在某个点上. 任何两个无线路由器只要距离不超过 \(r\) 就能互相建立网络连接. 除此以外,另有 \( ...
- inux中设置固定ip(亲测有效)-九五小庞
首先打开虚拟机 打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定) 输入ifconfig,可以查看网管相关配置信息: 然后输入 vi /etc/sysconfig/n ...
- 信号处理__FFT变换
目录 什么是FFT 什么是傅里叶变换 FFT的过程 单侧FFT代码 什么是FFT 快速理解FFT FFT与卷积(慎入) FFT(fast Fourier transform),即快速傅里叶变换 多项式 ...
- 我的代码出现幻觉?说好的a = 1; x = b,怎么成了x = b; a = 1?
有序性:代码执行的幻觉 前面讲到通过缓存一致性协议,来保障共享变量的可见性.那么是否还有其他情况,导致对共享变量操作不符合预期结果.可以看下面的代码: private int a, b; privat ...
- 转-Java 异常处理的 20 个最佳实践,你知道几个?
作 者:武培轩 出 处:https://www.cnblogs.com/wupeixuan 原文链接:https://www.cnblogs.com/wupeixuan/p/11746117.ht ...
- 安卓APP导出
直接从项目中运行生成的 app-debug.apk 是用一个临时的调试密钥签名的,很多手机会因为安全策略而拒绝安装,或者在安装时给出更强的安全警告. 为什么需要签名? 给App签名主要有三个目的: 身 ...
- 1.基于搜索的路径规划:BFS、DFS、Dijkstra、A*、JPS
1.概览 可以对比不同算法的小动画 PathFinding.js (qiao.github.io) 工作空间规划 机器人有不同的形状和大小 碰撞检测需要了解机器人的几何形状,耗时且难度大 我们希望将机 ...