深度学习与深度神经网络

AI科技大本营按:4 月 15 日举办的京东人工智能创新峰会上,刚刚上任京东人工智能南京分院学术总顾问的周志华教授作了《关于深度学习一点思考》的公开分享。算法

近年来,深度神经网络在语音、图像领域取得突出进展,以致于不少人将深度学习与深度神经网络等同视之。但周志华表示,总结 Kaggle 竞赛中的获奖结果能够发现,神经网络获胜的每每就是在图像、视频、声音这几类典型任务上,而在其它涉及到混合建模、离散建模、符号建模的任务上,相比其余模型就会差一些。api

为何会产生这样的结果?周志华从深度神经网络的深层含义提及,条分缕析地总结出神经网络取得成功的三大缘由:网络

  • 有逐层的处理app

  • 有特征的内部变化机器学习

  • 有足够的模型复杂度分布式

并得出结论:若是知足这三大条件,则并不必定只能用深度神经网络。函数

因为神经网络存在的一些缺陷,不少时候人们不得不考虑其余的模型。周志华介绍了他所领导的团队提出的 gcforest 方法,称该方法有良好的跨任务表现、自适应的模型复杂度等优点。性能

而对于 gcforest 研究的重要意义,正如周志华在分享中表示的那样,深度学习是一个黑屋子,之前你们都知道它里面有深度神经网络,如今咱们把这个屋子打开了一扇门,把 gcforest 放进来,我想之后可能还有更多的东西,这是这个工做从学术科学发展上更重要的价值所在。学习

周志华教授是美国计算机学会 (ACM)、美国科学促进会 (AAAS)、国际人工智能学会 (AAAI) 、国际电气电子工程师学会 (IEEE) 、国际模式识别学会 (IAPR)、国际工程技术 (IET/IEE) 等学会的会士,实现了 AI 领域会士大满贯,也是惟一一位在中国大陆取得所有学位的 AAAI 会士,对于机器学习中的集成学习、多标记学习与半监督学习有着卓越的贡献。他还一手参与建立了南京大学人工智能学院并担任院长。大数据

下面是演讲全文,AI科技大本营整理:

各位可能最近都据说咱们南京大学成立了人工智能学院,这是中国 C9 高校的第一我的工智能学科。今天就跟你们谈一谈咱们本身对于深度学习的一点点很是粗浅的见解,仅供你们批评讨论。

▌什么是深度学习?

咱们都知道如今人工智能很热,掀起这股的热潮最重要的技术之一就是深度学习技术。今天当咱们谈到深度学习的时候,其实已经能够看到在各类各样的应用,包括图像、视频、声音、天然语言处理等等。若是咱们问一个问题,什么是深度学习?大多数人基本会认为,深度学习差很少就等于深度神经网络。

我给你们看一个例子。有一个很是著名的学会是国际工业与应用数学学会,他们有一个报纸叫 SIAM News。去年 6 月份的头版上有一篇文章,它里面的重点说的就是深度学习是什么?它(深度学习)是机器学习的一个子域(subfield),这里面要用深度神经网络。

这里写图片描述

因此基本上若是咱们要谈深度学习的话,首先要从神经网络开始。神经网络并非一个新生事物,人们已经研究了超过半个世纪。但以往的话咱们会用这样的神经网络,就是中间有一个隐层或者有两个隐层。在这样的神经网络里面,它的每个单元是一个什么样的东西呢?是个很是简单的计算模型。

好比说这么一个计算模型,实际上半个多世纪之前咱们就已经总结出来了。咱们收到一些输入,这些输入经过一些链接放大,到了细胞以后,它的“加和”若是超过一个阈值,这个细胞就激活了。实际上说穿了就是这么一个很是简单的公式,所谓的神经网络就是不少这样的公式经过嵌套迭代获得的一个数学系统。

今天咱们说深度神经网络的时候指的是什么?其实简单来讲就是用的神经网络有不少层,很深很深。大概多少?看一个数据,2012 年深度学习刚刚受到你们的重视的时候,一个 ImageNet 竞赛的冠军用了 8 层,2015 年 152 层,2016 年 1207 多层,这是一个很是庞大的系统。

