作者:Tom Silver 机器之心编译
随着人工智能技术的火热,越来越多的年轻学者正准备投身其中,开启自己的研究之路。和所有其他学科一样,人工智能领域的新人总会遇到各种各样的难题,其中不仅有研究上的,也有生活方面的。MIT EECS 在读博士、前 Vicarious AI 员工 Tom Silver 近日的一篇文章或许对你有所帮助。
我的一个朋友最近正要开始人工智能的研究,他问及我在 AI 领域近两年的研究中有哪些经验教训。本文就将介绍这两年来我所学到的经验。其内容涵盖日常生活到 AI 领域中的一些小技巧,希望这可以给你带来一些启发。
开始
找到一个你感觉合适的人询问「傻问题」
最初,我非常害怕自己的同事,羞于向人提问,因为这可能会使我看起来非常缺乏基础知识。我花了好几个月才适应了环境,开始向同事提问,但一开始我的问题仍然非常谨慎。不过现在,我已有三四个关系较好的人了,我真希望当时能早点找到他们!我曾经淹没在谷歌搜索的条目中。现在,当我遇到一个问题后会直接询问他人,而不是自己想办法,最终陷入困惑。
在不同的地方寻找研究灵感
决定做哪些工作是研究过程中最困难的一部分。对此,研究人员已经存在一些一般性的策略:
-
与不同领域的研究者交谈。问问他们对于哪些问题感兴趣,并试图用计算机专业的语言重述这些问题。询问他们是否有想要进行分析的数据集,哪些现有技术是解决问题的瓶颈。机器学习中很多最具影响力的工作都是计算机科学与生物/化学/物理学、社会科学或者纯数学之间的碰撞。例如 Matthew Johnson 等人在 NIPS 2016 的论文《Composing graphical models with neural networks for structured representations and fast inference》是受到一个小鼠行为数据集启发的结果;Justin Gilmer 等人在 ICML 2017 上的论文《Neural Message Passing for Quantum Chemistry》应用于量子化学。
-
编写一个简单的基线来获得对问题的感受。例如,尝试编写一个有关控制倒立摆的详细校准代码(https://gym.openai.com/envs/Pendulum-v0/),或者试着看看能不能在自然语言数据集上推送一个词袋模型。我在编写基线时经常会遇到无法预料的情况——我的想法或代码里都有可能出现错误。在基线运行时,我通常会对问题有更深的理解,并产生出很多新的想法。
-
扩展你喜欢的论文的实验部分。仔细阅读方法与结果,尝试找到问题的关键。首先尝试最简单的扩展,问问自己:论文中的方法是否适用,思考一下文中没有讨论的基线方法,以及它们可能会失败的原因。
投资可视化工具和技能
在编写研究代码时我采用的策略是从创建可视化脚本入手。在编写完其余代码后,我会运行可视化脚本,以快速验证代码是否与我的心智模型匹配。更重要的是,良好的可视化经常会使我想法或代码中的 bug 更加明显、明了。这里还有一些自我激励的话要说:当我完成这个代码时,我会做一份漂亮的数据或视频给大家看!
为手头的问题寻找合适的可视化方法可能非常棘手。如果要迭代优化模型(例如深度学习),从绘制损失函数曲线着手会比较好。此外还有许多用于可视化和解释神经网络(特别是卷积神经网络)学得权重的技术,例如导向反向传播。在强化学习和规划中,智能体在其环境中的行为是显而易见的,无论是雅达利游戏、机器人任务还是简单的 grid world(如 OpenAI Gym 中的环境)。根据设置,还可以可视化价值函数及其在训练过程中的变化(如下所示),或者可视化探索状态树。在处理图形模型过程中,当一维或二维变量在推断过程中发生变化时,对其分布进行可视化可以获得丰富的信息(如下所示)。估计每次可视化分析时必须在头脑中保存的信息量可以帮助检测可视化技术的有效性。如果可视化技术非常糟糕,你需要详尽地调用你编写的代码来生成它;反之,一个良好的可视化技术可以带来一个明显的结论。
Tensorboard 是可视化 TensorFlow 深度学习模型的常用 GUI。
随着数据的积累绘制分布图可以大大降低 debug 图形模型的难度(来自 Wikimedia)。
用 Q-learning 学习的价值函数可以在它所表示的 grid world 上可视化(作者:Andy Zeng)。
确定研究人员和论文的基本动机
在相同的会议上发表文章、使用相同的技术术语、自称研究领域是人工智能的研究人员可能有截然相反的研究动机。一些人甚至建议为这个领域取不同的名字,以澄清问题(就像 Michael Jordan 在最近一篇优秀的博客文章中提到的那样)。他们的动机至少可分为三类:「数学」、「工程」和「认知」。
-
「数学」动机:智能系统有何基本属性和局限性?
-
「工程」动机:如何开发能够更好地解决实际问题的智能系统?
-
「认知」动机:怎样才能模仿人类和其他动物的自然智能?
这些动机可以和谐共存,许多人工智能领域的有趣论文都是从多个角度出发。此外,单个研究人员的研究动机往往并不单一,这有助于实现人工智能领域的聚合。
然而,动机也可能并不一致。我有一些朋友和同事,他们有明显的「工程」倾向,还有一些主要对「生物学」感兴趣。一篇论文表明,现有技术的巧妙结合足以在基准上超越现有技术水平,这将激起工程师们的兴趣,但认知科学家可能对此不感兴趣,甚至嗤之以鼻。但如果一篇论文阐释了生物可解释性(biological plausibility)或认知联系,这篇论文收到的反响可能截然相反,即使其结论只是理论性的或结果非常不起眼。
优秀的论文和研究人员在一开始就会说明他们的动机,但根本动机往往藏地很深。我发现在动机不明显的情况下,对论文进行各个击破将会很有帮助。
从科研社区中汲取营养
找论文
AI 领域的论文可以在 arXiv 上找到和发布。现在的论文数量非常令人振奋。社区中的许多人降低了从噪声中分辨出信号的难度。Andrej Karpathy 开发了 arXiv sanity preserver,帮助分类、搜索和过滤特征。Miles Brundage 每晚都在推特上发布自己整理的 arXiv 论文列表。很多推特用户常常分享有趣的参考文章,我推荐大家在推特上关注自己喜欢的研究者。如果你喜欢用 Reddit,那么 r/MachineLearning(https://www.reddit.com/r/MachineLearning/)非常棒,不过文章更适合机器学习从业者而不是学界研究者。Jack Clark 发布每周社区 newsletter「Import AI (https://jack-clark.net/)」,Denny Britz 发布「The Wild Week in AI (https://www.getrevue.co/profile/wildml)」。
查看会议论文集也很值得。三大会议是 NIPS、ICML、ICLR。其他会议还包括 AAAI、IJCAI、UAI。每个分支学科也有自己的会议。计算机视觉方面有 CVPR、ECCV、ICCV;自然语言方面,有 ACL、EMNLP、NAACL;机器人方面,有 CoRL(学习)、ICAPS(规划,包括但不限于机器人)、ICRA、IROS、RSS;对于更理论性的研究,有 AISTATS、COLT、KDD。会议是目前论文发表的主要渠道,但是也有一些期刊。JAIR 和 JMLR 是该领域最厉害的两种期刊。偶尔一些论文也会出现在科学期刊上,如 Nature 和 Science。
寻找旧的论文同样重要,不过通常更难。那些「经典」论文通常出现在参考文献中,或者研究生课程的阅读书单。发现旧论文的另一种方式是从该领域的资深教授开始,寻找他们的早期作品,即他们的研究路径。同样也可以向这些教授发送邮件询问额外的参考(即使他们太忙没有回复也不要介意)。寻找不那么有名或被忽视的旧论文的一种持续方式是在 Google scholar 中搜索关键词。
应该花费多长时间阅读论文?
关于阅读论文应该用的时间我听到过两种常见建议。一,刚开始的时候,阅读所有论文!人们通常说研究生的第一学期或第一年应该只阅读论文。第二,在最初的上升期之后,不要花费太多时间阅读论文!原因在于如果研究者不被之前的方法左右,更有可能创造性地提出和解决问题。
我个人同意第一条建议,不同意第二条。我认为一个人应该尽可能多地阅读论文。「如果我不熟悉别人尝试过的方法,那我就能更好地想出新颖的更好方法。」——这种想法似乎不太可能,且傲慢。是的,新视角可能是一把钥匙,业余者解决长期挑战是因为他们超出常规的想法。但是职业研究者不能完全依赖运气来探索未被考虑过的解决方案。我们的大部分时间都用来缓慢且有方法地逐步解决问题。阅读相关论文是找出我们所处位置和下一步尝试方向的更高效方式。
关于尽可能多地阅读论文,有一个重要的注意事项:消化论文内容和阅读论文一样重要。用一天时间学习几篇论文、认真做笔记、认真思考每一篇的内容和思路,比不断阅读论文要好一些。尽可能多地阅读论文。
对话 >> 视频 > 论文 > 会议演讲
论文绝对是了解陌生研究思路的最易获取的资源。但是最高效的路径是什么呢?不同人的答案或许也不同。我认为,对话(和已经理解该思路的人对话)是目前最快、最有效的路径。如果这种方法不可行,那么相关视频也会提供很好的见解,比如论文作者受邀进行演讲。当演讲者面对的是现场观众时,他们可能更偏重清晰性而不是准确度。而在论文写作中,这种偏重是相反的,字数统计是关键,背景解释可能被当作作者不熟悉该领域的证据。最后,简短的会议演讲通常更正式,而不是合适的教育机会。当然,演讲结束后与演讲者进行对话交流是非常有价值的。
小心炒作
成功的人工智能研究总会引起公众的关注,让更多的人进入这一领域,从而引出更多成功的 AI 研究。这一正循环在大部分情况下都是适用的,但其也有一个副作用就是炒作效应。新闻编辑总是希望获得更多点击率,科技公司则希望获得投资者的青睐,并多多招募新人,而研究者们往往会追求高引用量和更高质量的发表。在看到一篇文章或论文的标题时,请务必注意这些问题。
在 NIPS 2017 的一个论文讨论活动中,数百名听众目睹了一位有名望的教授拿着麦克风(「我谨代表炒作警察」)劝告作者不要把单词「imagination」用在论文标题中。我对于这种公众对抗总是有着复杂的感受,而且我还恰好喜欢这篇论文。但这并不意味着我无法理解这位教授的挫败感。人工智能研究中最常见,最令人厌恶的宣传表现之一,就是用新术语重新命名旧概念。所以,小心那些流行语——主要根据实验及其结果来判断一篇论文。
开始科研马拉松
树立可衡量的进展目标
之前搜寻研究项目时,我花费了大量时间进行头脑风暴。那时对我来说,头脑风暴就是把脑袋搁在桌子上,希望一些模糊的直觉可以变成具体的见解。结束了一天的「头脑风暴」,我常常感觉疲惫、灰心丧气。这是科研吗?我很疑惑。
当然,没有导向科研进展的良方,在黑暗中瞎撞是(大部分)进展的一部分。但是,现在我发现树立一个可衡量的目标,然后计划工作,更加容易且易于实现。如果我不知道接下来要做什么,那么目标可以是:写下一个模糊的想法,但要尽可能详细;如果在写的过程中,觉得这个想法不好,那就写出排除该想法的理由(而不是完全废除这个想法,这样就失去了对进展的衡量)。在没有任何想法的时候,我们可以用读论文或与同事交流的方式取得进展。一天结束时,我的工作有了一些实实在在的东西。即使这些想法永远不会用到,但是我的斗志得到提升,也不再担心以后会在相同的想法上浪费时间。
学会判断死胡同,并退回来
强大的研究者花费更多时间在好的想法上,因为他们在糟糕想法上所用的时间较少。能够识别好想法和坏想法似乎很大程度上是经验问题。然而,任何水平的研究者都会经常遇到下面的决策问题。我的研究思路有缺陷或无法产生结论,我应该尝试 A)继续挽救或支持这个思路,还是 B)完全抛弃这个思路呢?我个人非常后悔在本应该做 B)时却把时间浪费在 A)上。尤其是之前,我曾多次陷在死胡同中,而且时间很长。我之所以不愿意离开很大程度上是由于沉没成本误区:如果我退出这个「死胡同」,那我已经花费的时间不就白白浪费了吗?
现在当我离开研究死胡同时还是会感到一些失望。不过我现在尝试使自己意识到后退也是一种进步。成本花费得值,不算沉没。如果我今天没有探索死胡同,那我可能明天还会遇到。死胡同并不是终点,它们是科研生活的一部分。希望我能坚持这种想法,如果不能,还有费曼的名言呢:我们尝试尽快证明自己是错误的,只有这样我们才能进步。(We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.)
写!
我曾经偶然咨询过一位杰出的 AI 研究者早期职业生涯忠告。他的建议非常简单:写!写博客和论文,以及更重要的,写下一天当中自己的想法。我开始注意到积极地写下想法与只是想想带来的明显差别。
身心健康是科研的先决条件
有一种错误的观点认为科研工作者都是废寝忘食,一心追寻科学发现。我之前以此为基准,常常为无法做到而感到内疚。现在我知道锻炼和精神放松是投资,而不是干扰。如果我每天睡 8 小时,工作 4 小时,我的效率比睡 4 小时、工作 8 小时要高得多,也就是说没有造成不好的影响。
在解决一个困难的问题时中途停止是非常困难的。我仍然会一直研究一个问题,即使已经非常累了,即使没有进展也不休息。当停下来深呼吸时,我会非常高兴。我希望在科研生涯的下一个阶段能够继续内化这件事。
原文链接:http://web.mit.edu/tslvr/www/lessons_two_years.html
洗白“黑科技”深度学习
[摘要]
最近几年,深度学习备受关注。在2016年的每一项人工智能成就背后,几乎都能看到深度学习的影子。数据的获取、存储、计算能力的增强,以及算法的进步等因素合力推动了深度学习技术的崛起。深度学习目前的成果大多来自学术研究,然而,在不远的将来,以深度学习驱动的人工智能技术,将推动企业软件开发产生巨大的变革。
洗白“黑科技”深度学习
2016年3月,由DeepMind研发的AlphaGo以4:1的战绩完胜世界围棋冠军李世乭,拉开人工智能疯狂席卷IT圈的序幕。5月,Tesla在开启Autopilot辅助驾驶模式后出现首例致死事故,将人工智能推上了风口浪尖。霍金、比尔盖茨、埃隆马斯克等科技大咖相继发言,讨论人工智能是否会对人类未来发展不利,OpenAI应运而生。10月,HBO电视剧《西部世界》的上映,再一次引爆大众对于人工智能的关注。由于媒体的夸张宣传,人们甚至觉得《终结者》中的世界就要到来。
伴随着这一波人工智能浪潮崛起的,是一种被称为“深度学习”的技术。不论是AlphaGo、自动驾驶,抑或是其他近期的人工智能突破,我们都能在其背后看到深度学习的影子。深度学习就像是人类打开的潘多拉盒子,放出了黑科技,席卷整个科技行业。
从Gartner2016年新技术发展曲线报告中可以看出,和人工智能相关的技术,要么处于泡沫期的顶峰,要么处于正在走向泡沫期的路上。为什么人工智能会突然爆发?它会不会只是媒体吹出来的一个泡沫?作为人工智能再次兴起的核心技术突破,深度学习到底是什么“黑科技”?
从信息时代到智能时代
近20年间,互联网经历了一场“大跃进”。根据IDC做的统计:在2006年,全世界创造的数据量约为161EB,预计每18个月这个数字会翻一番,在2010年达到988EB(1024GB为1TB,1024TB为1PB,1024PB为1EB,1024EB为1ZB)。而事实上,根据IDC后来的报告,2010年达到的数字是1227EB。最近的一次IDC互联网报告是在2014年,其中提到2013年全世界产生的数据是4.4ZB,到2020年,这一数字将达到44ZB。
物联网的发展正在加速这一过程。2013年,全世界接入互联网的设备将近200亿,到2020年,这一数字将达到300亿。而全世界所有的“物体”总数,大概是2000亿。这些设备通过其内嵌的传感器监控并收集数据,并上报到云计算中心。
云计算、大数据和物联网的窘境
我们正处于“数字化一切”的时代。人们的所有行为,都将以某种数字化手段转换成数据并保存下来。每到新年,各大网站、App就会给用户推送上一年的回顾报告,比如支付宝会告诉用户在过去一年里花了多少钱、在淘宝上买了多少东西、去什么地方吃过饭、花费金额超过了百分之多少的小伙伴;航旅纵横会告诉用户去年做了多少次飞机、总飞行里程是多少、去的最多的城市是哪里;同样的,最后让用户知道他的行程超过了多少小伙伴。这些报告看起来非常酷炫,又冠以“大数据”之名,让用户以为是多么了不起的技术。然而,我们实际上在只是做一件事:数(shǔ)数(shù)。
实际上,企业对于数据的使用和分析,并不比我们每年收到的年度报告更复杂。已经有30多年历史的商业智能(Business Intelligence),看起来非常酷炫,其本质依然是数数,并把数出来的结果画成图给管理者看。只是在不同的行业、场景下,同样的数字和图表会有不同的名字。即使是最近几年炙手可热的大数据处理技术,也不过是可以数更多的数,并且数的更快一些而已。
比如我们每天都在使用的搜索引擎。在自然语言处理领域,有一种非常流行的算法模型,叫做词袋模型(Bag of Words Model),即把一段文字看成一袋水果,这个模型就是要算出这袋水果里,有几个苹果、几个香蕉和几个梨。搜索引擎会把这些数字记下来,如果你想要苹果,它就会把有苹果的这些袋子给你。
当我们在网上买东西或是看电影时,网站会推荐一些可能符合我们偏好的商品或是电影,这个推荐有时候还挺准。事实上,这背后的算法,是在数你喜欢的电影和其他人喜欢的电影有多少个是一样的,如果你们同时喜欢的电影超过一定个数,就把其他人喜欢、但你还没看过的电影推荐给你。
搜索引擎和推荐系统在实际生产环境中还要做很多额外的工作,但是从本质上来说,它们都是在数数。那么,数数有什么问题么? 有。
数字的发明,让我们的祖先可以用简便的记法记录下物体的个数。比如有一个放牛娃,家里最初只有3头牛,他可以记住每一头牛的样子,每天回到家,扫一眼牛棚,就知道家里的牛丢没丢。后来,因为家里经营的好,放牛娃的牛有100头之多,随之而来的是无法记清每头牛的烦恼。如果没有发明数字,他可能要把每一只牛照着模样刻在石壁上,每天拉着一头头的牛到石壁边去对照,看有没有丢牛。当有了数字,放牛娃只需要记下“100”这个数字,再画一头牛就够了,以后每天数一下牛群里面牛的数量,再看看石壁上的数字是否一样。
数数,让放牛娃的工作变得简单,他不用把每一头牛的样子都刻在石壁上,减轻了工作量。可是这种办法并非万无一失,有一天,附近一个游手好闲的小混混从别处找来一头病牛,混到了放牛娃的牛群之中,同时又牵走了一头壮牛。放牛娃在一天结束、清点自己的牛群时,发现还是100头牛,不多不少,就心满意足的回家睡觉了。然而他却不知道,他的一头壮牛被小混混用病牛换走了。
对于主要以数数方式来使用数据的企业,同样面临着无法关注数据细节的问题。当数据量比较小的时候,可以通过人工查阅数据。而到了大数据时代,几百TB甚至上PB的数据在分析师或者老板的报告中,就只是几个数字结论而已。在数数的过程中,数据中存在的信息也随之被丢弃,留下的那几个数字所能代表的信息价值,不抵其真实价值之万一。过去十年,许多公司花了大价钱,用上了物联网和云计算,收集了大量的数据,但是到头来却发现得到的收益并没有想象中那么多。
深度学习的困境
我们所知的深度学习,本质上应该叫做“基于深度神经网络的机器学习”。为什么用了”深度学习”这个名字,而不是深度神经网络呢?其中一个原因是,“神经网络”这个词是一个禁忌。
神经网络算法的提出可以追溯到20世纪40年代。这一算法起源于生物学中对于动物大脑神经元的研究,因此早期也被称为人工神经网络(Artificial Neural Network)。最初的神经网络是逻辑电路搭建,到了60年代,由于计算能力不足,无法构建大规模神经网络,而小规模神经网络的表现又差强人意。随着其他机器学习方法的提出,很多科研人员开始转向其他方向,人工神经网络的研究陷入了停滞。
典型神经元的结构
20世纪80年代,随着通用计算机的出现,人工神经网络的研究经历了一波复苏。在这个阶段,反向传播(Back Propagation)算法逐渐成熟。直到今天,反向传播算法都是训练神经网络的最主要方法。然而,依然受限于当时的硬件条件,神经网络的规模依然不大。同时,以支持向量机为代表的基于核方法的机器学习技术,表现出了不俗的能力,因此,大量科研人员再一次放弃了神经网络。
然而并不是所有的科学家都放弃了神经网络。在那些留守的科学家中,有一位刚刚拿到人工智能学位不久的年轻人,他曾在剑桥大学国王学院拿到实验物理学的学士学位,因为对认知科学抱有浓厚的兴趣,因此选择专攻人工智能。他坚信“既然大脑能够工作,神经网络算法也一定能工作。大脑不可能是被编程出来的。”当他的研究成果并不如预期时,他总是对质疑他的人回应:“再给我6个月,到时候我会证明它是可以工作的。”当几个6个月过去,神经网络的效果依然不好,他会说:“再给我5年,一定能行。”又是好几个5年过去,神经网络真的成了。这个人就是Geoffrey Hinton,深度学习之父。
神经网络在最初的几十年内都没有表现出过人的性能,主要面临着两个困难。首先是计算性能不足。实际上,在90年代,Hinton以及他的学生就已经在试验和后来深度神经网络类似的结构,其中就有大名鼎鼎的Yann LeCunn,他所提出的神经网络结构就是现在的“LeNet”。但是,增加神经网络的深度,就会让神经网络的训练速度变慢。在那个内存不过几十MB,GPU还没有出现的年代,要训练一个小规模的深度神经网络模型,需要花上数周甚至数月。
其次是训练数据不够多。在机器学习领域流传着一个传说,叫做“维度诅咒(Curse of Dimensionality)”,随着特征维度的增加,算法的搜索空间急剧变大,要在这样的特征空间中寻找适合的模型,需要大量的训练数据。神经网络要解决的问题,通常具有成千上万维的特征,我们假设有1000维特征,每一维特征有100个候选值,那么这个特征空间就是100的1000次方,可以想象,要在如此大的特征中寻找一个模型,需要多少数据,而这个特征空间规模不过是深度学习问题中比较小的。幸好我们所在的这个世界,可以通过一个非常有用的先验假设进行简化:我们这个世界的事物都是通过更小的事物组合而成的。我们知道,所有的物体都是由分子构成,分子由原子构成,原子由质子、中子和电子构成,等等。不仅实际的物体满足这一先验假设,抽象的概念也一样如此。因此深度神经网络利用了这一假设,通过将网络层数加深,每一层神经元都是前面一层神经元输出的组合,通过这样的假设,将整个搜索空间大大减小。然而,训练深度神经网络依然需要大量的数据,才能得到一个比较好的结果。
深度神经网络构建层级化特征
取深度学习之长,补传统软件之短
来到21世纪,正如我们前面所说,在21世纪的十几年间,我们的数据量和计算能力都增长了不少,这为神经网络证明其能力提供了条件。事实上,在Hinton的带领下,神经网络在2000年之后逐渐开始在一些比较小众的领域获得成功。而真正对学术界产生震动的,是2012年,Hinton实验室的学生Alex Krizhevsky用基于深度神经网络的方法,在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)图像识别挑战赛中一战成名,其网络结构也被人们称为AlexNet。在那之前,图像识别领域已经被基于支持向量机的算法霸占多年,而AlexNet不仅打败支持向量机,而且将错误率降低了将近一半。自此之后,图像识别算法的冠军就一直是深度学习算法。
基于深度学习的算法让图像识别精度在过去几年大幅度提升
除了在图像识别领域获得巨大成功,在短短的几年之内,在各种场景下,基于深度神经网络的算法都横扫其他机器学习算法。包括语音识别、自然语言处理、搜索引擎、甚至自动控制系统。DeepMind的Alex Graves团队在2014年的一篇论文中提出的神经图灵机(Neural Turing Machine)结构,以及后来在2016年提出的DNC(Deep Neural Computer)结构,甚至可以成功学习简单的算法,这不禁让我开始遐想有一天,计算机可以自己给自己编程。
深度学习给企业带来的影响
深度学习的端到端架构,降低了企业引入深度学习的成本
相比其他经典的机器学习算法来说,深度学习需要人工干预的比例小很多。比如,在经典机器学习中,特征工程占用了科学家们开发算法的大部分精力,对于某些问题,比如图像识别、语音识别,科学家们花了几十年时间来寻找性能更好的特征。深度学习改变了这一情况。深度学习接收原始数据,在神经网络的训练过程中,寻找最适合的特征。事实证明,机器自己找到的特征,比人类科学家用几十年找到的特征性能更好。正是由于深度学习的这一特点,深度学习的一个明显趋势,是端到端的解决问题。
比如下图所示的语音识别。经典语音识别需要对原始数据提取特征(比如梅尔倒谱系数),将提取到的特征建立时间序列模型(比如隐式马尔科夫模型),得到声学模型,然后根据发声词典,将输入信号映射为一些音节,最后,根据预先定义好的语言模型,将音节转换为有意义的文字。这其中,特征提取、时间序列建模、发声词典等都需要人工预先定义好,对于不同的语种,比如中文和英文,还要使用不同的模型。
端到端的深度学习越来越流行
在深度学习流行起来的初期,语音识别流程中的特征提取以及时间序列建模等,都用深度神经网来替代了。到了最近几年,科学家发现,对于语音识别这样的问题,甚至流水线都是多余的,直接将原始数据接入到神经网络中,就能输出我们期望的文本,这样的结构要比人工设计流程得到的结果更好。
这种端到端的深度学习,在其他领域也被验证是可行的。比如自动驾驶技术,在MIT的自动驾驶项目中,就是用端到端的深度强化学习技术,输入是路况的所有信息,输出就是对汽车的指令,比如加速、刹车、方向盘角度等等。
深度学习的端到端架构,降低了企业引入深度学习的成本。过去,企业要引入机器学习,需要招聘一个科学家团队,同时还需要一个开发团队,将科学家所设计的算法模型翻译成生产环境代码。这样的开发模式不仅成本高,响应速度也非常慢。而深度学习的端到端架构,对于科学家的要求降低了很多,而且,由于不需要通过特征工程来寻找特征,开发周期也大大缩短。对于很多规模不大、但希望朝智能化演进的企业来说,先尝试引入深度学习是个不错的选择。
智能时代的产品研发将由算法驱动
在传统的软件开发中,用户的交互方式是确定的,业务流程也是确定的;当我们尝试将人工智能技术融入到产品中,需要面对大量的不确定性。
首先是和用户的交互方式将发生巨大变化。过去,我们通过按钮、表单等控件来确保用户是按照产品设计师的思路来使用软件的。随着深度学习在图像识别、语音识别、文本识别等方面的快速发展,未来,我们的软件在用户的交互过程中,将更多的使用自然语言、语音、手势、甚至是意识。具备触屏功能的智能手机的出现,掀起了一波用户体验升级的浪潮,所有应用开发者都在寻找在触屏应用中更自然的交互方式。而这一次,用户交互方式的升级将比触屏带来的影响更加深远。Amazon在这方面做出了开创性的尝试,其智能音箱Echo在设计之初就特意去掉了屏幕,让语音变成唯一的交互渠道。Facebook Messenger在发布了聊天机器人的平台之后,同样也给出了设计指导,开发者将以一种全新的方式去思考,软件应该如何与用户更好的沟通。
其次是企业的业务决策会越来越多的依赖人工智能。过去,企业要基于数据进行决策,需要搭建数据仓库,开发ETL程序,制作报表,等待分析师从各种各样的报表中找到有价值的信息,最后做出业务改进的决策。现在,我们有了深度学习这把强大的锤子,可以让我们对数据有更加深刻的洞察力;同时,实时流式大数据架构让我们可以更快速地做出反馈。企业如果可以利用好这两大利器,将释放出更大的潜力。
算法驱动的产品架构
IT软件的运维也将迎来新的革命。软件系统越来越复杂、规模越来越大,对于运维人员的挑战就越来越高。在IT行业的早期,运维更多是修复性工作,即发现坏了,立即进行修复。后来,为了减少系统修复带来的损失,运维工作开始强调预防性,即根据历史维护记录,找到系统故障的规律,提前进行修复。然而,据统计,有规律的故障只占所有故障中的18%。因此,我们需要更好的识别并预测故障的能力,即预测性运维。深度学习在自动学习特征方面的优势,注定其在预测性运维领域也会发挥很大的作用。
深度学习不是终结者
深度学习在这几年越来越流行,尤其是在AlphaGo击败人类棋手之后,一些媒体甚至开始营造人工智能可能会取代人类的紧张氛围。然而,就目前的研究成果来看,想要发展出科幻电影中具备独立思考能力、甚至可以和人类谈恋爱的人工智能,还有很长一段距离。且不说情感、人格这类形而上的概念,尚未有严格的科学定义,更不用提人工智能能否具备这些属性。单从目前人类的工作是否会被人工智能所替代来看,至少当前的深度学习还有很多局限性,要想打破局限,让深度学习具有更大的作用,还有很多挑战等待解决。
挑战1:多功能神经网络
尽管深度学习已经让神经网络具备了很大的灵活性,然而深度学习目前还只能做到一个神经网络解决一个问题。比如训练一个神经网络要么只能识别图片,要么只能识别语音,不能同时识别。比如,我们可以给一个神经网络看一张图片,神经网络可以识别到图片中是猫还是狗;我们也可以给另一个神经网络听一段声音,这个神经网络可以识别出是声音中是猫还是狗的叫声;但是,现在还没有一个神经网络,既能通过视觉识别物体,还能通过听觉识别物体。尽管借助多任务学习(Multi-task learning)技术,神经网络可以在识别图片类别的同时,识别轮廓、姿态、阴影、文字等等相关的内容,相比我们人类多才多艺的大脑,现在的深度神经网络可以说是非常低能。
目前如果需要一个应用支持不同的能力,必须组合使用多个神经网络,这不仅对于计算资源是巨大的消耗,不同神经网络之间也难以形成有效的互动,比如图片中的狗、声音中的狗和一段文字中出现的狗,在各自的神经网络中都有不同的表示方式。而对于人类来说,这些其实都是同一个概念。
如何让神经网络能够同时实现多个目标,目前科学家们也都还没有答案,不过从人类大脑得到的启示是,通过某种方式,将负责不同功能的神经网络连接起来,组成更大的神经网络,也许可以解决这个问题。Google在ICLR 2017上的一篇论文,通过一个系数门矩阵将多个子网络连接起来,是在这个方向上的一个有趣尝试。
挑战2:终极算法
Pedro Domingos教授在《The Master Algorithm》一书中回顾了机器学习的5大流派:符号主义、连接主义、进化主义、贝叶斯主义、分析主义。这5类机器学习算法并没有绝对的优劣,不同的算法适用于不同的场景和问题。比如以神经网络为主的连接主义算法,对于视觉、听觉这类感知问题,具有更好的效果,但是却不擅长逻辑推理。而逻辑推理刚好是符号主义算法所擅长的。书中提出了一种终极算法,能够结合这五种主流机器学习,可以适用于更大范围的问题域。
深度学习正是连接主义发展而来,不过深度学习提供了可扩展性非常强的框架,以深度学习为基础,很有希望将其他几类机器学习算法融入进来。OpenAI在进行深度强化学习的实验过程中发现,使用进化主义的遗传算法替代经典的反向传播(BP)算法,模型可以更快的收敛,性能也更好;Google基于TensorFlow框架开发的概率编程工具库Edward,证明了概率图和神经网络可以无缝的结合在一起。
从目前的趋势看来,终极算法非常有希望。不过,事情不会总是这么顺利。当年物理学家们希望寻找大统一理论来结合自然界四种基本力,电磁力、强核力、弱核力很快就结合到一个模型中,然而最后引力却怎么都找不到结合的办法。当我们找到终极算法的时候,通用人工智能(Artificial General Intelligence)就离我们不远了。
挑战3:更少的人工干预
深度学习让机器学习不再依赖于科学家寻找特征,但调试深度神经网络依然需要很多人工的工作,其中最主要的就是调参。这里所说的调参,不是调节神经网络的每个神经元的参数,而是指调试超参数。超参数是用来控制神经网络的描述性参数,比如,神经网络的层数、每一层的神经元个数、学习率(Learning Rate)的大小、训练时间的长短等等。这些参数的微小差异,会给最终模型带来巨大的性能差异,而这部分工作大多需要靠经验完成,很难总结出有效的最佳实践。
然而这一状况在未来将会有所改善。既然神经网络可以用于学习参数,就应该可以学习超参数。DeepMind提出的Learning to Learn算法,使用神经网络来学习和调整学习率,可以让神经网络更快的收敛到理想的精度。正所谓,授人以鱼不如授人以渔。
结语
深度学习的火爆,吸引了越来越多的计算机科学家投身到这一领域。如果以目前学术成果的发展速度来预测,也许不超过10年,上述深度学习的挑战就会被解决。与其杞人忧天的担心人工智能会毁灭人类,不如提前布局,做好准备,迎接智能时代的到来。智能时代的IT系统,将是“具备自主性的IT系统,能够根据人类制定的目标,针对复杂业务变化,做出认为的最优选择。”如果深度学习的几大挑战能够在几年之内被解决,将大大加快未来IT系统实现的脚步。
人工智能的过去、现在和未来
作者: 腾讯 AI Lab 主任张潼
在回答人工智能达到了什么程度这个问题之前,需先了解人工智能的概念是什么?
人工智能(Artificial Intelligence,AI)是指计算机像人一样拥有智能能力,是一个融合计算机科学、统计学、脑神经学和社会科学的前沿综合学科,可以代替人类实现识别、认知,分析和决策等多种功能。如当你说一句话时,机器能够识别成文字,并理解你话的意思,进行分析和对话等。
另外,了解一下AI的发展历史,有哪些关键里程碑?
AI 在五六十年代时正式提出,90 年代,国际象棋冠军卡斯帕罗夫与”深蓝” 计算机决战,”深蓝”获胜,这是人工智能发展的一个重要里程碑。而 2016 年,Google 的 AlphaGo 赢了韩国棋手李世石,再度引发 AI 热潮。今年,腾讯推出围棋软件”绝艺”大放异彩,这些都代表了特定时期 AI 发展的技术水平。
AI 不断爆发热潮,是与基础设施的进步和科技的更新分不开的,从 70 年代 personal 计算机的兴起到 2010 年 GPU、异构计算等硬件设施的发展,都为人工智能复兴奠定了基础。
同时,互联网及移动互联网的发展也带来了一系列数据能力,使人工智能能力得以提高。而且,运算能力也从传统的以 CPU 为主导到以 GPU 为主导,这对 AI 有很大变革。算法技术的更新助力于人工智能的兴起,最早期的算法一般是传统的统计算法,如 80 年代的神经网络,90 年代的浅层,2000 年左右的 SBM、Boosting、convex 的 methods 等等。随着数据量增大,计算能力变强,深度学习的影响也越来越大。2011 年之后,深度学习的兴起,带动了现今人工智能发展的高潮。
其次,AI 有哪些研究领域和分支?
人工智能研究的领域主要有五层,最底层是基础设施建设,包含数据和计算能力两部分,数据越大,人工智能的能力越强。往上一层为算法,如卷积神经网络、LSTM 序列学习、Q-Learning、深度学习等算法,都是机器学习的算法。第三层为重要的技术方向和问题,如计算机视觉,语音工程,自然语言处理等。还有另外的一些类似决策系统,像 reinforcement learning(编辑注:增强学习),或像一些大数据分析的统计系统,这些都能在机器学习算法上产生。第四层为具体的技术,如图像识别、语音识别、机器翻译等等。最顶端为行业的解决方案,如人工智能在金融、医疗、互联网、交通和游戏等上的应用,这是我们所关心它能带来的价值。
值得一提的是机器学习同深度学习之间还是有所区别的,机器学习是指计算机的算法能够像人一样,从数据中找到信息,从而学习一些规律。虽然深度学习是机器学习的一种,但深度学习是利用深度的神经网络,将模型处理得更为复杂,从而使模型对数据的理解更加深入。
机器学习有三类,第一类是无监督学习,指的是从信息出发自动寻找规律,并将其分成各种类别,有时也称”聚类问题”。第二类是监督学习,监督学习指的是给历史一个标签,运用模型预测结果。如有一个水果,我们根据水果的形状和颜色去判断到底是香蕉还是苹果,这就是一个监督学习的例子。最后一类为强化学习,是指可以用来支持人们去做决策和规划的一个学习方式,它是对人的一些动作、行为产生奖励的回馈机制,通过这个回馈机制促进学习,这与人类的学习相似,所以强化学习是目前研究的重要方向之一。
再则,AI 有哪些应用场景?
人工智能的应用场景主要有以下几个方面:
在计算机视觉上,2000 年左右,人们开始用机器学习,用人工特征来做比较好的计算机视觉系统。如车牌识别、安防、人脸等技术。而深度学习则逐渐运用机器代替人工来学习特征,扩大了其应用场景,如无人车、电商等领域。
在语音技术上,2010 年后,深度学习的广泛应用使语音识别的准确率大幅提升,像 Siri、Voice Search 和 Echo 等,可以实现不同语言间的交流,从语音中说一段话,随之将其翻译为另一种文字;再如智能助手,你可以对手机说一段话,它能帮助你完成一些任务。与图像相比,自然语言更难、更复杂,不仅需要认知,还需要理解。
在自然语言处理上,目前一个比较重大的突破是机器翻译,这大大提高了原来的机器翻译水平,举个例子,Google 的 Translation 系统,是人工智能的一个标杆性的事件。2010 年左右, IBM 的”Watson”系统在一档综艺节目上,和人类冠军进行自然语言的问答并获胜,代表了计算机能力的显著提高。
在决策系统上,决策系统的发展是随着棋类问题的解决而不断提升,从 80 年代西洋跳棋开始,到 90 年代的国际象棋对弈,机器的胜利都标志了科技的进步,决策系统可以在自动化、量化投资等系统上广泛应用。
在大数据应用上,可以通过你之前看到的文章,理解你所喜欢的内容而进行更精准的推荐;分析各个股票的行情,进行量化交易;分析所有的像客户的一些喜好而进行精准的营销等。机器通过一系列的数据进行判别,找出最适合的一些策略而反馈给我们。
最后,说一下AI 的未来是怎么样?也就是人工智能达到什么程度?
在计算机视觉上,未来的人工智能应更加注重效果的优化,加强计算机视觉在不同场景、问题上的应用。
在语音场景下,当前的语音识别虽然在特定的场景(安静的环境)下,已经能够得到和人类相似的水平。但在噪音情景下仍有挑战,如原场识别、口语、方言等长尾内容。未来需增强计算能力、提高数据量和提升算法等来解决这个问题。
在自然语言处理中,机器的优势在于拥有更多的记忆能力,但却欠缺语意理解能力,包括对口语不规范的用语识别和认知等。人说话时,是与物理事件学相联系的,比如一个人说电脑,人知道这个电脑意味着什么,或者它是能够干些什么,而在自然语言里,它仅仅将”电脑”作为一个孤立的词,不会去产生类似的联想,自然语言的联想只是通过在文本上和其他所共现的一些词的联想, 并不是物理事件里的联想。所以如果要真的解决自然语言的问题,将来需要去建立从文本到物理事件的一个映射,但目前仍没有很好的解决方法。因此,这是未来着重考虑的一个研究方向。
当下的决策规划系统存在两个问题,第一是不通用,即学习知识的不可迁移性,如用一个方法学了下围棋,不能直接将该方法转移到下象棋中,第二是大量模拟数据。所以它有两个目标,一个是算法的提升,如何解决数据稀少或怎么自动能够产生模拟数据的问题,另一个是自适应能力,当数据产生变化的时候,它能够去适应变化,而不是能力有所下降。所有一系列这些问题,都是下一个五或十年我们希望很快解决的。
未来,我们需要去探讨:
(1)创造力,对于创造力目前有一定的方法慢慢研究,从而使机器开始具有人的一些创造力。但它的通用性受限,特别是对物理事件的理解,只有把这些问题解决了,才有可能造出像人一样的机器人,成为人的意义上的智能。
(2)学科交叉融合,未来需要探索更多的算法和交叉科学上等等的一些融合。所以人工智能在下一个阶段既有非常广阔的应用前景,也有很多挑战。
https://blog.csdn.net/np4rHI455vg29y2/article/details/80147226
今天的文章【人工智能】想要入坑机器学习?这是MIT在读博士的AI心得分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33553.html