强化学习之 免模型学习(model-free based learning)

 

强化学习之 免模型学习(model-free based learning)

------ 蒙特卡罗强化学习 与 时序查分学习

 

  ------ 部分节选自周志华老师的教材《机器学习》

  由于现实世界当中,很难获得环境的转移概率,奖赏函数等等,甚至很难知道有多少个状态。倘若学习算法是不依赖于环境建模,则称为“免模型学习(model-free learning)”,这比有模型学习要难得多。

 

  1. 蒙特卡罗强化学习:

  在免模型学习的情况下,策略迭代算法会遇到几个问题:

  首先,是策略无法评估,因为无法做全概率展开。此时 只能通过在环境中执行相应的动作观察得到的奖赏和转移的状态、一种直接的策略评估代替方法就是“采样”,然后求平均累积奖赏,作为期望累积奖赏的近似,这称为“蒙特卡罗强化学习”。

 

  第二,就是策略迭代算法估计的是 状态值函数(state value function) V,而最终的策略是通过 状态动作值函数(state-action value function) Q 来获得。模型已知时,有很简单的从 V 到 Q 的转换方法,而模型未知 则会出现困难。所以我们将估计对象从 V 转为 Q,即:估计每一对 “状态-动作”的值函数。

 

  总而言之,就是在模型未知的时候,我们从初始状态出发,使用某种策略进行采样,执行该策略 T 步并获得轨迹:

  $x_0, a_0, r_1, x_1, a_1, r_2, ... , x_{T-1}, a_{T-1}, r_{T-1}, x_T$

  然后,记录轨迹中每一个 状态-动作对 的奖赏之和,作为该 状态-动作对 的一次累积奖赏采样值。多次采样得到多条轨迹,对其求平均 作为状态-动作值函数的估计。

  此外,为了得到较好的奖赏,仅仅依靠某一个策略进行采样是不充分的,需要额外的采用其他策略来进行探索,类似于 K-摇臂赌博机,以一定的概率随机的选择一个动作执行,然后以 另一个概率 从当前的动作集合中进行选择 奖赏最大的动作,进行执行。

  在策略评估完毕后,同样要进行策略改进,这里由于“被评估”和“被改进”的是同一个策略,因此称为“on-policy(同策略)”蒙特卡洛强化学习算法。

 

  此处需要注意的是:我们将确定性的策略 $\pi$ 称为“原始策略”,而原始策略上使用贪心算法之后的策略记为:$\epsilon-贪心$。

  



 

  2. 时序差分学习(TD):

  与基于 策略迭代 和 值迭代的算法相比,蒙特卡洛算法需要采样完成一个轨迹之后,才能进行值估计(value estimation),这样看,就感觉蒙特卡洛速度很慢啊!据说主要原因在于 蒙特卡洛没有充分的利用强化学习任务的 MDP 结构。但是, TD 充分利用了 “MC”和 动态规划的思想,做到了更加高效率的免模型学习。

  MC 的本质是通过多次采样后计算平均 作为期望累积奖赏的近似。但是由于是 一个轨迹采样完成后 才对各个 状态-动作对进行更新,所以是属于“批处理”的方式,那么怎么将其改成 online版本的呢?从而实现 增量的更新?

  众所周知 Online版本的算法与 批处理很大的不同在于, online可以实现 一个一个的递增的更新,那么此处就有:

  不妨假设在 第 t 次采样的时候,已经估计出 值函数 Q(s, a),则在第 t + 1 次采样的时候,就有:

  $Q_{t+1}^{\pi} (x, a) = Q_{t}^{\pi} (x, a) + \frac{1}{t+1}(r_{t+1} - Q^{\pi}_t (x, a))  $

  

  

  



  

  3. 策略评估 与 策略改进:

  

  策略评估是为了检查当前策略是否是最优策略,若不是最优策略,需要对当前策略进行改进。

  当模型已知的时候,对任意策略都可以估计出该策略可以带来的 期望累积奖励。

  此处有两个估计函数,即:state-action value function Q(s, a) 以及  state value function V(s):

  state value function V(s) 是从状态 s 出发,按照某策略,所能够得到的累积奖励;

  state-action value function Q(s, a) 是从状态 s 出发,执行动作 a 之后,再使用当前策略,所能够得到的累积奖赏。

 

  利用这两个 value function  就可以对策略进行测试 或者讲是评估,那么,如果并非最优策略,那么如何对其进行改进呢?

  迭代的求解最优值函数 就可以得到最大化的累积奖赏。

  最优贝尔曼等式(Bellman Equation)解释了非最优策略的改进方式:

  将策略选择的动作  改变为  当前最优的动作。



 

 

  4. 策略迭代 与 值迭代

  所谓策略迭代 也就是将策略评估 和 策略改进 组合起来使用,即首先进行策略评估,然后进行策略改进,在评估,再改进,直到达到最优策略。

  那么,什么是 值迭代呢?

 

  由于 策略改进 和 值函数的改进是一致的,因此  可以将策略改进 看做是 值函数的改善。所以,值迭代其实就是以更新 值函数的形式 对策略进行改善,这也就是值迭代的定义。

  

 

 

 

 

 

 

 

 

 

 

 

时间: 2024-10-30 11:39:35

强化学习之 免模型学习(model-free based learning)的相关文章

backbone学习笔记:模型(Model)(2)属性验证

