深度学习到顶,AI寒冬将至!


新智元推荐

来源:专知 (ID: quan_zhuanzhi)

作者 :FILIP PIEKNIEWSKI

【新智元导读】多年来,深度学习一直处于所谓的人工智能革命的最前沿,许多人相信深度学习将带领我们进入通用AI时代。然而,从12,13年甚嚣尘上,到如今的尘埃落地,浪潮一再的退去。面对疲软的风口,养肥的猪,人工智能将何去何从?

AI Winter Is Well On Its Way

多年来,深度学习一直处于所谓的人工智能革命的最前沿,许多人相信深度学习将带领我们进入通用AI时代。在2014,2015,2016年,很多事件每每推动人们对 Ai的理解边界。例如Alpha Go等。特斯拉等公司甚至宣称:全自动驾驶汽车正在路上。

但是现在,2018年中期,事情开始发生变化。从表面上看,NIPS会议仍然很火,关于AI的新闻也很多,Elon Mask仍然看好自动驾驶汽车,而Google CEO不断重申Andrew Ng的口号,即AI比电力作出了更大的贡献。但是这些言论已经开始出现裂纹。裂纹最明显的地方是自动驾驶 - 这种现实世界中的实际应用。

深度学习尘埃落定

当ImageNet有了很好的解决方案(注意这并不意味着视觉问题得到已经解决【1】),该领域的许多杰出研究人员(甚至包括一直保持低调的Geoff Hinton)都在积极地接受采访,在社交媒体上发布内容(例如Yann Lecun,吴恩达,李飞飞等)。他们的话,可以总结为:世界正处在一场巨大的AI革命中。然而,好几年已经过去了,这些人的Twitter信息变得不那么活跃了,比如 Andrew Ng:

2013年 - 每天0.413推文

2014 年- 每天0.605条推文

2015 -每天0.320条推文

2016 -每天0.802推文

2017 -每天0.668推文

2018 -每天0.263推文(至5月24日)

也许这是因为Andrew 的某些夸张言论,在当下会被进行更详细的审查,如下面的推文【2】所示:

不可否认,深度学习的热度已经大大下降,赞美深度学习作为AI终极算法的推文少得多了,而且论文正在变得不那么“革命”,现在大家换了个词,叫:进化

自从Alpha Zero以来,DeepMind已经许久没有产出令人惊叹的东西了。 OpenAI更是相当的低调,他们最近一次出现在媒体的报道上,是他们做了一个自动打Dota 2【3】的机器人 [我一开始以为,这是跟 Alpha Go 一样的伟大,然后后来证明,并不是]。

从某些文章来看【4】,貌似Google实际上并不知道如何处理Deepmind,因为他们的结果显然不如原先预期的那么实际......至于杰出的研究人员,他们一般都为了funding 在各种政府机构间游走,Yann Lecun甚至【5】从 Facebook的AI首席科学家的位置上下台了。

像这种从富有的大公司向政府资助的研究机构的逐渐转变表明,这些公司对这类研究的兴趣(我认为是谷歌和Facebook)实际上正在慢慢消失。这些都是早期迹象,没有人大声的宣扬,但这些行动就像肢体语言,也能传达某种意思。

大规模深度学习(实际并没有)

深度学习的一个重要口号是它可以轻松的扩展。我们在2012年拥有60M参数的AlexNet,现在我们已经有至少1000倍的数量的模型了吗?好吧,我们可能会这样做,但问题是 - 这些东西有1000x的能力提升吗? 100倍的能力? openAI的研究派上用场:

因此,就视觉应用而言,我们看到VGG和Resnets在计算资源应用的一个数量级上饱和(就参数数量而言实际上较少)。Xception是谷歌Inception架构的一种变体,实际上它在ImageNet上的表现只是略微优于其他模型,因为AlexNet基本上解决了ImageNet。

因此,在比AlexNet计算量提高100倍的情况下,我们在视觉方面已经有了近乎饱和的体系结构,换句话说,图像分类的精确已经提不动了