这里写图片描述

要把这个系统训练出来难度很是大,但有一个很是好的消息,真正的神经网络里面的计算单元,它最重要的激活函数是连续的,是可微的。之前在神经网络里面咱们常常用 Sigmoid,它是连续可微的,如今在深度神经网络里,咱们常常用 tanh 或者 tanh 的变体,它也是连续可微的。有了这么一个性质之后,咱们会获得一个很是好的结果,这个结果就是如今咱们能够很容易计算系统的梯度。所以就能够很容易用著名的 BP 算法(注:反向传播算法)来训练这系统。

今天经过这样的算法,神经网络已经取得了很是多的胜利,但实际上在学术界你们一直没有想清楚一件事情,就是咱们为何要用这么深的模式?可能今天有不少人会说深度学习已经取得了不少的成功,但它一个很大的问题就是理论基础不清楚,咱们理论上还说不清楚它到底怎么作?为何会成功?这里面的关键是什么?其实咱们根本不知道该从什么角度去看它。由于若是咱们要作理论分析的话,首先应该有一点直觉,你到底由于什么有用,在这条路上往前走才能有关键的结果。

关于深度神经网络为何能深,其实这件事情到今天为止学术界都没有统一的见解。在这里面给你们讲一个咱们前一段时间给出的论述,这个论述实际上是从主要模型的复杂度的角度来讨论的。

▌深度学习成功的关键是什么?

咱们知道一个机器学习模型的复杂度实际上和它的容量有关,而这个容量直接决定了它的学习能力,因此说学习能力和复杂度是有关的。其实咱们老早就知道,若是咱们可以加强一个学习模型的复杂度,它的学习能力就可以提高,那么怎样去提升复杂度呢?

对神经网络这样的模型来讲有两条很明显的途径,一条是咱们把模型变深,一条是咱们把它变宽,可是若是从提高复杂度的角度,变深会更有效。当你变宽的时候你只不过增长了一些计算单元、增长了函数的个数,而在变深的时候不只增长了个数,其实还增长了嵌入的层次,因此泛函的表达能力会更强。因此从这个角度来讲,咱们应该尝试变深。

这里写图片描述

你们可能就会问了,既然要变深,大家不早就知道这件事了吗?为何如今才开始作呢?其实这就涉及到另一个问题,咱们在机器学习里面把学习能力变强了,这其实未必真的是一件好事。由于咱们机器学习一直在斗争的一个问题,就是咱们常常会碰到过拟合。

给定一个数据集,咱们但愿把数据集里的东西学出来,可是有时候可能把这个数据自己的一些特性学出来了,而这个特性却不是通常的规律。当把学出来的错误东西当成通常规律来用的时候,就会犯巨大的错误,这种现象就是过拟合。为何会把数据自己的特性学出来?就是由于咱们的模型学习能力太强了。

因此以往咱们不太用太复杂的模型,为何如今咱们能够用这样的模型?其实有不少因素,第一个因素是如今咱们有很大的数据,那么好比说我手上若是只有 3000 多数据,学出来的特性就不太多是通常规律。可是若是有三千万、甚至三千万万的数据,那么这些数据里的特性原本就是通常规律,因此使用大的数据自己就是缓解过拟合的关键条件。

第二个因素,今天有不少很强大的计算设备,因此才可以训练出这样的模型,同时经过领域里不少学者的努力,咱们有了大量关于训练这样复杂模型的技巧和算法,因此这使得咱们使用复杂模型成为可能。

按照这个思路来讲,其实有三件事:

  • 第一,咱们今天有更大的数据;
  • 第二;有强力的计算设备;
  • 第三,有不少有效的训练技巧。

这致使咱们能够用高复杂度的模型。而深度神经网络偏偏就是一种很便于实现的高复杂度的模型。因此这么一套理论解释,若是咱们说它是一个解释的话,它好像是能告诉咱们为何咱们如今能用深度神经网络。为何它能成功?就是由于复杂度大。

这里写图片描述

