二、从多臂老虎机看强化学习

news2024/10/5 15:02:33

二、从多臂老虎机看强化学习

  • 2.1 多臂老虎机问题
    • 2.1.1 问题定义
    • 2.2.2 问题建模
    • 2.2.3 累积懊悔
    • 2.2.4 估计期望奖励
  • 2.2 强化学习中的探索与利用平衡
  • 2.3 贪心策略
  • 2.4 上置信界算法
  • 2.5 汤普森采样算法

2.1 多臂老虎机问题

2.1.1 问题定义

  在多臂老虎机(mutil-armed bandit, MAB)问题(如图2-1)中,有一个拥有K根拉杆的老虎机,拉动每一根拉杆都对应一个关于奖励的概率分布 R R R 。每次拉动其中一根拉杆,就可以从该拉杆对应的奖励概率分布中获得一个奖励 r r r 。我们在各根拉杆的奖励概率分布未知的情况下,从头开始尝试,目标是在操作 T T T 次拉杆后获得尽可能高的累积奖励。由于奖励概率分布未知,因此需要在“探索拉杆的获奖概率”和“根据经验选择获奖多的拉杆”中进行权衡。“采用怎样的操作策略才能使获得的累积奖励最高”就是多臂老虎机问题。
在这里插入图片描述

2-1 多臂老虎机

2.2.2 问题建模

  多臂老虎机问题可建模为一个元组 ( A , R ) (\mathcal A, \mathcal R) (A,R),其中:

  • A \mathcal A A:动作集合,其中一个动作表示拉动一根拉杆,若多臂老虎机有 K K K根拉杆,则动作空间为 A = { a 1 , . . . , a i , . . . , a K } \mathcal A=\{a_1, ...,a_i,..., a_K\} A={a1,...,ai,...,aK}
  • R \mathcal R R:奖励概率分布,拉动每一根拉杆的动作 a a a 都对应一个奖励概率分布 R ( r ∣ a ) \mathcal R(r|a) R(ra),拉动不同拉杆的奖励分布通常是不同的。

  假设每个时间步只能拉动一根拉杆,多臂老虎机的目标为最大化一段时间步 T T T 内累积的奖励: m a x ∑ t = 1 T r t , r t ∼ R ( ⋅ ∣ a t ) max\sum_{t=1}^{T}r_t,r_t \sim \mathcal R(·|a_t) maxt=1Trt,rtR(at) a t a_t at 表示在第 t t t 时间步拉动某一拉杆的动作, r t r_t rt 表示动作 a t a_t at 获得的奖励。

2.2.3 累积懊悔

  对于每个动作 a a a,我们定义其期望奖励为 Q ( a ) = E r ∼ R ( ⋅ ∣ a ) [ r ] = E r ∼ P ( ⋅ ∣ a ) [ r ] Q(a)=E_{r\sim\mathcal R(·|a)}[r]=E_{r\sim \mathbb P(·|a)}[r] Q(a)=ErR(a)[r]=ErP(a)[r]。于是,至少存在一根拉杆,它的期望奖励不小于拉动其他任意一根拉杆,我们将该最有期望奖励表示为 Q ∗ = m a x a ∈ A Q ( a ) Q^* = max_{a \in \mathcal A}Q(a) Q=maxaAQ(a)
  为了方便观察拉动一根拉杆的期望奖励与最有拉杆期望奖励的差距,我们引入 懊悔(regret) 的概念,即 R ( a ) = Q ∗ − Q ( a ) R(a) = Q^*-Q(a) R(a)=QQ(a)累积懊悔(cumulative regret) 即操作 T T T 次拉杆后累积的懊悔总量,对于一次完整的 T T T 步决策 { a 1 , a 2 , . . . , a T } \{a_1,a_2,...,a_T\} {a1,a2,...,aT},累积懊悔为 σ R = ∑ t = 1 T R ( a t ) \sigma_R = \sum_{t=1}^{T}R(a_t) σR=t=1TR(at)MAB问题的目标为最大化累积奖励,也可以等价于最小化累积懊悔。

2.2.4 估计期望奖励

  为了知道拉动哪一根拉杆能获得更高的奖励,我们需要估计拉动这跟拉杆的期望奖励。由于之拉动一次拉杆获得的奖励存在随机性,所以需要多次拉动一根拉杆,然后计算得到的多次奖励的期望。算法流程如下:

