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

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

  • 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.rhkb.cn/news/369368.html

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

相关文章

深度神经网络语言识别

「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 使用 DNN 和字符 n-gram 对一段文本的语言进行分类&#xff08;附 Python 代码&#xff09; 资料来源&#xff0c;flaticon&#xff1a;htt…

开发一套java语言的智能导诊需要什么技术?java+ springboot+ mysql+ IDEA互联网智能3D导诊系统源码

开发一套java语言的智能导诊需要什么技术&#xff1f;java springboot mysql IDEA互联网智能3D导诊系统源码 医院导诊系统是一种基于互联网和3D人体的智能化服务系统&#xff0c;旨在为患者提供精准、便捷的医院就诊咨询服务。该系统整合了医院的各种医疗服务资&#xff1b;智慧…

20.【C语言】初识结构体(重要)

定义&#xff1a;由一批数据组合而成的结构型数据 作用&#xff1a;描述复杂对象&#xff0c;创建新的类型 格式&#xff1a; struct 对象 { …… } 介绍. 用法&#xff1a;结构体变量.成员变量 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> struct hotal…

nuxt、vue树形图d3.js

直接上代码 //安装 npm i d3 --save<template><div class"d3"><div :id"id" class"d3-content"></div></div> </template> <script> import * as d3 from "d3";export default {props: {d…

Facebook广告被拒:常见原因以及避免屏蔽的方法

大多数情况下&#xff0c;广告被屏蔽是因为违反了规则&#xff0c;这不仅仅是因为审核因素。有些规则并不明显&#xff0c;也没有在任何地方指定。例如&#xff0c;在广告中使用广告政策中未列出的停用词&#xff1b;审核算法确定照片描绘的模特过于暴露。下面小编将为你介绍Fa…

NET程序开发可能会用到的一些资料文档

NET程序开发使用的一些资料文件&#xff0c;NET高级调试&#xff0c;NET关键技术深入解析&#xff0c;WPF专业编程指南&#xff0c;程序员求职攻略&#xff0c;WPF编程宝典等。 下载链接&#xff1a;https://download.csdn.net/download/qq_43307934/89518582

【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(1)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

带安全启动—Ubuntu系统—手动安装Nvidia驱动

教程1&#xff1a;在启用安全启动的 Fedora 中安装英伟达驱动 教程2&#xff1a;UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动 1. 搜索合适的驱动 Nvidia驱动官网 选择这个 驱动(.run)链接 2. 安装必要的软件依赖 CUDA底层用C写的&#xff0c;因此导入编译器 sudo apt i…

RabbitMQ入门教程(精细版二带图)

目录 六 RabbitMQ工作模式 6.1Hello World简单模式 6.1.1 什么是简单模式 6.1.2 RabbitMQ管理界面操作 6.1.3 生产者代码 6.1.4 消费者代码 6.2 Work queues工作队列模式 6.2.1 什么是工作队列模式 6.2.2 RabbitMQ管理界面操作 6.2.3 生产者代码 6.2.4 消费者代码 …

【hive】数据采样

参考https://hadoopsters.com/how-random-sampling-in-hive-works-and-how-to-use-it-7cdb975aa8e2&#xff0c;可以直接查看原文&#xff0c;下面只是对原文进行概括和实际性能测试。 1.distribute by sort by2.测试3.map端数据过滤优化采样 在说数据采样之前&#xff0c;需要…

浅析基于量子成像的下一代甚高灵敏度图像传感器技术

高灵敏度探测成像是空间遥感应用中的一个重要技术领域&#xff0c;如全天时对地观测、空间暗弱目标跟踪识别等应用&#xff0c;对于甚高灵敏度图像传感器的需求日益强烈。随着固态图像传感器技术水平的不断提高&#xff0c;尤其背照式及埋沟道等工艺的突破&#xff0c;使得固态…

2021-06-15 protues(ISIS)脉冲发生器仿真仪表使用

缘由这个脉冲发生器怎么连线_编程语言-CSDN问答

【C++】 解决 C++ 语言报错:Invalid Cast

文章目录 引言 无效类型转换&#xff08;Invalid Cast&#xff09;是 C 编程中常见且严重的错误之一。当程序试图进行不合法或不安全的类型转换时&#xff0c;就会发生无效类型转换错误。这种错误不仅会导致程序崩溃&#xff0c;还可能引发不可预测的行为。本文将深入探讨无效…

利用MATLAB绘制傅里叶变换后的图形

题目如下&#xff0c;其中周期是 2 π 2\pi 2π y { 1 0 < x < π 0 x 0 − 1 − π < x < 0 y\begin{cases} 1 \ 0<x<\pi\\ 0 \ x0\\ -1 \ -\pi <x<0\\ \end{cases} y⎩ ⎨ ⎧​1 0<x<π0 x0−1 −π<x<0​ 计算可得 a n 1 π ∫ −…

CNN文献综述

卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称CNN&#xff09;是深度学习领域中的一种重要模型&#xff0c;主要用于图像识别和计算机视觉任务。其设计灵感来自于生物学中视觉皮层的工作原理&#xff0c;能够高效地处理图像和语音等数据。 基本原理…

VPSA制氧设备在不同行业的应用解析

VPSA制氧设备以其独特的吸附原理&#xff0c;能够在穿透大气压的条件下&#xff0c;通过专用的分子筛选择性吸附空气中的氮气、二氧化碳和水等杂质&#xff0c;从而制得纯度较高的氧气。本文将探讨VPSA制氧设备在不同行业中的应用及其重要性。 一、钢铁行业 在钢铁行业中&#…

JVM线上监控环境搭建Grafana+Prometheus+Micrometer

架构图 一: SpringBoot自带监控Actuator SpringBoot自带监控功能Actuator&#xff0c;可以帮助实现对程序内部运行情况监控&#xff0c;比如监控内存状况、CPU、Bean加载情况、配置属性、日志信息、线程情况等。 使用步骤&#xff1a; 1. 导入依赖坐标 <dependency><…

实验三 图像增强—灰度变换

一、实验目的&#xff1a; 1、了解图像增强的目的及意义&#xff0c;加深对图像增强的感性认识&#xff0c;巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身&#xff0c;在空…

工作助手VB开发笔记(2)

今天继续讲功能 2.功能 2.9开机自启 设置程序随windows系统启动&#xff0c;其实就是就是将程序加载到注册表 Public Sub StartRunRegHKLM()REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ RunDim strName As String Applicat…

Netty学习(NIO基础)

NIO基础 三大组件 Channel and Buffer 常用的只有ByteBuffer Selector&#xff08;选择器&#xff09; 结合服务器的设计演化来理解Selector 多线程版设计 最早在nio设计出现前服务端程序的设计是多线程版设计,即一个客户端对应一个socket连接,一个连接用一个线程处理,每…