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

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


强化学习的历史

早期的强化学习,我们称其为标准强化学习。最近业界把强化学习深度学习结合起来,就形成了深度强化学习(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)的过程。

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

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

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

参考文献:
[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.niftyadmin.cn/n/5083592.html

相关文章

366. 寻找⼆叉树的叶⼦节点

366. 寻找⼆叉树的叶⼦节点 这道题混用二叉树递归 「遍历」和「分解问题」 两种思维模式。 class FindLeaves:"""366. 寻找⼆叉树的叶⼦节点https://leetcode.cn/problems/find-leaves-of-binary-tree/"""def solution(self, root):self.res …

如何将中文翻译成日语:文件批量重命名的有效方法

随着全球化的发展&#xff0c;多语言交流变得越来越重要。在许多情况下&#xff0c;我们需要将中文文件翻译成日语&#xff0c;以便更好地进行国际交流。在这个过程中&#xff0c;文件重命名是一种非常有效的技巧&#xff0c;可以帮助我们更快、更准确地完成翻译任务。本文将介…

JavaScript的懒加载处理

&#x1f618;博主&#xff1a;小猫娃来啦 &#x1f618;文章核心&#xff1a;JavaScript的懒加载处理 文章目录 什么是懒加载实现懒加载的方式js四步法设置占位图监听滚动事件加载图片触发加载函数 什么是懒加载 懒加载&#xff08;Lazy Loading&#xff09;是一种优化技术&a…

CRMEB多商户商城系统阿里云集群部署教程

注意: 1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区 2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示 一、 创建容器镜像服务&#xff0c;容器镜像服务(aliyun.com) ,个人版本就可以 先创建一个命名空间 然后创建一个镜像仓库 查看并记录镜像公网地址…

安装JoySSL的SSL证书有什么优势?

近年来&#xff0c;网络安全事件层出不穷&#xff0c;屡禁不止。 据统计仍有57%的网站未进行https加密&#xff0c;成为数据泄漏的“导火索”之一。 而SSL证书不仅仅可以保护网站数据安全&#xff0c;而且可以降低网站被第三方窃取或篡改的风险。 安装JoySSL证书的好处&#…

Dijkstra算法和Floyd算法求最短路径

1.Dijkstra算法 Dijkstra算法用于从一个起始节点到图中所有其他节点的最短路径。它使用贪心策略逐步扩展路径&#xff0c;并选择当前路径中最短的节点作为下一个节点。Dijkstra算法来计算起始节点到各个节点的最短距离。Dijkstra算法适用于有向图或无向图&#xff0c;但是对于权…

nextjs构建服务端渲染,同时使用Material UI进行项目配置

一、创建一个next项目 使用create-next-app来启动一个新的Next.js应用&#xff0c;它会自动为你设置好一切 运行命令: npx create-next-applatest 执行结果如下&#xff1a; 启动项目&#xff1a; pnpm dev 执行结果&#xff1a; 启动成功&#xff01; 二、安装Mater…

为什么棋牌类APP不能做

1.首先&#xff0c;目前棋牌类APP已经被政府明令禁止了&#xff0c;所有开发和发布类似的APP是不被允许的。 其次&#xff0c;某信小游戏平台关于游戏类目选择的规范&#xff0c;明确的规定&#xff1a;棋牌类、捕鱼以及角色类目的游戏暂不对个人开发者开放&#xff01; 也就…