您的位置: 主页 > VR陀螺 > 煎连壳蟹是什么地方的菜:“深度学习”与工匠技艺

煎连壳蟹是什么地方的菜:“深度学习”与工匠技艺

时间: 2018-12-06阅读:

随着其他无监督学习及生成学习算法的发展,深度信念网络已较少被使用,从某种程度上来说它成为了“深度学习”的“先烈”。

今天,大数据、人工智能等概念由于商业炒作等多方面的原因,已经变得模糊不清。许多具体的技术也被罩上了夺目的光环,或有意被赋予了能够引发奇妙想象的名字,如“深度学习”。

任何事物只有放在它所存在的环境中,才能准确理解它的本质。下面我们从科学到应用的这个链条上,来看一下信息技术产业中的不同要素各自处于什么样的位置。为了不陷入不必要的细节而又能揭示本质,我们将这个链条分为五个环节:科学原理、基础共性技术、具体应用技术、基础系统原理、技术及具体应用系统。

机器学习无法独立

科学原理是对基本运动规律的认识总结,而技术是对规律的运用。所以新的科学原理的提出,常常会对社会产生深刻而广泛的影响。正因为科学原理的意义如此之大,所以“科学”这个词也常常被盗用。许多技术性的产出,也被戴上了“科学”这个帽子。在计算机领域,图灵机与计算复杂性理论基本上属于科学原理这个范畴。也正因为如此,计算机学科才被冠以了“科学”的称谓,虽然对此并非没有异议。

从根本上看,人工智能热潮(在20世纪90年代)的冷却,是因为人们在人工智能领域经过了几十年的努力,没有能够理解一般意义上的智能过程的本质,因而也就没有能够取得科学意义上的原理性突破,在理论上抽象出类似数字基本计算那样的基本智能操作,用以支撑更为高级复杂的智能过程。

人工智能是一种现代方法

在一个产业中,会有一些基础性共性技术,有时也被称为核心技术,它们支撑着整个产业。在信息技术产业中,操作系统、数据库、集成电路等就属于这个层面的技术。这些技术的进步,对整个产业的影响也是全局性的。正是集成电路技术的进步,使得计算机拥有了“暴力计算”能力,促成了2010年前后整个信息技术产业发生了历史性的转折。人工智能领域不仅没有科学原理层面的成果,而且至今也没有能够产生支撑一个产业的基础共性技术,不论我们给那些技术或方法起个什么样的名字。

在基础共性技术之上,还有面向不同问题的具体应用技术去解决不同类型的问题。当人们意识到我们没有能力用一些普适的基本逻辑化规则或机制去有效地解决各种“智能问题”时,人工智能的研究便深入到了各种具体的问题之中。

针对不同类型的问题,发展出了花样繁多的解决方法,也取得了很大的进展。也正因为如此,人工智能目前更多地是被当成了一些具体的应用工具方法,融入到不同类型的应用之中,以自己具体的技术性名称出现,默默无闻地发挥着自己的作用。

这些年关于人工智能的一本经典的教科书的名字是《人工智能一种现代方法》,它的副标题“A Modern Approach”就是指试图采用“智能体”(Agent)的概念将人工智能在各个不同领域中的方法整合到一个统一的框架之中。其实,用智能体这个概念整合与人工智能相关的技术方法,也是没有办法的办法,显示出了这个领域的一种无奈的现实:只有实用的一些具体技术方法,缺少科学原理或基础共性技术的支撑,也没有基础性系统级的有效理论。这些年被热捧的“深度学习”,也是具体技术这个层面的技术。

深度学习

大家现在把“深度学习”的功劳主要归功于Geoffrey Hinton(1947—,认知心理与计算机科学家,任职多伦多大学)。他从事人工神经网络研究30多年,不论潮起潮落,矢志不渝。在苦熬了30多年后的2004年,他领导的团队得到了加拿大高等研究院(CIFAR)为期10年共1000万加元的支持。据说这是当年全球唯一对人工神经网络研究的大规模的资金支持。当时参与这个计划的主要成员还有:蒙特利尔大学的YoshuaBengio,纽约大学的YannLeCun(杨立昆,Hinton当年的博士后),斯坦福大学的Andrew Ng(吴恩达)等学者。

仅仅用“反传”(BP)算法来训练人工神经网络,当网络的隐含层多于一层以上后,训练效果明显变差。所以后来人工神经网络只能用来解决一些比较简单的非线性分类性质的问题。YoshuaBengio说:“从2005年开始,由CIFAR支持的一些工作不断取得突破。2006年时,我们找到了训练深层网络的算法,所用到的技巧就是逐层训练”。所以“深度学习”是指用多层(目前的应用常常达到几十到上百层)人工神经网络来对数据(训练样本)进行学习的方法。在这些算法中,BP算法(或者说梯度下降算法)依然扮演着基础性的角色,但是不同的算法融入了不同的其他方法与技巧,用于达到不同的效果。

