强化学习多臂老虎机介绍【Multi-armed Bandits】

强化学习笔记

主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门.

第一章 强化学习基本概念
第二章 贝尔曼方程
第三章 贝尔曼最优方程
第四章 值迭代和策略迭代
第五章 强化学习实践—GridWorld
第六章 蒙特卡洛方法
第七章 Robbins-Monro算法
第八章 多臂老虎机



Bandit(老虎机、赌博机)问题是强化学习领域中的一个经典问题,老虎机是一种用于赌博的机器,下拉老虎机的机械手臂,我们可以随机获得一个奖励。在赌场中,我们常常能看见很多老虎机被摆在一排,我们可以选择去下拉其中任何一只手臂,获得一个随机奖励,显然我们的目标是最大化奖励。在强化学习中我们将这种背景的问题称为多臂老虎机(Multi-armed Bandits)问题,后面缩写为abd

一、问题描述

在abd问题中,每个老虎机的奖励值 r 的分布 P ( r ∣ a ) P(r|a) P(ra)​,它对于不同的老虎机来说是不同的,但是对某一台老虎机来说是固定的。比如是10-armed bandits,那么这个问题可以建模成如下的强化学习问题:

  • 动作空间 A \mathcal{A} A 0 , 1 , 2 , ⋯   , 9. 0,1,2,\cdots,9. 0,1,2,,9.
  • 奖励:通常设置为正太分布 r i ∼ N ( q i , 1 ) , i = 0 , 1 , 2 , ⋯   , 9. r_i\sim \mathcal{N}(q_i, 1),i=0,1,2,\cdots,9. riN(qi,1)i=0,1,2,,9.
  • 状态空间:显然这个问题是一个简化的MDP,可以视为没有状态空间.

如下图所示,10个老虎机的奖励分布都是方差为1的正太分布,但是均值不同。

截屏2024-04-23 19.16.20

我们在一开始是不知道每台老虎机的奖励分布 P ( r ∣ a ) P(r|a) P(ra)(模型未知),而只能通过不断的实验和尝试来增进对分布的了解。假设我们实验n次,在每一次选择一个动作 A t ∈ A A_t\in\mathcal{A} AtA,然后得到一个奖励 R t ∼ r i R_t\sim r_i Rtri,得到如下的序列:
A 1 , R 1 , A 2 , ⋯   , A n , R n . A_1,R_1,A_2,\cdots,A_n,R_n. A1,R1,A2,,An,Rn.我们的目标是最大化累积回报:
G n = ∑ t = 1 n R t . G_n=\sum_{t=1}^{n}R_t. Gn=t=1nRt.所以关键的问题是如何学习一个策略,使得尽量多的选择回报值更高的bandit,而这里就又涉及到ExplorationExploitation的问题了。因为当n给定时,想要获得最大累积回报,是尽可能多的利用当前信息选择最优动作,还是多探索了解更多的信息呢,这也是不同算法所关心的问题。

二、动作值函数的估计

显然在abd问题中,我们需要估计 q ( s , a ) q(s,a) q(s,a),但这个问题没有 s s s,所以可以简记为 q ( a ) q(a) q(a)。通过前面介绍的Monte-calro方法(蒙特卡洛方法),我们自然地可以想到用均值 Q n ( a ) Q_n(a) Qn(a)来近似期望 q ( a ) q(a) q(a)
Q n ( a ) ≐ 在时间 n 前选择动作 a 的奖励值的总和 在时间 n 前动作 a 被选择的次数 = ∑ i = 1 n − 1 R i ⋅ 1 A i = a ∑ i = 1 n − 1 1 A i = a , Q_n(a)\doteq\frac{\text{在时间 n 前选择动作 a 的奖励值的总和}}{\text{在时间 n 前动作 a 被选择的次数}}=\frac{\sum_{i=1}^{n-1}R_i\cdot\mathbb{1}_{A_i=a}}{\sum_{i=1}^{n-1}\mathbb{1}_{A_i=a}}, Qn(a)在时间 n 前动作 a 被选择的次数在时间 n 前选择动作 a 的奖励值的总和=i=1n11Ai=ai=1n1Ri1Ai=a,其中 1 x \mathbb{1}_x 1x 的值在 x x x 为真时为 1, 否则为 0。我们来看单个老虎机的 Q n ( a ) Q_n(a) Qn(a)怎么计算:
Q n + 1 ( a ) ≐ R 1 + R 2 + ⋯ + R n n . Q_{n+1}(a)\doteq\frac{R_1+R_2+\cdots+R_{n}}{n}. Qn+1(a)nR1+R2++Rn.
由前面介绍的Robbins-Monro算法,我们知道上式可以写成迭代的格式:
Q n + 1 ( a ) = Q n ( a ) − 1 n ( Q n ( a ) − R n ) ( 1 ) Q_{n+1}(a)=Q_n(a)-\frac1n(Q_n(a)-R_n) \qquad(1) Qn+1(a)=Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值