从Multi-arm Bandits问题分析
来源:互联网 发布:python与量化交易 编辑:程序博客网 时间:2024/05/19 05:39
【上一篇 强化学习(Reinforcement Learning, RL)初步介绍 】 【下一篇 有限马尔可夫决策过程(Finite Markov Decision Processes)】
RL与其他学习方法最大的区别在于它使用的训练信息是对actions的评价,而其他方法是给出正常的actions。这一次的教程就是通过一个具体的案例来对RL问题中的“evaluative aspect”进行介绍。
1、问题介绍:k-armed Bandit Problem
Multi-armed bandit原本是从赌场中的多臂老虎机的场景中提取出来的数学模型,其中 arm 指的是老虎机(slot machine)的拉杆,bandit 是多个拉杆的集合,
显然,在这个问题中一共包含
显然,如果我们知道了每个 action 的 value,只有每次选择具有最大 value 的 action 就可以解决这个问题,这里令action
如果在实验中,在当前时刻评估的value值最大的action就称为是
2、Action-Value Methods
对一个行为
其中,
若分母为0则令
最简单的策略就是每个时间t都选择当前的greedy actions,这种方法称为是
可以看出,greedy action selection 每次都只会对当前的信息进行开发,而不会探索新的信息,对这种方法最简单的改进方式就是引入一个小的变量
3、Incremental Implementation(增量式实现)
上一节介绍的方法是将所有的历史信息全部记录下来然后求平均,不仅耗费内存也浪费时间,这一节介绍的增量式的方法仅耗费固定大小的内存,并且每个时间都可以进行更新。
为了简化符合,这里只关注一个action,令
上式中最后的更新规则可以写作是:
其中,表达式
算法的伪代码为:
4、针对非固定的问题
之前考虑的都是一个不变的环境,但如果bandit随时间不断变化该如何处理呢?这时有必要将当前的rewards赋予更高的权重,而过去的赋予较小的权重,最常用的实现方法就是使用一个固定的step-size参数,例如将上一节中的更新规则改为:
其中,
因为
5、优化的初始值
前面介绍的几种方法都与初始的action-value的评估值
6、Upper-Confidence-Bound Action Selection
在action选择过程中,greedy actions是当前认为最优的行为,但是最优的行为可能并非是它们,因此就需要exploration过程,
其中
这种选择方式称为是
参考文献
[1] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto
[2] UCL Course on RL
- 从Multi-arm Bandits问题分析
- 强化学习笔记01,02——强化学习问题和Multi-arm Bandits
- 《reinforcement learning:an introduction》第二章《Multi-arm Bandits》总结
- 强化学习导论(Reinforcement Learning: An Introduction)读书笔记(二):多臂赌博机(Multi-arm Bandits)
- Reforcement Learning ---- Multi-armed Bandits
- ARM Bootloader启动寻址问题分析
- arm linux 从入口到start_kernel 代码分析 转
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux 从入口到start_kernel 代码详细分析
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux 从入口到start_kernel 代码分析 - 1
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux 从入口到start_kernel 代码分析
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux kernel 从入口到start_kernel 的代码分析
- arm linux kernel 从入口到start_kernel 的代码分析
- Android离线打包 整合HTML5+SDK
- jQuery选择器课堂随笔
- Maven操作手册
- Matlab 小技巧 矩阵下标以坐标形式选取
- php strtotime()处理时间
- 从Multi-arm Bandits问题分析
- Quartus软件内部错误及解决方法
- Spring Boot导出jar包发布
- 大爱C++——set容器
- Before Android 4.1, method android.graphics.PorterDuffColorFilter
- Android基础——快速开发之定制BaseTemplate
- wampserver下升级php7
- 一次生产事故的优化经历
- 依存句法分析与语义依存分析的区别