之所以能够训练“深度”网络,不仅仅是算法与技巧有了改进,还要仰仗计算机的“暴力计算”能力才行。没有“暴力计算”能力,如此“深度”的学习是完全不可能的,甚至都不會有人有兴趣去研究那些“奇技淫巧”般的算法技巧。

“深度学习”中使用几十甚至上百层网络的做法,是否让我们想起了在之前提到的计算机越来越依靠“粗暴”的方法去解决问题?但是,如果考虑到人脑的神经元是以百亿来计算的,这种“粗暴”也并非是没有道理的“野蛮”。

Hinton与其他学者于2006年分别在《Neural Computation》与《Science》上联合发表了“A FastLearning Algorithm for Deep Belief Nets”与“Reducing the Dimentionality of Data with Neural Networks”的论文,它们被认为是“深度学习”崛起的先声。但是让他们的工作真正产生影响力,让人工智能“满血复活”、“深度学习”名扬天下的并非是这些论文,而是后来Hinton带领学生参加了2012年的ImageNet Large Scale Visaul Recognition Challenge大赛。在此之前,参赛者的最好成绩是图像识别错误率为25.7%。

2012年Hinton与他两个研究生AlexKrizhevsky、lllyaSutskever使用了一个有八层结构、65万的神经元,6000万个可调参数的卷积神经网络,将识别错误率降到了15.3%,第二名的错误率是26.2%。当时其他参赛团队使用的都是非神经网络的、从科学的角度来看更加严谨完备的支持向量机(SVM)技术。用YoshuaBengio的话来说,这次突破是基于将“以前存在的各种零碎的方法整合在了一起”。

2012年10月23日因ImageNet大赛“深度学习”一鸣惊人,人工智能“死而复生”。这与计算机历史性地获得了“暴力计算”能力,由此开启智能化时代的时间点高度吻合。这是人工神经网络方法20多年来在图像识别领域第一次以无可置疑的优势超越了其它的技术方法。

随后“深度学习”各种改进技巧不断出现,2015年,中国的微软亚洲研究院团队在这个比赛中使用了152层的网络,引入了“深度残余学习”的技巧(由于他们的网络深度太大,为了避免有效信息在逐层处理中损失过大,他们做了一些神经元跨层级的连接),将错误率降到了3.57%,首次低于自然人的错误率。

“深度学习”这个概念并没有严格的定义。通常规模“足够大”、层数“足够多”的神经网络模型,都被认为是“深度学习”网络。它包括了深度信念网络、卷积神经网络、循环与递归网络等多种不同的具体网络模型与相应的算法。

深度信念网络

深度信念网络(Deep Belief Networks,DBN)是第一批成功应用深度学习架构训练模型之一,它也因Hinton在2006年的相关论文而成为了深度学习崛起的代表。Hinton用它向人们展示了我们可以通过逐层设定目标、逐层训练而构造出一个深层的神经网络,并且用它来有效地解决一些问题。DBN是由多个受限玻尔兹曼机(RBM)相邻彼此重叠一层级联而成为一个“深度”网络。每一个RBM采用无监督学习。与卷积网络层间部分连接不同,深度信念网络是层间全连接的。一个训练好的DBN可以作为一个概率生成网络来使用,也可以用来为分类网络做参数的初始化优化设置,有效改善分类网络的学习效果。随着其它无监督学习及生成学习算法的发展,深度信念网络已经较少被使用了,在某种程度上它成为了“深度学习”的“先烈”。

卷积网络(Convolutional Neural Networks,CNN)是第一个在解决实际问题中有出色表现的深度学习神经网络模型。将卷积运算引入到人工神经网络中来在上个世纪80年代就出现了,这种结构是受大脑的视觉神经系统结构过程的启发而来。它是一种分层前馈、以有监督学习为主的神经网络。这种网络中主要采用两个并不复杂的数学方法,一个是用输入比较少的、可以提取不同局部特征的“核函数”对输入做离散卷积运算(从网络结构的视角看,实际上就是通过两层神经元之间的网络连接的设计实现的),这也是这种模型名称的来源;另外一个技巧就是“池化”。

它与卷积运算有类似的地方,也是对较少的局部神经元的输入做相应的处理形成输出。这两种方法都是采取某种处理方式对局部数据做处理,然后在整个输入数据集上重复同样的操作计算。

除了处理算法的技术特征外,它们都能够大幅降低深度学习的运算量。卷积网络在许多领域都有出色的表现,其最成功的应用领域就是在二维图像的处理上。这个结果很正常,因为它就是受启发于大脑的视觉过程而出现的。

循环神经网络(Recurrent Neural Networks,RNN)也是多层的神经网络,但是它的部分神经元具有状态记忆存储,因而是一种“动力学”系统,处理起来要比无记忆的静态网络复杂很多。循环神经网络也是在上个世纪80年代就出现了。它的学习也是以有监督为主,用于对时空动态序列型数据做处理,典型的应用就是做语音数据处理。相比之下,卷积神经网络则是一种无状态记忆的静态网络。

