深入理解强化学习——标准强化学习和深度强化学习

news2024/11/15 18:00:09

分类目录:《深入理解强化学习》总目录


强化学习的历史

早期的强化学习,我们称其为标准强化学习。最近业界把强化学习与深度学习结合起来,就形成了深度强化学习(Deep ReinforcemetLearning)。因此,深度强化学习是深度学习和强化学习的组合。我们可将标准强化学习和深度强化学习类比于传统的计算机视觉和深度计算机视觉。

如下图所示,传统的计算机视觉由两个过程组成:

  • 定一张图片,我们先要提取它的特征,使用一些设计好的特征,比如方向梯度直方图(Histogram of Oriental Gradient,HOG)、可变现的组件模型(Deformable Part Model,DPM)。
  • 提取这些特征后,我们再单独训练一个分类器。这个分类器可以是支持向量机(Support Vector Machine,SVM)或Boosting,然后就可以辨别这张图片是狗还是猫。

传统的计算机视觉与深度计算机视觉的区别

2012年,Krizhevsky等人提出了AlexNet。AlexNet在ImageNet分类比赛中取得冠军,迅速引起了人们对于卷积神经网络的广泛关注。 大家就把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类,它可以实现端到端训练,如上图所示,它的参数可以在每一个阶段都得到极大的优化,这是一个非常重要的突破。

我们也可以把神经网络放到强化学习里面:

  • 标准强化学习:比如TD-Gammon玩Backgammon游戏的过程,其实就是设计特征,然后训练价值函数的过程,如图下图所示。标准强化学习先设计很多特征,这些特征可以描述现在整个状态。 得到这些特征后,我们就可以通过训练一个分类网络或者分别训练一个价值估计函数来采取动作。
  • 深度强化学习:自从我们有了深度学习,有了神经网络,就可以把智能体玩游戏的过程改进成一个端到端训练(End-to-end Training)的过程,如下图所示。我们不需要设计特征,直接输入状态就可以输出动作。我们可以用一个神经网络来拟合价值函数或策略网络,省去特征工程(Feature Engineering)的过程。

标准强化学习与深度强化学习的区别
为什么强化学习在这几年有很多的应用,比如玩游戏以及机器人的一些应用,并且可以击败人类的顶 尖棋手呢?这有如下几点原因。首先,我们有了更多的算力(Computation Power),有了更多的GPU,可以更快地做更多的试错尝试。其次,通过不同尝试,智能体在环境里面获得了很多信息,然后可以在环境里面取得很大的奖励。最后,我们通过端到端训练把特征提取和价值估计或者决策一起优化,这样就可以得到一个更强的决策网络。

接下来介绍一些强化学习里面比较有意思的例子,如下图所示:

  • 走路智能体:这个智能体往前走一步,就会得到一个奖励。这个智能体有不同的形态,可以学到很多有意思的功能。比如,像人一样的智能体学习怎么在曲折的道路上往前走。结果非常有意思,这个智能体会把手举得非常高,因为举手可以让它的身体保持平衡,它就可以更快地在环境里面往前走。而且我们也可以增加环境的难度,加入一些扰动,智能体就会变得更鲁棒。
  • 机械臂抓取:因为我们把强化学习应用到机械臂自动抓取需要大量的预演,所以我们可以使用多个机械臂进行训练。分布式系统可以让机械臂尝试抓取不同的物体,盘子里面物体的形状是不同的,这样就可以让机械臂学到一个统一的动作,然后针对不同的抓取物都可以使用最优的抓取算法。因为抓取的物体形状的差别很大,所以使用一些传统的抓取算法不能把所有物体都抓起来。传统的抓取算法对每一个物体都需要建模,这样是非常费时的。但通过强化学习,我们可以学到一个统一的抓取算法,其适用于不同的物体。
  • 机械臂翻魔方:OpenAI 在2018年的时候设计了一款带有“手指”的机械臂,它可以通过翻动手指使得手中的木块达到预期的设定。人的手指其实非常灵活,怎么使得机械臂的手指也具有这样灵活的能力一直是个问题。OpenAI先在一个虚拟环境里面使用强化学习对智能体进行训练,再把它应用到真实的机械臂上。这在强化学习里面是一种比较常用的做法,即我们先在虚拟环境里面得到一个很好的智能体,然后把它应用到真实的机器人中。这是因为真实的机械臂通常非常容易坏,而且非常贵,一般情况下没办法大批量地购买。OpenAI在2019年对其机械臂进行了进一步的改进,这个机械臂在改进后可以玩魔方了。
  • 穿衣服的智能体:很多时候我们要在电影或者一些动画中实现人穿衣服的场景,通过手写执行命令让机器人穿衣服非常困难,穿衣服也是一种非常精细的操作。我们可以训练强化学习智能体来实现穿衣 服功能。我们还可以在里面加入一些扰动,智能体可以抵抗扰动。可能会有失败的情况(failure case)出现,这样智能体就穿不进去衣服。
    强化学习例子

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)三

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造:在工业制造过程中,精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数,进而实…

