入门强化学习(Q-learning→DQN→DDQN)

2023-11-18

基础:

  • 只要具备CNN分类算法的基本认识。

讲解内容:

  1. 内容主要通过《飞翔小鸟》游戏为例,探究如下2个问题:
    • 强化学习原理:以Q-learning算法为例。
    • 深度强化学习原理:以DQN、DDQN算法为例。
  2. 然后大概讲下DDQN算法,如何在更复杂的解锁任务中应用和设计。

学完收获:

  • 认真看完所有细节内容,基本就能了解一种强化学习和一种深度强化学习的整个过程,其他算法可以举一反三。

备注:由于资料大多从PPT中截取出来,转成文章可能会有一些不理解的地方,如有细节疑问可以留言提出来。

0 应用背景

《飞翔小鸟》是一款简单的手机游戏:

  • 操作:唯一的操作是手指点击屏幕。
  • 操作效果:每点击一下,画面中小鸟就挥动一下翅膀往上突然蹬飞一下(非匀速运动!),如果不点击屏幕,小鸟就会做自由落体运动。小鸟不能前后移动,只能上下飞翔或自由落体,背景画面会匀速从左网友移动。
  • 游戏得分:你唯一要做的就是让小鸟不撞上那些绿色的管道,每通过一个管道口,分数+1。
  • 游戏操作难点:小鸟蹬飞速度是非匀速的,先快后慢。然后下降速度也是非匀速的自由落地。图中通道口每次出现位置随机,如果前后两个通道口高度差较大,那么就要在短时间内让小鸟快速爬升,并恰当好的下降回去。

1 强化学习原理

强化学习定义:

        强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习范式方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

强化学习要素:

        强化学习中有状态state)、动作action)、奖赏reward)这三个要素。

强化学习如何发挥作用:

        智能体(Agent)会根据当前状态来采取动作,并记录被反馈的奖赏,以便下次再到相同状态时能采取更优的动作。

Q-Learning算法怎么自己玩《飞翔小鸟

利用Q-Learning强化学习算法,我们可以让智能体程序去玩《小鸟飞翔》游戏。

Q-Learning是强化学习算法中value-based的算法,Q即为Q-table(一个价值表)就是在某一时刻的 s 状态下,采取动作 a 能够获得收益的期望,环境会根据agent的动作反馈相应的奖励 r,所以算法的主要思想就是将 State 与 Action 构建成一张 Q-table 来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。

针对《小鸟飞翔》游戏,我们对强化学习三要素建模如下:

  • 状态的选择:取小鸟到下一组管子的水平距离和垂直距离差作为小鸟的状态。
  • 动作的选择:每一帧,小鸟只有两种动作可选:1.向上飞一下。2.什么都不做。
  • 奖赏的选择:小鸟活着时,每一帧给予1的奖赏;若死亡,则给予-1000的奖赏。

探究1:Q-Learning强化学习是要训练什么东西?

本质上,

 探究2:Q-Learning强化学习如何训练?

 2 深度强化学习原理

Q-learning算法有个最大问题:高维等场景下,创建出来的Q-table会过于庞大,甚至无法穷尽。(因为很多场景下,状态无法穷尽、动作无法穷尽、所以它们两者形成的Q-table价值表也就无法穷尽)

2012年,当AlexNet深度学习刚在ImageNet比赛大获全胜时,2013年,DeepMind团队就想到把深度网络与强化学习结合起来(主要就是用CNN网络替换Q-table),巧妙地解决了状态维数爆炸的问题!

2015《Nature》封面刊登了DeepMind 改进版DQN深度强化学习算法

具体细节请详细看懂下面PPT,不然后面看不懂了:

 DQN算法结构和奖励函数

DQN算法架构和奖励函数如下:

具体细节如下:

 Q-leaningDQN训练流程对比

 DQN算法如何进一步优化:Double-DQN算法

 3 DDQN解决OpenLock任务

OpenLock任务源自《人类因果迁移:深度强化学习的挑战》

3.1 OpenLock规则介绍