深度学习中不同的模型方法并不是互斥的,在实际应用中,不同的模型、算法与技巧,也包括那些非深度学习的方法技巧,如支持向量机,常常根据问题的特点被整合在一起来解决特定的问题。

不论是哪一类“深度学习”网络,实际上都是以计算机的“暴力”计算能力为基础,用大规模的、含有多个隐含层、高达千万以上的可调参数的非线性人工神经网络,使用特定的有监督或无监督的“学习/训练”算法或它们的组合,通过对大量样本的统计处理,实现对这些参数的调整,从而通过非线性变换完成对输入数据特征的提取、信息表达的变换以及后续的分类、预测等功能。

它们是解决特定类型问题的一些具体的方法与技巧,而不是具有像人那样的一般意义上的学习的能力,尽管“深度学习”这个名称确实引发了许多不了解这个技术的人这方面的想象。“深度学习”这个词中的“深”指的是使用的神经网络的层级很多,并非是一般学习意义上的“深”。

其实,信息技术领域内的绝大部分技术,包括与大数据分析相关的方法/技术,基本都属于技术体系中的这个解决具体问题层面的技术,而且它们也都属于辅助与延伸智能性质的技术。所以,大数据分析、人工智能方法与其它的技术彼此的界限日益模糊。

新一代工匠技艺主导科学

信息技术中这些解决具体问题的“智能”性实用技术,包括“深度学习”(人工神经网络),常常是有强烈实验性成分的方法技巧,在应用于一个新的具体问题之前,我们无法确定它是否能够有效地解决这个问题,或者能够将问题解决到什么程度。

正因为如此,以深度学习为例,在《深度学习》这本被认为是“深度学习”领域奠基性的经典教材中,作者为了阐述深度学习的这种实验性特征,专门在第二部分设置第11章来讨论这个问题,它的题目取为“实践方法论”。在这一章的开头,作者写了这样一段话:“要成功地使用深度学习技术,仅仅知道存在哪些算法和解释它们为何有效的原理是不够的。

一个优秀的机器学习实践者还需要知道如何针对具体应用挑选一个合适的算法以及如何监控,并根据实验反馈改进机器学习系统。在机器学习系统的日常开发中,实践者需要决定是否收集更多的数据、增加或减少模型容量、添加或删除正则化项、改进模型的优化、改进模型的近似推断或调整模型的软件实现。尝试这些操作都需要大量时间,因此确定正确的做法而不盲目猜测尤为重要。

作为一个具体的例子,我们在前面提到过“深度残余学习”的技巧。它是对严格分层网络连接的一种局部改动,利用一些跨层级的连接来保证“有用”的信息不会在“深度”网络中过早地衰减而影响网络的性能。但是这种连接如何设置才更合理,则没有精确严格的普适性理论来支撑,主要靠自己的经验直觉去尝试。

Gary Marcus在2018年1月2日发表的引起很大争议的文章《Deep Learning: A Critical Appraisal》中提出了深度学习的十个局限,其中第十个“Deep learning thus far is difficult to engineer with”指的也是这个问题—“深度学习”还只是一个就事论事的方法,没有办法作为一个标准普适的有效的工程方法被用来去有效地解决不同的问题。换句话来说,以深度学习为代表的人工智能方法,更类似于传统的工匠技艺,而不是现代工程师使用的工程化普适方法。

人工智能的这种状态多少有点像传统领域在现代科学出现以前,人们通过经验摸索,也能够设计制造出很多不同类型的精巧工具来解决各种具体的问题的状况。而具体的实用技术再丰富精妙,也未必能够产生出更深一层的原理性、普适性的成果。中国历史上无数的能工巧匠都没有能够让中国赶上现代科技发展的潮流,就说明了这个问题。

在2018年初,Gary Marcus与YannLeCun等人就“深度学习”与“人工智能”技术在网上发生了激烈的公开争论。不过这也正常。超级牛人爱因斯坦至死对量子力学的看法也与波尔向左。但是不论怎么争论,人工智能至今都无法在现代科技体系中成为一个独立的学科是一个基本的事实。从这个事实出发去理解一些问题可能不会离真实情况相去太远。

当然我们完全可以大开脑洞,反过来问一个问题:“人工智能需要成为一个传统科学意义上的学科吗?”历史的跨越,常常发生在基本概念的颠覆之上。也许计算机的“暴力计算”正在推动科学技术的内涵与外延发生着我们尚未察觉的质变。

或许,人类在科技领域的发展,走过了從工匠技艺到科学理论与工程方法的飞跃之后,在信息技术这个辅助与延伸智能工具的推动下,会形成一个否定之否定,进入到一个在科学技术基础上由新一代工匠技艺主导的“高科技大众化”的“发展新阶段”?

上一篇:人妻四部曲:互联网+数字经济 网络强国
下一篇:没有了

相关阅读