论文地址:

https://people.cs.umass.edu/~barto/courses/cs687/Sutton-Precup-Singh-AIJ99.pdf

例子:

这是一个寻路问题,该问题使用强化学习算法解决,准确的来说是使用“表格表示的强化学习算法中的规划算法”来进行解决的;之所以没有说是使用规划算法来说是因为这里使用了学习型算法,即强化学习算法,虽然只是使用表格记录的方式,但是依旧使用了强化学习算法的形式进行;该问题的解决中对每个方格的状态值表示为V(s),整体使用策略迭代或值迭代的强化学习的规划算法来解决。

在这个问题中,agent有四个方向可以选择走,但是每次走只有2/3的概率会正确执行,1/3的概率会随机走其他三个方向中的一个;需要注意的是,agent的每一步行走的reward都是零,也就是说这个问题建模后形成的强化学习模型是一个稀疏模型。

options算法的核心内容:

options算法在计算过程中的各个位置在表格中的状态值的变化过程示意图:(该问题就是计算所有房间的位置到到达初始位置的状态值V(state)的值大小)

其中下图方块中涂黑的面积大小表示对应的状态值V(s)的值的大小,最大时为1,完全空白为0。

下图中上一行中options的动作为单步,下一行中的options的动作为multi-steps。

multi-steps的options动作指的就是在一次状态值更新时是对划分后问题的一整个option动作覆盖的空间进行计算,下图中则是对整个房间(room)进行更新计算。

可以看到,上面的每个room有两个通道(两个空白格),这两个空白格(通道)可以分别作为一个option的target,除了target之外的其他空格都为可行区域(可以作为option的起始点),也就是所对原始任务进行划分后的每个room任务都是可以有两个option的,每个option的终点分布对应room边缘的target hallway。

给出一个room的其中一个option的状态值的示意图(该option的target为右侧边缘的空格,另一个option的target为下侧边缘的空格):

options算法的学习规则:(参数更新的具体方式)

给出一个状态的option示意图:

假设下图中红色状态为s,绿色状态为 \(s^,\)。

红色状态在下图中的option的Q值记作Q(s, o),绿色状态的Q值记作Q(\(s^,\), \(o^,\))。

红色状态关于绿色状态的一次采样后的Q值更新具体为:

使用options方法来进行动态规划计算的一些不足:

其中,最为注意的就是在使用options进行动态规划的话并不一定能保证加快计算(加快收敛);一般情况下动态规划时初始所有状态的状态V值为0,但是如果使用乐观的初始化方式(optimistic)那么就是在初始化时将所有的状态V值都初始化为一个较大的数值,比如为100,那么使用options这种multi-steps分层的方法反而会减慢值迭代的动态规划算法的收敛速度。

PS:

个人感觉,这个分层强化学习算法中的经典options算法其实和分层 \(A^*\) 算法很像,其基本思想是一致的,如果有读者不是很难理解这个options算法可以先去读“分层 \(A^*\) 算法”。

本文的options算法本质上是“表格型强化学习算法”。

分层强化学习算法options其本质就是对问题进行分层划分。

本文算法的解决方法是使用表格记录每个位置的状态值V(s)。

由于options发表的较早,20多年前发表的,因此这篇文章大篇幅谈的是动态规划算法,即如何使用options方法来提升动态规划算法的性能,然后才谈了options算法在learning算法上的一些应用。