腾讯云国际站-阿里云OSS如何迁移到腾讯云COS?腾讯云cos迁移教程

下面小编将介绍当源对象存储部署在阿里云国际版OSS 时,如何配置全托管迁移任务和半托管迁移任务,实现顺利迁移数据至腾讯云国际版COS。 准备工作 阿里云对象存储 OSS 创建 RAM 子账号并授予相关权限: 登录 RAM 控制台。选择人员管理 > …

吃瓜神奇!企查查、天眼查、天眼销,到底哪家强?

最近,我发现很多人在讨论查企业信息的工具,什么企查查、天眼查、天眼销等,到底哪家强呢? 首先,我们来简单了解一下这些工具。企查查是一款可以帮助用户查询企业信息的工具,通过输入关键词,可以搜…

VPN基础

1.VPN简介 VPN即虚拟专用网,泛指通过VPN技术在公用网络上构建的虚拟专用网络。VPN用户在此虚拟网络中传输私网流量,在不改变网络现状的情况下实现安全、可靠的连接。 专用:VPN网络是专门供VPN用户使用的网络,对于VPN用户&#xf…

Redis魔法:点燃分布式锁的奇妙实现

分布式锁是一种用于在分布式系统中控制对共享资源的访问的锁。它与传统的单机锁不同,因为它需要在多个节点之间协调以确保互斥访问。 本文将介绍什么是分布式锁,以及使用Redis实现分布式锁的几种方案。 一、前言 了解分布式锁之前,需要先了…

太顶了!文心大模型落地文旅行业不仅能业生成潮玩、还可补文物残卷!

10月11日,文化和旅游部公布了2023年文化和旅游数字化创新示范十佳案例和优秀案例。百度文心大模型创新文化产品生产方式入选十佳案例,也是唯一一个入选的大模型应用案例。文心大模型获奖类型为运用数字化工具助力艺术创作生产,促进文化机构数…

产品升级!全球尺度下原核基因组关键基因共进化无标题

微生物是群落型的生存方式,高通量测序时代到来后,掀起了针对微生物群落整体研究的高潮,比如基于功能基因/16S/ITS/扩增子、宏基因组等进行群落多样性分析。但是,我们基于分离培养等方法获得单菌落,针对单菌开展基因组、…

xxx.ko 驱动模块加载报错 “unknown symbol in module or invalid parameter”

一、问题 在对单独驱动模块进行测试时,我们要进行动态编译,生成对应驱动的.ko模块。然后进行手动加载和卸载。但是在进行驱动模块加载时遇到了unknown symbol in module or invalid parameter问题,对此进行排查解决。 二、解决 首先进行dmes…

IEJoin: 提高 Databend range join 性能

作者:王旭东 Databend 研发工程师 xudong963 (xudong.w) GitHub IEJoin 算法可以高效的处理时序场景中的 Range(ASOF) Join。 Join conditions Equi condition 在 下面 SQL 中 SELECT * FROM employee JOIN department ON employee.DepartmentID department.D…