Backbone的属性验证有2种方法:   1.Backbone自带简单的验证方法,但是验证规则需要自己实现      通过validate()方法进行验证,验证规则写在此方法里.      var RoomModel = Backbone.Model.extend({ validate:function(attrs){ //验证规则 if(!attrs.name){ return "名字不能为空"; } } });   那么什么时候调用validate()完成验证呢?    在调用s

【双11背后的技术】基于深度强化学习与自适应在线学习的搜索和推荐算法研究

选自<不一样的技术创新--阿里巴巴2016双11背后的技术>,全书目录:https://yq.aliyun.com/articles/68637 本文作者:灵培.霹雳.哲予 1. 搜索算法研究与实践 1.1 背景 淘宝的搜索引擎涉及对上亿商品的毫秒级处理响应,而淘宝的用户不仅数量巨大,其行为特点以及对商品的偏好也具有丰富性和多样性.因此,要让搜索引擎对不同特点的用户作出针对性的排序,并以此带动搜索引导的成交提升,是一个极具挑战性的问题.传统的Learning to Rank(LTR)方法主要是

『干货』深度强化学习与自适应在线学习的阿里实践

1搜索算法研究与实践 1.1背景 淘宝的搜索引擎涉及对上亿商品的毫秒级处理响应,而淘宝的用户不仅数量巨大,其行为特点以及对商品的偏好也具有丰富性和多样性.因此,要让搜索引擎对不同特点的用户作出针对性的排序,并以此带动搜索引导的成交提升,是一个极具挑战性的问题.传统的Learning to Rank(LTR)方法主要是在商品维度进行学习,根据商品的点击.成交数据构造学习样本,回归出排序权重.LTR学习的是当前线上已经展示出来商品排序的现象,对已出现的结果集合最好的排序效果,受到了本身排序策略的影响

深度学习的Attention模型

前言 前面看到谷歌发表的运用在机器翻译上的论文<Attention is all you need>,很是让人惊讶,这是一种全新的模型,与之前的经典的seq2seq模型改动较大,它完全摒弃了RNN或CNN神经网络,大大简化了模型的复杂度,而且效果还相当好.当然Attention模型可以单独使用,但这篇文章我们来看看Attention的机制及怎么与经典的seq2seq结合. seq2seq 前面我们有详细的文章介绍了seq2seq的机制以及如何用TensorFlow来实现seq2seq.可到&l

《中国人工智能学会通讯》——6.3 深度学习的基础模型

6.3 深度学习的基础模型 深度学习(Deep Learning)源于人工神经网络(简称神经网络),其初衷是从仿生学角度建立模拟人脑学习的神经元网络结构,从而模仿人脑的机制来解释数据.早期的神经网络是浅层神经网络,通常仅含有单个输入层.少量隐藏层和单个输出层,输入通常是人工提取的特征.其连接方式是,从输入层开始到输出层结束,中间各层接收前一级输入,并输入到下一级,整个网络中无反馈,因而又称为前馈网络.而深度学习的模型是深度神经网络,较之浅层神经网络,它具有较多的隐藏层和复杂的连接方式,因而能够自

(zhuan) 深度学习全网最全学习资料汇总之模型介绍篇

  This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058&m=4077873754872790&cu=5070353058   深度学习全网最全学习资料汇总之模型介绍篇 雷锋网  作者: 三川 2017-02-21 16:38:00 查看源网址 阅读数:4       本文旨在加速深度学习新手入门,介绍 CNN.DBN.RNN.RNTN.自动编码

《中国人工智能学会通讯》——7.13 深度学习与分布式表示学习概览

7.13 深度学习与分布式表示学习概览 深度学习的概念源于人工神经网络的研究.深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的有效表示,而这种使用相对较短.稠密的向量表示叫做分布式特征表示(也可以称为嵌入式表示).本部分主要对于目前使用较广的一些学习算法进行一个简单的回顾. 首先介绍一些浅层的分布式表示模型.目前在文本领域,浅层分布式表示模型得到了广泛的使用,例如 word2vec.GloVec 等[6] .与传统词袋模型对比,词嵌入模型可以将词或者其他信息单元(例如短

(转) 深度学习全网最全学习资料汇总之入门篇

  本文转自: http://www.dlworld.cn/ZiLiaoXiaZai/3428.html 深度学习全网最全学习资料汇总之入门篇  作为人工智能领域一个重要的研究分支,深度学习技术几乎出现在当下所有热门的AI应用领域,包括语音识别,语义理解,图像识别,大数据分析等等,甚至有人把当前的人工智能等同于深度学习.面对如此重要的江湖地位,我们相信一定有为数众多的 AI 开发者对深度学习技术充满了好奇心,想要快速着手使用这项强大的技术来解决现实生活中的实际问题.因此,雷锋网将围绕深度学习技术

怎样找到一份深度学习的工作 | 附学习材料,资源与建议

如果你是一个软件工程师(或者你现在正在学习这一方面),你肯定有机会听说过深度学习(有时候深度学习缩写为"DL").它现在是一个热门.且快速发展的研究领域,解决工业界的一系列问题,从图像识别.手写识别到机器翻译,更甚于AlphaGo4比1击败了世界围棋冠军.  大部分人认为找与深度学习相关的工作应该具有博士学位或者大量的相关经验,但是如果你已经是一名很好的工程师,那你就可以很快.很好的学习这些必要的技能和技巧.至少,这是我们的观点.(即使你是深度学习的初学者,非常欢迎您加入我们的职位申请