一、前言

强化学习系列(一):强化学习简介中我们介绍了强化学习的基本思想,和工作过程,我们提到了强化学习的一大矛盾:平衡Exploration and Exploitation。本章我们以Multi-armed Bandits(多臂老虎机问题)为例子,简单介绍一下针对该问题的Exploration and Exploitation平衡方法。

二、问题描述

想想一下你可以重复一个选择过程,每次有k个选项或动作可供选择,每次选择一个动作后会获得相应的奖励。你的目标是为了最大化k次后的奖励。这个抽象模型缘起与赌场中的Multi-armed bandits(多臂老虎机),其中 arm 指的是老虎机(slot machine)的拉杆,bandit 是多个拉杆的集合 bandit=arm1,arm2,……,armkbandit=arm1,arm2,……,armkbandit = {arm_1, arm_2,……,arm_k}。
假设 t 时刻我们选择动作为AtAtA_t, 对应的奖励为RtRtR_t, 则 t 时刻的任意action a 的期望奖励(value)可以表示为
q∗(a)=E[Rt|At=a]q∗(a)=E[Rt|At=a]q_*(a)=E[R_t|A_t=a]
如果我们知道每个action对应的value,那么我们只需要每次都选择最高的那个value对应的action即可,但事实却是我们在玩老虎机之前,不知道每个action确切的value,我们可以通过多次测试来估计每个action的value,将t 时刻的action a对应的估计价值(estimated value) 记作 Qt(a)Qt(a)Q_t(a) ,我们的目标是使得 Qt(a)Qt(a)Q_t(a)尽可能的接近q∗(a)q∗(a)q_*(a),然后根据Qt(a)Qt(a)Q_t(a)选择 a.

三、Action-value function

3.1 sample-average方法

