被追捧为“圣杯”的深度强化学习已走进死胡同
作者 | 朱仲光
编译 | 夕颜
出品 | AI科技大本营(ID:rgznai1100)
【导读】近年来,深度强化学习成为一个被业界和学术界追捧的热门技术,社区甚至将它视为金光闪闪的通向 AGI 的圣杯,大多数人都看好它未来发展的巨大潜力。但是,深度强化学习的本质是什么?人们对它的期望是否理智呢?现在,在一片追捧声中,终于有人开始质疑深度强化学习的真实作用。
2019年过去了,仍然无法迁移到现实世界
2019 年过去了,我想看看 AI 进展到哪一步了。特别是深度强化学习这个被人追捧为人工智能(AGI)具有变革性的关键一步,它的算法可以让机器用一种通用性的方式像人类一样学习做任何事。
几年来,研究人员一直在进行深度强化学习研究,并不断取得进步。围绕深度强化学习的想法和预期是,理论上你可以轻松地训练代理做任何事情,例如开车、洗衣服、玩视频游戏、打扫房屋、解魔方等等,而所有这些都不需要掌握学习过程。其中一些实验取得了一定的成功,比如人们已经教会深度强化学习代理播放一些游戏和棋盘游戏视频,但问题是,一旦迁移到现实世界或生产系统,所有的尝试都以失败告终。到目前为止,我仍然没有看到深度强化学习成功应用到生产系统中的案例。
深度强化学习系统存在很多问题,我不再赘述,有很多博客文章已经在讨论这些问题。
问题究竟出在哪?
哪怕这些存在的问题中只有一点点得到改善或解决,例如找到更抽象的方法来表示神经网络内部的信息,我也不会感到如此震惊。但是,如果你不能解决我认为的核心问题也没关系:人工奖励工程。我要说的是,在深度强化学习中,人们大多数时间都花在了设计奖励功能上,来让代理完成设定的任务。用一个更传统的机器学习术语来说,奖励函数是一个目标函数,该算法使用此函数来了解其是否朝着正确的方向前进,获得的奖励越多,模型就越“好”。
例如,如果要教一个机械臂叠衣物,假设是一堆裤子,你要做的是编写奖励功能,让机械臂正确地把这些裤子叠好。向人类描述这个任务听起来很容易,就是“把裤子叠整齐”,但是计算机并不知道这些规则的含义。对于每个实验,你都必须以某种方式对奖励进行编程,让计算机可以自己衡量进度,而它其实并不了解自己在干什么。因此,你可能在机械臂在开始触摸裤子时给点奖励,抓住裤子再给几分,或者移动裤子也给分。那如何为折叠部分设置奖励呢?折三下要给分吗?折得一点褶子都没有给几分?你花了大量时间在引导代理遵循正确的道路上,最后这基本上变成了一个完全监督的问题。
从理论上讲,你可以让一个人来监视训练的整个过程,然后这个人可以为系统执行的每个动作分打分,但这并不能规模化。这些深度强化学习系统需要进行数万次迭代,尝试各种动作以及随之发生的变化,以找出实现目标的正确顺序,而人类无法监视计算机所采取的所有步骤。目前很多研究正在积极尝试通过模仿学习来进行规模化,但是在我看来,这只是好像在原本就支离破碎的地基上修修补补。
在尝试训练叠衣服机器人的过程中,你可能需要不断调整奖励功能,因为它可能会不小心撕裂裤子,掉落部件,叠反了,或者用奇怪而没有意义的方式叠衣服。奖励工程变成了反复试验来探索有效方法的过程。深度强化学习模型进行各种意外动作的报告不计其数。强化学习通常与有监督和无监督机器学习放在一起被归为第三类,但在我看来,它实际上就是有监督学习。
深度强化学习当前的处理过程是:开始训练模型,然后看着模型挂掉,然后在很长一段时间内反复调整奖励功能,直到可能得到你所需的输出。哪一部分没有提供训练数据?你已经让整个过程更复杂了,而且因为不得不以非直接的方式把答案反馈给代理,一切变得更加困难。如果计算机要从其环境中学习,则必须在 100% 无人监督的环境中进行。
为什么深度强化学习被如此追捧?
如果从抽象的角度看待深度强化学习,它会被描述为是一个随着时间的推移从其环境中学习的代理。这看起来是绝对正确的,并且确实模仿了现实世界,所有生物体都是从出生就开始学习如何在其环境中生存和探索。我们之所以知道这一点,是因为我们进行了许多实验,这些实验凭经验向我们表明,如果我们改变和限制新生儿有机体的环境,它们就会学到不同的知识并表现出不同的行为。
深度强化学习与传统的机器学习方法(如监督分类)有很大的不同,后者是一种静态模型,该模型可以获取原始数据,进行回答并构建要在生产中使用的模型。传统深度强化学习框架中存在问题的是信号源。这些人工代理必须直接从自身及其环境中学习,而不是我们提供给他们的某些人为奖励功能。
当 DeepMind 提出用单一的深度强化学习代理学习如何在几乎没有干预的情况下玩 Atari 视频游戏时,人们认为这可以扩展到其他领域甚至 AGI 的各种问题。而我们知道,不能将有机体和人类所做的大多数事情简单地建模为视频游戏中代理不断优化以获取尽可能多的回报。
而且,不要被没有人工干预的深度强化学习赢得了游戏这个噱头唬住了,和 40 年前视频游戏制造商雇用了整个团队来制作这些游戏一样,这个实验中奖励功能设置仍然存在。
许多人误以为深度强化学习是 AGI 的下一步,甚至谷歌也表现出了极大的热情,并斥资 500 多万美元购买了 DeepMind,希望将 AI 提升到一个新的高度。社区似乎也将深度强化学习当作了圣杯,因为这是模仿人类现实行为最接近的机器学习形式,尽管实际上它还差得很远。最终,我们看到的只是一些雕虫小技,这样的 AI 玩具可以玩各种视频游戏、棋盘游戏,但是在其他地方就不灵了。
从更传统的机器学习方法转向深度学习的最大好处是,解放了人力劳动工程。从理论上讲,你可以为模型提供大量数据,让优化算法跑起来,而无需手动编写特征提取代码就可以学习。因此,深度学习已被应用于强化学习的一部分,主要是在代理层面以像素形式获取感知数据,但是如果你仍将大部分时间花在手工设计系统上,那么在我看来它仍然没有发挥应有的作用。这还不算其他深度强化学习面临的问题,例如,如果需要微调,就得做好重新训练整个系统的准备,或者环境中的细微变化通常最终会导致前功尽弃...不得不说,AGI 还任重而道远...
所以,现在我们拥有顶级的机器学习研究机构 DeepMind 和 OpenAI 仍将大部分时间和资源用于深度强化学习。他们不断用公关资源轰炸互联网,展示他们正在取得的巨大进步:深度强化学习可以玩围棋、星际争霸、Dota 2、解魔方等等。
我对他们为何继续花大量时间来构建深度强化学习系统感到困惑,这些系统只不过是以明确定义的规则和积分系统赢了游戏而已。我认为,如果有足够的时间、金钱和计算力,每个人都能暴力破解每个动作,深度强化学习几乎可以击败任何游戏。在我看来,他们的策略很大一部分就是用 PR 稿件放烟雾弹,来展示他们最新的深度强化学习系统是如何击败下一款最棒的游戏,从而忽悠那些并不了解情况的人投资,比如微软最近向 OpenAI 投资 10 亿美元,还有 Google 的银库大门向 DeepMind 敞开。DeepMind 最近的一次高亮时刻(被 Google 收购约 5 年后)是他们训练了一个深度强化学习代理来玩围棋、象棋、将棋和 Atari 游戏。是的,更多视频游戏!我并不是要打击他们,而是真的很高兴他们没有放弃,还在努力解决 AGI 问题。
别玩游戏了,干点实事!
问题在于,他们正在创造大量错误的观念,最终浪费了大量的人力,走进死胡同。首先,他们发布的所有 PR 稿件几乎都是一个模子,比如“我们的文本生成模型(GPT-2)因为太危险而无法发布”,这使得公众认为我们与 AGI 的距离越来越近,而业界中谁都知道这绝对不是真的。其次,更重要的是,他们向 AI 研究人员发送了错误的信号,希望他们将更多时间花在深度强化学习上。许多研究人员和黑客都关注这些公司,看到公关稿泛滥成灾,他们被引导花费大量时间来解决这些相同的问题,而他们本应该把精力集中在更大、更根本的问题上。如果 AI 和 AGI 能够向前发展,我认为是时候停止玩电子游戏,专注于更棘手的问题了。
幸运的是,DeepMind 和 OpenAI 确实在其他问题上费了心思,但是正如我所说的,似乎深度强化学习仍然是他们的主要重点。
当前的深度强化学习系统似乎很适合已接受基础训练的系统。如果代理已经对其环境和自身有基本的了解,考虑一下进行迁移学习。
我们可以观察到,人类婴儿出生后,首先要学会观察形状和颜色、移动手指、触摸物体、控制自己的身体、辨别声音、了解重力、物理学、跌倒、压扁、弹跳、学习物体通透性等。所有这一切都在每个活着的人类和有机体中发生着不同程度的变化。通常,在人类婴儿获得了非常丰富的知识之后,比如走路、抓住物体、使用洗手间、进行基本的交谈等,然后会被送进学校,通过作业、评分和测验等接受更正式、更加结构化的训练。
当前的深度强化学习系统似乎可以很好地用于这种形式化的训练,在这种形式的训练中,可以清楚地达到期望的目标,并且在代理已经对环境有了基本了解之后,大多数情况下会自动进行评分。如果孩子不能背诵 ABC,则失败,如果可以背诵所有字母表,则通过。目前,虽然深度强化学习处于领先地位,但我们正尝试从头训练计算机来完成有时可以奏效的复杂任务,但是由于这些模型是针对特定任务而不是一般性任务进行训练的,因此对它们的环境和内容并没有广义的了解。这最终会导致系统过于脆弱且无法很好地工作。只要奖励功能不固定,就不会有诸如反向传播、DQN、PPO、DDPG、TRPO 之类的较新的学习算法来修复深度强化学习。
可以肯定的是,深度强化学习一定会逐步改进,并可能从星际争霸游戏中获得更多的信息,但是如果不进行架构上的根本转变(允许代理在其环境中在无人监督的情况下学习),它就不会为通用人工智能的圣杯做出巨大的贡献。
我个人的设想是,生物体的奖励功能实际上是由维持体内平衡和最大程度地减少意外驱动的。稳态是生物维持生存所需的稳定条件的过程。每个生物都必须生存并保持其身体与外部环境分开。饥饿时它会进食,疲倦时会睡觉,渴了会喝水,受伤时会休息,被狩猎时会躲开,过热时会降温,等等。这些先天和原始的信号告诉生物体该如何以及在环境中探索时应关注的重点。如果不这样做会导致无法维持体内平衡,最终导致过早死亡。
当生物在四处游荡时,它会建立自己的感觉运动相互作用模型以及与环境相互作用的环境。这个模型开始把所有东西聚合在一起:天黑了,气温会下降,当我打嗝时,我应该听到声音,当我向左移动时,我的视线会移动 X,当动物在我的面前走过时,我预测它还会继续向前,等等。当发生某些事情,使其偏离模型时,模型会重新调整其预测,直到获得期望的结果,这可能会导致更多变化。如果失效,生物体会震惊,并将那些神经元标记为“需要模型更新”,其中重新学习和重新优化可能会实时发生,也可能在生物体处于睡眠状态时发生。在代理的内部环境模型与实际环境之间会进行优化,并持续运行以最大程度地减少意外。
在神经科学和哲学领域,很多人已经在讨论这些想法,比如安迪·克拉克(Andy Clark)的前处理理论,卡尔·弗里斯顿(Karl Friston)的自由能原理。据我所知,我还没有看到这些想法在机器学习环境中得到成功部署。我认为这其中存在许多技术问题:如何在计算机中模拟动态平衡,如何存储模型的内部表示,代理的感知设备与环境之间的分辨率较低以及保真度较低的环境等。
我并不是要写一篇引战的文章,但我想不出向人们解释当前的深度强化学习体系结构存在根本缺陷的办法。我们并不需要更多可以玩更多视频游戏的模型,而是需要实现一个模型,该模型可以学习在完全无监督的环境下学习代理与其环境之间的广义表示。这种新架构可以称为深度强化学习 3.0,或者主动推理、预测处理或完全不同的东西,但请不要在这个死胡同上浪费时间。
深度强化学习研究提出了一些很酷且有趣的工作,但是时候继续赶路了。那个能找到一种方法来构建下一个可以一用无人监督从环境中学习 AI 一般结构的人,将会让这一领域发生巨变,推动整个领域向前发展。
原文链接:
http://www.jtoy.net/blog/deep-reinforcement-learning-is-a-waste-of-time.html
(*本文为AI科技大本营编译文章,转载请微信联系1092722531)
◆
精彩推荐
◆
推荐阅读
阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”
基于强化学习的自动交易系统研究与发展综述
如何写出让同事膜拜的漂亮代码?
AMD或推出64核128线程HEDT平台;地平线即将推出新一代自动计算平台;阿里达摩院公布2020十大科技趋势……
2019最烂密码榜单出炉,教你设置神级密码!
腾讯回应“暴力裁员”;小米否认常程与联想签有竞业禁止条款;NumPy 1.16.6 发布 | 极客头条
GitHub Action 有风险?!
骗了马云 10 亿被骂 4 年后,院士王坚留下 4 条人生启示
万字长文回望2019:影响区块链行业发展的9大事件
你点的每个“在看”,我都认真当成了AI
相关文章:
一种清除windows通知区域“僵尸”图标的方案——问题分析
通知区域名称有趣的历史 假如说到windows通知区域,可能很多人还是不清楚它是什么。如果改称Tray区域,可能有人就懂了。如果再白话点,叫它“托盘”或者“系统托盘”,可能会有更多的人猜到它是windows什么部位。现在我们揭开…

