“价值不是由一次成功决定的,而是在长期的进取中体现”

上文介绍了描述能力更强的多臂赌博机模型,即通过多台机器的方式对环境变量建模,选择动作策略时考虑时序累积奖赏的影响。虽然多臂赌博机模型中引入了价值的概念,但方法在建模过程中本质上是以策略为优化目标,因此又常被归为基于策略的增强学习方法。

此外,增强学习方法还有基于价值以及基于模型两类主要方法。本文介绍第二类,先从描述价值目标的Q函数开始,它也常称之为Q-Learning方法。

最简单的Q函数可用“状态-动作”二维表(Q-Table)描述,其中行表示状态s,列表示动作a,矩阵中的值表示特定状态下执行某动作的回报值为r(s,a)。智能体Agent通过不断更新并查找该表,找到当前状态回报最高的动作执行。

为避免Q-Table陷入局部最优,即使得当前回报最高的结果能达到全局最优,需要通过训练获得累积回报,迭代更新Q-Table,使之能指导长期期望价值最大化的动作执行。

为便于计算,将Q-Table表示为Bellman递推等式,拆分为当前回报和未来最大回报的和,即Q(s,a)=r(s, a)+b(max(Q(s’,a’))),其中s’表示s状态在a行为作用下的下一状态,而a’为s’状态后所有可能的行为,b为价值累积过程中的打折系数,决定了未来回报相对于当前回报的重要程度。

同样的,也可使用神经网络对Q函数进行建模,其输入为Agent环境状态,输出为使价值最大化的Agent动作。训练过程中,初始Q(s,a)为0,训练中Agent每行动一次,通过Bellman等式计算Q’(s,a),优化目标是使得Agent根据Q函数执行动作能获得训练过程中的最大价值回报,即Q(s,a)与Q’(s,a)的差异最小。

例如,OpenAI gym的FrozenLake问题,假设人要穿过一个4x4方格的冰湖(从S到G),有冰的地方(F)可以行走,无冰的洞(H)会掉入湖中。使用增强学习建模,其状态空间为4x4的方格空间,动作为“上下左右”的移动,达到目标的回报价值为1,掉入洞中的回报价值为-1。

分别使用Q-Table和神经网络Q函数对FrozenLake问题进行建模求解,可以发现神经网络Q函数的学习方法,在同样实验迭代次数下可以探索出更多的“可行路径”。

对代码实现和实验效果感兴趣的朋友,可在数据小虾米公众号后台回复“代码”,获得源码地址。


数据科学武林风起云涌,
随数据小虾米共闯江湖~

增强学习 | Q-Learning的更多相关文章

  1. 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)

    接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率\(P_{sa}\) 状态值函数的估计是自举的(bootstrapping ...

  2. 增强学习Reinforcement Learning经典算法梳理3:TD方法

    转自:http://blog.csdn.net/songrotek/article/details/51382759 博客地址:http://blog.csdn.net/songrotek/artic ...

  3. 增强学习(Reinforcement Learning and Control)

    增强学习(Reinforcement Learning and Control)  [pdf版本]增强学习.pdf 在之前的讨论中,我们总是给定一个样本x,然后给或者不给label y.之后对样本进行 ...

  4. 强化学习9-Deep Q Learning

    之前讲到Sarsa和Q Learning都不太适合解决大规模问题,为什么呢? 因为传统的强化学习都有一张Q表,这张Q表记录了每个状态下,每个动作的q值,但是现实问题往往极其复杂,其状态非常多,甚至是连 ...

  5. 深度增强学习--Deep Q Network

    从这里开始换个游戏演示,cartpole游戏 Deep Q Network 实例代码 import sys import gym import pylab import random import n ...

  6. 强化学习_Deep Q Learning(DQN)_代码解析

    Deep Q Learning 使用gym的CartPole作为环境,使用QDN解决离散动作空间的问题. 一.导入需要的包和定义超参数 import tensorflow as tf import n ...

  7. 马里奥AI实现方式探索 ——神经网络+增强学习

    [TOC] 马里奥AI实现方式探索 --神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典 ...

  8. 增强学习(三)----- MDP的动态规划解法

    上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...

  9. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  10. 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等) (转载)

    原文链接:http://blog.csdn.net/jinzhuojun/article/details/78508203 前段时间Nature上发表的升级版Alpha Go - AlphaGo Ze ...

随机推荐

  1. MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  2. java关键字transient与volatile小结

    本文转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶 ...

  3. Aspose.Cells.dll操作execl

    附件:Aspose.Cells.dll 1.创建execl(不需要服务器或者客户端安装office) public void DCExexl(DataTable dt) {  Workbook wb ...

  4. 实现图标Icon+文字在div里自动中心居中(水平垂直居中)

    已知div行高设置text-align:center文字会自动居中. 通过:before来设置icon的地址和高宽. 需要设置图片默认的垂直居中条件,与文字一致,为text-bottom. 设置图片行 ...

  5. angularjs里重要的route

    写一段代码来解释吧! <!DOCTYPE html><html ng-app="mainApp"><head lang="en"& ...

  6. java zip4j 内存文件和磁盘文件 压缩和加密

    经常服务器需要对文件进行压缩,网络上流传较多的是从磁盘文件中来压缩成zip文件.但是常常服务器的文件存放在内存中,以byte[]形式存储在内存中.这个时候就不能使用网络上流传的常用方法了,这里就需要对 ...

  7. Spring Boot 声明式事务结合相关拦截器

    我这项目的读写分离方式在使用ThreadLocal实现的读写分离在迁移后的偶发错误里提了,我不再说一次了,这次是有要求读写分离与事务部分要完全脱离配置文件,程序员折腾了很久,于是我就查了一下,由于我还 ...

  8. SVN环境搭建步骤

    方法:一.准备工作1. Subversion服务器程序先到官方网站上下载最新版本.2. TortoiseSVN客户端程序它是一个客户端程序,用来与Subvers服务端通讯.Subversion自带一个 ...

  9. 码工具通过ICP备案

    5月22日,为广大程序员造福的在线工具--码工具 通过了ICP备案,这也意味着本站也越来越正规化,规范化.大家从今日起就可以在网站底部看到本站的ICP备案号. 备案/许可证编号:粤ICP备170597 ...

  10. html 获取宽高

    jquery获取元素宽高的方法如下 1.元素自身高度 $("#div").height(); 2.元素自身高度 + padding $("#div").inne ...