最简单的value 估计方式就是sample-average(采样平均),即
Qt(a)≐sum of rewards when a taken prior to tnumber of times a taken prior to t=∑t−1i=1Ri⋅lAi=a∑t−1i=1lAi=aQt(a)≐sumofrewardswhenatakenpriortotnumberoftimesatakenpriortot=∑i=1t−1Ri⋅lAi=a∑i=1t−1lAi=aQ_t(a)\doteq \frac{sum\ of \ rewards\ when\ a\ taken\ prior\ to \ t}{number\ of \ times\ a\ taken\ prior\ to \ t}=\frac{\sum_{i=1}^{t-1} {R_i\cdot l_{A_i=a}}}{\sum_{i=1}^{t-1} {l_{A_i=a}}}
其中,
lpredicate={1,0,predicate is trueotherwiselpredicate={1,predicateistrue0,otherwisel_{predicate}= \begin{cases} 1, & predicate \ is\ true\\ 0, & otherwise \end{cases}
通过增加实验次数,当实验次数趋于无穷大时,Qt(a)Qt(a)Q_t(a) 趋于 $q_*(a),这种方法称为sample-average

3.2 greedy 与 ϵϵ \epsilon-greedy

greedy方法:

如果我们每次都选择最大value对应的action,即

At≐argmaxaQt(a)At≐argmaxaQt(a)A_t\doteq {argmax}_aQ_t(a)

那么我们采取的是greedy policy,也就是我们将 Exploitation 运用到了极致,我们只关注我们可以获得的信息中的最优解,但没有对环境进行探索。有时候,当前最优是短期最优,在长远角度看来并不是最优,所以需要对环境进行探索。

ϵϵ \epsilon-greedy:

如果我们会在一些时间内选择最大value对应action外的其他action,则表明我们对环境进行了Exploration。ϵϵ \epsilon-greedy方法在greedy方法基础上进行改进:

At={argmaxaQt(a),a′(is different from argmaxaQt(a)),1−ϵϵAt={argmaxaQt(a),1−ϵa′(isdifferentfromargmaxaQt(a)),ϵA_t = \begin{cases} argmax_aQ_t(a), & 1-\epsilon\\ a' ( is \ different \ from\ argmax_aQ_t(a)), & \epsilon \end{cases}

入一个小的变量 ε,每次选择actions时,以ϵϵ \epsilon的概率选择最大value对应action之外的action a’,以1−ϵ1−ϵ 1-\epsilon的概率选择最大value对应的action a.

四、Incremental Implementation(增量式实现)

上一节介绍的sample average方法是将所有的历史信息全部记录下来然后求平均,如果历史记忆很长,甚至无限,那么直接求解将受到内存和运行时间的限制。下面将结合数学中的迭代思想推导出增量式的求解方法,该方法仅耗费固定大小的内存,且可以单步更新。
为了简化表达,我们只关注一个action,假设RiRiR_i是第 i 次选择这个action所获得的reward, 将这个action第n 次被选择的estimate value表示为Qn+1Qn+1Q_{n+1},

这样每次只需要存储 QnQnQ_n和n,就可以算出新的reward。这种方式称为增量式求解,伪代码如下:

上述过程可以简写为:
NewEstimate←OldEstimate+StepSize [Target–OldEstimate]NewEstimate←OldEstimate+StepSize[Target–OldEstimate]NewEstimate \leftarrow OldEstimate + StepSize\ [Target – OldEstimate]

五、针对非固定性问题

前面讨论的问题是一个不变的问题,即bandits所获得的reward每次都变化不大,但是如果bandits随着时间不断变化,即他所获得的reward变化较大,那么我们需要增加当前的reward的权重,以表示我们对当前reward影响的重视。

一种常用的方式是固定stepsize为αα\alpha(0,1],这样更新公式表示为

其中,(1−a)n+∑ni=1α(1−α)n−i=1(1−a)n+∑i=1nα(1−α)n−i=1(1-a)^n + \sum_{i=1}^n\alpha(1-\alpha)^{n-i} = 1,是一种加权平均法( weighted averaged),α(1−α)n−iα(1−α)n−i\alpha(1-\alpha)^{n-i}作为一个reward RiRiR_i第n-i 次被观测到的权重,其中 1−α<11−α<11-\alpha ,因此i 越大 RiRiR_i的权重越大,这种更新方式被称作exponential recency-weighted average。

六、最优化初始值

上述方法都依赖于初始动作价值 Q1(a)Q1(a)Q_1(a),在静态分析中叫做偏置(biased),sample-average的偏置随着每个action至少被选择了一次而消失,而加权平均方法中的偏置随着实验次数的增加而减小。在实际应用中,偏置常常很有用,不仅可以用于提供关于reward的先验知识,也可以作为一种提升探索率的简单方法。
以10-armed testbed 的问题为例,如果所有的Q1(a)=0Q1(a)=0Q_1(a)=0,第一个被随机选择的action只要回报不是0一定会成为其中的 greedy action,假如我们另所有Q1(a)=5Q1(a)=5Q_1(a)=5,若初始选择的action的回报小于5则它的估计值就会降低,从而促进算法进行explore的过程。
这种小技巧通常叫做 optimistic initial values,因为他对exploration的驱动是短期且固有的,如果任务改变,会对exploration有新的需求,这个方法将不再适用,所以不能广泛应用于非固定性问题中。

七、Upper-Condience-Bound动作选取

上文提到了ϵϵ \epsilon-greedy在随机选择action时无差别的对待每个action,如果在随机选择action时考虑每个action的隐含属性有利于找到最优action。这种隐含属性一般包括与最大值的接近度,以及估计错误率。常用的一种动作选取方法是Upper-Condience-Bound方法:
At≐argmaxa[Qt(a)+clntNt(a)‾‾‾‾‾√]At≐argmaxa[Qt(a)+cln⁡tNt(a)]A_t\doteq {argmax}_a[Q_t(a)+c\sqrt{\frac{\ln t}{N_t(a)}}]
其中,lntln⁡t\ln t 表示时间 t的自然对数,Nt(a)Nt(a)N_t(a)表示从开始到 t 时刻内选择动作 a 的次数,c>0c>0c>0 用于控制探索率,当Nt(a)=0Nt(a)=0N_t(a)=0时,a 表示最优动作。

在10-arm testbed 问题中,比 ϵϵ \epsilon-greedy表现好,但和 ϵϵ \epsilon-greedy 相比,UCB不容易扩展到一般强化学习中,因为该方法有两个局限性:

  • 解决不确定性问题比较难
  • 不适用于状态空间较大的问题,尤其是使用逼近函数的问题中

(10-arm testbed问题描述:假设这里有2000个随机产生的k-arm bandit(k个摇臂的老虎机)问题,此处k=10。对每一个老虎机问题,可以按照均值为0 方差为1 的高斯分布选择10个不同的动作a。当运用学习方法在 t 时刻选择一个动作AtAtA_t,真实reward RtRtR_t符合均值为q∗(At)q∗(At)q*(A_t)(action values) 方差为1 的分布。)

八、Gradient Bendit Algorithms

我们说到可以通过估计价值函数来选择action,但这并不是唯一的方法,本节我们介绍一种通过偏好Ht(a)Ht(a)H_t(a)来选取action的方法Gradient Bendit Algorithms,偏好越大,越常选择。偏好和reward直接没有直接关系,偏好通过相对大小影响action的选择概率:

其中,πt(a)πt(a)\pi_t(a)表示t时刻选择action a 的概率。
这种算法通常用随机梯度下降实现:

九、总结

我们介绍了四种用于平衡 Exploration 和 Exploitation的方法:

  • ϵϵ \epsilon-greedy (在强化学习中应用广泛)
  • UCB方法(通过增加出现次数少的action的选择概率来增强Exploration,UCB不容易扩展到一般强化学习中)
  • Gradient Bendit Algorithms(不依据价值估计来选取动作,通过action偏好来选择action)
  • 优化初始值(不能用于非固定性问题中)

Reinforcement Learning: an introduction

强化学习系列(二):Multi-armed Bandits(多臂老虎机问题)相关推荐

  1. 强化学习系列文章(二十七):VPG+Beta分布在CartPoleContinuous环境中的应用

    强化学习系列文章(二十七):VPG+Beta分布在CartPoleContinuous环境中的应用 在第七篇笔记(https://blog.csdn.net/hhy_csdn/article/deta ...

  2. 强化学习系列文章(二十三):AirSim Python API图像与图像处理

    强化学习系列文章(二十三):AirSim Python API图像与图像处理 参考网址:https://microsoft.github.io/AirSim/image_apis/#segmentat ...

  3. 强化学习系列文章(二十八):进化强化学习EvoRL的预实验

    强化学习系列文章(二十八):进化强化学习EvoRL的预实验 最近在研究强化学习解决离散空间的组合优化问题时,接触到了很多进化算法,实际体验也是与RL算法不相上下.进化算法也常用于优化神经网络的参数,C ...

  4. 强化学习系列(五):蒙特卡罗方法(Monte Carlo)

    一.前言 在强化学习系列(四):动态规划中,我们介绍了采用DP (动态规划)方法求解environment model 已知的MDP(马尔科夫决策过程),那么当environment model信息不 ...

  5. 强化学习系列(一):强化学习简介

    一.强化学习是什么? 首先,我们思考一下学习本身,当一个婴儿在玩耍时可能会挥舞双手,左看右看,没有人来指导他的行为,但是他和外界直接通过了感官进行连接.感知给他传递了外界的各种信息,包括知识等.学习的 ...

  6. 强化学习系列之翻译OpenAI用户手册(一)

    强化学习系列文章 第一章 强化学习入门 第二章 翻译OpenAI用户手册(一) 第三章 翻译OpenAI用户手册(二) 第四章 翻译OpenAI用户手册(三) 目录 用户手册 1.简介 1.1 这是什 ...

  7. 强化学习系列(十三):Policy Gradient Methods

    这是PG的基础篇,在深度强化学习系列中,有结合例子和监督学习的深刻理解PG的进阶篇. 一.前言 之前我们讨论的所有问题都是先学习action value,再根据所得的action value 来选择a ...

  8. 强化学习(二)—— 价值学习(Value-Based)及DQN

    强化学习(二)-- 价值学习(Value-Based)及DQN 1. DQN介绍 2. TD算法介绍 3. 案例 1. DQN介绍 Deep Q Network 目标:最大化累计奖励(回报U) 通过神 ...

  9. 深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现

    深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 文章目录 深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 前言 理论 什么是Q-Learning 算 ...

  10. 图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)

    图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...

最新文章

  1. json-lib解决死循环
  2. 【机器视觉】 measure_thresh算子
  3. 阿里云云效功能升级,支持快速创建多个应用的独立测试环境
  4. git bash卡顿解决
  5. c/c++整理--c++面向对象(1)
  6. eclipse技巧总结
  7. 网站内链外链批量抓取工具
  8. win10重装,检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  9. 微信小程序中的 tabBar
  10. nested renamer is not supported
  11. 扫描图片批量倾斜校正小工具
  12. Python教程:命令行参数处理
  13. preparestatement中的反射原理_技术文章 |智能网联汽车激光雷达工作原理、性能比较与安全性分析...
  14. echarts:3、折线图
  15. linux dhcp 安装系统,Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)
  16. android 整点报时功能,手机整点报时软件|整点报时(半点报时)下载 v2.1 安卓版_最火软件站...
  17. TCP协议三次握手及四次挥手
  18. enfp工具箱怎么用_5个很少人知道的黑科技工具箱,功能奇妙,一个顶十个用
  19. 吕氏春秋 论人 八观六察
  20. Placer lever enfermer apparaître toujours forme.

热门文章

  1. css动画效果轮播图片
  2. 2021-2027全球与中国拆弹机器人市场现状及未来发展趋势
  3. 初学莫队算法 bzoj2038 小z的袜子 分块算法
  4. [转]Todd.log - a place to keep my thoughts on programming 分布式架构中的幂等性
  5. 多张表格链接一起——《超级处理器》应用
  6. Vue和Element第一天
  7. 云上PDF怎么删除页眉页脚_本科论文页眉与页脚怎么设置?
  8. 智慧经营误区为何很多人还在执迷不悟?
  9. 四种隔离级别及应用场景
  10. Git详解之一 Git起步