在一年多以前,咱们把这个解释说出来的时候,其实国内外不少同行也很赞同这么一个解释,由于你们以为这听起来蛮有道理的,其实我一直对这个不是特别满意,这是为何?其实有一个潜在的问题咱们一直没有回答。若是从复杂度解释的话,咱们就没有办法说为何扁平的或者宽的网络作不到深度神经网络的性能?由于事实上咱们把网络变宽,虽然它的效率不是那么高,可是它一样也能起到增长复杂度的能力。

实际上咱们在 1989 年的时候就已经有一个理论证实,说神经网络有万有逼近能力:只要你用一个隐层,就能够以任意精度逼近任意复杂度的定义在一个紧集上的连续函数。

其实不必定要很是深。这里面我要引用一个说法,神经网络有万有逼近能力,多是有的人会认为这是致使神经网络为何这么强大的一个主要缘由,其实这是一个误解。

咱们在机器学习里面用到的全部模型,它必须具备万有逼近能力。若是没有这个能力,根本不可用。因此最简单的,哪怕傅立叶变换,它就已经有这个能力,因此这个能力不是神经网络所特有的。那咱们在这儿要强调的一件事情是什么?其实我只要有一个隐层,我加无限度的神经元进去,它的能力也会变得很强,复杂度会变得很高。可是这样的模型不管在应用里面怎么试,咱们发现都不如深度神经网络好。因此从复杂的角度可能很难解决这个问题,咱们须要一点更深刻的思考。

这里写图片描述

因此咱们要问这么一个问题:深度神经网络里面最本质的东西究竟是什么?今天咱们的答案多是要作表示学习的能力。以往咱们用机器学习,首先拿到一个数据,好比这个数据对象是一个图像,咱们就用不少特征把它描述出来,好比说颜色、纹理等等,这一些特征都是咱们人类专家经过手工来设计的,表达出来以后咱们再去进行学习。

而今天咱们有了深度学习以后,如今再也不须要手工设计特征,把数据从一端扔进去,模型从另一端出来,中间全部的特征彻底经过学习本身来解决,这是所谓的特征学习或者表示学习,这和以往的机器学习技术相比是一个很大的进步,咱们再也不须要彻底依赖人类专家去设计特征了。

有时候咱们的工业界朋友会说,这里面有一个很重要的叫作端到端学习,你们认为这个很是重要。其实这一件事情要分两个方面来看:一个方面当咱们把特征学习和分类器学习联合起来考虑,能够达到联合优化的做用,这是好的方面;但另外一方面,若是这里面发生什么咱们不清楚,这时候端到端的学习不必定真的好,由于可能第一部分往东,第二部分往西,合起来看往东走的更多一些,其实内部有一些东西已经抵消了。

实际上机器学习里面早就有端到端学习,好比说作特征选择,但这类方法是否是比其它特征选择的方法要强?不必定,因此这不是最重要的,真正重要的仍是特征学习或者表示学习。

咱们再问下一个问题,表示学习最关键的又是什么?对这件事情咱们如今有这么一个答案,就是逐层的处理。如今咱们就引用很是流行的《深度学习》一书里的一张图,当咱们拿到一个图像的时候,若是咱们把神经网络看做不少层的时候,首先在最底层咱们看到是一些像素的东西,当咱们一层一层往上的时候,慢慢的有边缘,再往上有轮廓等等,在真正的神经网络模型里不必定有这么清晰的分层,但整体上确实是在往上不断作对象的抽象。

这里写图片描述

而这个特色,咱们如今认为这好像是深度学习真正成功的关键因素之一,由于扁平神经网络能作不少深层神经网络所作的事,可是有一点它作不到:当它是扁平的时候,就没有进行一个深度加工,因此深度的逐层抽象可能很关键。那若是咱们再看一看,你们可能就会问,其实逐层处理这件事,在机器学习里也不是一个新东西。

之前有不少逐层处理的东西,好比说决策树,它就是逐层处理,这是很是典型的模型。这个已经有五六十年的历史了,但它为何作不到深度神经网络这么好呢?首先它的复杂度不够,由于决策树的深度,若是咱们只考虑离散特征,其最深的深度不会超过特征的个数,因此它的模型复杂度有上限;第二整个决策树的学习过程当中,它内部没有进行特征变化,始终是在一个特征空间里面进行,这可能也是一个问题。