Spring 方法升级 在hellospring接口里面

1.现在实现类Hellojava写一个构造方法 2.去配置文件那里 3.测试 就留下第一步 看下面测试情况 我们在这里并没有去getbean它 但是我们new了 那就说明 只要我们newl它该对象就已经创建好了

如何把电脑上的游戏串流助手设置为开机自启动?

注意:想要直接将 游戏串流助手 扔进“启动”文件夹里面,是没有用的,重启电脑根本打不开游戏串流助手! 步骤一:每次双击 游戏串流助手之后,都会弹出这个用户账户控制,我们第一步就是要把这个禁用…

uniapp小程序实现绘制内容,生成海报并保存截图(Painter和Canvas两种方式举例)

一、Painter方法 Painter插件传送门 1.下载资源包 2.将资源包的如下部分 3.使用页面引入组件 ui样式 <paintercustomStyle=margin-left: 40rpx; height: 1000rpx;palette="{{palette}}"bind:imgOK="onImgOK"/>data 中数据(绘制内容,替换区域) pai…

深圳想要开低佣金开户?怎么开股票账户佣金最低?

深圳想要开低佣金开户&#xff1f;怎么开股票账户佣金最低&#xff1f; 炒股开户的方法一般有两种&#xff1a; 在线开户&#xff1a;通过证券公司的官网或手机APP进行在线开户。具体流程一般为填写个人信息、进行身份认证、签署相关协议并上传相关材料&#xff0c;最后等待审…

【C语言】文件的操作与文件函数的使用(详细讲解)

前言&#xff1a;我们在学习C语言的时候会发现在编写一个程序的时候&#xff0c;数据是存在内存当中的&#xff0c;而当我们退出这个程序的时候会发现这个数据不复存在了&#xff0c;因此我们可以通过文件把数据记录下来&#xff0c;使用文件我们可以将数据直接存放在电脑的硬盘…

Pytorch深度学习—FashionMNIST数据集训练

文章目录 FashionMNIST数据集需求库导入、数据迭代器生成设备选择样例图片展示日志写入评估—计数器模型构建训练函数整体代码训练过程日志 FashionMNIST数据集 FashionMNIST&#xff08;时尚 MNIST&#xff09;是一个用于图像分类的数据集&#xff0c;旨在替代传统的手写数字…

各种小程序/PC/移动端修改代码/文件后, 不热重载问题修复

各种框架有各种的配置,首先检查是否配置了热更新, 打个比方,taro中底版本中配置热更新是在配置文件中开启mini.hot,高版本中,终端执行打包命令的时候,添加–watch参数, 如果以上检查都没有问题,依旧还是没有热更新,那么很有可能是依赖出了问题,可以通过以下方法,重新…

Spring 趣玩

1、修改控制台启动显示的图案 在SpringBoot项目的resources目录下新建一个banner.txt文本文件&#xff0c;然后将启动Banner粘贴到此文本文件中&#xff0c;启动项目即可。 在线制作banner ①、http://patorjk.com/software/taag/ ②、https://www.bootschool.net/ascii ③、ht…

mysql数据库创建及用户添加和权限管理

1、创建数据库&#xff1a; CREATE DATABASE database_name; 例如&#xff1a; CREATE DATABASE mydatabase; 2、创建用户&#xff1a; CREATE USER usernamehostname; 例如&#xff1a; CREATE USER myuserlocalhost; 注意&#xff1a;替换 username 为你想要创建的用户名&a…

香港云服务器使用的小误区

​  当前&#xff0c;在海外市场的发展下&#xff0c;香港云服务器被推的火热。一方面&#xff0c;您可以根据需要积极利用它的免备案和国际线路等特性&#xff0c;另一方面&#xff0c;也可以借助它&#xff0c;使用尽可能多或尽可能少的存储空间&#xff0c;您的业务也可以…

高校教务系统登录页面JS分析——合肥工业大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…