Apache2.4+Tomcat7集群搭建
一、安装jdk、Tomcat、Apache1.安装jdk1.7cd /home/java/software #把软件下载到/home/java/software目录下,将应用安装到/home/java目录下。 wget http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz tar -zxvf jdk-7u80-linux-x64.tar…
一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案
XP下“僵尸”图标的解决方案 从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,XP的通知区域结构是相对简单的。如果我们解决了XP下的问题,那么Win7上的问题…

《评人工智能如何走向新阶段》后记(再续12)
由AI科技大本营下载自视觉中国151. 新一代人工智能研究方向: (1)研究新一代人工智能基础理论(机理、模型和算法);(2)研发面向需求的共性技术(以神经网络和算法为核心、数据和硬件为基…

正则表达式测试工具 Regex Tester 的使用方法
2019独角兽企业重金招聘Python工程师标准>>> 正则表达式测试工具“RegexTester”,下载地址:http://www.oschina.net/p/regextester 一、关于本文 今天的工作中遇到了一些正则表达式,我需要检验它们是否正确,不过我对自…
一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案
Windows7下“僵尸”图标的解决方案 从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,Windows7的通知区域比XP通知区域多出了一个“临时”系统通知区域(转载…

《评人工智能如何走向新阶段》后记(再续13)
由AI科技大本营下载自视觉中国161. 引自美国科技媒体TNW记者对美欧企业主管与AI专家的访谈录摘要,谈到2020年AI的八大趋势: ①人工智能将使医疗保健更准确、成本更低; ②可解释性和信托及AI伦理将受到更多关注; ③在人工智能领…

在特定情况下的简单SSO实现方案
最近需要实现类似单点登录的功能。情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不…

为创业者保驾护航 “无安全 不创业” 安全狗全国路演北京站
2019独角兽企业重金招聘Python工程师标准>>> 2015年上半年,网络安全问题毫无疑问已经成为了互联网行业关注的重点。在短短一年多的时间里,网络安全问题就从隐患转而呈现出爆发之势,即使是网易、支付宝、携程这样的互联网行业巨头也…
一种将快捷方式从开始菜单“常用应用”的中去除的方法
当我们安装一款软件的时候,这款软件的一些快捷方式可能被设置到开始菜单的“常用应用”区域。但是,如果是“卸载”快捷方式被“钉”到该区域,就会造成非常不好的体验。毕竟把“卸载”接口暴露得如此醒目,如同把该款软件的地狱大门…

ISA---不能访问网址或是多次刷新才能访问的解决方法一则
当你安装ISA2006在WINDOWS 2003 SERVER上,并打上SP2补订时。遇SNAT客户端不能访问WEB,但能PING通,能TELNET通,也能访问QQ或是MSN的问题时可以利用以下方法解决。同时,如果你遇到在此环境下,客户端访问外部网…

《评人工智能如何走向新阶段》后记(深谈人工智能发展前沿)
由AI科技大本营下载自视觉中国来自国内外的跟贴留言 深谈人工智能发展前沿 自从我们发表《评人工智能如何走向新阶段》一文以来,至今约5个月,引来了中外专家、草根们的大量跟贴留言(也有人转录他人的公开言论作为跟贴来发表的)。…

URAL 2027 URCAPL, Episode 1 (模拟)
题意:给你一个HxW的矩阵,每个点是一个指令,根据指令进行一系列操作。 题解:模拟 #include<cstdio> #include<algorithm> using namespace std;const int maxn 101; char G[maxn][maxn];int dx[] {-1,0,1, 0}; int d…

使用WinHttp接口实现HTTP协议Get、Post和文件上传功能
我实现了一个最新版本的接口,详见《实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现》。还有基于libcurl实现的版本《实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现》。以下是原博文: 我们在做项目开发时,往往会…
收藏 | 一文带你总览知识蒸馏,详解经典论文
「免费学习 60 节公开课:投票页面,点击讲师头像」作者:凉爽的安迪来源 | 深度传送门(ID:deep_deliver)【导读】这是一篇关于【知识蒸馏】简述的文章,目的是想对自己对于知识蒸馏学习的内容和问题…

[工具推荐]用了TrueCrypt 再无难掩之隐
缘起:混在网络n多年了,手头总有些东西不想被别人看到的东西,由于小弟人品好,相貌佳,总有很多朋友喜欢用我的电脑玩啊玩啊……。 近日,冠希、柏芝等前辈以身示法,为我等上了很好一堂关于隐私保护…

利用phpmailer类邮件发送
<?phprequire("class.phpmailer.php"); //下载的文件必须放在该文件所在目录$mail new PHPMailer(); //建立邮件发送类$address "接收方邮箱"; //接收方地址$mail->IsSMTP(); //使用SMTP方式发送$…
据说这是大多数人【减肥】的真实写照
有句诗说得好 “冬天不减肥,夏天徒伤悲” 在这个人人储存脂肪的季节绝对是你甩掉脂肪的好时机(毕竟这是一个拼颜值的时代颜值是天生的,可是身材绝不能输)但是 据说大多数人的减肥经历其实是这样的减肥第一步管住嘴,迈开…
PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
在日常应用中,某些程序往往会被第三方程序下钩子(hook)。如果被下钩子的进程是我们的进程,并且第三方钩子严重影响了我们的逻辑和流程,我们就需要把这些钩子摘掉(Unhook)。本件讲述一种在32位系统上,如何摘掉API钩子的思路和方法。…

设置列表字段为主键
转贴:Sample event handler to set a field as a pr imary key (enforce no duplicates) Got this as a request from a reader- how to prevent users from adding items with same titles as ones that already exist in the list. Codeusing System;using System.Collectio…

谁登录了你的linux
最近有一台数据库服务器自动重启。查了一下相关登录信息:查看linux下的用户登录日志,包括用户登录时所用的主机的ip:more /var/log/secure who /var/log/wtmp干了些什么? root账户下输入su - username 切换到username下输入 histo…
一种使用GDI+对图片尺寸和质量的压缩方法
今天同事向我询问图片压缩的算法,我想起大概两三年前做过的一个项目。其中包含了尺寸和质量两种压缩算法,并且支持JPEG、bmp、PNG等格式。今天把这段逻辑贴出来,供大家参考。(转载请指明来源于breaksoftware的CSDN博客)…

.NET企业级应用架构设计系列之应用服务器
本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。转载或引用请注明原文之出处,谢谢! .NET企业级应用架构设计系列之开场白 .NET企业级应用架构设计系列之技术选型 这里要说到的…
编程语言发展70年,用50种不同语言输出「Hello World」
「免费学习 60 节公开课,投票页面,点击讲师头像」作者 | Sylvain Saurel译者 | 风车云马责编 | 屠敏【导读】历经 70 年,不断出现的编程语言为开发者解决了哪些难题?其存在又有怎样的特性?本文将以「Hello World」为例…

函数循环的理解
2019独角兽企业重金招聘Python工程师标准>>> var ulObjdocument.getElementById("box"); var lisObjulObj.getElementsTagname("li"); for(var i0;i<lisObj.length;i) { lisObj[i].οnclickfunction()//循环时对应节点绑定事件,事…
从LeNet到GoogLeNet:逐层详解,看卷积神经网络的进化
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | MrCharles来源 | CSDN原力计划获奖作品(*点击阅读原文,查看作者更多文章)前言深度学习的兴起使卷积神经网络在计算机视觉方面大放异彩,本文将按时间…

Windows客户端C/C++编程规范“建议”——前言
前言 工作中接触了很多编程规范。其中最有意思的是,公司最近发布了一版C/C编程规范,然后我看到该规范的最后一段时,有这么一句:“该规范不适用于Windows平台开发”。看来这份规范是由做其他平台开发的同学制定的。那么做Windows开…

storm入门教程 第一章 前言[转]
1.1 实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率。正因为大家对信息实时响应、实时交互的需求,软件行业除了个人操作系统之外,数据库(更精确的说是…

Windows客户端C/C++编程规范“建议”——函数
1 函数 1.1 代码行数控制在80行及以内 等级:【要求】 说明:每个函数的代码行数控制应该控制在80行以内。如果超过这个限制函数内部逻辑一般可以拆分。如果试图超过这个标准,请列出理由。但理由不包含如下: 无法拆分。流程内部…