你们若是对高级一点的机器学习模型有所了解,你可能会问,如今不少 Boosting 模型也是一层一层往下走,为何它没有取得深度学习的成功?我想问题其实差很少,首先复杂度还不够,第二,更关键的一点,它始终在原始空间里面作事情,全部的这些学习器都是在原始特征空间,中间没有进行任何的特征变换。

深度神经网络到底为何成功?里面的关键缘由是什么?我想首先咱们须要两件事,第一是逐层地处理,第二咱们要有一个内部的特征变换。而当咱们考虑到这两件事情的时候,咱们就会发现,其实深度模型是一个很是天然的选择。有了这样的模型,咱们很容易能够作上面两件事。可是当咱们选择用这么一个深度模型的时候,咱们就会有不少问题,它容易 overfit,因此咱们要用大数据,它很难训练,咱们要有不少训练的 trick,这个系统的计算开销很是大,因此咱们要有很是强有力的计算设备,好比 GPU 等等。

这里写图片描述

实际上全部这些东西是由于咱们选择了深度模型以后产生的一个结果,他们不是咱们用深度学习的缘由。因此这和以往咱们的思考不太同样,以往咱们认为有了这些东西,致使咱们用深度模型,如今咱们以为这个因果关系偏偏是反过来的——由于咱们要用它,因此咱们才会考虑上面的这些东西。

而另外还有一点咱们要注意,当咱们要有很大的训练数据的时候,这就要求咱们必需要有很复杂的模型。假设咱们有一个线性模型的话,给你 2000 万要的仍是 2 亿的样本,其实对它不是太大区别,它已经学不进去。而咱们有了充分的复杂度,其实咱们看到偏偏它又给咱们使用深度模型加了一分。

因为这几个缘由,咱们才以为可能这是深度学习里面最关键的事情。因此这是咱们如今的一个认识:第一咱们要有逐层的处理;第二咱们要有特征的内部变化;第三,咱们要有足够的模型复杂度。

这三件事情是咱们如今认为深度神经网络为何可以成功的关键缘由,或者说这是一个猜想。若是知足这几个条件,我其实能够立刻想到,不必定真的要用神经网络,神经网络是选择的几个方案之一,我只要同时作到这三件事,别的模型也能够,并不必定只能用深度神经网络。

这里写图片描述

▌深度神经网络的缺陷

咱们就要想想,咱们有没有必要考虑神经网络以外的模型?实际上是有的。由于你们都知道神经网络有不少缺陷。

第一,凡是用过深度神经网络的人都知道,你要花大量的精力来调它的参数,由于这是一个巨大的系统。这里面会带来不少问题,首先当咱们调参数的时候,这个经验实际上是很难共享的。有的朋友可能说,我在第一个图像数据集之上调数据的经验,当我用第二个图像数据集的时候,这个经验确定能够重用的。可是咱们有没有想过,好比说咱们在图像方面作了一个很大的神经网络,这时候若是要去作语音,其实在图像上面调参数的经验,在语音问题上可能基本上不太有借鉴做用,因此当咱们跨任务的时候,经验可能就很难有成效。

并且还带来第二个问题,咱们今天都很是关注结果的可重复性,无论是科学研究、技术发展,都但愿这结果可重复,而在整个机器学习领域里面,深度学习的可重复性是最弱的。咱们常常会碰到这样的状况,有一组研究人员发文章报告了一个结果,而这结果其余的研究人员很难重复。由于哪怕你用一样的数据、一样的方法,只要超参数的设计不同,你的结果就不同。

咱们在用深度神经网络的时候,模型的复杂度必须事先指定,由于在训练模型以前,神经网络是什么样就必须定了,而后才能用 BP 算法等等去训练它。其实这就会带来很大的问题,由于在没有解决这个任务以前,咱们怎么知道这个复杂度应该有多大呢?因此实际上你们作的一般都是设更大的复杂度。

