十五、1991年6月:LSTM/Highway Net/ResNet的基础
长短期记忆(LSTM)递归神经网络克服了Sepp Hochreiter在上述1991年的毕业论文中指出的基本深度学习问题。
在1997年发表了经同行评审的论文之后(现在是20世纪被引用最多的NN文章),Schmidhuber的学生Felix Gers和Alex Graves等人,进一步改进了LSTM及其训练程序。1999-2000年发表的LSTM变体——带有遗忘门的「vanilla LSTM架构」,在如今谷歌的Tensorflow中依然还在应用。2005年,Schmidhuber首次发表了LSTM在时间上完全反向传播和双向传播的文章(同样也被广泛使用)。2006年一个里程碑式的训练方法是「联结主义时间分类」(CTC),用于同时对齐和识别序列。Schmidhuber的团队在2007年成功地将CTC训练的LSTM应用于语音(也有分层的LSTM堆栈),第一次实现了卓越的端到端神经语音识别效果。2009年,通过Alex的努力,由CTC训练的LSTM成为第一个赢得国际比赛的RNN,即三个ICDAR 2009手写比赛(法语、波斯语、阿拉伯语)。这引起了业界的极大兴趣。LSTM很快被用于所有涉及序列数据的场合,比如语音和视频。2015年,CTC-LSTM的组合极大地改善了谷歌在安卓智能手机上的语音识别性能。直到2019年,谷歌在移动端搭载的语音识别仍然是基于LSTM。
1995年:神经概率语言模型
1995年,Schmidhuber提出了一个优秀的神经概率文本模型,其基本概念在2003年被重新使用。2001年,Schmidhuber表明LSTM可以学习HMM等传统模型无法学习的语言。2016年的谷歌翻译,则是基于两个连接的LSTM(白皮书提到LSTM超过50次),一个用于传入文本,一个用于传出翻译。同年,谷歌数据中心用于推理的超强计算能力中,有超过四分之一用于LSTM(还有5%用于另一种流行的深度学习技术,即CNN)。到了2017年,LSTM还为Facebook的机器翻译(每周超过300亿次翻译)、苹果在大约10亿部iPhone上的Quicktype、亚马逊的Alexa的语音、谷歌的图像标题生成和自动电子邮件回答等提供支持。当然,Schmidhuber的LSTM也被大量用于医疗保健和医疗诊断——简单的谷歌学术搜索就能找到无数标题中带有「LSTM」的医学文章。2015年5月,Schmidhuber团队基于LSTM原理提出了Highway Network,第一个具有数百层的非常深的FNN(以前的NN最多只有几十层)。微软的ResNet(赢得了ImageNet 2015比赛)便是它的一个版本。早期Highway Net在ImageNet上的表现与ResNet大致相同。Highway Net的变体也被用于某些算法任务,在这些任务中,纯残差层的效果并不理想 。
LSTM/Highway Net原理是现代深度学习的核心
深度学习的核心是NN深度。在20世纪90年代,LSTM为有监督的递归NN带来了基本无限的深度;在2000年,受LSTM启发的Highway Net为前馈NN带来了深度。
现在,LSTM已经成为20世纪被引用最多的NN,而Highway Net的其中一个版本ResNet,则是21世纪被引用最多的NN。
十六、1980至今:在没有老师的情况下学习行动的NNN
此外,NN也与强化学习(RL)有关。虽然部分问题可以通过早在20世纪80年代之前发明的非神经技术来解决。比如,蒙特卡洛树搜索(MC)、动态规划(DP)、人工进化、α-β-剪枝、控制理论和系统识别、随机梯度下降,以及通用搜索技术。但深度FNN和RNN可以为某些类型的RL任务带来更好的效果。一般来说,强化学习智能体必须学会如何在没有老师的帮助下,与一个动态的、最初未知的、部分可观察的环境互动,从而使预期的累积奖励信号最大化。在行动和可感知的结果之间可能存在任意的、先验的未知延迟。当环境有一个马尔可夫接口,使RL智能体的输入可以传达确定下一个最佳行动所需的所有信息时,基于动态规划(DP)/时序差分(TD)/蒙特卡洛树搜索(MC)的RL会非常成功。对于没有马尔可夫接口的更复杂的情况,智能体不仅要考虑现在的输入,还要考虑以前输入的历史。对此,由RL算法和LSTM形成的组合已经成为了一种标准方案,特别是通过策略梯度训练的LSTM。例如,在2018年,一个经过PG训练的LSTM是OpenAI著名的Dactyl的核心,它在没有老师的情况下学会了控制一只灵巧的机器人手。视频游戏也是如此。2019年,DeepMind(由Schmidhuber实验室的一名学生共同创立)在《星际争霸》游戏中击败了职业选手,其中用到的Alphastar,就是有一个由PG训练的深度LSTM核心。
与此同时,RL LSTM(占模型总参数数的84%)也是著名的OpenAI Five的核心,它在Dota 2中击败了专业的人类玩家。RL的未来将是用复杂输入流的紧凑时空抽象来学习/组合/规划,也就是关于常识推理和学习思考。Schmidhuber在1990-91年发表的论文中提出,自监督的神经历史压缩器,可以学习多层次的抽象和多时间尺度上的表征概念;而基于端到端的可区分NN的子目标生成器,则可以通过梯度下降学习分层的行动计划。在随后的1997年和2015-18年,更复杂的学习抽象思维的方法被发表。
十七、是硬件问题,呆子!
在过去的一千年里,如果没有不断改进和加速升级的计算机硬件,深度学习算法不可能迎来重大突破。
我们第一个已知的齿轮计算设备是2000多年前古希腊的安提基特拉机械(Antikythera mechanism)。这是现今所知的最古老的复杂科学计算机,同时也是世界上第一台模拟计算机。
安提基特拉机械而世界上第一台实用的可编程机器,是古希腊机械学家海伦于公元1世纪发明的。17世纪的机器变得更为灵活,可以根据输入数据计算答案。第一台用于简单算术的机械计算器由威廉·契克卡德(Wilhelm Schickard)于1623年发明制造。1673年,莱布尼茨设计了第一台可以执行所有四种算术运算,并带有内存的机器。他还描述了由穿孔卡控制的二进制计算机的原理并提出链式法则,构成了深度学习和现代人工智能的重要组成部分。
莱布尼茨乘法器1800年左右,约瑟夫·玛丽·雅卡尔 (Joseph Marie Jacquard) 等人在法国制造了第一台首台可设计织布机——雅卡尔织布机(Jacquard machine)。该发明对将来发展出其他可编程机器(例如计算机)起了重要作用。
雅卡尔织布机他们启发了阿达·洛芙莱斯(Ada Lovelace)和她的导师查尔斯·巴贝奇(Charles Babbage)发明了一台现代电子计算机的前身:巴贝奇差分机。在随后的1843年,洛芙莱斯公布了世界上第一套计算机算法。
巴贝奇差分机1914年,西班牙人Leonardo Torres y Quevedo成为20世纪第一位人工智能先驱,他创造了第一个国际象棋终端机器玩家。1935年至1941年间,康拉德·楚泽(Konrad Zuse)发明了世界上第一台可运行的可编程通用计算机:Z3。
康拉德·楚泽与巴贝奇分析机不同,楚泽使用莱布尼茨的二进制计算原理,而不是传统的十进制计算。这大大简化了硬件的负荷。1944年,霍华德·艾肯(Howard Aiken)带领团队,发明世界上第一台大型自动数字计算机Mark Ⅰ(马克一号)。1948年,弗雷德里克·威廉姆斯(Frederic Williams)、汤姆·基尔伯恩(Tom Kilburn)和杰夫·托蒂(Geoff Tootill)发明了世界第一台电子存储程序计算机:小型实验机 (SSEM),又被称为「曼彻斯特宝贝」(Manchester Baby)。
「曼彻斯特宝贝」复制品从那时起,计算机的运算在集成电路(IC)的帮助下变得更快。1949年,西门子的维尔纳·雅各比(Werner Jacobi)申请了一项集成电路半导体专利,使一个公共基板可以有多个晶体管。1958年,Jack Kilby展示了带有外部导线的集成电路。1959年,罗伯特·诺伊斯 (Robert Noyce) 提出了单片集成电路。自上世纪70年代以来,图形处理单元 (GPU) 已被用于通过并行处理来加速计算。现在,计算机的GPU包含数十亿个晶体管。物理极限在哪里?根据汉斯·约阿希姆·布雷默曼(Hans Joachim Bremermann)提出的布雷默曼极限,一台质量为1千克、体积为1升的计算机最多可以在最多10的32次方位上每秒执行最多10的51次方操作。
汉斯·约阿希姆·布雷默曼然而,太阳系的质量只有2x10^30千克,这一趋势势必会在几个世纪内打破,因为光速会严重限制以其他太阳系的形式获取额外质量。因此,物理学的限制要求未来高效的计算硬件必须像大脑一样,在三维空间中有许多紧凑放置的处理器以最小化总连接成本,其基本架构本质上是一种深度的、稀疏连接的三维RNN。Schmidhuber推测,此类RNN的深度学习方法将变得更加重要。
十八、1931年以来的人工智能理论
现代人工智能和深度学习的核心主要是基于近几个世纪的数学:微积分、线性代数和统计学。
20世纪30年代初,哥德尔创立了现代理论计算机科学。他引入了一种以整数为基础的通用编码语言,允许以公理形式将任何数字计算机的操作正规化。同时,哥德尔还构建了著名的形式化语句,通过给定一个计算性的定理检验器,从可列举的公理集合中系统地列举所有可能的定理。因此,他确定了算法定理证明、计算以及任何类型的基于计算的人工智能的基本限制。此外,哥德尔在写给约翰·冯·诺伊曼的著名信件中,确定了计算机科学中最著名的开放问题「P=NP?」。1935年,Alonzo Church通过证明Hilbert和Ackermann的决策问题没有一般的解决方案,得出了哥德尔结果的一个推论。为了做到这一点,他使用了他的另一种通用编码语言,称为Untyped Lambda Calculus,它构成了极具影响力的编程语言LISP的基础。1936年,阿兰·图灵引入了另一个通用模型:图灵机,重新得出了上述结果。同年,Emil Post发表了另一个独立的计算通用模型。康拉德·楚泽不仅创造了世界上第一台可用的可编程通用计算机,并且还设计了第一种高级编程语言——Plankalkül。他在1945年将其应用于国际象棋,在1948年应用于定理证明。
Plankalkül20世纪40-70年代的大部分早期人工智能实际上是关于定理证明和通过专家系统和逻辑编程进行哥德尔式的推导。1964年,Ray Solomonoff将贝叶斯(实际上是拉普拉斯)概率推理和理论计算机科学结合起来,得出一种数学上最优(但计算上不可行)的学习方式,从过去的观察中预测未来数据。他与Andrej Kolmogorov一起创立了柯氏复杂性或算法信息论(AIT)的理论,通过计算数据的最短程序的概念,将奥卡姆剃刀的概念正式化,从而超越了传统的信息论。
柯氏复杂性自指哥德尔机更通用的最优性并不局限于渐进式最优。尽管如此,由于各种原因,这种数学上的最优人工智能在实践上还不可行。相反,实用的现代人工智能是基于次优的、有限的、但并不被极度理解的技术,如NN和深度学习则是重点。但谁知道20年后的人工智能历史会是什么样的呢?参考资料:https://people.idsia.ch/~juergen/deep-learning-history.html