增强学习中,exploration和exploitation时常用的action选择方法
来源:互联网 发布:职业规划 程序员 编辑:程序博客网 时间:2024/05/16 08:42
http://blog.greenwicher.com/2016/12/24/drl-from_mab_to_mcts/
基本算法
具体的算法实施请见我的Github 或者 Bandit Algorithms for Website Optimization 这本书,下文只是简要叙述每种算法的思路。如日后有时间,再将各自的代码补上。值得一提的是,该领域主要的理论在于求解累积遗憾的上下界。
ϵ− greedy算法
顾名思义,就是每次选择老虎机的时候,以
Softmax算法
这一算法是基于Softmax distribution1来选择老虎机的,值得一提的是Softmax distribution可谓在机器学习里随处可见,比如说神经网络的输出层,Logistic Regression以及模拟退火算法,个人感觉是因为softmax distribution实际上和矩母函数的关系非常紧密,另外也算是对max函数的光滑处理吧2,最后最直观是这是一个multi-choice model(因而在经济管理领域也有应用)。总而言之,我们选择老虎机
Bayes Bandit算法
这一算法的基本思路是给定老虎机收益的先验分布,然后通过该分布来决定玩哪个老虎机,收集到信息之后再更新后验分布。为了保持先验分布和后验分布的形式一致,往往需要 共轭分布
(Conjugate Distribution)的帮助。比如说各个老虎机的回报服从伯努利分布,为了估计伯努利分布的参数,起初我们假设该参数均匀分布在[0,1]之间,然后其共轭分布便是beta分布,并且在更新的过程中,总是保持beta分布的形式,只是相应的参数有所变化。
Upper Confidence Bound算法
这一算法不同于上面的三个算法,每次选择老虎机依据的标准是确定的,即上置信值(Upper Confidence Bound Value),即老虎机给我们回报的置信区间上界值。具体而言,老虎机
其他算法
- Exp3 / Exp4: The Nonstochastic Multiarmed Bandit Prolem
- Knowledge Gradient: A knowledge-gradient policy for sequential information collection
- Randomized Probability Matching: A modern Bayesian look at the multiarmed bandit
- Thompson Sampling: An Empirical Evaluation of Thompson Sampling
- Gittins Index: Bandit Processes and Dynamic Allocation Indices
如果说多臂赌博机问题被看做 单步强化学习任务
(只用一步决策玩哪个老虎机,然后就收到回报),那么蒙特卡洛树搜索可以看做是解决 多步强化学习任务
的工具。 树
是一种天然的用来刻画或者存储多步决策的数据结构。正如所有的动态规划问题可以被转化为图搜索3,而所有的线性规划问题可以被转化为二分图4一样。 在树上进行搜索再常见不过了,利用树进行仿真其实也没那么不常见,学金融的同学势必都曾利用过二叉树来为各类奇异期权进行定价。至于蒙特卡洛树搜索,实际上可以分为两步
- 利用树结构来重新表达决策问题
- 利用蒙特卡洛方法来进行搜索
- 增强学习中,exploration和exploitation时常用的action选择方法
- reinforcement learning,增强学习:Exploration and Exploitation
- 深度增强学习David Silver(九)——Exploration and Exploitation
- 在线广告的exploration/exploitation trade-off(勘探和开采问题)
- 在线广告的exploration/exploitation trade-off(勘探和开采问题)
- RL笔记_Balance exploration and exploitation 几种简单方法
- SCCM 中制作 report 时常用的 视图和字段
- 几个Postback时常用的javascript方法
- 一些学习电脑技术时常用的软件
- 【JAVA学习】struts2的action中使用session的方法
- Reinforcement Learning_By David Silver笔记九: Exploration and Exploitation
- 一些判断系统方法时常用的方法
- js点击按钮时常用的6中提示框和操作
- verilog选择数据类型时常犯的错误
- struts2中action的方法里怎样判断用户是否选择了上传文件
- SpringRoo中action 和 方法的映射关系
- yii中Controller中的Action直接跳到另一个action的方法(yii学习)
- 机器学习中进行模型评价、模型选择和算法选择的终极方法(PART I)
- dubbo+zookeeper背景用途介绍
- Matlab 图像处理2-灰度变换及空间滤波
- 中国计算机研制历史
- 程序员练级之路 (作者:陈皓)
- 一篇干货业务分析方案要提供的几个输出点
- 增强学习中,exploration和exploitation时常用的action选择方法
- 深入浅出Nodejs读后感(一)
- 学Android---Toast用法简介
- 树莓派用QT
- Windows下最简单安装NLTK的方法
- 相位和群时延的ADS仿真
- HDU 杭电 acm 2094-产生冠军
- bootm命令
- GBRT 要点理解_0