神经机器翻译是所有大型网络搜索玩家(google, baidu, yahoo 等)的一大努力,难怪它有多少机器就用多少机器(尽管谷歌翻译仍然很糟糕,虽然已经在变得更好了)。

该图上的最新三点有趣地显示了Deep Mind和OpenAI应用于游戏的强化学习相关项目。特别是AlphaGo Zero和稍微更通用的Alpha Zero需要大量计算,但不适用于真实世界的应用程序,因为需要大量计算来模拟和生成这些数据来供这些模型使用。

好的,现在我们可以在几分钟内完成AlexNet的训练,但是我们可以在几天内训练一个比AlexNet大1000倍,质量更好的模型吗?显然不是。

所以实际上,这张旨在表明深度学习规模的图,表明了最终结果恰恰相反。我们不能仅仅扩大AlexNet的规模来得到更好的结果——我们必须处理特定的体系结构。有效的额外的计算, 不需要大量的数据样本,才是努力的方向。

自动驾驶事故

迄今为止,对深度学习的声誉打击最大的事件来自自动驾驶领域。一开始人们认为End-to-End的深度学习可以以某种方式解决自动驾驶问题 (Nvidia特别推崇这一理念)。现在我觉得地球上应该没有人还相信这一点(尽管我可能是错的)。

看看去年加州车辆管理局DMV给各个厂商的自动驾驶车辆人为干预报告,Nvidia的自动驾驶汽车在缺少人为干预的情况下,连开10英里都做不到

自2016年以来,特斯拉自动驾驶系统发生了几起事故[6,7,8],其中一些事件是致命的[6,7]。可以说,特斯拉的自动驾驶辅助技术不应该与自动驾驶混淆起来虽然在核心上它依赖于同一种技术。

都到今天了,它仍然不能自动停在路口,不能识别交通信号灯,甚至不能通过环形交叉路口。那是在2018年5月,在承诺特斯拉将自动驾驶从西海岸开到东海岸的几个月后(尽管传言是他们已经尝试过但是在小于30次人工干预的情况下无法实现)。几个月前(2018年2月),伊隆马斯克(Elon Musk)在一次电话会议上被问及海岸到海岸的行驶问题时重复说到:

“我们本可以实现海岸到海岸的驾驶,但它需要太多的专门代码来有效地进行游戏;或者使代码变得脆弱一些,这样它只适用于一个特定的路线,这不是通用的解决方案。

我对神经网络方面取得的进展感到非常兴奋。但是看起来并没有太多的进展。它会觉得这是一个蹩脚的司机。就像…好吧,这是一个非常好的司机。像“Holy Cow!”

那么,看看上面的图表(来自OpenAI),我似乎没有看到指数级的进展。几乎在这个领域的每一个科研人员在离开之前都没有看到指数级的进展。实质上,上述说法应该被解释为:“我们目前没有可以安全地驱使我们实现岸到岸驾驶的技术,尽管如果我们真的想要(也许......)我们可以伪造它。我们深深地希望神经网络领域的蓬勃发展尽快到来,并帮助我们免受耻辱和大规模的诉讼“。

但是迄今为止,人工智能泡沫中最大的刺点是Uber自驾车在亚利桑那州(Arizona)发生的撞死一名行人的事故。从NTSB的初步报告中,我们可以读到一些令人惊讶的发言:

(自动驾驶系统会将行人识别为一个机器,或者说一个交通工具,对其运动速度的判断就会有问题,预留的减速时间就会出现问题,从而出现紧急情况)

在报告中,除了整体系统设计的明显失败,令人吃惊的是,系统花费了很长时间去确定前方的物体到底是什么(行人、自行车、汽车或者其他),而不是作出判断,保证不撞到它。主要有几个原因:第一,人们通常会在事后表达他们当时的决定,例如,“我看到一个骑自行车的人,所以我转向左边避开他”。