1. Agent 只有 3 个动作:推下杠杆、拉回杠杆、推门。
2. Agent 每次 都只有 3 次动作机会, 3 次动作后,门没解锁,则场景恢复初始状态。
开门的四种方法:
  • L:代表场景中一个深色杠杆。编号就是ID
  • D:开门
  • CC3 意思就是我推了L0杆子,那么再推L1L2任意一个后,门就显示可以去打开了。
  • CE3 意思是我需要推了L1L2之后,再去推L0,门才显示可以去打开。

3.2 DDQN如何设计来解决此任务?

DDQN的设计方法如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

入门强化学习(Q-learning→DQN→DDQN) 的相关文章

  • python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib

    本人是大菜鸟一枚 也是第一次动手写博客 希望能够通过写博客总结自己学到的知识 同时得到与大牛们交流的机会 本人所写的内容仅是自己的一点学习总结 若有不对的地方 欢迎大家的批评指正 安装python3 5 2 python3 5 x的下载路径
  • Chain of Responsibility:责任链模式

    现有多个处理者 这些处理者可以处理不同的请求 这些处理者有等级关系 每个处理者都有更上级的处理者 对于最上级的处理者 可以没有上级 对于一个上级处理者 可以有多个下级处理者 客户端发出了一个请求 请求被传递给一个最下级处理者 而该处理者无法
  • Spring框架的前世今生与系统架构

    课题 Spring框架的前世今生及系统概述 课程目标 1 通过对本章内容的学习 可以掌握Spring的基本架构及各子模块之间的依赖关系 2 了解Spirng的发展历史 启发思维 3 对Spring形成一个整体的认识 为之后的深入学习做铺垫
  • 资讯汇总230207

    230207 14 50 中国银河 硅料价格深V反弹 反映出需求回暖 中国银河研报称 春节后硅料价格快速回调 需求回暖支撑硅料上行 但硅料全年供过于求 短期反弹或难维持 政策目标明确 光伏高景气度将持续 随着硅料进入下行周期 光伏产业链利润
  • 彻底消除wine中文乱码

    wine下中文的配置方案 步骤 1 初始设置 运行 winecfg 把模拟的 Windows 系统设置为 Windows XP 或者 Windows 2000 不过亲测非必须 2 准备字体 为了让 Windows 应用程序看上去更美观 所以
  • mysql的checkpoint

    上一章的结尾我们留下了一个问题 就是在上一章所介绍的模型中 恢复管理器必须要通过全篇扫描整个undolog进行日志恢复 这样做显然是没有太大必要的 因为系统中断肯定是在最后几个事务受到影响 前面的事务应该已经完成commit或者rollba
  • 漏洞预警:Tomcat爆出安全绕过漏洞CVE-2018-1305 789多版本受影响

    Apache Tomcat爆出安全绕过漏洞 CVE编号CVE 2018 1305 Apache Tomcat 7 8 9多个版本受到影响 攻击者可以利用这个问题 绕过某些安全限制来执行未经授权的操作 这可能有助于进一步攻击 漏洞概述 在 A
  • 在react中如何结合antd实现分页功能

    在react中如何结合antd实现分页功能 步骤如下 1安装antd npm i antd s 2在 src App css中引入 antd dist antd css import antd dist antd css 3在需要用分页器的
  • Global illumination(全局光照或者全局照明) 概念

    Global illumination 全局光照或者全局照明 前言 在现实世界中 光能从一个曲面反弹到另一个曲面 这往往会使阴影变得柔和 并使照明比不反弹光能时更加均匀 但在 3D 图形学中 默认情况下光线不反弹 必须使程序生成反弹照明的模
  • 【C\C++学习】之十八、C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)

    在C 中 有三大函数复制控制 复制构造函数 赋值操作符 析构函数 而在C 11中 加入了移动构造函数 移动赋值操作符 我就斗胆将他们命名为六大函数好了 一 构造函数 c primer中说过 构造函数是特殊的成员函数 只要创建类类型的新对象
  • 安装liveCD lfslivecd-x86-6.3-r2160.iso 到虚拟机中

    转载请注明 谢谢 这篇文章的主要步骤是 gt 进入liveCD gt 格式化分区 hda1 hda5 hda6 最后系统装在hda1上 gt 把liveCD上的文件系统拷贝到分区 dev hda1上 gt 安装grub 和 内核 gt 重新
  • JS中的PadLeft、PadRight,位数不足,自动补位,String扩展方法

    类似C 中的 PadLeft PadRight方法 方法一 function FillZero p return new Array 3 p length 1 join 0 p FillZero 6 输出006 方法一扩展 C 中PadLe
  • 【转发】Win系统下如何在某个特定的文件夹内输出所有文件路径

    执行命令 dir S B gt list txt 在文件夹导航处 输入cmd然后回车 执行命令 dir S B gt list txt 执行命令 便有一个list txt文件生成 里面便是文件的完整路径 新生成的文件
  • 路由动画详解(附加代码效果)

    目录结构 环境准备 使用umi脚手架 动画属性详解 1 transform 变形 动画的实际效果 a C3中支持操作 b 使用介绍 rotate 旋转 translate 移动 scale 缩放 skew 扭曲 c 基点介绍 d 使用tra
  • 企业网上下单订货管理软件源码搭建功能介绍

    网上下单订货管理软件源码搭建功能介绍 订货通订单管理系统APP 一 系统概述和用途 系统基于网络 实现厂家和代理商批发商通过网络下单订货功能 什么是订货通 什么是企业订货管理系统 是一款针对中小型企业通过网络实现 厂家和客户 经销商 批发商
  • flutter 的 FutureBuilder使用时在wait部分无限循环,反复调用接口

    反复调用接口说明调用接口的方法反复被调用了 所以为了页面稳定 需要找到一种值调用一次改接口的方法 添加全局变量 var futureBuilderFuture 在初始化时唯一一次调用该接口 override void initState s
  • Pycharm通过ssh远程连接服务器

    目录 一 概述 二 步骤 1 连接服务器 2 设置Python解释器 3 建立Mapping 4 实现代码自动上传 一 概述 笔记本没有英伟达独显 需要跑深度学习的代码 可以使用pycharm远程连接服务器 将本机代码同步到实验室服务器中运
  • Vue 动态连接线

    尝试了两个连线库 jsplumb 和 leadline 其实两个库都很强大 但是基于个人使用的习惯 决定还是用 leadline 在Vue 下我使用它的一个包装库 leader line vue 下面是上图的连接线示例代码 连接线很轻松的就

