技术篇 读懂今天的AI
第1章 深度学习
知识点解析:深度学习是机器学习研究中一个新的领域,通过建立模拟人脑进行分析学习的运算模型,模仿人脑的机制来解释数据,例如图像、声音和文本。当人脑辨识物体时,我们会通过长耳朵、红眼睛这些特征判断出眼前的动物是一只小白兔。深度学习就是让机器也能够像人一样识别特征,从而更有效率地工作。
一、生成对抗网络是AI的强心剂吗?
相信绝大多数AI领域的关注者,更在意的都是AI何时、何地、以何种方式投入应用。要知道AI已经是一个六七十岁的长寿学科,相比于学理上的进化和实验室中的成就,大家必然更关注AI改变生活、产生经济效用的一面。
根植于这种漫长的期待,一些AI领域内的概念获得了迅速火爆的机会。比如在2016年,一种被称为生成对抗网络的机器学习模型就快速风靡了整个AI圈,从学术界到资本界,一时间都对这种技术充满了无尽的期待。好像没有哪个AI从业者可以绕开它,无论是对它顶礼膜拜还是嗤之以鼻。
如此火爆的行业大讨论给外界一个错觉,好像生成对抗网络技术已经十分完善,马上就可以促成AI技术的全面市场化。中外众多创业项目也开始以其为噱头。
但剥开生成对抗网络有点神秘的外衣之后,这种机器学习技术真的可以带给AI行业“跨进度表”式的革命吗?
什么是生成对抗网络?
生成对抗网络(generative adversarial networks,GANs)这个概念,最早是在2014年的时候由蒙特利尔大学的AI学者伊恩·古德菲罗(Ian Goodfellow)提出的。在相关论文中,伊恩阐释的算法复杂度和数理创新并不太引人注目,但其创造的算法模型在想法上别具一格,尤其在应用性上的优势令人心动。
抛开复杂的函数语言,GANs在原理上酷似博弈论中的二人零和博弈,即非此即彼的胜负游戏。这场游戏中,甲的存在价值就是无休止地挑战、质疑和审判乙,从而迫使乙不断调整方案,尽一切可能应对甲的刁难。
这个玩法应用在机器学习中会有非常奇妙的化学反应。
GANs对这个原理的实现方式是让两个网络相互竞争。其中一个叫作生成器网络(generator network),它不断捕捉训练库中的数据,从而产生新的样本。另一个叫作判别器网络(discriminator network),它也根据相关数据,去判别生成器提供的数据到底是不是足够真实。
有个非常生动的比喻来形容生成对抗网络技术——生成器是假币制造者,判别器是警察。警察不断质疑假币上的种种漏洞,这就迫使假币制造者不遗余力地提高造假技术,造出无限接近真实的假币——这也就是GANs的核心目的,从数据中生成全新样本。
这个极具张力的想法,事实上是在理论层面解决了机器学习技术长久以来的问题:如何促使机器学习的训练成果向着人类希望的方向前进。生成对抗网络简单粗暴地解决了这个问题,其带给业界的震动之大,从它蹿红的速度就可以得知。2015年这门技术还名不见经传,2016年就达到了无处不在的火爆程度,甚至被专家称为“机器学习领域20年来最酷的想法”。
当然,这个想法的优势不仅仅是够酷,更重要的是它的应用空间非常巨大。
确实有点心动:生成对抗网络的应用场景
简单的生成与判别关系,在大量重复学习运算之后,可能带来的行业想象力十分巨大。其最大的亮点是,其他AI技术还在标榜稳定性、兼容性,以及与多种技术的融合程度,生成对抗网络却能直截了当地告诉别人它能干什么。在醉心AI创业的世界投创圈里,这无疑是一个亮点。
那么GANs到底能干什么呢?从基本原理上看,它可以通过不断的自我判别来推导出更真实、更符合训练目的的生成样本。这就给图片、视频等领域带来了极大的想象空间。综合来看,生成对抗网络至少在以下几个方向上可能提供全新的动力。
(1)图像处理。目前网上流传最广的案例,就是通过GANs来生成全新图像,其在真实度和准确度上甚至超过了人工作业。
在真实工作场景中,为黑白图像上色、通过低清晰度的图片获得高清版本、复原受损图片等都可以运用它来解决。当然这仅仅是生成对抗网络技术的低配版,目前甚至有实验证明了可以用生成对抗网络来把图片变成视频。未来如果这个技术成真,电影拍摄的成本可以大大降低。
(2)声音处理。语音合成一直都是初级AI商业化的核心领域。生成对抗网络可以在合成和恢复语音素材中提供重大助力。例如,用AI合成语音、从大量杂音中恢复某条音轨,甚至模仿一个人的语速、语气和语言心理,都可以应用生成对抗网络。
(3)文字生成。同样的道理,生成对抗网络在文本生成、写稿机器人等领域也有极大应用空间。AI创作文字,最大的难关在于机器没有思想和感情,无法表现出人类写作的文本张力。而这些流于字里行间的所谓张力,说不定可以通过其来解决。
(4)信息破译与信息安全。既然生成对抗网络的目的是使某物不断趋近真实,那么产生出真实的笔记、密码习惯,甚至生物密码也都是可能的。借助GANs破译个体习惯来解锁信息,以及提前运用相关技术进行信息安全防护,未来都可能有很大的市场。这里插一句,其实每种AI算法的出现都映射着人类信息将会变得“更危险”一点,AI在信息安全上的应用,近乎于一场与全世界赛跑的拉力赛。
(5)生成个性化产物。生成对抗网络的学习方式,是根据一系列数据指标来将样本生成为可被接受的信息。那么,个性化产物的制造其实也在可应用范畴中,《西部世界》里看起来接近真实人类的机器人,其实也就是按照多种社会因素来进行样本判断与生成。这类应用采取生成对抗网络也可一战。
(6)高精度的样本预测。生成对抗网络的更大作用,其实还在于通过模糊数据和少量信息,对某种可能性结果进行样本预测。数据越充分,算法越高超,预测就会越精准。比如2017年年底十分引人注目的事件,AI通过人的侧脸来判断正脸,就是用生成对抗网络技术来完成的。
这种预测样本的应用还有很多,而推测未知永远都是人类最愿意付费的领域之一,这带给生成对抗网络的商业想象空间当然也十分充足。
说了这么多,给人的感觉好像生成对抗网络已经无所不能了。但实事求是地说,理想总是美好的,而什么时候成为现实就不一定了。
问题依旧无数:生成对抗网络目前还属于“看起来很美”
目前来看,生成对抗网络在业界引发的是疯狂的资本想象,在学界更多激起的却是讨论甚至论战。因为这个简单粗暴的机器学习解决方案看似美好,但在实际应用和反复试验中却总是存在各种问题。即使相对成熟的实验结果,也会留下诸多隐患。
(1)需要数据量过大。生成对抗网络的推导,完全依赖于大量样本数据的反复判断。这对于样本数据的数量和覆盖广度都有严苛要求,而且对算力的要求也比较高。在相对垂直、小众的应用领域里,生成对抗网络还是比较难以施展手脚。
(2)理论指导匮乏而造成的系列问题。生成对抗网络用什么标准判断、以何种理论体系来引发判断,一直以来还都缺乏支撑。准确地说,生成对抗网络是一个有充足样本和指导思想之后的解决方案,但目前解决方案有了,前提条件很多还不具备。在缺乏有效理论指导的情况下,生成对抗网络很难得出复杂的样本推导结果,错误率十分高,进入无监督学习领域也存在着大量门槛。
(3)普遍应用度不高。复杂的算法往往也代表着比较强的兼容性,而生成对抗网络目前相对简单的算法,带来的问题就是普遍应用度不高。除了在少数几个领域表现突出之外,在更多底层运算领域则后继乏力。当然,目前学界的大量研究也在解决这个问题,根植于生成对抗网络思想衍生了大量深度学习模型,或许可以很快弥补这个缺憾。
总而言之,生成对抗网络虽然很容易让人感受到它的魅力所在,但完整性和深度显然还不足,与国内一些人的吹捧更是相距甚远。当然了,生成对抗网络的火爆也绝不仅仅是个伪风口,它真正的价值,在于其可能激发的连锁反应。
真正的价值来自“脑补”:生成对抗网络可能激发的连锁反应
相比于快速进入商业场景,AI体系内部对生成对抗网络的期望可能更多来自其他方向。比如,生成对抗网络作为一个入口或者关键解决方案,影响其他AI关键领域进程的能力。
比如说迁移学习。我们知道,今天主流的AI机器学习,更多解决的是应用能力学习的问题。但如果具体到垂直领域,数据和样本的匮乏会导致AI无法工作。但通过生成对抗网络的生成与判断机制,可以为迁移学习能力提供一个学习能力推导的输出端。这是AI长期发展的基石。
再比如弱监督学习领域。生成对抗网络代表了一种核心想法,即让算法内部存在不止一个模型,这些模型不再是统一目的的运算体,而是通过不同目的的运算来相互制衡,这也就让算法的自我推进成为可能。目前,基于生成对抗网络已经产生了更多模型学习框架,这是它的一大功劳。
还有,在机器理解能力和异介质样本生成方面,生成对抗网络都有比较突出的帮助。这些价值可能并非体现在生成对抗网络现在得出的实验结果或者已经可以提供的价值,而是在整个AI演进体系中激发了一种连锁反应,可以发挥研究者和创业者的“脑补”能力。
简要总结一下,生成对抗网络在目前的进度条上投入应用并非不可能,但绝对没有众多媒体和商业力量吹捧得那么神奇。这种技术在民间的出彩,很大程度上来自它的理论容易理解和实验应用能力。
但更深处,那些可能需要挑战一下脑容量的AI逻辑,或许才藏着真正的金矿。
二、用LSTM让人工智能产生记忆
想要谈个恋爱,总共分几步?
大多数人的回答是,从搭讪开始。
但如果你想跟人工智能谈个恋爱,那情况可能就要复杂一点了。毕竟搭讪的前提是它能记住你才行,而且就算它能记住你,也要把你和桌椅板凳、萝卜青菜分开才行。
今天要讨论的技术,就是负责这块工作——当然离谈恋爱什么的还有点远——如何让AI记住某件事的同时,将这件事与万事万物区分出来。
这个神经网络技术的名字叫作LSTM(long short-term memory,长短期记忆网络),可以说是个相当酷的名字。
这项技术虽然在1997年就被提出,但随着整体AI技术环境的变化和改进方式的完善,LSTM在近期开始火爆起来。包括谷歌翻译等产品都开始应用这项技术。
今天就来科普下这个“让人工智能在人群中认出你”的技术。虽然LSTM的技术进程推进比不上很多算法与神经网络,但它展示的未来可能与人文内涵却有更加丰富的意味。
从呱呱坠地到情窦初开:LSTM解决了什么问题?
想要了解LSTM,必须先要弄懂另一个名词——循环神经网络(RNN)。很多机器学习算法与应用都会用到RNN,主要就是因为它解决了机器学习中一个最重要的问题:记忆。
所谓循环神经网络,简单来说是在传统的神经网络上加入了“循环”功能。最开始的神经网络,每层计算之间的结果是不相联系的,这样留下的问题是机器学习系统没有记忆能力。
而RNN的根本出发点,就是让不同层神经网络之间的输入、运算与输出进行联系,使神经网络产生记忆能力。
赋予机器学习记忆能力,有很多直接使用场景。比如说在机器翻译当中,使用RNN技术可以带来联系上下文的能力,让翻译结果准确贴合语境。
但是RNN还是存在着巨大的缺陷,那就是它不知道如何选择该记住什么、该忘记什么。这就导致了机器学习系统把所有信息都记了下来。这样首先给运算能力增加了大量负荷,其次也让神经网络难以判定与比较遥远信息的对应性。这在AI界被称为RNN的“长序依赖”问题。
举例来说,用RNN协助进行翻译,它会记住连续语句中的吃饭、喝水等动作。但如果主人公在前几段举起了酒杯,这一段开始喝酒,那它就彻底分不清了。
针对这些问题,从业者发明了LSTM。所谓长短期记忆网络,就是来区分哪些记忆要归为长期记忆,哪些记忆只需要短期储存。这样就可以在循环记忆网络中记住关键信息的同时减轻运算工作量。
所以LSTM是一种特殊的RNN。
回到谈恋爱的话题,RNN就像一个呱呱坠地的婴儿,虽然有了记忆,但无法区别记忆,不知道该记住什么。而LSTM就像情窦初开的少年,他已经能记住女孩的名字、爱好、容貌,并将这些东西联系起来,推断出自己注定是“备胎”的悲惨现实……
三重门:LSTM的工作原理
不妨简单解释一下LSTM的工作原理。
LSTM区别于RNN的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个有处理器作用的结构被称为Cell。
一个Cell中被放置了三扇门,分别叫作输入门、遗忘门和输出门。一个信息进入LSTM的网络中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。
说起来无非就是“一进二出”的工作原理,却可以在反复运算下解决神经网络中长期存在的大问题。目前已经证明,LSTM是解决长序依赖问题的有效技术,并且这种技术的普适性非常好,带来的可能性变化非常多。各研究者根据LSTM纷纷提出了自己的变量版本,这就让LSTM可以处理千变万化的垂直问题。
LSTM的应用空间
LSTM虽然没有多么复杂,但应用率却非常高。例如,这项技术已经被证明有效的应用环境有文本理解与翻译领域。
LSTM的最直接价值体现,就是根据上下文之间的关键信息来推断后序文本当中出现的主体定义。这就让机器翻译更有可能处理较长的文本甚至整个故事。
对于“机器学习+文本”来说,理解、翻译和新的文本生成永远是捆在一起的“铁三角”。LSTM可以帮助理解上下文这种人类特有的表达方式,当然也有助于AI学习从人类文本中梳理逻辑和脉络。而以此为契机反向生成有语境、有逻辑、有伏笔的新文本,也是LSTM最直接的应用场景之一。
同样,上下文不仅是在文本当中才有。比如在视频当中,也会出现前后故事联系的情况,甚至更复杂一点,出现通过图像来进行的前后联系。比如一件衣服穿在不同人物身上的意义、反复出现的关键道具,甚至天气对剧情的推动作用。
目前已经有通过LSTM变体技术来解读电视剧的实验。而更广阔的应用空间,是通过LSTM来对监控视频进行记忆推理。比如在全市的视频监控数据中寻找被偷钱包的下落等,说不定很快就可以实现。
同样,在NLP自然语言处理当中,LSTM也可以有巨大的应用价值。比如选择记忆人的语言习惯、口音、发音方式等,可以帮助AI理解人类真实语言,降低对语言准确性的要求。另外,LSTM也可以帮助AI来理解人类的大段语音命令,从而让人类对AI下达复杂命令成为可能。
未来狂想:当机器开始选择性记忆
让人工智能选择性地记住点什么,绝对是一件“脑洞大开”的事。
这很容易理解,要知道众多科幻片里毁天灭地的人工智能都是从有选择性记忆开始的——当然,他们不约而同地先记住人类很坏就不知道为什么了。
由于针对长短期记忆的训练数据缺失非常严重,LSTM的进化速度还比较缓慢。尤其是更加抽象的非文本材料信息训练十分匮乏,行之有效的训练方式也较少。但如果补齐了这一环,那带来的想象冲撞可谓疯狂。
这里列举一下LSTM技术带来的两条比较有可能的进化线。它们都是由LSTM指向的选择记忆能力开始,推导到我们十分惧怕也十分向往的人工智能能力当中。
猜想1:长短期记忆—选择记忆—精确的推理能力—预言能力
通过大量的选择记忆训练,AI可以理解到事物之间有怎样的长序联系。甚至是信息距离非常遥远的两个事物之间是如何关联的,而这指向的也就是机器的推理能力。随着一些优质论文的发表,近年来机器推理又成为AI圈的热门话题。机器可以具备推理能力近乎是确定的了,而可以利用无限多数据的AI,是否可以将推理能力做到极致,达到人类梦寐以求的预言未来能力呢?
再往下想,能够预言未来的AI会如何看待人类的现在,以及AI与人类的关系呢?真是“细思恐极”。
猜想2:长短期记忆—选择记忆—选择性专注—机器价值观
很多科学家都认为,在循环神经网络这条线上,LSTM带来了选择记忆能力之后,下一步就是训练机器如何选择性地把运算能力专注在某件事上。而可以自行判断专注目标、专注时长以及专注目的的AI,是否可以说是有了自己的价值观呢?
毕竟人类的所谓价值观,说穿了无非也就是在什么东西上浪费多少记忆、思考和时间而已。有了自己价值判断的AI,当然也是人类一边期待一边惧怕的。
这样看来,LSTM技术可以帮助人工智能在人群之中记住你,也不一定是好事。毕竟即使你想跟可爱的AI谈个恋爱,人家说不定是想动动手指灭了你。
但无论如何,AI的记忆,已经是一道关不上的闸门了。
三、为什么AI公司都热爱《星际争霸》?
2017年的8月,AI圈出了很多大事,但只有一件事同时引起了两家AI巨头的兴趣,那就是《星际争霸》。
8月7日,Facebook的AI团队发布了史上最大的《星际争霸:母巢之战》游戏数据集。紧接着8月10日,DeepMind就和暴雪娱乐公司联合发布了《星际争霸2》的游戏数据集与AI训练平台SC2LE。
为什么DeepMind、Facebook等AI巨头先后迷上了对《星际争霸》的研究?为什么他们做的不是制造一个人工智能去打败人类选手,而是不约而同走上了开源数据、发布研究工具的这条路?
此外,相信关注AI的各位都注意到了,众多媒体和专家们都认为对《星际争霸》的研究可以引导AI走向通用智能之路。但大部分解释都知其然而不知其所以然,到底《星际争霸》跟通用智能之间是怎样一个逻辑关系?
本节尝试回答以上这些问题——到底《星际争霸》是如何让AI巨头们集体为之着迷的?
我们知道,AlphaGo之所以选择围棋,是因为这项智力运动具有无法被暴力穷举的特质,可以检验AI的非运算能力。比如我们看到最新版的AlphaGo已经展现出了布局能力、对抽象形势的判断力,甚至具体行为中的创造力——这都是传统计算机绝不会具备的能力。
对于AI研究者来说,游戏只是方法,绝非目标。AI公司的目标只有两个:一是做出更好的AI,二是用它卖钱。但游戏在训练AI上有天然的实验室属性:用数据支撑、成败标准清晰、大量的人类训练数据可用。
有了这点共识,我们就可以开始破解AI企业对《星际争霸》的图谋。
为什么AI要玩《星际争霸》?
训练深度学习等AI系统,被使用最多的有三种游戏:迷你游戏、沙盒游戏和即时战略游戏。但这三种当中,迷你游戏和沙盒游戏AI扮演的都是单一智能体。只有即时战略游戏提供了独一无二的训练特征:复杂与协作。
在2017年,OpenAI的模型打败了DOTA2顶级选手,马斯克激动地连发“推特”庆祝,但很多其他AI巨头的科学家却相当不屑,这是为什么?
原因在于1V1模式的DOTA2里AI仅适用一个智能体,目标比较单一,一对一遭遇战也谈不上不完全信息博弈。拼手速和反应,人类肯定是比不上AI的,OpenAI的这款模型的价值更多在于用AI系统自主学习电竞的规则。
而大型即时战略游戏则有着完全不同的环境。
(1)复杂多变的环境,考验智能体对大量环境信息空间、时间和数据变化的理解能力。
(2)众多独立单位的配合。人类选手称之为“微操”的技术,就是考验混战下对多个单位、建筑、编队的协同运作能力,这对AI是核心考验。
(3)不完全信息博弈。这类游戏开局时有战争迷雾,无法观察对手动向。需要智能体进行布局和长远判断。
这些特征让即时战略游戏成为已知AI实验环境中最复杂的几种之一,要知道AI的目标不是可以赢,而是一定赢。
至于为什么一定是《星际争霸》,或许也可以归纳出几个原因。
首先,暴雪有开源打造AI的意愿,《星际争霸》本身的素材和接口也都非常流畅。整个游戏数据化的成本很低。
其次,相比于拼效果和画面的即时战略游戏,《星际争霸》的竞技属性更强。其动作众多、元素复杂,像围棋一样具有难以被暴力计算拆解的基本特质。
同时,因为竞技属性强烈、竞技历史悠久,《星际争霸》的战术、战略讨论非常丰富,每一个子动作的价值基本都有判断依据,这是机器学习系统的先决条件之一。
这三点之外,其实还有个最重要的原因:《星际争霸》是对战量最大的即时战略游戏,同时战网等平台建设非常完整——换言之,就是留给AI的训练数据够多。
AI巨头的真实目的
宁愿采取开源众包的模式,也要攻克《星际争霸》这种超复杂的训练环境,AI巨头们难道是“吃饱了撑的”吗,他们到底想要从中获得什么呢?
按照DeepMind把《星际争霸2》拆解成系列小游戏的原理逆推。我们可以知道AI公司希望的是破解一个又一个细节动作后,把这些集合在一起,组成大的智能体集合。而这个集合汇集的将不仅仅是无数解决方案,更是这些方案背后普遍蕴藏的通用能力。
如果与围棋进行参照,我们可以从《星际争霸》这样的训练环境中推测出至少四种围棋无法给予的能力。
(1)机器记忆力。区别于棋类游戏,即时战略游戏中过去的信息可能被完全抹杀,比如刚才造的兵都死了……但这些信息却将左右接下来的故事。这就需要AI具有记忆力,以及对记忆进行运用,给出反制措施。根据记忆的快速调整,将是一种全新且商业价值极强的AI能力。
(2)弱信息环境下的长期规划能力。就像上文所说,《星际争霸》这种游戏开局是完全信息封闭的。开局时做的事表面上可能跟战争的结果完全无关,但实际上却具有货真价实的因果关系。这类人类独有的长期规划和调整规划能力,对应的是机器的预测和判断能力。
(3)多智能体协作能力。通过与人类近似的键盘鼠标,一个智能体如何在终端指挥大量智能体协作,绝对是个迷人的话题。甚至战略性牺牲、设置诱饵和集中火力,对照的可能是未来AI在现实社会中的中枢作用。
(4)动作连贯性。打游戏的都知道,取胜的关键是打出“节奏”。所谓节奏,来自玩家每一个指令之间如何衔接,是否具备连贯性。对于AI来说也是如此,一个细节上超越人类智慧并不难,但如何把每一个动作衔接起来,整体取得价值最大化,就是AI向前发展的关键了。
这四个方向,最精彩的部分在于都对应着现实中人类的能力——不仅是人类认知和解释世界的智能,更是记忆、协作、坚持这种人类反作用于物理世界的“动能”。
至此,或许我们就可以理解为什么《星际争霸》被称为通用智能的关键了。因为它预示着AI将在更加混乱和真实的环境里,习得更加类似人类心智的可能性。
它不仅是实验环境向真实环境的过渡,长远来看,这类游戏被AI完全攻克,甚至可能成为智能体向类人智能体过渡的关键。
即使不谈论那么宏大的命题,类似智能也可能成为AI股票分析员、AI广告策划、AI律师,这类巨大商业变革的基石——这类智能游戏,恐怕不比与顶级玩家打《星际争霸》困难。
AI公司对《星际争霸》的情有独钟,至此就很容易被理解了。
四、“中文屋悖论”:为何不会出现超级智能?
大家都非常关注这样一个问题:拥有自我意识和情感的超级人工智能到底会不会出现?说实话,这个话题都“烂大街”了。科学家、科技大佬、各国政要们争得头破血流,我们也很难知道答案。
但是,有没有一些理论或者猜想可以触及AI觉醒这个话题,让我们不是只能云里雾里或者一腔热血地想象未来呢?
比如说著名的“中文屋悖论”。这个情景猜想在大部分情况下都被用来否定“图灵测试”。但它更深层的本意,其实是在阐释人工智能永远不可能像人类那样拥有自我意识。
什么是“中文屋实验”
所谓的“中文屋实验”,是由美国哲学家约翰·希尔勒(John Searle)在1980年发表论文提出的一个思维试验。
这个思维实验是说,如果把一位只会说英语的人关在一个封闭的房间里,他只能靠墙上的一个小洞传递纸条来与外界交流,而外面传进来的纸条全部由中文写成。这个人带着一本写有中文翻译程序的书,房间里还有足够的稿纸、铅笔和橱柜。那么利用中文翻译程序,这个人就可以把传进来的文字翻译成英文,再利用程序把自己的回复翻译成中文传出去。在这样的情景里,外面的人会认为屋里的人完全通晓中文,但事实上这个人只会操作翻译工具,对中文一窍不通。
当然了,这是个思维实验,具体操作起来近乎不可能。但这个实验里蕴含的思想却在表达这样一个可能:机器所表现出的智能(理解中文),很可能只是翻译程序带来的假象,其实它对真正的人类智能一无所知。
这个实验本来是为了反驳图灵测试的,认为即使通过了图灵测试,机器也不见得有了人类智能。但它或多或少有点牵强,始终也没有把图灵测试彻底反驳掉。不过,“中文屋悖论”却可能在技术发展之路上告诉我们另一件事:我们所有的技术探索与研究,可能都是在完善那个中英文翻译程序,从来不是去教机器真的智能。
通用人工智能和强人工智能的界限
这里要来认识两个大家经常听到,但有可能混淆的概念——通用人工智能与强人工智能。
所谓通用人工智能(artificial general intelligence,AGI),是指在不特别编码知识与应用区域的情况下,应对多种甚至泛化问题的人工智能技术。这个技术虽然冷门并遥远,但其实也有不少学术机构与企业在研究,一般被认为是人工智能技术的未来发展方向。
而强人工智能(strong artificial intelligence)则是约翰·希尔勒在提出“中文屋实验”时设定的人工智能级别。这个等级的人工智能,不仅要具备人类的某些能力,还要有知觉,有自我意识,可以独立思考并解决问题。
虽然两个概念似乎都对应着人工智能解决问题的能力,但我们可以把前者想象为无所不能的计算机,后者则类似穿着钢铁侠战甲的人类。
“中文屋悖论”表达的思想,是人类研究的方向根本无法逼近强人工智能。即使能够满足人类各种需求的通用人工智能,也与自我意识觉醒的强人工智能之间不存在递进关系。
现实中的技术发展好像也确实是这样的。
在通用人工智能领域,人类已经提出了一些设想与架构模型。其中最著名的应该是澳大利亚国立大学学者马库斯·赫特(Marcus Hutter)在2000年提出的AIXI。这个计算模型据说可以涵盖各种算法与技术,逼近通用人工智能的本质……当然,这个算法的复杂程度奇高,根本无法执行,所以仅仅是个设想。
OpenAI和DeepMind这样的企业在近两年则都开始了具体层面的AGI研究,其中DeepMind被认为是继承AIXI的先锋军。
从DeepMind进行的通用人工智能性质的研发与实验中,我们可以看到其“通用性”主要集中在四个层面:(1)智能体应对复杂环境;(2)陌生环境处理;(3)时间变量应对;(4)多个信息源同时处理任务。
而这些技术都指向同一个方向,就是智能体与外界的交互——也许可以理解为AI与这个世界的翻译程序吧?
换言之,人类所做的仅仅是给“那个人”更好的翻译程序,而非教他中文。所以通用智能这种已经很玄的东西,依旧与强人工智能保持着清晰的界限。
绝望的强人工智能:能力和意识,也许南辕北辙
让我们把“中文屋实验”极限化一点,把整个房间放在一个人的大脑里。
假如一个人记住了所有翻译程序,看到任何中文他都能调用回忆,能写出相应的回答,那么他是不是就懂中文了呢?对于人类来说,可能他自然而然地就已经理解中文了。但对机器来说,即使这个过程速度再快、反应再灵敏,它也依旧没有理解任何一个汉字。
确切地说,这个人(智能体)获得的是使用中文的能力,但对中文没有意识。
能力与意识的区别,是我们在想象未来的超级智能时最容易混淆的问题。但从现实的逻辑推理,就会发现这二者差别很大,而且近乎没有关联。
知识表示、机器学习、NLP等人工智能技术,都是在不断强化人工智能模仿人类能力的能力,但让人工智能具备模仿人类意识的能力,直到现在依旧是一片空白。
没有因,自然无果。“中文屋实验”讲述的,就是按照人类遵循的技术轨迹,智能体意识崛起这个命题将永远缺乏基础条件。
如果这个结论成立,那么对于强人工智能来说可谓是非常绝望的。它们只能继续在时空的长河里沉睡在人类的幻想中,一如远古的神祇,一如都市传说里的鬼怪。
想一想,还是觉得蛮无趣的呢……
五、用“贝叶斯意识”来推断“人工智能还能干什么?”
有读者希望我们做个专题,专门列一个“你想不到AI居然可以做这些”的清单。
可以非常负责任地说,这清单太容易了,但问题是工作量巨大。即使不考虑技术的可能性,仅仅是每天统计新的论文和研究报告里又让AI能做什么了,那都是个近乎无法完成的工作。
但这并不是说AI已经无所不能。事实上,AI在绝大多数基础工作中并没有传统计算机效率高,完全谈不上取而代之。AI总能在意想不到的领域冒出来,是因为它采取了完全不同的底层策略,专注于解决那些经典计算和人工无法解决的问题。
所谓“鱼不如渔”,与其大家一起感叹“AI居然能做这个!”不如来思考“如何知道AI还能做哪些”。想要获得这个能力,就需要知道今天主流AI解决方案的依据是什么。这就不得不提一个对AI发展至关重要的名字:贝叶斯。
想要寻找“上帝”,却找到了人工智能
假如没有贝叶斯,实在很难想象今天的AI会怎样。不仅是AI,可能统计学、应用数学、测绘学、医学,甚至犯罪学都会受到巨大的影响。
有趣的是,对学术界如此重要的一个人,却根本不是一位科学家。生活在300年前的托马斯·贝叶斯,是英国的一名牧师。当然,同时还是一位业余数学家。
可能是出于把爱好和工作融合到一起的考虑,贝叶斯提出了将归纳法应用于概率统计的方法,希望能以此向世人证明“上帝是存在的”。很“不幸”,三百年之后“上帝”存在的依据依然未找到,但贝叶斯归纳却在无数科学领域开花结果。
所谓贝叶斯归纳,其实基础原理非常简单。比如说一个人做了一件好事,那他是不是个好人呢?显然不一定。但是假如一个人每天都做好事,那他是不是一个好人呢?其实也不一定,也可能他在背后十恶不赦、丧尽天良。但假如没有他做坏事的证据,每天做好事就是好人的概率显然已经非常大了。这就是贝叶斯归纳的核心逻辑:不必获取所有证据之后再进行判断,而是结合已知条件先进行判断,再通过数据不断去验证、调整、修改这个判断,让它无尽趋于合理化。
这个逻辑听起来蛮简单的,但好像还有点不靠谱,在贝叶斯生前,他的想法甚至没有发表出来。即使其死后的两百多年里,贝叶斯归纳也没有得到多少重视。因为从数据严谨性出发的经典统计学显然可以更好地接触事物本质,而不是像贝叶斯归纳一样用“猜”来开启计算。
直到二十世纪七八十年代之后,沉寂百多年的贝叶斯理论开始重新在统计学中被重视。
因为经典统计学虽然可靠,但是需要依靠完整的数据模型,往往效率太低,无法满足实际需求。比如说在搜寻海面遇难船只时,经典统计学需要每个海域的气象数据、监控数据、过往船只数据,然后综合计算这些因素来精准定位。但事实上,这些数据是不可能马上齐全的,即使可以,分秒必争的搜救工作也不能等。而用贝叶斯理论来解决这个问题,会先让有经验的专家主观判断船只失事海域,然后通过不断获得的数据一点点修正专家的判断,争取在最短时间内解决问题——这就是著名的1968年美国天蝎号潜艇失事事件,也是贝叶斯理论进入应用的标志。
贝叶斯理论在工作中强调从人类先验知识出发,对目标进行模糊判断,然后不断进行判断校对,这成了后来大量人工智能技术的诞生起点。
三百年前,本来希望用来证明“上帝”存在的理论,在三百年后却成为人工智能的基础,这是一个悲伤的故事呢,还是说贝叶斯牧师其实已经找到了正确答案?
贝叶斯意识:一切学习型AI的基础
与0和1组成的经典计算不同,贝叶斯计算不需要建立在完整的数据基础上就能获得答案。这种不完全数据推理能力,与人类思维中的认知与判断过程非常相似。于是产生了数量众多的贝叶斯理论与AI结合,运用于不完全信息推导的技术模型。
比如说贝叶斯网络、贝叶斯分类器、贝叶斯逻辑,都是如今非常基础的AI工具。贝叶斯网络更是可以看作机器学习理论自证有效的基础条件;而贝叶斯方法也被广泛运用在NLP、机器视觉、知识图谱等领域,成为优化结果型算法与技术的支撑。
在我们的生活中,贝叶斯意识可谓无处不在。比如说有没有感觉手机拍视频或者直播正在越来越清晰?这其中很大一个原因在于摄像算法中运用了贝叶斯逻辑加持下的视频优化算法,通过对抗生成来获得更清晰自然的拍摄效果,也就是所谓的视频美颜。
从另一个角度也可以论证贝叶斯对人工智能的重要性。20世纪70年代,曾经有过一次比较短暂的AI复兴。当时知识表示和专家系统成为人工智能的主角,人们希望用超级计算机来归纳人类的所有知识,进行网络化。最终所有问题都可以在其中找到答案。
这种模式在当时赢得了大量资金与关注,却在短短几年间宣告破产。因为人类知识和数据太复杂了,收集所有知识只具有理论上的可能性,现实操作遥遥无期。
而今天以机器学习为主要特征的AI二次复兴,很大程度上受益于贝叶斯意识带来的思维转变:人类不用收集一大堆知识,只需要从一部分已有知识出发,让机器不断去学习和验证自身能力,不断提高就可以了。毕竟人类需要的不是全能全知的存在,只要智能体可以比人类更强就够了。
可以说,贝叶斯意识依靠着对现实变化的高度敏感,已经成为今天一切学习型AI的基础。了解了贝叶斯意识中从不完整出发,逐步向完整迈进的逻辑,也就懂了未来AI还能做出什么。
人类大脑和技术未来的殊途同归
有学者认为,贝叶斯意识可能是最接近人类大脑思维模式的应用数学逻辑。就像让一个孩子去认识狗,不必教他狗的种类、科属、习性,也不用把狗的耳朵、鼻子、四肢都变成数据让他理解。孩子会马上知道这是狗,然后在自己不断的学习过程中去加强对狗的认识,知道狗有不同种类,知道狼与狗的区别,等等。
所以我们过去在思考很多问题时,会主动地让大脑像计算机一样去想象。在移动互联网时代,我们又习惯了以手机为中心去思考一切。但在人工智能时代,贝叶斯意识告诉我们:也许人类该像人类自己一样去思考了。
在某些技术奇点之后,机器已经可以在局部区域像人类一样通过局部知识去认知、推理和判断复杂问题。最好的例子可能就是AlphaGo Zero的出现。其实AlphaGo的逻辑就是一种贝叶斯思维,要知道对围棋来说经典计算是无法穷尽所有变化的,暴力穷举只能带来死机。
而AlphaGo采取的,是让智能体去学习围棋规则,然后大量学习人类棋谱,这就是贝叶斯归纳中不断吸收数据校准目标。在实战的时候,智能体内部算法还会自我验证每一步预测的合理性,最终求得最优解。
而有了一定的积累后,AlphaGo这个贝叶斯体系就可以不再依赖人类提供的数据,而是通过对优质数据进行自我学习,从而在短时间内具备了秒杀上一代的能力。这可以看作贝叶斯体系摆脱了对初级数据的依赖,进入了进一步自我校准的过程。
有理由相信,此后这类现象会陆续出现更多。因为人脑的学习能力有若干限制,但贝叶斯智能体却没有。
通过模糊知识来进行不断学习,最终通往广义未知,很可能是人脑与技术未来的共同方向。至少目前来看,这种技术逻辑在前瞻性科学中的应用已经越来越多。比如量子贝叶斯、贝叶斯基因算法等。
而另一方面,想知道人工智能还能在哪些领域做出惊人之举,不妨也像贝叶斯一样去思考:首先这个领域是否存在效率、可靠性、成本比率、盲目性等问题,如果有的话是否有必要引入AI;其次看一下这个领域是不是存在先验知识,作为智能体的基础;再次看一下这个领域能否源源不断产生提供给机器学习的数据和知识。
如果这几个条件都确立,那么AI已经不远了。
经过从PC到手机的漫长教化,我们可能已经习惯了数字化的世界。但人工智能却可能打破人与计算机的经典搭配,利用人的感知与学习能力和计算机的运算能力来打开另一条路。也许已经是时候改变一下互联网思维,让大脑去和人工智能产生多一点点默契了。
六、迁移学习:AI在GTA5里考下的那本驾照
我们都在歌颂人工智能的伟大,但我们都知道,如今的AI对我们生活的改变,很多都基于计算能力的增强、数据量的庞大和算法架构的优化。可自然环境中无穷无尽的变量、每个用户也有不同的个性化需要,这一切都在增加着人工智能算法的应用难度。
最关键的是,很多时候我们很难针对每一个应用模式都寻找到一个相应的数据库,从而进一步阻碍了算法的实际应用。
面对这个问题,很多专家把希望寄托于迁移学习之上。下面就来聊聊,迁移学习到底是什么,它会怎样改变人工智能的应用。
迁移学习——让机器融会贯通
在目前的机器学习中常常出现这种情况,当我们想教会机器辨识一张图片上的动物是猫还是狗时,我们需要大量的猫狗图片数据。好不容易教会了,当把问题换成图片上的动物是老虎还是狼时,过去的训练无法发挥一点作用,只能从头开始。又比如说,我们利用白天街景训练出了一个可以在马路上识别行人的模型,可到了晚上,这个模型的表现却糟糕得令人咋舌。
类似的情况正在不断地增加着机器学习应用场景的限制和成本,原因就在于机器缺少在学习上的迁移。什么叫学习上的迁移?就是当你学习过法语再学英语,学习速度会比只懂中文的人更快。让机器在学习时可以举一反三和融会贯通,是迁移学习的最终目的。
学会抽象思考是迁移学习的第一步
那么机器究竟是怎么迁移学习的?用一句形象的话说,是机器学会了抽取概念。
比如说,我们可以为机器模拟出一个训练环境,就像玩游戏时的模拟教学关卡,学会了怎么玩,再去面对各种各样的真实游戏场景。当然,这样的学习方式一定要建立在模拟数据和现实数据十分相似的前提下,此时所谓迁移的难度也就大大降低了。
除此之外,迁移学习也可以让机器通过特征进行迁移。如上文提到的从辨识猫狗到辨识狼虎,机器可以从猫与狗的区别中提取出长短吻、耳朵形状等特征,将这些特征差异与不同答案的对应模式应用于狼与老虎的判断中。
其他的还有结合深度神经网络来进行基于模型的迁移,比如我们利用大量语料进行了基于普通话的语音识别训练,当我们开始进行基于山东话的语音识别训练时,虽然不能直接使用普通话的模型,但可以基于原有的模型,只需要少量的语料就可以完成训练了。
相比“直接”的迁移模型,我们目前更多的还是在利用迁移学习减少模型训练成本。如今迁移学习还在不断地发展,出现了层次型的迁移学习,把问题分层,将能够应用原有模型的层次固定,在其他层次再进行训练。还有传导式的迁移学习、迁移学习方式获取等。
迁移学习怎么应用?在GTA5里训练无人驾驶!
说了这么多,其实我们最关心的还是迁移学习的实际应用。
最容易理解的迁移学习,存在于机器模拟训练环境之中。最典型的就是DeepMind通过仿真环境训练机械手臂的案例。在2015年,DeepMind就将其作为最新研究成果推出。2017年又出现了无人驾驶项目Deep Drive在GTA5里训练AI。
利用模拟环境训练机器,虽然暂时不会加快家务机器人的应用,但对于工业生产来说,极大地降低了智能化的成本。对于各种工业作业的不同需求,应用机械也需要不同的算法模型,但直接在实物上训练意味着巨大的成本。这时利用迁移学习的模拟训练就能解决很多工业方面的需要。同时在无人驾驶上,很多平台也都开放了自身的模拟器,帮助无人驾驶实现更快速的训练。
除了模拟之外,特征识别也有很广的应用,最典型的就是把用户在通用领域的喜好迁移到个别领域之上。比如根据以往数据,得知用户喜欢推理类电影,在为用户推荐书籍时,也会为其优先推荐推理类小说。不仅仅让智能推荐更加准确,在一些人机对话中,也可以通过增强对用户的了解而减少对话的步骤。
除了以上两点外,迁移学习还有大量应用案例。业内有人认为从深度学习到增强学习再到迁移学习的过程中,我们对数据的依赖程度越来越轻,所以迁移学习相比另外两者更加“高级”。不过我们也可以换个思路,正确地了解和看待每一种学习方式,或许,多种理论的交会和共同发展才真正有益于机器学习。
七、遗传算法:能欺骗神经网络的“神算法”
有一款非常有趣的小游戏叫Boxcar 2D,游戏主要内容是用几何图形和圆形的轮子组成小汽车,不断走过一条有上下波动的“路”,看什么形状的小车可以走得更远。但和大部分游戏不一样的是,不用玩家自己手动拼装小车,整个过程完全由算法自动进行,每次随机生成小车,卡到路上了就重新来过。最后小车会越走越远,整个过程中小车的形状会越来越合适,一开始可能只是个“独轮车”,到后期则会很接近我们生活中摩托车的样子。
要问有什么案例能简单明晰地体现出“智能”“自学习”的概念,这款游戏一定是首选。而这款游戏中,应用的就是遗传算法。
什么是遗传算法?
简单来说,遗传算法是一种随机搜索算法,主要目的是用来优化。和自然界的遗传一样,遗传算法秉持的是适者生存、优胜劣汰的原则。通过选择、交叉和变异,不断迭代出更优秀的解法。
通过编码,将解空间变成编码空间,从中选择当前较为优秀的解当作“父母”,下一步则是将多种解的特征进行交叉,诞生下一代,最后经过变异成为“子嗣”。如果“子嗣”还是不能符合要求,那就再进行一次上述步骤,直到满足要求。过程中,较差的基因就会一步步被淘汰。总之,这是一个枚举的过程。就像长颈鹿的进化一样,树叶长在高处,每一只鹿都去尝试吃树叶,只有符合“标准”的长颈鹿能够吃到食物、生存下来并诞生后代。
但要注意的是,这种算法很多时候不会给出一个“最优解”,而是给出一些较为接近的次优解,从矮子里面拔将军。
在哪里能看到遗传算法?
遗传算法经常被用来解决一些调度类的问题,比如确定车间工作流程、飞机航线等。它是将工程、航行中所需要的资源消耗、时间等权值看作“染色体”,几种染色体排列组合,最终选择其中的较优方案。
此外,机器人中也会用到遗传算法,尤其是快速定位、路径规划等。就像Boxcar这个游戏一样,机器人在仿真环境中不断尝试接近目标,路线的优越度随着路线的长度增加,结合机器人对自身位置的感知,最后得出较优解。
同时,遗传算法也可以被应用于帮助神经网络调整参数,只是这种方式需要的时间太长、运算量太大,属于性价比较低的参数调整方式。
在游戏中,也能见到遗传算法的影子。比如说很多游戏会有在同一场景面对多轮敌人的“生存模式”,在这一模式中,敌人的属性是会不断增强的,有了遗传算法,就可以根据你自身属性的变化不断改变敌人的属性,以增强游戏的难度。比如说你的法术强度高,敌人就会增加法术防御度;你的攻击穿透性高,敌人就会增加血量。这样一来相比直接增加属性,可以有更好的游戏体验。
从“骗人”到“写诗”,遗传算法有什么好玩的应用?
以上都是一些适用于实际场景的应用,由于遗传算法简单易用,我们可以看到很多娱乐化的、有趣的应用。
比如说,模仿图形。在一款程序中,我们可以看到遗传算法通过几何图形的不断组合,最终慢慢变成接近案例图形的样子。
同时你还可以亲自调整变异的倾向,最终成果虽然和原图相比还有很大差距,但也不乏自己的风格。不过尝试时就可以发现,整个过程时间很长,某种程度上也体现了遗传算法的低效。
基于上述功能,遗传算法还有一个非常有趣的玩法,那就是“欺骗”深度学习模型。
2014年有一篇论文曾经写过,深度神经网络(DNN)在图片识别上有着很优异的表现。当用遗传算法模拟图片时,两张图片在人眼看来一模一样,可深度神经网络却完全识别不出来;或者遗传算法可以模拟出一张人眼看起来是“乱码”的图片,却被深度神经网络识别成正常的图片。
这一点让人们注意到了机器视觉和人类视觉的区别,和人类不一样,机器还是会把图像转化为“数字”,再进行比对、识别。这也导致深度神经网络有时候会把一张噪声图识别成动物、建筑等。
除了生成图片,遗传算法还可以生成音乐、宋词等。将词语和音符输入,让机器随机组合,加入人类评分机制。整个过程和“让猴子在打字机前坐几十年可以写出莎翁作品”的假说差不多。基本上只能用于娱乐,不太适合实战。
其实,目前遗传算法已经慢慢淡出了主流算法舞台。虽然主旨是为了避开局部最优误区,为无限解集问题寻找答案,可在实际应用时相比梯度和蒙特卡罗算法都没有明显的差异和优势,常常被视作“玄学算法”。比如计算结果的稳定性差、求解过程没有可复制性等都是遗传算法的缺点。很长一段时间里,遗传算法都被看作只能用来凑论文的算法。
不过理论也和技术一样,会随着实践和研究不断发展,神经网络也曾被打入冷宫。DeepMind还提出了把神经网络和遗传算法结合,应用到迁移学习中的案例。或许,有朝一日遗传算法还会重新进入我们的视野。
八、马尔可夫链:启蒙运动时的数学理论,机器学习的基础设施
如果几十年前的学术界也会像娱乐圈一样发通稿,或许会出现这种情况:
《本届神经信息处理系统国际会议圆满落幕,贝叶斯学派艳压全场》
《师承达尔文,自然进化学派讲述初心》
不过,虽然贝叶斯学派用“概率”和“验证”开启了学习型AI之路。可在当年,对他们的嘲讽也不少,其中有一个特别有趣的段子是这样的:
“换一个灯泡需要多少个贝叶斯学者?”
“不确定。”
“不确定需要多少个人?”
“不,是贝叶斯学者们不确定灯泡是不是坏了。”
马尔可夫链条:指数终结者
的确,在贝叶斯相关理论的发展初期,概率这件事似乎是和推理相对立的。理论上来说,如果你想知道明天中午食堂做咖喱鸡的概率是多少,只能拿出上个礼拜食堂的菜单,分别把周一到周五“做了咖喱鸡没做红烧肉”“做了红烧肉没做咖喱鸡”“做了小炒肉没做咖喱鸡”等很多种状态罗列出来。这样所带来的就是结果的指数性暴增。
而想要避免这种问题,佩德罗·多明戈斯曾经举过一个非常生动的例子。
队长带着纵队行军,想确认所有人都在跟着自己,可以用一种非常笨的方法:停下来自己数一数,还要走几步就得数一下。而聪明的办法是,问你身后的第一个人“你后面有几个人”,每一个士兵都问身后的士兵同一个问题,直到最后一个人说“后面没有人”。这样倒数第二个人可以回答“我身后有一个人”,然后每个人都会在后面人报的数字上加1。
如此既能得到士兵的数量,还不用停下来。而这一纵队士兵形成了一个链条,名叫马尔可夫链条。
马尔可夫链条的概念,就是指“一系列事件中,某一给定事件发生的概率只取决于以前刚刚发生的那一事件。”苏联数学家辛钦这样解释这一概念:客观世界存在着这样一种现象,当下对未来的影响程度,与过去无关。当下是已知的,过去和未来就存在着一种名为“马尔可夫性”的独立的特性。
马尔可夫其人:数学、哲学、民主斗争
说到马尔可夫其人,还有不少传奇事迹。这位来自俄国的数学家在中学时期就开始厌恶各种宗教的祈祷和忏悔,喜欢读进步读物。入读彼得堡大学数学系后,马尔可夫的数学天赋愈发凸显,他师从著名的彼得堡学派数学家切比雪夫,致力于把概率论推向实际应用。
1896年,马尔可夫正式成为彼得堡科学院的院士,他的《概率演算》不仅是数学学术著作,还扛起了唯物主义的大旗。在那个充满了皇权、专治、愚昧教义的年代,深受民主启蒙运动影响的马尔可夫在用自己的方式为真理和科学摇旗呐喊。
同年,俄国的末代沙皇尼古拉斯二世上任,他粗暴专横,阻止高尔基当选科学院院士。马尔可夫和契诃夫等多名科学家、文学家一起表达了对沙皇行为的不满,马尔可夫甚至还递交声明,强调科学院无意取消高尔基当选院士的资格,不能被强加,最后甚至用辞职表达自己的不满。
在马尔可夫的余生中,他除了用心执教、研究学术外,一直在不断试图和强权斗争。
在那个新世界体系逐渐破壳而出、旧世界体系逐渐坍缩的年代,马尔可夫链条的概念有着太强烈的哲学寓意。
如何理解隐马尔可夫模型?
回到之前的话题,我们要是想知道明天食堂做咖喱鸡的概率是多少,只需要列一个矩阵,罗列出第一天吃了小炒肉/咖喱鸡/红烧肉,第二天吃咖喱鸡的概率。
也就是说,在马尔可夫的食堂菜单中,没有星期一到星期五的菜单,只有第N天和第N+1天的概率。
比马尔可夫链更出名的,是隐马尔可夫模型(HMM)。在这里,我们不对算法进行太多数学方面的解释,还是以食堂为例。我们在食堂能吃到小炒肉、咖喱鸡、红烧肉,是因为分别有三位厨师A、B、C当班掌勺做这几个菜。而厨师隐藏在后厨,不被我们所发现。
这时我们的问题也变了,变成判断明天B大厨当班的概率是多少。我们明白了今天吃到小炒肉,就是厨师A当班,明天吃到红烧肉,就是厨师C当班。从菜品可以分析出有关隐藏在后厨的厨师的概率。
而这就是隐马尔可夫——一个隐藏的状态,随着时间变化,改变着表象。
随机是混沌世界中唯一的真理
在马尔可夫链刚刚得出结论那阵,其实已经有类似的案例出现在其他学科的研究中,比如传播学、遗传学等,人们开始明白,很多事物不容易一步步推导出来,而是具有一定的随机性,只是没法把这种东西数学化。
这个世界的很多事都没法清晰解读出层层道理,正因为概率、随机这种特性在生活中无处不在,才让马尔可夫链、隐马尔可夫模型成为机器学习中的一种基础设施。
举个最简单的例子,之前提到过分词技术,拥有大量文字语料时,我们如何寻找分词规律?
“我们如何寻找规律”这句话是表象状态,隐藏在背后的,是“我们/如何/寻找/规律”这样的状态。
假设分词模式有“A”“AX”“XAX”三种。句子中“我”字可以被分割入“-我”“我们”,“律”则可以被分割入“找规律”“规律”“律-”。其中“-”代表句子的开始和结束。隐马尔可夫模型,就可以凭借上一个字的分词状态,判断下一个字各种分词状态的概率。
比如,当“我”字被分割入“我们”,“们”字被分割入“们”“们如”等的概率就是0。
这样只考虑前一个状态的算法,极大地减少了计算量(不用总是总览整个句子)。同样的道理,在语音识别、机器翻译、金融等多个领域都已经有了成熟的应用。虽然后来LSTM的出现凭借着强大的“记忆力”功能,在一些领域替代了隐马尔可夫模型。但马尔可夫链相关概念在机器学习,甚至整个科学界的牢固地位依然是无法撼动的。
可以说马尔可夫链让早期贝叶斯概率论有了更加实际的应用意义,到了后期,贝叶斯网络的发展又将马尔可夫链中的哲学思想蔓延到更广的领域。
在今天,隐马尔可夫模型随处可见,可马尔可夫隐藏在公式中的独立思辨精神,又去哪了呢?
九、模仿学习:让机器人从一段视频中拜师学艺
有关于人工智能到底有多强大这件事,已经不用再做过多讨论了。AlphaGo如何在围棋领域“吊打”人类,或者Prisma如何模仿出大师的画作,这些案例我们已经见了太多。
不过我们更关心的是,什么时候家里扫地机器人可以不那么弱智,别再咬着地上的数据线不放?
这是一个很普遍的状况:人工智能面对单纯环境中的计算问题、数据处理问题都可以表现得很好,可放到现实生活环境中却是举步维艰。很多实验室连机械手臂抓举杂物这项技术都没能突破。
如何让机器人干点实事?
为了能让机器人们做点实事,人们想了很多办法。比如用SLAM(即时定位与地图构建)系统把机器人所在的整个区域构建成一个地图,让它们以计算的方式实现自主移动。又比如利用强化学习,为机器人的正确行为设置奖励;或者是利用迁移学习,在仿真环境中训练程序,再迁移到真实的机器人“脑”中。
这样做的结果,或许可以让工业生产线上的机械手臂更好地工作。可对于日常生活中的大部分场景而言,没有固定不变的地图,没有可以设置奖惩的规则,更没有可以完美仿真的环境。
更何况,以上这些做法,需要数据、大量的数据,以及无尽的训练……
不过,加州大学伯克利分校曾在博客上展示过一段视频,是一个小机器人在铺床。而实现这一行为的方式,是通过一种更为前沿的方式——模仿学习(imitation learning)。
模仿学习:现在就开启你的机器人学徒
何谓模仿学习?简单来说,模仿学习是通过在某种意义上模仿人类行为,从而教会智能体如何像人类一样与世界进行交互。
实际上在机器人学习(这里专指实体机器人)这件事上,专家们一直在向一个方向发展:用端到端神经网络实现控制,让机器人不需要编程就可以自行动作。
那么具体怎么做?坦白讲,目前模仿学习还处在论文大战中,每过三五个月就可能出现一种较新的训练方式,但我们可以提出一些目前属于“共识”类的概念。
首先,模仿学习对于人类来说,可能就是看看别人是怎么做的,然后自己再照着来。而机器人模仿的对象,则是一串动作序列。在模仿学习术语中,被称作专家动作序列。
目前较为公认的做法是,为了贴合强化学习中非常好用的“奖励”概念,把生成对抗神经网络引入模仿学习,以生成模型生成机器人自己的动作序列,再用判别模型和专家序列做比对,比对而来的结果就和强化学习中的“奖励”概念一样,这样机器人的动作序列就会和人类的专家序列越来越像。
至于如何提取专家动作序列,则和我们分析运动员的动作有些类似。把“上帝式”的第三人称视角和可以观察到的运动主体四周状况分而论之。可以录制第三人称视角的运动视频,一帧帧地把动作进行聚类,把图像输入到网络,再到机器人的动作关节。又或者把第三人称视角转变成第一人称视角,再将图像信号映射到神经网络之中等。
总之,目前DeepMind、OpenAI等机构都在研究模仿学习,我们看到的还仅仅是冰山一角而已。
如何更好地适应现实场景?在线学习或许是个办法
这次加州大学伯克利分校展示的铺床机器人,研究重点在于对机器人动作的纠错。
在现实生活中,机器人在服务人类时不可能总有监工相伴,而模仿学习的训练也不可能让机器人永远万无一失。
解决办法是,使用在线学习(on-policy)——一边学习一边产生样本的训练方式,为专家序列加入噪声,从而提高鲁棒性,并且可以为机器示范如何纠正错误动作。
就好像故意误导机器人,让它不小心把枕头掉在地上,再教导它这时应该把枕头捡起来。这样在现实场景中,机器人就会知道枕头掉在地上时应该做些什么了。
如果没有这种解决方法,那么可能出现的情况就是,机器人正在铺床,结果枕头不小心掉在了地上,机器人立刻陷入了呆滞状态,不知道该如何继续。又或者,工作人员录下几百部花样丢枕头再捡起来、床单反了再正过来等“犯错——修正”的示范视频,转换成专家动作序列再让机器人学习。
相比之下,在线学习实在是太具性价比了。
更少、更少的数据
著名的AlphaGo Zero和今天的模仿学习,似乎有一些共同点:算法技术的发展,正在朝计算量越来越小、训练数据越来越少的方向发展。
其中的必然性也很简单,庞大的计算量意味高昂的成本,和人工智能的普及性相悖。至于训练数据,我们要承认,现实生活就是一个庞大的随机场,很多情况是不能提前通过数据训练的。
而以模仿学习为代表的一系列前沿算法,最终发展目标就是Few shot learning、One shot learning,甚至Zero shot learning——用尽量少的样本、一个样本,甚至无样本来完成训练。
在未来,只需一部铺床叠被的视频,机器人就立刻能在酒店里上岗。不过从当前的发展情况来看,未来恐怕还有点遥远。
把模仿学习应用到抢劳动力饭碗这件事上,意义似乎不大。笔者认为,模仿学习需要训练样本少这一特征,应该被应用于那些真正意义上“样本少”的事情当中。
比如,那些技艺濒临失传的民间手工艺。当年轻人不愿留在村子里,花费一辈子的时间学习如何做油纸伞、编竹筐时,拍摄下一两部视频,记录下一些参数,就可以让机器人成为这些技艺的传承者。
机械曾经让这个世界上的很多技艺濒临灭绝,而如今算法的出现,或许可以做出些许补救吧。
十、仿真环境:如何让机器人有尊严地学习
在有关机器人造反、进攻人类的电影中,情节一般是这样的:在遥远的3×××年,人类世界已经奴役了机器人几百年,一不小心某一个机器人开始觉醒,发现人类对自己又打又骂,还残忍地把自己丢进熔炉,于是愤怒地揭竿而起。
你一定觉得这种情节距离我们很遥远,现在的机器人要不是各种展会的座上宾,要不就像索菲亚一样成了“网红”,如果觉醒了也该是享受自己的人间生活吧。
不如我们为机器人打造一座模拟城市?
其实人们一直在寻找更给机器人面子的训练方式,传统训练方式伤害的不仅仅是机器人,也包括人类。
在传统的机器人训练中,往往是用代码写出一大串动作序列,连接传感器模块和动作模块。然后把机器人丢到一块训练场中,让它一次次重复动作,观察哪里出错,记录数据后从开发端口进行优化。在深度学习风行的今天,更需要让机器人进行大量的实践,才能不断优化技术。这个过程不仅耗费时间和人力,更对场地有一定的需求。机械手臂、服务机器人这些还好说,难道研究无人驾驶,就只能像Uber一样承包整座城市?
换个角度想,很多时候机器人在现实环境中训练,出现的问题或者得来的反馈也会追溯到机器人OS的软件层面,我们为什么不能直接训练软件呢?
于是,“仿真环境”这个神器就出现了。
所以仿真环境,就是用代码写成的仿真器,在其中加入物理引擎,把万有引力、摩擦等逻辑加入到环境中,让仿真环境更接近现实环境。你可以在仿真环境中建立各种形状的对象和地形,将模拟出的智能体放在里面一遍遍地“跑”。
目前两个最常见的仿真环境都是OpenAI的作品:Gym和Universe。前者自由度更高,后者则更加复杂。除了这两个仿真器,还有很多人在游戏环境中训练智能体——物理引擎技术本来就是应用于游戏之中,比如Minecraft、GTA这样的沙盒游戏。后来被开发者们发现并利用了起来,像DeepMind就曾经在GAT5里训练了一辆无人车。
在仿真环境中训练AI本质上就是一种迁移学习,在低成本环境中进行大量训练、制造大量训练数据,再从数据中提取特征应用到现实环境里,虽然不能完全替代现实训练,却可以极大地减少对现实训练的依赖。
或者让机器人学会预见未来?
建立仿真环境还不够,为了让机器人们更有尊严地学习,伯克利的研究人员正在研究一种名为“预见视觉”的技术。
我们可以想一想,为什么人们如此注重机器人现实训练和现实应用中产生的数据呢?是因为机器人不像人类,感官和动作通过大脑相连,机器人即使能看到周围的环境,也很难理解自己的行为会对周围对象造成什么影响。
经过训练,机器手臂知道如何去拾取桌上的水果。可在现实应用时,如果在水果正前方有一杯水,结果往往有两个:一、机器手臂直直地伸出去,碰翻了那杯水;二、机器手臂转来转去,不知如何是好。
可人类就能绕过那杯水拿起水果,因为我们知道如果直接伸手,水杯会被打翻。
伯克利的实验就是给机器人一个摄像头,然后把机器人放到任何一个环境中让它们自己玩耍。而摄像头背后的“大脑”则在利用循环卷积网络对机器人看到的画面进行分析,很快就能对接下来几秒的画面进行预测。
几秒的预测虽然很短,却能让机器人预见自己动作之后的情况。理想状态下,就不太容易出现那种为了执行任务而把周遭环境弄得一团糟的情况了。
预见视觉技术的应用,也让无监督学习在机器人训练中的比重加大,人类节省了时间,机器人也不用再受“虐待”。而预见视觉能力得到进一步增强,也会意味着机器智能(尤其是无人驾驶汽车)对传感器的依赖减少。现在的无人车上装满了雷达传感器,就是要依靠这些传感器提醒汽车:“你离物体太近了!再往前会受伤!”有了预见视觉,一个全景摄像头就能代替这些昂贵的传感器。
费尽心机,只想让你记得我的好
除了以上两项,我们还想了很多帮助机器人学习的方法。
比如OpenAI曾经尝试过让机器人们互相对战并从中进行自我训练。为机器人们设立简单的目标,比如把对手推倒,再加上一些奖励机制,机器人们就能在对战中学会很多动作。虽然让机器人“自相残杀”也很残忍,但或许这样能让它们“记恨”同胞而不是我们……
总之,虽然现实环境一定是机器人训练不可或缺的一部分,尤其是对“波士顿动力”这种动作机器人而言。但人类一直在尝试如何少去亲自掺和机器人训练,这不仅仅是为了“机器人道主义”,也为了尽可能降低训练这件事带来的成本。
希望在未来,每个机器人都能有尊严地学习,并且在自我觉醒后记得人类的好。
十一、好奇心算法:当人工智能拥有好奇心,结果可能没那么糟糕
好奇心,是人和人工智能最显著的差异之一。从我们睁开双眼看到这个世界开始,我们就在努力地了解着周围的一切。我们了解世界的方式很多样:一开始是试图把所有东西放进嘴巴里,到后来我们想走遍这世界的每一个角落。
这也是生命中一件美妙的事情,在满足好奇心的过程中,我们获得了快乐。人类了解一切,不是为了完成某一个目标,而仅仅是一种来自本能的冲动。
可人工智能所做的,只有根据既定目标进行学习、搜索和计算。这也是强人工智能不会出现的证据之一:人类自己都没弄明白“意识”为何会存在,更没法将“本能”加在AI头上。
不过在现有技术下,我们能否让人工智能做出类似好奇的行为呢?比如给予无意义的探索行为一些奖励,或者是把探索行为和完成工作相结合进行评分。
答案是可以。
好奇心帮助人工智能成为更棒的水管工
还记得我们第一次玩“超级马里奥”的时候吗?进入游戏的第一时间,我们通常都会试一试手柄上的每一个按键是做什么的,然后跳来跳去,尝试触碰游戏里的每一个小方块。这就是好奇心最基本的表现。
那么AI在玩“超级马里奥”时是怎样的呢?通常情况下是应用了增强学习算法,用正负反馈机制帮助人工智能快速通关:踩死一只乌龟,获得正向反馈;掉入悬崖,获得反向反馈。问题是,只要能够继续过关,人工智能很难学会新的动作,这也就造成了当遇到新的关卡时,人工智能常常需要耗费很大力气才能通过。
在一篇关于人工智能好奇心的论文中提到,利用传统的增强学习方法训练,在“超级马里奥”的游戏过程中,人工智能卡在了游戏的30%处,因为它需要越过一个坑,而想要越过那个坑,需要15到20个特定顺序的按键操作。由于之前在坠落进坑里时已经获得了反向反馈,人工智能常常在坑的位置止步不前。
上述论文的作者,来自加州大学伯克利分校的研究团队提出了一种新的思路,为人工智能加入了内部好奇心构型。以自监督的方式,预测自身行动会造成何种结果,并将这种算法称作自监督预测算法。
当外部反馈减少时,内部好奇心构型会激励人工智能通过探索环境去检验自我对于行动的预测。结果是,采取内部好奇心构型的人工智能不会盲目重复那些有正向反馈的动作,而是开始了解游戏环境,把握整体游戏进程,最终战胜了那个坑。
好奇心不仅会害死猫,还会让人工智能得“多动症”
接下来,在DeepMind的计算机科学家赫斯特(Hester)和德州大学奥斯汀分校的彼得·斯通(Peter Stone)的研究中,同样的概念被进一步具象化。
在强化学习的基础上,他们开发了一种名为“TEXPLORE-VANIR”的算法。和自监督预测算法不同的是,“TEXPLORE-VANIR”为人工智能设立了内部奖励机制,当人工智能探索环境时,即使这种行为对达到最终目标没有好处,人工智能也会因为减少了外部环境的未知性而获得来自内部的正向反馈。同时,在探索环境时发现了新事物,人工智能也会获得正向反馈。
这么听起来,是不是和人类的好奇心非常相像了?
并且“TEXPLORE-VANIR”也让人工智能的好奇心不再止步于游戏中。在关于机器人工作的实验中,面临多项工作安排,“TEXPLORE-VANIR”算法能让机器人表现得更好。原因是面临多项工作时,普通深度学习算法会让机器人不断重复某一项工作中的动作,因为机器人曾经在完成这一项工作时获得过正向反馈,当其他工作出现时,它还是会重复那些让自己获得过正向反馈的动作。这样一来,就会浪费很多时间。
当人类表现出过度好奇时,会有怎样的结果?最常见的,注意力无法集中,常常将手头的工作半途而废。同样,人工智能拥有好奇心后也会有这样的表现。搭载“TEXPLOREVANIR”算法的机器人在一项开门锁的任务中表现较差,就是常常因为好奇而去探索环境,导致任务完成的延迟。甚至有学者称,这是人工智能的“多动症”。
这样看来,如何平衡内部和外部的反馈将是让人工智能好奇心发挥作用的最大问题。
没有好奇心的人工智能只是机器?
我们更关心的是,让人工智能拥有好奇心这件事究竟有什么用?是为了让他们在游戏中更好地打败我们,还是让他们在执行任务时分心而变得低效?或者说让他们更接近人类,可以更好地打败我们?
首先,好奇心会让人工智能在学习时更加高效。减少对外部环境反馈的依赖,意味着对已有数据的利用率更高。比如在机械手臂试图抓起物品时,常常是把可能抓起物品的姿势都尝试一遍,直到把物品抓起来。对于人来说,这是根本不能接受的低效,可换到了一个充着电的机器上,似乎就没人在意了。可笑的是,人工智能本应该替人类完成重复劳作的工作,结果却是用更多的人工智能重复劳作,代替人类的重复劳作。可有了好奇心,人工智能可以先对环境、环境中的物体进行初步地了解,然后再加以行动,而不是无脑地用暴力穷举解决问题。
其次,好奇心可以让人工智能更好地适应现实应用环境,毕竟现实和游戏或者实验不一样,没人会为人工智能的每个动作打分。当缺少外部环境反馈时,好奇心驱使的内部反馈就可以发挥很大作用。只有可以自我驱动的AI,才能在真正意义上帮助到人类,发现那些我们在设立目标时没有发现的事,而不是像所有机器一样听从指令。
看到这里,是不是加重了对人工智能的恐惧?别担心,大多数有关好奇心的算法目前还都停留在实验阶段。一是前面提过的,由于无法平衡内部反馈和外部反馈,好奇心常常会降低人工智能的工作效率,毕竟百分百地专注,是所有机器的优势。二是传统深度学习的“萝卜加大棒”机制已经能满足当下很多人工智能的应用。暴力穷举虽然低效,但是十分有效。
但我们相信,不管以何种形式,未来的人工智能一定会出现类似好奇心的机制,在更了解这个世界的前提下,更好地服务人类。
十二、决策树算法:隐藏在“当代玄学”外衣下的真相
智能这个词,在当今似乎被赋予了一种非凡的意义:它能轻易参透人类的想法,理解过去甚至预测未来。
一切的机器学习算法最终都指向对某种情况的准确预测,而数据挖掘就是其中少不了的玩法之一。从已知数据中找到规律和意义,才能更进一步接近“机器预测未来”这件有着当代玄学意味的事。
今天就来简单介绍一下众多算法中较为经典、应用也相对多的决策树算法。
什么是决策树
决策树,顾名思义,结构就像一棵树,有分叉的枝杈和树叶。枝杈的分叉处是关于目标某一个特征的判断,枝杈本体则是关于该特征的判断结果,而树叶则是判断过后产生的决策结果。
下图就是一个最为简单的分类树决策,当我们看天气预报时,根据降雨、雾霾、气温、活动范围是室内还是室外等特征将自己的行为分类为出门和不出门。简单来说,决策树可以被看作一大堆if-then的判断,每一个枝杈都是一条规则。
而我们看到这颗决策树时,最想问的问题一定是,为什么要将降雨当作决策树的第一个枝杈,为什么不是雾霾或气温?
关于特征划分的选择,就是决策树学习算法的关键,往往也是不同决策树学习算法的差异所在。
以最典型的ID3算法为例,ID3算法中采取“信息增益”为特征划分的标准。抛开一切条件熵、信息熵等复杂的概念不谈,信息增益可以被简单理解为:同一个条件下,信息不确定性减少的程度。
也就是说,当用ID3算法为图中决策树划分特征时,我们会拥有一个表格,其中有大量在各种天气情况下是否出行的样本。首先我们要通过公式从数据中得出,当降雨、雾霾等所有特征皆为未知时,我们对于出门这一信息的不确定性数值a。想要判断信息增益,就要依次判断当降雨、雾霾等某一特征作为已知条件时,我们对出门这一信息的不确定性数值b。两者相减,就得出了某一特征的信息增益程度。信息增益程度最高的,自然就成为特征划分的顶端,从而可以减少接下来的运算量。
可这种算法最容易出现的问题就是,当某一特征的数据严重少于其他特征时,得出的结果很容易出现误差。比如在我们收集的数据中很少有关于人们在雾霾时是否出门的情况,却有大量人们在降雨时是否出门的情况,这最终就会导致信息增益的计算错误。
应用场景:市场营销和客户关系管理的旧新闻
决策树最典型的应用场景就是客户关系管理(CRM),比如游戏行业内的流失预测模型。通过回溯用户历史行为,选择登录间隔、游戏内停留时长,甚至某一关卡是否过关等,从而去判断究竟是哪一环节让用户对游戏失去兴趣,从而实施对策。
如下图所示,如果通过用户历史数据得到这样的决策树,我们就会知道,想要防止用户的流失,我们需要:(1)通过奖励鼓励用户登录;(2)通过奖励鼓励用户进行对战等游戏内行为;(3)降低BossA难度。
除了CRM,市场营销也常常应用到决策树,其中的要点就是市场细分和用户行为预测。
比如我们可以通过用户性别、地域、职业、收入情况和历史购买数据等将用户分类,得出收入1万左右的上海女性白领是我们的主要用户,几项特征的信息增益程度分别是“性别(女性)”>“地域(上海)”>“职业(白领)”>“收入(1万左右)”。
这时需要投放广告时,我们会优先确定广告内容一定要是女性感兴趣的,其次要确定投放地区选择在上海,然后则要确定投放在上海写字楼周边。这样就能圈定我们所需要用户的性别、地域和职业了。
可问题是,我们无法区分出现在写字楼的女性是白领还是清洁工,更没办法区分她们的收入。但是这不重要,毕竟职业和收入两项特征的信息增益程度是最低的。
这就是决策树最重要的作用,通过分类和排序让我们可以进行取舍,从而尽量去实现精准营销。
优点与缺点兼备,决策树没那么神奇
决策树算法的优点有很多,比如计算过程相对简单、容易理解,但它也有缺点。就像之前提到的,如果我选择不出门,我可以清晰地提出“虽然没有降雨也没有雾霾,但是今天的气温低于18℃,所以我决定不出门”。而如果把数据给到和决策树十分相似的神经网络算法,得到则是一大堆比树状图复杂太多的权重相关数据。
决策树的应用非常广泛,其应用历史也很悠久。只是最近几年又被“智能”的风吹了起来。
某家电商企业曾经大肆鼓吹自己的“智慧营销”,声称自己能在“电商节”开始前就把货品提前配送到有购买意向用户附近的货仓里。外行人一听,还以为该企业的运营员工参透了“推背图”,实际上,只要掌握了用户收货地址、历史购买记录等信息,通过决策树就能实现。比如掌握了大量购买尿不湿用户的数据,发现某条街道中购买尿不湿的用户最多,那当然要把明天打三折销售的奶粉提前送到这条街道的货仓中了。
除了电商营销,还有很多自称Fintech的风控模型、能判断员工是否流失的智能人力资源管理系统等。其实哪里有什么智能呢。只不过是这行混得久了,数据累积得多了;硬件发展了,计算能力变强了;融到资了,雇得起人做数据挖掘了。
之所以会出现“当代玄学”这一笑谈,还不是因为在这些企业的“人工智能”里,有多少人工,就有多少“智能”。