大量的心理学研究提供了截然不同解释­­:当一个人遇到这种情况,会在很短的时间内,通过神经反馈,将前方物体识别为障碍,并迅速行动,避开他。稍长时间后,他意识到刚才发生了什么,并提供口头解释。我们的许多决定里,有很多都不是用语言表达的。语言表达的开销很大,并且现实中通常没有那么充裕的时间。这些机制为了保护我们的安全,已经进化了10亿年的时间,虽然仍然可能导致错误,但我们对三维空间、速度、预测行为的理解能力,已经通过进化过程,磨练的相当好了。

但是由于这些问题大多无法用语言来表达,并且很难测量,因此难以在这些方面对机器学习系统优化。这种情况非常有利于基于Nvidia的端到端方法的发展,通过学习图像到动作的映射,不考虑任何语言,从某种程度来说,这个方法没有错,但问题是,输入空间的超高维变量和动作空间的低维标签之间的差距非常大。因此,与输入的信息量相比,“标签”的数量非常小,在这种情况下,算法非常容易学习到虚假的关系,正如在深度学习中所举得例子一样,需要不同的范式,将对输入空间的感知能力作为第一步,使得系统能够提取真实世界的语义特征,而不是虚假的相关性。可以阅读之前的文章【9】。

事实上,如果说我们从深度学习的爆发式增长中学到了什么的话,那就是高维图像空间中含有非常多的伪模式,并在许多图像中进行了泛化,这就使分类器好像理解了它们所看到的图片那样。即使那些顶级研究人员亦不得不承认,事实并非如此。

需要提到的是,更高层的人正在意识到这种问题,并开始公开的批评它。最为活跃的要数Gary Marcus。虽然我并不认同Gary关于AI的所有观点,但我们都认同,它还没有像宣传的那么强大。他的博文Deeplearning: A critical appraisal【10】 和In defense of skepticism about deep learning【11】中,详细的解释了深度学习的宣传过程。我很尊重Gary,他表现的就像一个真正的科学家,而很多深度学习名人,却像是廉价的明星一样。

结论

预测人工智能的冬天就像是猜测股市崩盘一样——不可能精确地知道发生的时间,但几乎可以肯定会在某个时刻发生,就像股市崩盘之前,有迹象表明会发生危机,但在当时的环境中,却很容易被大家忽视。

在我看来,深度学习已经出现了明显的下降迹象。我并不知道这个冬天会有多“深度”,我也不知道接下来会发生什么,但我可以肯定,这个冬天一定会来临,并且只会来的比想象的要早。

1.https://blog.piekniewski.info/2016/08/12/how-close-are-we-to-vision/

2.https://twitter.com/lpachter/status/999772075622453249

3.https://blog.openai.com/dota-2/

4.https://www.theinformation.com/articles/deep-confusion-tensions-lingered-within-google-over-deepmind?shared=f86956392ee2b350Iss

5.https://qz.com/1186806/yann-lecun-is-stepping-down-as-facebooks-head-of-ai-research/

6.http://www.newsweek.com/autonomous-tesla-crashes-parked-fire-truck-california-freeway-789177

7.http://www.newsweek.com/tesla-model-s-crash-car-autopilot-sped-just-utah-firetruck-944251

8.https://www.zerohedge.com/news/2018-05-28/tesla-enthusiasts-european-model-3-tour-ends-when-autopilot-crashes-median

9.https://blog.piekniewski.info/2016/11/04/predictive-vision-in-a-nutshell/

10.https://arxiv.org/abs/1801.00631

11.https://medium.com/@GaryMarcus/in-defense-of-skepticism-about-deep-learning-6e8bfd5ae0f1


原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2018-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2940
来自专栏C/C++基础

C#获取系统当前时间

ystem.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=Sy...

1273
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3196
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1531
来自专栏码匠的流水账

聊聊spring cloud的LoadBalancerAutoConfiguration

本文主要研究一下spring cloud的LoadBalancerAutoConfiguration

1282
来自专栏james大数据架构

C#日期格式转换

DateTime dt = DateTime.Now; // Label1.Text = dt.ToString();//2005-11-5 13:21:25 ...

1995
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

2033
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3136
来自专栏Pulsar-V

C# 数据类型之String转byte[]

string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str...

2895
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

22010

扫码关注云+社区