随机推荐

  • 刷脸支付服务于人就是制胜关键

    在过去 一句 我出门都不用带钱 刷脸就行了 道出的是四海之内皆兄弟的 面子 市场 而如今 不需要兄弟给 面子 任何人露一下脸便可完成交易 方便快捷是支付技术革新的最终目的 成功的互联网企业 或者说互联网企业想要成功 都要解决一个共同问题 服
  • angularjs $http调用接口的方式

    angularjs http调用接口的方式 http get merchantmall merchant json success function data status headers config console log argume
  • 【LEDE】树莓派上玩LEDE终极指南-75-获取CPU温度

    先来说说获取CPU温度的方法 1 通过hwmon获取 2 通过thermal获取 而树莓派就比较蛋疼了 没有额外的传感器 所以sensor detect这些东西完全不起作用 唯独CPU封装内的VideoCore具有温度传感功能 而想要与Vi
  • airpods pro动画不显示_airpodspro为什么没有弹窗

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 airpodspro没有弹窗的原因是 1 耳机离手机太远 2 手机有bug 重启手机试试 3 可能是系统没有升级 更新系统试试 4 也有可能手机没有打开蓝牙功能 5 有可能
  • 总听大佬说起数字化转型,但你真正理解什么是数字化吗?( 2017-02-14 大愚若智 译 )

    作者 Reda Hmeid 译者 大愚若智 充分理解数字化 明确数字化是什么以及不是什么 对于一个架构师来说非常重要 毕竟我们需要向董事长 CEO CTO 分析师 开发者 以及其他所有相关人员解释这些概念 同样重要的是明确数字化转型成功的标
  • Java 压缩多个文件为zip包(中间不生成临时文件,直接压缩为zip二进制流),以及解压zip包二进制流为文件

    Java 压缩多个文件为zip包及解压zip包以及压缩多文件为zip文件流解压zip二进制流 中间不生成临时文件 直接压缩为zip二进制流 并验证解压 1 效果图 2 源码 这篇博客将提供俩种方法 提前生成要压缩的多个文件 然后读取文件夹多
  • 大数据技术之Kafka——Kafka入门

    目录 一 概述 1 1 为什么要有Kafka 1 2 定义 1 3 消息队列 1 消息队列的应用场景 2 消息队列的两种模式 1 4 基础架构 二 Producer生产者 2 1 生产者消息发送流程 2 1 1 发送原理 2 2 异步发送A
  • Python中常见文件操作,纯干货

    Python文件操作 一 关于文件 二 读写文件简单操作 三 文件权限 四 文件高级操作 五 大文件的读取 基本方法 常用函数 六 大文件的读取其他方式 一 关于文件 文件的作用 把一些数据储存起来 使用文件流程 打开文件 读写文件 关闭文
  • 什么是JIT

    一些其他解释的网站 http www sohu com a 169704040 464084 1 动态编译 dynamic compilation 指的是 在运行时进行编译 与之相对的是事前编译 ahead of time compilat
  • 用Google浏览器下载网页视频(包括优酷,土豆等网站视频)

    用Google浏览器下载网页视频 包括优酷 土豆等网站视频 一 准备工具 Google浏览器 Video download helper Chrome插件 二 步骤 1 安装Video download helper插件 1 下载网址 ht
  • 设计模式的 C++ 实现---原型模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 前言 原型模式指直接用一个已经存在的对象来创建一个新的对象 然后对新对象进行稍微修改即可 类似复制的操作
  • 动手学CV-目标检测入门教程4:模型结构

    3 4 模型结构 本文来自开源组织 DataWhale CV小组创作的目标检测入门教程 对应开源项目 动手学CV Pytorch 的第3章的内容 教程中涉及的代码也可以在项目中找到 后续会持续更新更多的优质内容 欢迎 如果使用我们教程的内容
  • 在单链表中删除指定值的节点

    在单链表中删除指定值的节点 题目 给定一个单链表和一个数val 删除链表中所有值为val的节点 例如 1 gt 2 gt 3 gt 4 删除3 结果为 1 gt 2 gt 4 思路1 用栈 def remove node with val1
  • Java中如何设置注释模板呢?

    转自 Java中如何设置注释模板呢 下文笔者讲述在日常开发IDE工具中设置注释模板的方法分享 如下所示 Eclipse中设置Java注释模板 Eclipse设置注释模板的菜单 Window gt Preference gt Java gt
  • 实时音频编解码之八 频带扩展

    本文谢绝任何形式转载 谢谢 1 4 8 频带扩展 在线性预测应用中 由于极点过于靠近单位圆 合成滤波器可能处于临界稳定的状态 在定点实现中这一问题更加严重 定点的量化和计算中的精度损失可能使得临界稳定的滤波器变得不稳定 极点位于单位圆外 这
  • maven 配置篇 之 settings.xml 整理中...

    maven 配置 settings xml maven2比起maven1 来说 需要配置的文件少多了 主要集中在pom xml和settings xml中 先来说说settings xml settings xml对于maven 来说相 当
  • 【JS】jsx/tsx是什么?为什么 Vue3 的组件库都在使用 jsx/tsx?如何在Vue3中使用 jsx/tsx?

    前几天得到一个疑问 为什么 React 要用 JSX 语法 这样显得代码好像 很耦合 按照传统应推荐 html js css 模版分离 这样设计的优越性到底在哪里 一 jsx是什么 JSX 即 javascript Xml的缩写 是Face
  • Springboot 封装ssh 服务

    前提条件 Linux 已经启动SSH 服务或Windows 启动SSH 服务 整体项目结构 第一步 BuleSky 的pom xml 文件
  • CMake——cmake_minimum_required

    命令简介 cmake minimum required用于设定cmake的最低版本 cmake minimum required VERSION
  • 入门强化学习(Q-learning→DQN→DDQN)

    基础 只要具备CNN分类算法的基本认识 讲解内容 内容主要通过 飞翔小鸟 游戏为例 探究如下2个问题 强化学习原理 以Q learning算法为例 深度强化学习原理 以DQN DDQN算法为例 然后大概讲下DDQN算法 如何在更复杂的解锁任