$1. 对于任意 \forall a \in \mathcal A,初始化计数器 N(a)=0和奖励期望估值 Q ^ ( a ) = 0 \hat{Q}(a)=0 Q^(a)=0
2. f o r   t = 1 − > T   d o 2. {for} \ t=1->T\ do 2.for t=1>T do
   选取某根拉杆,该动作记为  a t 选取某根拉杆,该动作记为\ a_t 选取某根拉杆,该动作记为 at
   得到奖励  r t 得到奖励\ r_t 得到奖励 rt
   更新计数器: N ( a t ) = N ( a t ) + 1 更新计数器:N(a_t)=N(a_t)+1 更新计数器:N(at)=N(at)+1
   更新期望奖励估值: Q ^ ( a t ) = Q ^ ( a t ) + 1 N ( a t ) [ r t − Q ^ ( a t ) ] 更新期望奖励估值:\hat{Q}(a_t)=\hat{Q}(a_t)+\frac{1}{N(a_t)}[r_t-\hat{Q}(a_t)] 更新期望奖励估值:Q^(at)=Q^(at)+N(at)1[rtQ^(at)]
e n d   f o r end\ for end for

推导:
   Q ( n + 1 ) ( a t ) = 1 n ∑ t = 1 n ( r n + n − 1 n − 1 ∑ t = 1 n − 1 r t ) = 1 n r n + n − 1 n Q n ( a t ) + 1 n ( r n − Q n ) Q_{(n+1)}(a_t)=\frac{1}{n}\sum_{t=1}^{n}(r_n+\frac{n-1}{n-1}\sum_{t=1}^{n-1}r_t)=\frac{1}{n}r_n+\frac{n-1}{n}Q_n(a_t)+\frac{1}{n}(r_n-Q_n) Q(n+1)(at)=n1t=1n(rn+n1n1t=1n1rt)=n1rn+nn1Qn(at)+n1(rnQn)

  其中, r n − Q n r_n-Q_n rnQn表示为误差项 Δ n t \Delta_{n}^{t} Δnt.

2.2 强化学习中的探索与利用平衡

2.3 贪心策略

  贪心策略:
Q ( a i ) = 1 N ( a i ) ∑ t = 1 T r t ⋅ 1 ( a t = a i ) Q(a_i)=\frac{1}{N(a_i)}\sum_{t=1}^{T}r_t · 1(a_t=a_i) Q(ai)=N(ai)1t=1Trt1(at=ai)

|
|
\/

a ∗ = a r g   m a x   Q ( a i ) a^*=arg\ max\ Q(a_i) a=arg max Q(ai) σ R ∝ T ⋅ [ Q ( a i ) − Q ∗ ] \sigma_R\propto T · [Q(a_i)-Q^*] σRT[Q(ai)Q]

  累积懊悔线性增长。
   ϵ \epsilon ϵ-greedy策略:
a t = { a r g   m a x a   Q ^ ( a ) ,采样概率: 1 − ϵ U ( 0 , ∣ A ∣ ) ,采样概率: ϵ a_t= \begin{cases}arg\ \mathop{max}\limits_{a}\ \hat{Q}(a), 采样概率:1- \epsilon\\ U(0,|\mathcal{A}|),采样概率:\epsilon \end{cases} at={arg amax Q^(a),采样概率:1ϵU(0A),采样概率:ϵ

  常量 ϵ \epsilon ϵ 保证累积懊悔满足:
σ R ≥ ϵ ∣ A ∣ ∑ a ∈ A Δ a \sigma_R \geq \frac{\epsilon}{\mathcal{|A|}} \sum_{a \in \mathcal{A}}\Delta a σRAϵaAΔa
  累积懊悔仍然是线性增长,但是增长率小于贪心策略。

2.4 上置信界算法

  设想这样一种情况:对于一台双臂老虎机,其中一根拉杆只被拉动过一次,得到的奖励为0;第二根拉杆被拉动过很多次,我们对他的奖励分布已经有了大致的把握。这时你会怎么做?或许你会进一步尝试拉动地一根拉杆,从而更加确定其奖励分布。这种思路主要是基于不确定性,因为此时第一根拉杆只被拉动过一次,它的不确定性很高。一根拉杆的不确定性越大,它探索的价值就越大,他就越具有探索的价值,因为探索之后我们可能发现它的期望奖励很大。我们在此引入不确定性度量 U ( a ) U(a) U(a),它会随着一个动作尝试次数的增加而减小,我们可以使用一种基于不确定性的策略来综合考虑现有的期望奖励估值和不确定性,其核心问题是如何确立不确定性。

   上置信界(upper confidence bound. UCB) 算法是一种经典的基于不确定性的策略算法。他的思想用到了一个著名的数学原理:霍夫丁不等式(Hoeffding’s inequality)。在霍夫丁不等式中,令 X 1 , . . . , X n X_1,..., X_n X1,...,Xn n n n 个独立同分布的随机变量,取值范围为[0, 1],其经验期望为 x n − = 1 n ∑ j = 1 n X j \mathop{x_n}\limits^{-} = \frac{1}{n}\sum_{j=1}^{n}X_j xn=n1j=1nXj,则有
P ( E [ X ] ≥ x n − + u ) ≤ e − 2 n u 2 \mathbb{P}(E[X]\geq \mathop{x_n}\limits^{-}+u)\leq e^{-2nu^2} P(E[X]xn+u)e2nu2

   假设我们将霍夫丁不等式运用到多臂老虎机问题中。将 Q ˆ ( a t ) \^Q(a_t) Qˆ(at) 代入 x t − \mathop{x_t}\limits^{-} xt,不等式中的参数 u = U ˆ ( a t ) u=\^U(a_t) u=Uˆ(at) 代表不切定性度量。给定一个概率 e − 2 N ( a t ) U ( a t ) 2 e^{-2N(a_t)U(a_t)^2} e2N(at)U(at)2 ,根据上述不等式, Q ( a t ) < Q ˆ ( a t ) + U ˆ ( a t ) Q(a_t)<\^Q(a_t)+\^U(a_t) Q(at)<Qˆ(at)+Uˆ(at) 至少以 1 − p 1-p 1p 成立。当 p p p 很小时, Q ( a t ) < Q ˆ ( a t ) + U ˆ ( a t ) Q(a_t)<\^Q(a_t)+\^U(a_t) Q(at)<Qˆ(at)+Uˆ(at) 就以很大的概率成立。 Q ˆ ( a t ) + U ˆ ( a t ) \^Q(a_t)+\^U(a_t) Qˆ(at)+Uˆ(at) 便是奖励的上界。此时,上置信界算法便选取期望奖励上界最大的动作,即 a t = a r g   m a x a ∈ A [ Q ˆ ( a ) + U ˆ ( a ) ] a_t = arg\ max_{a\in A}[\^Q(a)+\^U(a)] at=arg maxaA[Qˆ(a)+Uˆ(a)]。根据等式 p = e − 2 N ( a t ) U ( a t ) 2 p=e^{-2N(a_t)U(a_t)^2} p=e2N(at)U(at)2 可知 U ˆ ( a t ) = − l o g   p 2 N ( a t ) \^U(a_t) = \sqrt{\frac{-log\ p}{2N(a_t)}} Uˆ(at)=2N(at)log p 。因此设定概率 p p p 后就可以计算相应的不确定性度量 U ˆ ( a t ) \^U(a_t) Uˆ(at)

2.5 汤普森采样算法

   MAB中还有一种经典算法——汤普森采样(Thompson sampling),先假设拉动每根拉杆的奖励服从一个特定的概率分布,然后根据拉动每根拉杆的期望奖励来进行选择。但是由于计算所有拉杆的期望奖励的代价比较高,汤普森采样算法使用采样的方式,即根据当前每个动作 a a a 的奖励概率分布进行一轮采样,得到一组各根拉杆的奖励样本,再选择样本中奖励最大的动作。可以看出,汤普森采样是一种计算所有拉杆的最高奖励概率的蒙特卡洛采样方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1901366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux 服务器数据备份 和 mysql 数据迁移

查看域名ip 查看程序所处文件位置 list open files 1、 lsof -i :port 查看端口获取进程 pid 2、lsof -i pid 1、scp 下载服务器文件到本地 security copy protocol 2、导出服务器 mysql 数据库&#xff08;表&#xff09;到本地 mysqldump是MySQL自带的一个实用程序&…

半同步主从复制

半同步主从复制的概念 半同步主从复制&#xff08;Semisynchronous Replication, SBR&#xff09;是MySQL数据库中的一种数据复制方式&#xff0c;它在异步复制的基础上增加了一定程度的同步性&#xff0c;旨在提高数据安全性&#xff0c;减少数据丢失的风险。 半同步主从复制…

Facebook群发消息API接口的申请流程详解!

Facebook 群发消息api接口如何集成&#xff1f;怎么使用API接口&#xff1f; 在现代社交媒体营销中&#xff0c;群发消息是与客户保持互动的重要工具。Facebook群发消息API接口提供了一种有效的方法来实现这一目标。本文将详细介绍如何申请Facebook群发消息API接口的具体步骤和…

51单片机基础10——串口实验

串口实验 51单片机串口实验1. 软硬件条件2. 串口实验2.1 单片机与PC 发送字符2.1.1 效果2.1.2 代码2.1.3 优化 2.3 串口接收数据(指令控制单片机)2.3.1 非中断方式实现2.3.2 中断方式实现 51单片机串口实验 1. 软硬件条件 单片机型号&#xff1a;STC89C52RC开发环境&#xff…

【微信小程序开发】小程序更新、页面生命周期、用户信息获取应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

小白 | Linux安装python3

一、更新包列表 首先&#xff0c;确保你的包管理器是最新的&#xff1a; sudo apt update 二、安装 Python 3 安装 Python 3 以及常用的开发工具 sudo apt install python3 python3-pip python3-venv 三、验证安装 python3 --version

GlusterFS分布式存储系统

GlusterFS分布式存储系统 一&#xff0c;分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理&#xff0c;存储数据&#xff0c;而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长&#xff0c;单纯通过增加硬盘个数来扩展计算机文件系统的存储…

Apache Seata应用侧启动过程剖析——RM TM如何与TC建立连接

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata应用侧启动过程剖析——RM & TM如何与TC建立连接 前言 看过官网 README 的第…

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样&#xff0c;通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样&#xff0c; 继续使用Fashion-MNIST数据集&#xff0c;并保持批量大小为256。 import torch from torc…

【vue组件库搭建04】使用vitepress搭建站点并部署到github

前言 基于vitePress搭建文档站点&#xff0c;使用github pages进行部署 安装VitePress 1.Node.js 18 及以上版本 2.npm add -D vitepress 3.npx vitepress init 4.将需要回答几个简单的问题&#xff1a; ┌ Welcome to VitePress! │ ◇ Where should VitePress initi…

ROS 2官方文档(基于humble版本)学习笔记(四)

ROS 2官方文档&#xff08;基于humble版本&#xff09;学习笔记&#xff08;四&#xff09; 2.客户端库使用colcon构建包&#xff08;package&#xff09;创建工作空间&#xff08;workspace&#xff09;构建工作空间执行测试&#xff08;tests&#xff09;导入环境&#xff08…

Java项目:基于SSM框架实现的会员积分管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的会员积分管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

springcloud-alibba之FeignClient

代码地址&#xff1a;springcloud系列: springcloud 组件分析拆解 1.FeignClient的集成 springboot版本&#xff1a;3.1.5 springcloud组件版本&#xff1a;2022.0.4 nacos客户端的版本&#xff1a;2.3.2 1.引pom 这里引入了nacos和feginclient的版本 <dependency>…

moonlight+sunshine+ParsecVDisplay ipad8-windows 局域网串流

1.sunshine PC 安装 2.设置任意账户密码登录 3.setting 里 network启用UPNP IPV4IPV6 save apply 4.ParsecVDisplay虚拟显示器安装 5.ipad appstore download moonlight 6.以ipad 8 为例 2160*1620屏幕分辨率 7.ParsecVDisplay里面 custom设置2160*1620 240hz&#xff0c;…

org.springframework.jdbc.BadSqlGrammarException异常

Bug 记录 概述 在执行定时任务更新电子书统计信息时&#xff0c;遇到了 org.springframework.jdbc.BadSqlGrammarException 异常&#xff0c;具体表现为 SQL 函数 count 被错误地解析为自定义函数 wiki.count&#xff0c;导致数据库更新操作失败。 详细描述 错误信息&#x…

本地部署到服务器上的资源路径问题

本地部署到服务器上的资源路径问题 服务器端的源代码的静态资源目录层级 当使用Thymeleaf时&#xff0c;在templates的目录下为返回的html页面&#xff0c;下面以两个例子解释当将代码部署到tomcat时访问资源的路径配置问题 例子一 index.html&#xff08;在templates的根目录…

【算法专题】双指针算法

1. 移动零 题目分析 对于这类数组分块的问题&#xff0c;我们应该首先想到用双指针的思路来进行处理&#xff0c;因为数组可以通过下标进行访问&#xff0c;所以说我们不用真的定义指针&#xff0c;用下标即可。比如本题就要求将数组划分为零区域和非零区域&#xff0c;我们不…

JavaScript-websocket的基本使用

JavaScript-websocket的基本使用 文章说明JavaScript端后台--服务端连接演示 文章说明 本文主要介绍JavaScript中websocket的基本使用&#xff0c;后台采用Java编写WebSocket服务端 JavaScript端 websocket工具类 class Socket {constructor(url, onopen, onmessage, onerror, …

【C++:类的基础认识和this指针】

C的类与C语言的struct结构体有啥区别&#xff1f; 默认的访问限定符不同 类的简要 关键字&#xff1a;class{}里面是类的主体&#xff0c;特别注意&#xff1a;{}后面的&#xff1b;不可以省略类中的变量叫做成员变量&#xff0c;类中的函数叫做成员函数类中访问有三种访问权限…

第十四届蓝桥杯省赛C++B组G题【子串简写】题解(AC)

题目大意 给定字符串 s s s&#xff0c;字符 a , b a, b a,b&#xff0c;问字符串 s s s 中有多少个 a a a 开头 b b b 结尾的子串。 解题思路 20pts 使用二重循环枚举左端点和右端点&#xff0c;判断是否为 a a a 开头 b b b 结尾的字符串&#xff0c;是则答案加一…