若是在座各位关注过去三四年里深度神经网络、深度学习领域的进展,你能够看到不少最前沿的工做在作什么事呢?其实都是在有效地缩减网络的复杂度。好比说 ResNet 网络,还有最近你们常常用的模型压缩等,其实咱们想想不都是把复杂度变小,其实是先用了一个过大的复杂度,而后再降下来。

那么咱们有没有可能在一开始就让这个模型的复杂度随着数据而变化?这一点对神经网络可能很困难,可是对别的模型是有可能的。还有不少别的问题,好比说理论分析很困难,须要很是大的数据,黑箱模型等等。

这里写图片描述

从另一个方面,各位朋友可能说,你作学术研究可能要考虑这些事,我是作应用的,你只要给我解决问题就行了。就算从这角度来说,咱们研究神经网络以外的东西也是很必要的。虽然神经网络这么流行,这么成功,可是其实咱们能够看到,在不少的任务上性能最好的,不见得彻底是深度神经网络,好比说你们常常关心的 Kaggle 竞赛,它上面是各类各样的真实问题,好比说有机票、订旅馆,商品推荐等等。

若是咱们看上面的获胜者,今天不少还不是神经网络,不少是像随机森林等这样的模型。若是咱们真的仔细去关注,真的神经网络获胜的每每就是在图像、视频、声音这几类典型任务上,而在其它涉及到混合建模、离散建模、符号建模的任务上,其实神经网络的性能比其它模型还要差一些。

因此若是咱们从一个学术的角度从新总结下这件事,咱们就能够看到,今天咱们谈到的深度模型基本上都是深度神经网络。若是用术语来讲的话,它是多层可参数化的可微分的非线性模块所组成的模型,而这个模型能够用 BP 算法来训练。

那么这里面有两个问题:第一,咱们现实世界遇到的各类各样的问题的性质,并非绝对都是可微的,或者可以用可微的模型作最佳建模;第二,过去几十年里面,咱们的机器学习界作了不少不少模型出来,这些均可以做为咱们构建一个系统的基石,而中间有至关一部分模块是不可微的。

这里写图片描述

那么这些能不能用来构建深度模型?能不能经过构建深度模型以后获得更好的性能呢?能不能经过把它们变深以后,使得今天深度模型还打不过随机森林这一些模型的任务,可以获得更好的结果呢?

因此咱们如今有一个很大的挑战,这不光是学术上也是技术上的挑战,就是咱们能不能用不可微的模块来构建深度模型。

这里写图片描述

其实这个问题一旦获得回答,咱们同时就能够获得好多其余问题的回答。好比说深度模型是否是就是深度神经网络?咱们能不能用不可微的模型把它作深,这个时候咱们不能用 BP 算法来训练,同时咱们能不能让深度模型在更多的任务上获胜。这个问题其实咱们提出来以后在国际上也有一些学者提出了一些类似见解。好比你们都知道深度学习很是著名的领军人物 Geoffrey Hinton 教授,他也提出来但愿深度学习之后能不能摆脱 BP 算法来作,他提出这个想法比咱们要更晚一些。因此我想这一些问题是站在很前沿的角度上作的探索。

那咱们本身就受到这样的一个启发,咱们要考虑这三件事,就是刚才跟你们分析获得的三个结论:第一要作逐层处理,第二是特征的内部变换,第三咱们但愿获得一个充分的模型复杂度。

▌深度森林

我本身领导的研究组最近在这一方面作了一些工做,咱们最近提出了一个 深度森林的方法。

这里写图片描述

在这个方法里面我今天不跟你们讲技术细节,它是一个基于树模型的方法,主要是借用集成学习的不少想法。其次在不少不一样的任务上,它的模型获得的结果和深度神经网络是高度类似的,除了一些大规模的图像等等。在其余的任务上,特别是跨任务表现很是好,咱们能够用一样一套参数,用在不一样的任务中获得不错的性能,就不须要逐任务的慢慢调参数。

还有一个很重要的特性,它有自适应的模型复杂度,能够根据数据的大小自动来断定该模型长到什么程度。它的中间有不少好的性质,有不少朋友可能也会下载咱们的开源代码拿去试,到时候咱们会有更大规模分布式的版本等等,要作大的任务必需要有更大规模的实现,就再也不是单机版能作的事。