经典强化学习算法:分层强化学习算法—options算法2(理解篇)的更多相关文章

  1. 【转载】 “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识

    原文地址: https://yq.aliyun.com/articles/400366 本文来自AI新媒体量子位(QbitAI)     ------------------------------- ...

  2. 机器学习&深度学习基础(tensorflow版本实现的算法概述0)

    tensorflow集成和实现了各种机器学习基础的算法,可以直接调用. 代码集:https://github.com/ageron/handson-ml 监督学习 1)决策树(Decision Tre ...

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

    强化学习之 免模型学习(model-free based learning) ------ 蒙特卡罗强化学习 与 时序查分学习 ------ 部分节选自周志华老师的教材<机器学习> 由于现 ...

  4. 深度强化学习day01初探强化学习

    深度强化学习 基本概念 强化学习 强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题.强化学习可以在复杂的.不确定的环境中学习如何实现我们设 ...

  5. 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)

    注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...

  6. DDos攻击,使用深度学习中 栈式自编码的算法

    转自:http://www.airghc.top/2016/11/10/Dection-DDos/ 最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容论 ...

  7. [强化学习]Part1:强化学习初印象

    引入 智能 人工智能 强化学习初印象 强化学习的相关资料 经典书籍推荐:<Reinforcement Learning:An Introduction(强化学习导论)>(强化学习教父Ric ...

  8. 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法

    前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是 ...

  9. 平滑处理Smooth之图像预处理算法-OpenCV应用学习笔记三

    大清早的我们就来做一个简单有趣的图像处理算法实现,作为对图像处理算法学习的开端吧.之所以有趣就在于笔者把算法处理的各个方式的处理效果拿出来做了对比,给你看到原图和各种处理后的图像你是否能够知道那幅图对 ...

  10. Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法

    最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...

随机推荐

  1. 100ASK_IMX6ULL arm板子如何移植刷卡器

    最近为了在arm板子上移植刷卡器,比较简单,但也遇到了坑,现在和大家分享下. 购买刷卡器 某宝很多,应该选哪一种呢? 一口君一共买了4种刷卡器,有2种可以用,还有2种不能用. 下图为最方便的一款,一口 ...

  2. JavaScript设计模式样例二十二 —— 访问者模式

    访问者模式(Visitor Pattern) 定义:使用一个访问者类,改变元素类的执行算法.通过这种方式,元素的执行算法可以随着访问者改变而改变.目的:将数据结构与数据操作分离.场景:您在朋友家做客, ...

  3. stm32f10x系列学习笔记(三)ADC

    ADC_SampleTime 用途:在ADC通道配置(ADC_RegularChannelConfig)需要传输的参数. 含义:指两个采样阶段之间的延迟周期数,该参数会影响ADC在采样过程中的性能和准 ...

  4. .NET 6 使用Nlog 记录日志到本地并写入SQLserver数据库

    1. 安装Nlog 对应Nuget包版本 NLog:5.0.4 NLog.Database:5.0.4 NLog.Web.AspNetCore:5.1.4 Microsoft.Data.SqlClie ...

  5. Kubernetes-13:存储卷Volume介绍及使用

    Volume介绍 Volume存在的意义 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失--容器以 ...

  6. C#必备技能—项目打包

    C#项目打包 开发好一个软件后,交给客户去使用,这时需要对项目进行打包成一个.exe文件,怎么去做?(共三步) 前提 安装扩展:状态栏[扩展]-[管理扩展],搜索setup,点击安装(安装比较慢,等待 ...

  7. 【经验】通过JVM调优,让凯哥个人博客响应速度提升了不少

    为什么你的个人博客访问慢? 不知道大家有没有注意到,在22.10.31 21点之后,凯哥的个人博客站点(凯哥Java:www.kaigejava.com)访问速度提升了不少.那是因为凯哥对站点做了优化 ...

  8. Java基础 韩顺平老师的 泛型 的部分笔记

    553,泛型引入 package com.hspedu.list_; import java.util.*; import java.util.concurrent.CompletionService ...

  9. 每天5分钟复习OpenStack(十五)Ceph与Bcache结合

    上一章我们成功部署了bcache,这一章我们将Ceph与Bcache结合来使用,使用Bcache来为ceph的数据盘提速. 1 ceph 架构 一个标准的ceph集群可能是如下的架构,SSD/NVME ...

  10. AGC007F 题解

    题意 给定两个长为 \(n\) 的字符串 \(S, T\),求最少进行多少次操作才能使 \(S = T\). 一次操作定义为:对于 \(i = 1, 2, .. n\),令第 \(i\) 位为操作后的 ...