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

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

  • 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.mzph.cn/bicheng/41365.shtml

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

相关文章

科研绘图系列:R语言点数图(dot plot)

介绍 点数图(Dot Plot)是一种数据可视化方法,它通过在坐标轴上放置点来展示数据。每个点代表一个数据项,点的位置通常对应于数据值的大小。点数图可以有效地展示多个类别或组的数值比较,使得观察者能够快速识别出哪些类别的数值较高或较低。 加载R包 library(tidyverse…

离线升级docker中的某个镜像——以etcd为例

之前有个项目的程序统一在docker中运行&#xff0c;最近在做安全检查时&#xff0c;发现docker的部分image因为版本没有更新到最新而出现安全漏洞问题。 本贴记录linux环境中&#xff0c;升级docker中某个镜像的步骤&#xff0c;详情如下&#xff1a; 一、生成镜像的步骤&…

ES集成到ambari中出现的常见问题归总

1.elasticesearch用户名组的问题 KeyError: uelasticsearch Error: Error: Unable to run the custom hook script [/usr/bin/python, /var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py, ANY, /var/lib/ambari-agent/data/command-102.json, /var/lib/amb…

Vue 邮箱登录界面

功能 模拟了纯前端的邮箱登录逻辑 还没有连接后端的发送邮件的服务 后续计划&#xff0c;再做一个邮箱、密码登录的界面 然后把这两个一块连接上后端 技术介绍 主要介绍绘制图形人机验证乃个 使用的是canvas&#xff0c;在源码里就有 界面控制主要就是用 表格、表单&#x…

常见的希腊字符及其表示方法

在 Python 中&#xff0c;可以通过使用 Unicode 字符、LaTeX 表示法或符号库&#xff08;如 SymPy&#xff09;来表示各种希腊字符。以下是常见的希腊字符及其表示方法&#xff1a; 常见的希腊字符及其 Unicode 字符名称Unicode 名称UnicodeΑAlpha (大写)GREEK CAPITAL LETT…

大量设备如何集中远程运维?用好向日葵的这几个功能很重要

当企业的业务不断发展&#xff0c;不同系统、不同用途的IT设备数量也会不断上升&#xff0c;面对不断扩张的设备规模&#xff0c;IT运维的压力自然也会陡然上升。 面对这种情况&#xff0c;传统的线下运维方式已经不再合适&#xff0c;我们需要引入一个专业的&#xff0c;可以…

SRC实战:无中生有的接口和参数

今天分享的这个漏洞怎么说呢&#xff0c;虽然也是个高危&#xff0c;但是其实挺简单的&#xff0c;一个很eazy的越权&#xff0c;但是我觉得多多少少还是有点意思吧。 0x00 这是一个移动端的应用程序&#xff0c;前面比较常规&#xff0c;模拟器 BP&#xff0c;跑了一下所有…

Linux RHEL 8.6在安装PostgreSql时提示缺少en_US.UTF-8

解释&#xff1a; 这个报错通常表示在Linux RHEL 8.6系统上&#xff0c;系统本身没有安装英文&#xff08;美国&#xff09;的UTF-8编码字符集。UTF-8是一种对Unicode字符集进行编码的方式&#xff0c;它被广泛用于支持各种语言的字符显示。 解决方法&#xff1a; 安装英文UT…

赋能心理大模型,景联文科技推出高质量心理大模型数据库

生成式大模型作为当前发展势头最为强劲的人工智能前沿技术&#xff0c;其在临床心理学领域中的创新应用已成为社会关注和医学聚焦的热点之一。 心理大模型在落地应用过程中可能面临的痛点主要包括以下几个方面&#xff1a; 数据隐私与安全&#xff1a;确保敏感的个人信息在模型…

【Java11】变量的初始化和内存中的运行机制

成员变量的初始化和内存中的运行机制 系统加载类或创建类的实例时&#xff0c;系统自动为成员变量分配内存空间&#xff0c;然后自动为成员变量指定初始值。 class Person {public String name; // 实例变量public static int eyeNum; // 类变量 }var p1 Person(); var p2 …

第9篇 区块链安全性:理解和应对常见攻击方式

亲爱的读者,欢迎来到《区块链常识:从小白到顶级行业专家》的第9章。今天,我们将一起探索区块链世界的黑暗面——安全性问题。在这个章节中,我会用最简单的语言和最生动的例子,带你了解一些常见的区块链攻击方式,并教你如何应对它们。 51%攻击 想象一下,如果你的学校里…

2024年亚太中文赛数学建模竞赛B题 洪水灾害的数据分析与预测详细思路解析

2024年亚太中文赛数学建模竞赛B题 洪水灾害的数据分析与预测详细思路解析 解题方法&#xff1a; 首先就是对数据进行数据的预处理包括缺失值和异常值处理&#xff0c;之后就是分析哪些指标与洪水的发生有着密切的关联&#xff0c;可以使用相关性分析&#xff08;建议使用斯皮尔…

什么是OSPFv2 ?

什么是OSPF ? 开放式最短路径优先 OSPF&#xff08;Open Shortest Path First&#xff09;是IETF组织开发的一个基于链路状态的内部网关协议&#xff08;Interior Gateway Protocol&#xff09;。 目前针对IPv4协议使用的是OSPF Version 2&#xff08;RFC2328&#xff09;&a…

PHP框架Symfony详解

Symfony 是一个用PHP语言编写的开放源代码的Web应用框架&#xff0c;旨在加速Web应用程序的开发过程&#xff0c;提高代码的可维护性和可扩展性。以下是对Symfony框架的详细解析&#xff1a; 一、框架概述 1. 起源与开发者 Symfony由SensioLabs&#xff08;现为Symfony公司&…

YOLO V7项目使用

YOLO V7项目使用 根据官方论文中提供的项目地址&#xff1a;使用git clone将项目下载到本地。 https://github.com/WongKinYiu/yolov7 git clone https://github.com/WongKinYiu/yolov7 使用pycharm打开项目&#xff0c;根据官方提供的requirement.txt文件下载项目启动所需要的…

Java实习手册(小白也看得懂)

秃狼说 距离俺发布的学习路线已经六个月了&#xff0c;那我给小伙伴的学习周期是四五个月左右&#xff0c;我相信大多的小伙伴已经学习的差不多了。正好赶上暑期实习的阶段&#xff0c;在暑期找到实习就成为暑期的头等大事。 实习经验在校招的起到决定性的作用&#xff0c;所…

Spring Security基本源码解析(超精细版)

一、基本源码解析 1.1 UsernamePasswordAuthenticationFilter 用户名称和密码的过滤器 浏览器发送用户名称和密码 ----》 经过过滤器「UsernamePasswordAuthenticationFitler」 1.2 UsernamePasswordAuthenticationFilter核心方法 重写父类「AbstractAuthenticationProcessing…

spring6中如何不使用@RequestParam注解

RequestParam的使用场景 RequestParam注解可以用在GET和POST请求中&#xff0c;用于指定请求路径或请求体的参数&#xff0c;通常请求格式为表单格式 什么情况下可以不使用RequestParam注解 当Controller方法的参数名与请求中的参数名一致时&#xff0c;可以不用RequestPar…

2.4章节python中字符串类型

在Python中&#xff0c;字符串&#xff08;String&#xff09;是一种基本的数据类型&#xff0c;用于表示文本信息。字符串可以包含字母、数字、标点符号或任何Unicode字符。Python中的字符串是不可变的&#xff0c;这意味着一旦创建了字符串&#xff0c;就不能更改字符串中的字…

Build a Large Language Model (From Scratch)附录D(gpt-4o翻译版)

来源&#xff1a;https://github.com/rasbt/LLMs-from-scratch?tabreadme-ov-file https://www.manning.com/books/build-a-large-language-model-from-scratch