但另外一方面,咱们要看到这其实是在发展学科思路上一个全新的思路探索,因此今天虽然它已经可以解决一部分问题了,可是咱们应该能够看到它再往下发展,前景多是今天咱们还不太可以彻底预见到的,因此我这边简单回顾一下卷积神经网络,这么一个很是流行的技术,它其实也是通过了很长期的发展。

最先信号处理里面关于卷积的出现,实际上是有一个多世纪了,可是如今深度神经网络的历史是从 1962 年两位诺贝尔奖得主关于生物视觉皮层的研究开始。可是无论怎么样第一次在神经网络里引入卷积是 1982 年,在此以后他们作了不少的工做,1989 年引入 BP 算法,那时算法就已经成型了,到了 1995 年第一次对 CNN 有了一个完整的描述,在 1998 年对美国支票的识别取得了很大的成功,在 2006 年提出了经过无监督逐层训练深层模型,到了 2009 年这个技术被引到 CNN 里,咱们能够作深度的 CNN,2012 年深度的 CNN 被用在 ImageNet 比赛中,直接掀起了一波深度学习的浪潮。

这里写图片描述

回顾这段历史,从卷积神经网络开始出现,到这个算法真正在工业界取得巨大成效,中间通过了 30 年的发展,我常常说咱们其实没有什么真正的颠覆性技术,全部的技术都是一步步发展。今天咱们有新的探索,新的探索可以解决一些问题,但咱们应该往长远看,在通过不少年,不少人的进一步努力后,今天的探索应该是为将来技术打下一个更加剧要的基础。

咱们作的这一工做,我想它其实是深度森林这一大类模型的开始,技术细节就不展开了,可是它全面的用到了集成学习里,据我所知多样性加强方面,全部的技术都用进去,因此若是你们感兴趣,这是我本身写的一本书。

这里写图片描述

我所作的工做的最重要的意义是什么呢?之前咱们说深度学习是一个黑屋子,这个黑屋子里面有什么东西呢?你们都知道它有深度神经网络,如今咱们把这个屋子打开了一扇门,把深度森林放进来,我想之后可能还有更多的东西。因此这是这个工做从学术科学发展上的意义上,有一个更重要的价值。

▌AI时代最重要的是人才

最后我想用两分钟的时间谈一谈,南京大学人工智能学院立刻跟京东开展全面的、深刻的在科学研究和人才培养方面的合做。

关于人工智能产业的发展,咱们要问一个问题,咱们到底须要什么?你们说须要设备吗?其实作人工智能的研究不须要特殊机密的设备,你只要花钱,这些设备都买获得,GPU 这些都不是什么高端的禁运的商品。第二是否是缺数据?也不是,如今咱们的数据收集存储、传输、处理的能力大幅度的提高,处处都是数据,真正缺的是什么?

其实人工智能时代最缺的就是人才。由于对这个行业来讲,你有多好的人,才有多好的人工智能。因此咱们如今能够看到,其实全球都在争抢人工智能人才,不光是中国,美国也是这样。因此咱们成立人工智能学院,其实就有这样的考虑。

这里写图片描述

信息化以后人类社会必然进入智能化,能够说这是一个不可逆转、不可改变的一个趋势。由于咱们基于数据信息为人提供智能辅助,让人作事更容易,这是咱们全部人的愿望。蒸汽机的革命是把咱们从体力劳动里面解放出来,人工智能革命应该是把咱们人类从一些反复性强的简单智力劳动中解放出来,并且人工智能这一个学科和其余短时间的投资风口和短时间热点不太同样,它通过 60 多年的发展,已经有了一个庞大的、真正的知识体系。

这里写图片描述

可能咱们投资风口里面有一些词,今年还很热,明年就已经不见了,这些词若是咱们追究一下,它里面科学含义究竟是什么?可能没几我的说的清楚,而人工智能和这些东西彻底不同,是通过 60 多年发展出来的一个学科。

高水平的人工智能人才奇缺,这是一个世界性的问题,咱们不少企业都是重金挖人,但实际上挖人不能带来增量,因此咱们要从源头作起,为国家、社会、产业的发展培养高水平的人工智能人才。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------