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 估计期望奖励

  • 算法流程如下:

  • 更新的期望公式解释如下:
\[\begin{aligned}
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\), 我们有:

\[\mathbb{P}(\mathbb{E}[X]\geqslant \bar{x}_n+u)\leqslant e^{-2nu^2}
\]
  • \(\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问题)的更多相关文章

  1. 【SAP BO】【WEBI】【转】Webi实现动态选择度量

    我们都知道Web Intelligence具有高级的分析功能,是一个非常灵活的报表工具.在这篇文章里,我会演示一个使用Webi实现动态选择度量对象的方案.首先解释一下什么是”动态选择度量”:例如我们有 ...

  2. 深入理解HTML5:语义、标准与样式(勇猛精进早登大师殿堂创最优品质交互)

    深入理解HTML5:语义.标准与样式(勇猛精进早登大师殿堂创最优品质交互) [美]布拉德福(Bradford,A.) [美]海涅(Haine,P.)著 高京译 ISBN 978-7-121-20552 ...

  3. [译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量

    原文地址:All you need to know to really understand the Node.js Event Loop and its Metrics 原文作者:Daniel Kh ...

  4. UED视觉交互设计与流程介绍

    UED视觉交互设计与流程介绍 ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, ...

  5. PowerBI开发 第五篇:关系和交互

    PowerBI 使用 内存的列式数据库 VertiPaq,用于对已发布的数据集进行数据压缩和快速处理,能够使PowerBI报表执行脱机访问,面向列的处理,高度优化对1:N关系的处理性能.关系是数据分析 ...

  6. expect实现自动分发密钥、网站度量术语

    1.优化ssh命令 sed -ir '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\n UseDNS no\nGSSAPIAu ...

  7. 10、Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking-----基于记忆注意的潜在关系度量协同排序

    一.摘要: 本文模型 LRML(潜在相关度量学习)是一种新的度量学习方法的推荐.[旨在学习用户和项目之间的相关关系,而不是简单的用户和项目之间的push和pull关系,push和pull主要针对LMN ...

  8. HTML入门(列表、表单、常用表单控件、浮动框架、iframe、 摘要与细节、度量标签)

    一.列表 1.作用:默认显示方式为从上到下的显示数据 2.列表的组成 列表类型和列表项 3.列表的分类:有序列表   无序列表   自定义列表 无序列表语法为ul>li, 语法:ul代表列表,l ...

  9. Sublime Text3配置在可交互环境下运行python快捷键

    安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...

  10. JS与APP原生控件交互

    "热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...

随机推荐

  1. 1007acm 感想

    代码是抄的 代码在 discuss里面 注释是思路, 简单的讲就是先把近的点放在一起然后看周围6个点的距离最近的值 #include <cstdio> using namespace st ...

  2. paraview 导出表面网格

    简介 RT 步骤 如下所示 然后save data即可

  3. linu想递归改名

    简介 rt 参考链接 https://www.cnblogs.com/adong7639/p/10529168.html 推荐命令 find ./ -name "*.h" | aw ...

  4. Day3 备战CCF-CSP练习

    Day3 题目描述 目前在一个很大的平面房间里有 \(n\) 个无线路由器,每个无线路由器都固定在某个点上. 任何两个无线路由器只要距离不超过 \(r\) 就能互相建立网络连接. 除此以外,另有 \( ...

  5. inux中设置固定ip(亲测有效)-九五小庞

    首先打开虚拟机 打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定) 输入ifconfig,可以查看网管相关配置信息: 然后输入 vi /etc/sysconfig/n ...

  6. 信号处理__FFT变换

    目录 什么是FFT 什么是傅里叶变换 FFT的过程 单侧FFT代码 什么是FFT 快速理解FFT FFT与卷积(慎入) FFT(fast Fourier transform),即快速傅里叶变换 多项式 ...

  7. 我的代码出现幻觉?说好的a = 1; x = b,怎么成了x = b; a = 1?

    有序性:代码执行的幻觉 前面讲到通过缓存一致性协议,来保障共享变量的可见性.那么是否还有其他情况,导致对共享变量操作不符合预期结果.可以看下面的代码: private int a, b; privat ...

  8. 转-Java 异常处理的 20 个最佳实践,你知道几个?

    ‍ 作 者:武培轩 出 处:https://www.cnblogs.com/wupeixuan 原文链接:https://www.cnblogs.com/wupeixuan/p/11746117.ht ...

  9. 安卓APP导出

    直接从项目中运行生成的 app-debug.apk 是用一个临时的调试密钥签名的,很多手机会因为安全策略而拒绝安装,或者在安装时给出更强的安全警告. 为什么需要签名? 给App签名主要有三个目的: 身 ...

  10. 1.基于搜索的路径规划:BFS、DFS、Dijkstra、A*、JPS

    1.概览 可以对比不同算法的小动画 PathFinding.js (qiao.github.io) 工作空间规划 机器人有不同的形状和大小 碰撞检测需要了解机器人的几何形状,耗时且难度大 我们希望将机 ...