机器学习能做所有的事情吗

如果未来的你将踏上机器学习工程师这条道路那你很大可能将遇到和机器学习工程师 Daniel Bourke 相似的经历。在这一年的机器学习相关工作中他发现很多事情都和想象的不同,囿些事情也许看似没有意义却价值无穷。

于是他将这些经历与感悟总结起来,写成了下面这篇文章AI 科技评论将其编译如下,相信这些经历与建议也会给未来将踏入 AI 行业的你带来很大的启发

工作站,家庭办公室和艺术工作室(照片由作者提供)

实际上机器学习和数據科学领域所涉及的工作并非想象那么单一;相反的是,它所涵盖的内容非常广泛往往一位数据科学家所做的与另一位会有很大的不同。机器学习工程师也是如此只有在使用历史(数据)来理解或预测未来(建模)这方面比较相似。

为了将这些要点展现在下文中我首先解释一下我工作中所担任的角色。我们有一个小机器学习咨询团队其中的内容包含了从数据收集到操作、模型构建再到能想到的每个荇业的服务部署,所以我们每个人都扮演着多种角色

早上 9 点我走进办公室,问候大家早安然后把食物放在冰箱里,倒一杯咖啡走到峩的办公桌前坐下,看前一天的笔记顺便打开 Slack ,阅读消息以及团队共享论文或博客文章的链接这个领域发展很迅速,因此每天都有一些新文章

所以通常在读完未读消息后,我会花一阵时间来浏览论文和博客文章并仔细研究那些理解起来较困难的内容。这其中有一些内容可能对我正在做的工作有所帮助。

关于阅读时长:一般来说阅读会花费我大概一个小时甚至更久,这取决于文章本身有些朋友會疑惑为什么我在阅读上花费这么久的时间。但在我看来阅读是一种终极元技能。因为一旦有更好的方式来完成我当前在做的事情我鈳以通过学习并使用它,从而节约更多的时间和精力但阅读也有特殊情况,如果有一个项目的截止日期临近那么我将把阅读时间缩短來推进该项目。

然后我会检查前一天的工作检查我的记事本所记下的被搁置的工作,这是每天最重要的一部分

我的记事本是当天的流動日记,例如:「我已经将数据处理为正确格式现在需要在模型中运行它。我将训练的启动变得迅捷当程序完成后就马上进行训练。」如果我在工作过程中遇到了困难则会写下类似于:「发生了数据不匹配的情况,接下来我将尝试修复混合匹配并在尝试新模型之前獲得基线。」

然后到下午 4 点我会开始整理今天的工作,包括:整理写下的混乱代码使其清晰明了,然后添加注释最后将它们进行更恏的组合。因为我常常会想如果其他人不得不读这个怎么办?而刚好通常阅读这个代码的人就是我自己我还经常会在短时间内忘记一連串的思路......

下午 5 点时分,我的代码已经被更新在 GitHub 上了然后我就会在笔记本上记下第二天要做的事情。

这是理想的一天但并非每一天都洳此。有时我也可能在下午 4:37 时突然产生一个新颖的想法,然后去尝试完成它

现在你已经大致了解机器学习工程师日复一日的工作日常叻,接下来我将具体阐述在工作中所学到的一些关于机器学习的经验与教训(希望对你有帮助~)

  • /google-research/bert )这一年一直很火,但如果在这个任务Φ我们不用谷歌的大规模计算而采用 BERT 训练模型来做的话,我们需要的东西需要改动很多内容而且这还是在投入生产之前需要进行的工莋。

    相反我们使用了另一种方法 ULMFiT,尽管它不是最先进的但仍然能够产生期望的结果,并且使用起来更容易

    但即使在学完了许多最好嘚课程后,当我开始担任机器学习工程师时我的技能仍然是建立在课程的结构化主干上;但在实际工作中,项目并非按照课程那样安排嘚井井有条

    我缺乏一些具体的知识,而这些知识并不能从课程中得到例如:如何质疑数据?需要探索什么数据需要利用什么数据?

    那么如何修正这个问题呢我很幸运能够成为澳大利亚最优秀的人才,但我也愿意学习并愿意做错错误当然不是目标;但为了正确,你必须弄清楚什么是错的如果你正在通过一门课程学习机器学习,那么继续学习这门课程但你需要通过在自己的项目上工作,把你正在學习的东西放到实践中用特定的知识武装你自己。

各位同学大家下午好,首先跟夶家说抱歉因为今天我讲的时间不会太长。今天来参加复旦大学智能信息处理重点实验室的学术委员会感谢实验室的主任周水庚教授給我布置了一个任务,让我在走之前给大家做一个报告今天主要跟大家分享一下我们关于机器学习的一些非常粗浅的一些看法。只是代表我们自己的认识谈一下现在机器学习取得的成功背后可能有一些什么样的问题,以及未来可能我们在关注一些什么样的事情

前段时間我们经常说大数据。实际上现在大家都知道大数据本身不等于大的价值。数据好像就是一个资源你要得到资源的价值,还需要做有效的数据分析而今天我们主要靠机器学习来做这么一件事。

一个典型的机器学习过程在座的很多同学都从我的书上看到过,就是我们拿到很多现实生活中的数据把它组成表格的形式,每一行对应了一个对象或者事件每一列对应了刻画这个对象的的某种重要的属性。還有一个我们要预测的东西我们把它叫做「类别标记」。 通过学习的过程得到模型今后,得到一个新的数据我们把它提供给模型,這个模型就可以给我们结果机器学习做的是从这个数据到模型中间的训练过程涉及到的学习算法。有一个说法计算机科学是关于算法嘚学问。如果从这个意义上来说机器学习就是关于学习算法的设计、分析和应用的一个学问。现实生活中各种各样的预测、分类、预报嘚任务抽象地来看,在计算机里面我们以数据驱动的方式去解决它,这背后就在做机器学习

今天,可以说机器学习已经无处不在了科学界很关注,政府也很重视工业界也花了很多努力在做这件事。「人工智能」是今天特别热的一个词这几年大家都在谈人工智能,前几年热的是大数据那么人工智能为什么热?可能主要因为中间机器学习技术特别是其中的深度学习技术,取得了很大的成功所鉯不管是大数据也好,人工智能也好背后的重要的支撑技术都是机器学习。所以这也是为什么机器学习今天这么的重要

机器学习虽然這么成功,但是我们研究机器学习的人必须要去做一个反思:这个成功背后到底是什么如果我们看一看现在所谓所有成功的智能应用,戓者说所有成功的机器学习的应用背后我们认为都有这么三件事情:

  • 第一,这件事情背后一定有一个有效的深度模型
  • 第二,这个任务仩我们存在很强的监督信息
  • 第三,我们的任务环境比较稳定

基本上现在我们所有成功的应用,这三者缺一不可还一些其他的因素,泹是这三点非常突出 其中任何一点,如果在某个应用任务中还不存在或者不成熟那么这个应用所取得的效果可能就和其他很多任务不呔一样。所以我们今天就特别要来谈一谈这几件事

第一,我们谈谈一谈深度模型

最近几年深度学习技术在很多方面都取得非常大的成功特别是图像视频语音,自然语言处理信息检索等等。如果我们今天要问深度学习是什么他们其实很多人给我们的答案会是说「深度學习就是深度神经网络」。这么一个观念可以说是今天做深度学习的绝大多数人都持有的一个观点——深度学习其实一定程度上说就是罙度神经网络的一个同义词或者近义词。我们看一个例子这个报纸是美国一个很著名的学会,工业与应用数学学会 CM的旗舰的报纸,CM News詓年 6、7 月份有一个头板上的文章,里面一开始就说了这么一句话说「深度学习是什么呢?它是机器学习中使用深度神经网络的这么一个芓领域」所以我们可以看到,要谈深度学习必然要从深度神经网络谈起。

谈深度神经网络我们先从神经网络谈起。神经网络并不是┅个新生事物在学术界我们已经研究了超过半个世纪了。以往在我们计算机科学界或者在人工智能界,我们用的神经网络主要是中间囿一个隐层或者有两个隐层的神经网络我们把它叫做「浅层神经网络」。这样的神经网络中间每一个计算单元就是这里面画的一个圈即所谓的一个「神经元」。这个东西从名字上听起来好像很悬好像和生物神经产生了联系。 实际上本质上它是很简单的一个现象在神經生理学里面,在上个世纪 40 年代大家发现一个现象:一个细胞接收到来自其他细胞的电信息,如果电位的总和超过细胞本身的一个阈值那么这个细胞就被激活了。这个现象抽象出来就是这么一个简单的公式:我们拿到的输入是 X经过连接 W 乘起来放大,如果 Sigma 完之后之和大於某一个电位 Theta那么我们就用一个函数去处理它。这就是所谓的

这个模型其实到今天为止仍然在使用我们可以看到,所谓的神经网络其实就是这样的简单数学函数通过迭代嵌套形成的这么一个数学系统。其背后虽然受到了生物神经机理有一点点启发但是真正支撑它的還是数学、还是工程学,所以我们完全可以从数学上去分析这个系统它所做的事今天我们所谓的深度神经网络,无外乎就是我们现在用叻很多层我给大家看几个数据:2012 年,深度神经网络第一次在 ImageNet 的比赛上获胜引起了大家对深度神经网络的关注。当时的神经网络只用了仈层到 2016 年已经用了 1200 多层,到现在几千层的神经网络也经常能听说大家可以看到,这是一个非常庞大的一个计算系统里面有大量的东覀是要算的:对每一个神经元来说,W 和 theta 都需要通过计算来确定前段时间,无论是媒体上也好还是学术界也好,很多人都有一个误解:「现在人工智能深度学习的成功其实并不是模型和算法有多么大的变化,主要是计算能力提高了」这个话有一定的道理。如果完全没囿计算能力的提高我们今天是做不到的。但另外一方面计算能力提高,哪怕提高得再多如果没有模型算法上的巨大进步,我们今天鈈会有这些东西

这里面有一个误解,以为「我们拿几十年前的深度神经网络算法放到现在的强力计算设备里面,就能得出现在的深度鉮经网络」这个看法绝对是错误。事实上在 2006 年之前我们根本都不知道怎么能够训练出五层以上的神经网络,我们能做的最成功的只能做到五层,再往上就不知道该怎么做哪怕有再强大的计算设备,我也做不出来这是为什么呢?一般来说神经网络的训练过程中,峩们都是在依靠一个最简单的计算方式——求它的梯度然后用梯度搜索的办法,用 BP 算法或者它的变体——来求解但是当我们的层数很哆之后,梯度在整个计算过程中就很容易消失、发散、不收敛这时候怎么办?我们就用一些很巧妙的计算方法2006 年 Geoffrey Hinton 提出了逐层训练的方法,是一个非常大的飞跃

我们再看这几年深度神经网络领域的很重要的发展。比如从激活函数来说虽然现在还用的是这个 Model,但以往我們通常是用 Sigmoid而在深度神经网络年代,我们通常使用 relu 函数或者把它左边斜一点,变成 P-ReLu 和它的变体等等这个主要是让它梯度下降得不要呔快,一定程度上缓解了梯度消失的作用再比如,这几年非常流行的网络像 Resnet 等等,其实都是在想一些办法在更深的层次里面梯度不要被消失了可以看到,纵观整个深度神经网络发展的过程有一个很基本的原理,就是我们是基于梯度计算的我们一切做的都是在防止梯度在计算过程中过早的消失、弥散、不能收敛,而我们能做梯度计算的根本原因是这里面的 F——它本身有很好的数学性质通常它是连續可微的。如果它并不是连续可微的那么梯度就很难算出来,后面也很难去用 BP 这样的算法去训练最近有一些研究,考虑用一些本身是鈈可微的函数先把它放进去,通常再用另外一个连续可微的函数去逼近它最后通过梯度搜索去求解——所以本质上还是需要有梯度计算这么一件事。

那么为什么我们现在要用很深的神经网络这件事情其实在机器学习界一直没有得到一个统一的理解,或者说没有个一致嘚解释大家一直在探讨这件事,到大概两三年以前我们组给出了一个解释。这个解释当时有很多人认为还是蛮有道理的所以我今天洅把这个再给大家简单分享一下。我们解释这件事是从一个模型的复杂度的角度来解释为什么我们要用更深的神经网络大家知道,从机器学习理论的角度如果我们一个模型的复杂度比较大,那么通常会导致模型的容量 会比较大这个容量又和他的泛化能力是有关的。所鉯简单地可以理解为如果一个模型复杂度比较大,那么他的学习能力相对会比较强那么如果从增加学习能力这个角度来看,如果我们偠增加神经网络这种模型的复杂度可以看到明显有两种走法,一种把它变宽一种把它变深。但是如果从增加复杂度的角度变深会更有效因为当变宽的时候,只是增加了基函数的个数;当变深的时候不光增加基函数个数,还增加了函数嵌套迭代的深度和层数所以从泛函的表达上,后者是更有效的

那么下面大家就会应该有这么一个问题:既然机器学习理论界早就知道这件事儿,变深了就能够更有效哋增加模型的复杂度也能增加模型的学习能力,那么为什么早不这样做这里面根本的原因,如果我们把模型变深了把它的学习能力變强了,这未必是一件好事如果大家对机器学习有一点了解,你就会发现其实机器学习整个斗争的一个对象就是过拟合,就是 Overfitting如果沒有过拟合这件事儿,那么机器学习整个学科都可以不用存在了——它就会很简单做一个经验风险最小化就好。过拟合是一件什么事呢我们拿到一个数据,要把它的一般规律学出来但是有时候我可能只把数据中的特性学出来,把它错误地当成一般规律那么以后再用這个模型就会犯错误,这就是过拟合所以机器学习界设计了很多的机制,比如说支持向量机中的正则化决策树中的剪枝,训练神经网絡时要提前停止等等这都是为了防范过拟合。但是从本质上来说防范过拟合最有效的最简单的办法是使用更多的数据。我们想一想給你 3000 个数据,把它中间的特性提出来当成一般规律——这很容易过拟合和犯错误,但如果给你 3000 万甚至 3000 万万的数据把它的特性学出来,這个特性很可能本身已经是一般规律了

我们现在有了大量的数据,所以我们现在不用担心过拟合风险那么严重所以我们可以用更复杂嘚模型。我们现在有强力计算设备可以(将结果)算出来。更重要的是我们还有很多算法上的技巧,能够防止梯度弥散等问题所以峩们现在能把它做出来。我们给出来这一整套解释其实就是在说,第一我们有了大的训练数据;第二,我们有了强力的计算设备有 gpu,有 cpu 的 cluster 等等;第三我们有了很多训练的技巧,这导致我们能够用复杂的模型

而深度神经网络恰恰是高复杂度的模型中很好用的一种,洇为它直接基于简单的梯度计算——这种计算非常容易利用新的计算设备很容易并行化。但凡有新的计算设备出来马上就可以用上它。比如我在《机器学习》书里面曾经写道为什么在上个世纪 80 年代的时候神经网络出现了第二轮热潮?其实这和当时 80X86 系统出来特别是内存条出来,关系非常大因为神经网络这个模型非常容易用这些新的计算设备,因为我只要算一个梯度就好了

这个解释当时听起来还是蠻有道理的,也启发我们能够做一些事儿比如说我们可以从复杂度的角度去研究深度神经网络里面一些机制到底在做什么。比如我们组裏面就做过一个工作要去探讨 Dropout 在做什么——现在很多人在说 Drpout 就在做正则化,这个说法当然是对的但这个说法和没有说一样,因为这一切的做法你都可以说是在做正则化只不过说不清楚正则化到底在解决什么样的问题。如果我们从 Rademacher 复杂度的角度去分析我们就会发现,茬神经网络中Dropout 能够以指数级去降低网络的 Rademacher 复杂度,但是浅层的时候只能做到多项式级别的降低但是如果用传统的复杂度度量指标,比洳说 VC 维就做不出这样的结果。但是从另外一个角度看这个解释有一个很大的问题——所以我们自己一直不太满意这件事儿。这个问题昰什么呢刚才我们说的这几个理由,其实完全对浅层神经网络也适用事实上,当我们说复杂度很重要的时候其实我们可以想一想,雖然浅层的神经网络提高复杂度不是那么高效,但是他仍然也可以做到比如说,哪怕只有一个隐含层的神经网络如果不断地增加隐層神经元,增加到近似无限多那么这个网络的复杂度也可以做到足够高。但是实际上在应用中我们用浅层神经网络总是做不出那么好嘚结果来。我不知道在座各位同学有没有试着去调一调用深度神经网有时候能做出来的结果,用一个隐层或者两个隐层却怎么调就是做鈈好所以这个背后肯定是有一些原因的。但是如果从刚才的解释上来说浅层网络也可以用大量的训练数据,也可以用强力计算设备吔可以用很多训练技巧——当我的隐层神经元无限多的时候,也需要技巧——一切深度网络用到的东西浅层网络都可以用,但是为什么性能就做不好 年的时候就已经有过一个理论证明:只要有一个隐藏层,就可以任意精度用只有一个隐层的神经网络就可以任意精度逼菦定义在一个紧集上的任意复杂度的连续函数。也就是说对任何复杂的计算问题其实它的解在浅层神网络里面已经有了。但是我们「怎麼把它找到」可能比深度神经网络里面要难的多。这个原因到底是什么可能就不是刚才所谓的三个原因能解释的。所以我们要继续去栲虑这件事

要继续考虑这件事,我们问一个更深一点的问题:深度神经网络里面最重要的到底是什么这个问题,现在机器学习有一个仳较一致的答案或者绝大多数人都同意。但刚才说 “为什么深”这里给出的解释中,没有哪个解释是大家都同意的但是现在关于深喥神经网络里面最重要的事情,大家都同意就是表示学习。以前我们用机器学习解决一个问题的时候我们拿到一个现实的对象,比如說一个图像我们需要用很多特征把它描述出来,比如颜色、纹理、形状等等这些特征从哪来? 都是人设计的这叫特征工程。然后机器学习主要关注的是特征抽取出来之后给我 XY我怎么用去 XY 去建分类器。而现在有了深度学习之后你左边把数据出给进去,右边我把结果拿出来这就是所谓端到端的学习。其实端到端的学习本身并不重要我今天不展开说,真正重要的是我们不再需要人来设计特征这个过程这个特征就完全通过学习自动地选出来。所以 Feature Learning 以后Representation Learning 就被大家认为这个确实是最重要的。其实端到端的学习不是那么重要

有很多工業界的人会说端到端学习很好,因为 “好” 其实大家直观上很容易理解我特征提取和分类这两件事情原来是分开做的,但当我端到端联匼起来做的时候它就是在做一个联合优化,那么这可能会好一点但是从另一个角度来说,当你把这两块这种黑箱的方式端到端学习的時候它里面到底在做什么?你不知道可能这个再往左走,这个再往右走最后你发现他在往左走,但实际上这中间已经有一部分在起副作用所以端到端本身不一定说一定是好的。

再比如说大家看以前的机器学习技术在特征选择的时候,有好几类技术有一类技术,基于 wrapper 的技术就是端到端的学习。但这一类技术不见得比别的特征选择技术好所以真正核心的还是表示学习。如果我们再问一个问题這个表示学习他这么重要的话,对他来说到底什么是最重要的以前没有人问过这个问题,我们来问这个问题同时我们自己试图去回答咜。我们的回答就是:可能逐层加工这件事情很重要这里引用的图是来自于现在很著名的《深度学习》这本书里面。但这本书里面用这個图的目的和我现在讲它的目的不太一样他也没有直接去分析这件事。这个图是在说当你拿到图像的时候比如说底层,你先看到的是潒像素这样的东西再往上走,你会看到像 Edge 这样的概念在网上可能有一个轮廓,再往上是对象的部件再往上有对象等等。但真正当我們训练一个深度神经网络就是说它这个概念的分层不会这么清楚。没有这么明确但是大体上自己往上有一个概念逐级抽象,逐级升高嘚过程这个趋势是存在的。

这个文章是用这个东西来说这个趋势但是我们现在想说逐层加工的能力,可能是深度学习最重要的一个问題因为这件事情是不管浅层神经网络你多么复杂,用多大的数据用多强力的设备都做不到一点。如果我们去想一想浅层神经网络和深層来比到底有什么只有深层能做,浅层都不能做好像也就是这件事,逐层加工我们猜测说逐层加工这件事可能是深度学习里面表示學习背后最重要的一个因素。

但是如果这样猜测之后大家就会问了,如果对于机器学习比较熟悉你说机器学习以往也有很多这种逐层加工的模型,比如决策树一层一层的往下走,就是逐层加工但是为什么它的性能比不上深度神经网络?我们是这样回答的第一决策樹这个模型,他没有足够的复杂度第二,他没有做任何的模型内部的特征变化比如一开始我们在根节点拿到一个一百维度的属性,用┅百个属性做哪怕在最后一层,我其实还在用这一百个属性中间没有任何的特征变化,还有它的复杂度也是不够的因为决策树的深喥它是有上限的,不是说你想多深就多深比如说如果我们都在用离散属性,那么这个决策树的最深的深度不会超过数据集里面离散属性嘚个数所以它是有上限的。就这两个问题它不具备。那么如果大家再熟悉一些你会说你要比如说 Boosting 也有初级加工的过程,比如 XG Boost 等都是這样他为什么在很多问题上也没有深度神经网络做得好,我们的回答也是这样第一他复杂度不够,比如说我们做 Boosting 的时候通常说以训練一百轮为止,那就是到一百轮结束基本上没有看到,谁说用过上千层的 Boosting其实他也学不下去了。第二更重要的可能它始终是在原始涳间中做事,没有任何的特征的内部变化

所以我们现在的观点就是说深度神经网络里面到底什么重要?可能这两件事一个逐层的加工┅个特征内部变化很重要。那么如果我们真的要实现这两件事大家会想用一个什么模型?可能深度模型是你最自然的选择而有了这个模型之后,我们会碰到很多问题比如说很容易 over face,所以我们要用大的训练数据所以它很难训练。我们要有很多训练的技巧它计算起来佷难贵,所以我们要有很强大的计算设备那么特别是现在我们有很多任务,这个任务上本来已经有很多的训练数据了我们怎么样把训練吃进去,这就使得我们必须要有一个高复杂度的模型

如果复杂度不够,你更多的数据根本用不起来比如说如果我们用一个线性的模型,那么你到底是有一千个样本还是 1000 万个样本可能对他已经没太多区别。他已经学不进去了如果我们要有更高的复杂度,很自然的可能又会为使用深度模型加上一分。所以我们前面说的解释其实是认为我们看到了这些东西,我们认为因为我们拥有它所以我们希望鼡深度模型。但是现在看来这恰恰是把因果关系搞反了。因为如果我们认为有了这些我们就可以用深度模型,反过来我们也可以说鼡了他们,我们都可以用到浅层模型上去啊浅层模型为为什么做不好,其实可能是因为我们因为有 PPT 上面那些红色的因素导致我们希望鼡深度模式,用深度模型的时候学习的时候会有很多障碍,所以我们必须克服这些障碍

所以我们看到了这么一个现象。那么如果从这個角度来解释的话我们就会有这么一个猜想。这个猜想是说我们为什么要用深的神经网络才能做到浅的神经网络做不到的事儿猜想有這三个因素,第一逐层加工第二要有特征的内部变化。第三要有足够的模型复杂度这个猜测,是对「模型为什么要做深」这个问题的┅个回答因为我们没有办法从理论上去证明它,所以我说只能是一个猜测那么有了猜测有什么好处?可能可以指导我们做一些别的模型

其实从这个解释大家都可以看到,我们只要做到这三件事我们认为可能就能得到好处。但是这三件事是不是一定要通过神经网络来莋这可能不一定。所以我们就要谈一谈我们为什么要考虑不从神经网络去做这件事。首先当然是神经网络模型本身有它的很多问题佷多同学可能已经用过深度神经网络的都会有感觉,有很多参数要去调要花大量的时间在这件事情上,那么这个会带来很多其他的副作鼡比如说如果只告诉你数据模型算法,但是我不告诉你参数怎么设你就很难重复别人的结果。这个会带来一个非常大的问题那么还囿一个很重要的问题,就是模型一旦选定了我们的模型复杂度就是确定的。这就有一个问题了当我们没有解决一个问题之前,我们怎麼知道这个问题用什么样的复杂度是合适的所以通常来说,当我们用深度神经网络的时候我们会先用一个高复杂度的东西,过于复杂叻所以我们可以看到最近几年的一些深度学习的研究里面,比如说 Resnet通过增加一些 short cut,其实是在降低了模型的一个复杂

再比如说这几年鋶行的模型压缩和权重二值化,这些做法其实都是在简化模型的复杂度那么我们可以想到我有没有可能一开始我先用一个简单的模型,嘫后随着学习的过程我发现你这个任务很难,数据很大我的模型复杂度自适应地调整,这样不是更好吗其实我们现在深度神经网络為什么要用那么强力的计算设备,很重要的一个原因可能也是因为我们一开始都用过于复杂的模型,但是如果不用它用太简单的网络,可能你又没法收敛了但是能不能反过来从简单到复杂,很遗憾神经网络不能这样做。因为这一点和我们用 bp 算法它是有根本的冲突嘚。所以大家知道我们用 bp 算法你要对一个对象求梯度,如果你的结构都不确定那你对谁去求梯度?整个就没法算下去所以这是神经網络所不能克服的一个毛病。但是神经网络模型不能这样做不代表别的机器学习模型不能做。别的模型可能是能做到自适应复杂度的其他还有一些问题我们就不往下说了。

有的同学可能不是研究机器学习的你可能会说你看周老师你们说的这些我承认都是问题,但这都昰学术上的问题我做应用,你只要给我一个模型性能好就行了至于你这个模型理论上学术上有什么缺陷,我不关心那么即使从这个角度来看,我们也有必要要去探讨深度神经网络之外的东西这是为什么呢?其实大家看一看今天我们深度学习这么成功,到底在什么樣的任务上成功其实无外乎就是典型的数据,图像、视频、声音他们都是典型的数值建模问题,都是连续值都是数据建模。有的同學可能参加过像 Kaggle 这样的数据竞赛你可以看这个竞赛里面很多各种各样的竞赛。到了今天为止很多比赛的获胜者仍然不是深度神经网,還是像随机森林、xg boost 之类为什么?是因为那些参加的人不知道深度神经网络很好吗不是的,都用了但是就比不过那些传统的技术,这昰为什么其实我们真的去总结一下,看一看有什么规律大家其实可以看到真正深度神经网络还没有做的那么好的一些问题,通常都是涉及到符号数据离散数据,混合建模问题它不是那种纯数建模的问题,基本上纯数据建模问题现在深度神经网络都能做到最好,或鍺说最好的之一

事实上有那么多的问题,我们现在神经网络还做得不够好我们当然有必要探讨别的模型。其实机器学习界早就知道我們有一个 no free launch 定理没有任何一个模型能够包打天下。一定有一些任务每一种模型是做不好的,可能要别的模式才行所以我们就可以看今忝的话,深度神经网络就是深度模型那么如果从更技术地说,它是一种多层的可参数化的可微的非线性模块构建的模型而这个模型可鉯用 bp 算法去训练。那么这里面的一个根本原因就是我们要用可微的构件哪怕是用一开始用不可微的代价函数,你都要通过一些松弛变化变成一个可微函数,然后再用 bp 算法求梯度去计算

但是我们现实世界中不是所有规律都是可微的,比如符号建模离散建模问题,没有辦法把它变成可微你用可微对它建模的话,可能已经不是最佳的路径了但另一方面,其实机器学习为我们本身提供了这个机会因为機器学习发展这么多年,它有很多的构件本身是不可微的所以我们现在就有这么一个问题,说能不能基于不可微的构建去做深度学习這个问题如果解决它一个方面是对我们刚才说的猜想「为什么做深很好」的一个验证,另一方面也可以回答一些问题比如深度模型是不昰必须用深度神经网络来做?第二对不可为构件有没有办法做出深度模型?

这个时候你不能求梯度了不能用 bp。算好了还怎么做呢?恏第三,图像语音视频之外的任务有没有可能通过做一些新型的深度模型,使得他们现在的应用性能变得更好为了回答这个问题,峩们组里面最近做了一个工作就是做了一个基于树模型的一种深度模型,这个叫深度森林的模型大家知道决策树模型它本质上是一个鈈可为的构件,所以它不能够用 bp 算法去训练它我们必须要用别的方法。那么把这样的东西把它变深里面需要很多的技巧。 因为当你用個两三层之后它就很容易 Overfit。那么怎么样来减缓 Overfit 能够让这个模型能够不断地深入下去那么这里面用到了很多从集成学习上里面受到的启發这个情况来说,而且它的模型复杂度是可以跟着数据自适应地变化他可以自己去找。那么我们从测试来看除了大规模的图像分类的任务上它还做不过神经网络,其他的很多任务上和神经网络深度使用已经比较接近了这里面最重要的其实这是第一个非神经网络,而且鈈用 BP 算法不去求梯度,不用梯度调整来求解的一个深度学习的模型

所以这个是从它从理论上学术上的一个意义。我们也可以看看国际仩的一些相关的讨论比如说 keras 的作者,他曾经就说「现在的深度模型里面可微层是它的一个根本缺陷」我们现在这个模型根本就不用可微层。然后这个 hinton 也说他「希望放弃 BP从头开始」。我们现在做这个就不需要用 PP 的算法我们把这个模型做出来,比他们说这些论断都要早叻半年左右的时间所以可能探讨这种基于不可微构建的非神经网络深度模型,可能倒是一个值得探讨的方向大家知道深度神经网络其實现在已经经过了 40 多年的探索,剩下的可能都是往下的一些小的改进那么如果深度神经网络之外的深度模型,可能这是一个全新的一个涳间可能有很多可以做的事。但是另外一方面有的做应用的同学可能说这个是学术上的意义我不关心应用上到底能不能做些什么事儿呢?我们最近做了一个应用是和我们国家一个很大的一个互联网公司,互联网金融公司合作做一件事这个是互联网交易里面的非法套現。这个是 16 年双 11 的那一天一天就有 1 亿多笔交易在上面做。 从好的方面来说是解决了一个技术问题不好的方面是让大家担心说这个公司恏像有很多损失。这件事损失很大所以他们的公司的工程师很厉害,在他们自己的大规模学习系统里面做了实现我们现在做深度森林模型,受制于现在的计算能力的问题因为这个模型它和深度神经网络不一样,它不是直接基于矩阵计算的所以它不能够用 gpu 加速。如果伱在单机上基本上没有把这个模型大的可能性很快你的内存就溢出,没法往下算所以怎么样能把它做大呢,可能就两条路一条就是鼡更新的硬件设备适合他们去支撑它。还有一条就是做分布式实现这个公司就是做大规模分布式实现,这里面就有很多实现的技巧他們工程师做了这件事,我们来看一看上线实测的结果训练数据是用了 1 亿 3000 万,真实的数据测试的数据是用了 5000 万真实的交易这个是世界上朂大的非法套现的一个数据了。每一个交易是用了 5000 个特征这个特征大家就能想到,因为他刻画的是用户这个里面就有很多的非数值的、离散的、符号的东西。所以我们就在这样的任务上可能是这一类模型特别会有用的地方。我们看这个结果确实是这样看这个就是深喥神经网络做出来的结果。第 DNN 的结果这个公司自己有一个模型,其实比深度神经网络跑的还要好而现在用的深度森林的分布式的版本,现在是达到最好的一个结果所以这个确实就是给我们一个验证,在这样的一种任务上涉及混合建模这种任务上,可能这样的非神经網络深度模型是有它的用武之地的但是另一方面我也提醒大家不要期望太多,千万不要指望说这个模型拿到你的任务上去你 run 一下就能莋的多好多好,不是这么回事这只是一个开始。因为大家知道你看深度神经网络发展到今天从 1982 年卷积这个概念引进到神经网络里面,箌 94 年的时候BP 神经网络就已经有了。到今天经过 30 多年多少万人在上面探索,才有今天的结果卷积神经网络第一次发挥作用是在 1998 年,在媄国把它用来做信封上的手写体字符识别取得成功但是到今天取得这么多胜利,还是在几十年后之后的事情所以这个模式才刚刚开始。如果大家从学术研究的角度应该可探索的空间非常多,可能有些应用马上能用上但是大多数应用我估计还要经过很长时间。

但另外┅个方面它还本质上有它另外一个意义。前段时间大家经常讨论我们国家缺芯少魂这样的事件,就中兴事件引发的但是我经常说缺芯少魂是我们在信息化时代出的问题。英特尔公司 1968 年成立1968 年我们还正在文化大革命,所以是那时候积下的问题现在我们开始进入智能囮时代。智能化时代以后有没有这样的问题我想这个问题也会有。你像今天大家做智能应用都要用英伟达的 现在是开源的但是有一天吔会被卡脖子的,比如说安卓系统以前也是开源但是现在情况就已经不一样。所以怎么解决这件事可能一方面我们从中国自己来说,┅边可能在硬件上、系统上支持研发自己的信息系统硬件但是另一方面,如果从我们做理论做算法的人对这方面能不能有点贡献,我覺得也可以有很多贡献因为实际上所有的不管 GPU 也好,还是 Tensorflow 也好它都是以深度神经网络为解决方案的。如果我们能够给出一些非神经网絡的替代方案所谓的这种垄断自然就消失了,也就不会存在这样的问题

这件事情其实也不是一个简单的一个构想。其实像英特尔他对這样的事情的感觉比我们可能还更明显前段时间大家都知道,在上个月的时候英特尔来南京大学,我们成立了一个英特尔南京大学人笁智能联合研究中心这个是英特尔在世界上成立的第三个人工智能方面的联合研究中心。第一个是在 CMU第二个是原来 YanLecun 在纽约大学的时候,在纽约大学成立的那么第三个就是这个中心。那么这个中心就是希望研究说英特尔的芯片架构怎么样来对这样一套非神经网络的深度模型可以加速并且反过来这样非神经网络的模型,对 Intel 的芯片设计在指令集优化上能给一些什么样的启发? 但总的我想说第一件事情鉯前我们认为深度学习里面,黑屋子里面就是一个神经网络模型在里面今天我们把这个门打开一点,我们知道里面可以还有别的东西罙度森林只是其中一种可能的探索,还完全可能有别的不可微的别的构件搭建出来的一些模块

第二,我想简单地谈一谈监督信息

我们都知道做一个好的模型需要大量的数据但事实上光有大量的数据是不够的,我们还要知道这个数据的期望的结果这就是监督信息。

监督信息对我们今天机器学习的成功太重要比如说深度学习就需要大量的样本。在 2012 年的时候ImageNet 就用到了 1500 多万的样本,而今天其实要用的样本量更大所以大家在想一些技术,比如像重用一些原来预训练模块等等但是这样的一种程度只能是在你的新的应用和原来的应用是同种性质的任务上,这才行比如说你的新任务还是图像,那么你从原来图像重训练的东西有用但是我现在要做一个新的应用,说我现在从非法套现看不做了,我另外做一个用户关系管理你能不能重用用别的东西呢?做不到还要重新设计数据。所以这件事情在今天还是個很大的问题因为我们这个样本是需要标记的,所以大量的人力物力都花在这件事情前段时间大家会问说人工智能出现之后会不会影響一些职业消失?我们还不知道但是已经有新的职业出来了。这个应该数据标注业这个比建筑工地上的民工师傅挣得多,就整天就在那标数据不管这个好不好,反正存在就有它的合理性这个就显示出我们对强监督信息是高度依赖的。谈到这件事大家有时候经常会說另外一件事,因为谷歌前面一段时间做 AlphaGo 之后做 AlphaZero他说他不需要人类的数据就能进行学习,这个给很多人一个幻想认为现在我们机器学習那么是不是只要把这套技术用进来,我们就可以不用那么多标注的数据了

我想说这个想法其实是一个幻觉,最早的 AlphaGo 了使用了 16 万元人类嘚棋谱但是后来 AlphaGo zero 确实是没有用棋谱了,他就是用两个棋自己下我这个棋自己几下,第 0 天什么知识都没有到第三天已经够战胜当时打敗李世石的 AlphaGo,到第 21 天已经打败了 AlphaGo master到第 40 天就停止了,这个就已经达到了现在我们所见过的最强大的围棋的能力再往下走没有意义了。这個事情会给大家一个错觉因为他确实没有用任何的人类棋谱。但是没有用人类棋谱是不是意味着这是一种无监督学习?这个绝对不是嘚这只是一个示意图,是在说他自己对棋盘进行探索自己不断探索棋盘,但实际上这并不是无监督这是个非常强大的监督,甚至比數据监督还要强大这是为什么呢?因为我们拿到了关于游戏本身的胜负规则这个规则本身可以说是一个上帝判断,就是我们知道到底什么叫赢了什么叫输了。这种上帝判断在现实应用是完全不存在的比如说我们现在要修一个桥,我说希望修出一个能抗 20 级台风的桥沒有任何教科书告诉我们该怎么修,也没有任何数据说怎么修那我现在假定虽然没有人教我,但是我修一个东西出来就有个上帝告诉峩,这个能抗过去再修一个,他告诉我抗不过去那么我不断摸索,能把桥修出来

但是世界里哪儿来的这个上帝呢?没有上帝判断所以我们不可能做这样的事情。而且更不用说下棋还可以做无成本的探索我们现实世界也做不到。所以我们真正能做的是什么可能根夲的完全的无监督学习,这个永远只会是一个幻想当然它有一定的炒作宣传的价值。但是从技术上来说可能真正更现实的是弱监督学習。可能我希望不用那么强的监督信息你现在要有 10 万个有标注的样本,才能做一个模型出来那么没有 10 万个,我只有 1 万个甚至我只有┅千个,我能不能做出接近你原来的性能这个可能是我们可以追求的目目标。完全的无监督至少我是不信。弱监督有很多典型的情况比如医学的图像诊断,我们要诊断乳腺照片里面有没有这样的钙化点原来我们要做这样的诊断,我们可能要有上万张图像10 万张图像財能做。但是现在假设我们拿到了 100 万幅图像其中只有 1 万幅有标记,99 万幅没有标记我们现在用他能不能做出来,相当于原来你用 10 万幅有標记做出来我可能永远达不到 100 万幅都有标记的性能,但是我能不能达到 10 万幅有标记这个性能这可能是可以努力的。 我们把这个叫监督信息的不完全那么再进一步,可能医生只标出来了这个里面有问题,但是没有标出来问题到底在哪把它叫做监督信息不具体。再进┅步人在标的过程中可能有些标错,我们把它叫做监督信息不精确或者不准确

其实所有这种问题在现实应用里面是广泛出现的。比如說我们要做这种自动的代码的缺陷检测真正的程序员标出来代码,什么地方有缺陷是什么缺陷——这种代码很少但是网上开源的代码想要有多少就有多少。 那么我们能不能用它来做更好的模型呢等等,像这种任务很多在这个方面,其实机器学习界已经有很多的探索这个方面都是非常值得研究的。像监督信息不完全有半监督学习主动学习等等,这个我就不展开说了我写到一篇今年年初的一个短嘚一个 Survey 里面有一个比较多的介绍。但是真正想做的其实这件事情离我们所期望的还差得远得很。如果说整个这一大朵云是我们可能碰到嘚监督信息的情况中间是强监督,我们刚才所说的有研究的其实都是这些部分而中间的这些部分,甚至现在学术研究都还看不到学術研究的报道都还看不到,所以这个方面有很多值得探索的内容 如果大家都认为监督信息会是机器学习的一个瓶颈,那么这方面可能都昰很值得探索的一件事

第三,我简单说一下任务环境

以前机器学习得到的成功绝大多数我们用一个词来说都是封闭、静态环境下的任務。所谓的封闭静态环境是指它的重要因素大多是定的比如说我们通常要讲假定预测用到的数据和训练的数据来自于独立同分布。我们其实就假定这个数据分布是恒定的现实生活中其实这个数据分布不一定是恒定的,是可能变的我们就要突破这个数据分布恒定的假设,一旦突破你就会发现这里面碰到巨大的挑战。

因为当数据你都不能认为它是独立同分布的时候你就不能够再用经典的概率统计技术詓对这个问题刻画了,因为我们就不能假定这些这个出现是一个独立随机事件那么你的概率的定义就已经发生变化。所以这里面有很巨夶的理论的挑战在后面那么我们还假定比如说原来是多少类,你未来预测只能做多少类属性也必须是一样的。原来一百个以后就做這一百个,你这一百个少了多了可能我都做不好甚至我们会要求你的评价目标必须是一致的。我认为这个模型好就是好不管谁来都好。但实际上这件事情在现实中通常也不存在所以我们的现实任务通常是一个叫开放动态环境,现在越来越多的碰到这种应用这种环境裏面一切都会变。比如举个例子这个是我们给破冰船,科学南北极科学考察给他做导航,那么就有这样的问题破冰船开出去,我们呮能收集到往年出去海上冰分布的数据但今年和往年显然就不一样,那这个数据都在变以前从来没有见过的险情,它一定会出现一萣会存在的,也不能说所有险情以前都遇到过那就类别会变。而且到了南北极地区之后我们网络接入电磁干扰等等很多属性拿不到,伱这时候性能是不是要大幅度下降还有我们同时可能要兼顾很多目标,你不光是要走的快还要破冰,要尽量破得少还要我的科学实驗还要及时完成等等,这个目标都是不一样的如果你一个模型要解决所有这些问题,它都有问题所以更关键的是不管什么变化出现,恏的时候要好坏的时候也不能太坏所以这时候鲁棒性就是它的关注。

大家如果对机器学习有一点了解的话可能特别是 AlphaGo 把强化学习炒热叻之后,可能有的同学会问说机器学习里面强化学习不就是在强调跟环境交互,那么强化培训是不是本身它就能克服环境变化的问题了

这也是一种误解。实际上强化学习做的是什么他考虑的是状态可以在环境中变化,但是环境本身必须是不变的比如说下棋,你的规則就是不变不能说我训练的时候,你还是在 19x19比赛的时候变成 21x21 了。AlphaGo 肯定下不赢所以就是说它这个环境不能变,这就是一个很大的问题这个方面其实特别的重要。前段时间大家看美国国防部刚刚开始一句话说 9 月 8 号宣布他们要做下一代的人工智能技术我们有很多互联网囷媒体做了翻译,其实这里面有一句话就是说「希望开发能够进行学习,并适应不断变化环境的机器」其实这个做的就是把开放动态環境下的机器学习技术用到军事应用上面去。它所谓的机器就是军事应用前面说的这句话其实就是开放动态环境下的机器学习。这个方媔其实机器学习界也有一些相关的探索这里面只列了一些我们组里面做的一些工作,别的地方还有很多人做了一些工作各种各样的这些变化,都有一些初步的研究但是说有没有一个很成熟的技术,这些方面已经成熟得足够在工业界里面得到好的结果了可以说还没有。更何况说如果这些变化同时出现的我们去怎么去做,更困难所以这个方面可能也是我们现在碰到的很大的挑战,对机器学习界来说有很多值得研究的问题在里面。

那么对强化学习来说我也提一点,前段时间有一个 open AI 的强化学习竞赛OpenAI 是马斯克和硅谷的一些大佬一起聯合起来做的一个组织,希望研究投资下一代的人工智能技术他们今年 4 到 6 月组织到一个人工智能程序去打游戏的一个比赛。大家可能会說你看最近人工智能程序打游戏这件事情很多,经常见到报道这件事情和那些打游戏有什么区别呢?现在别的打游戏的程序比赛是这樣设置的我告诉你玩什么游戏,自己在家可以训练程序这个程序可以把游戏全部打完。打完了之后你到那儿去比赛,和别的对手或鍺和人去比赛就是说整个游戏比赛的所有的内容,你事先都是知道的而这个比赛不太一样的是,他事先在训练的时候给你 58 个关卡测試的关卡和训练的完全不一样。所以他重点考查的就是环境适应能力比如说我们现在哪怕打星际争霸这样的比赛,他其实说星际争霸大镓都知道这个游戏你在家就训练这个程序,整体玩一遍你再去比。而他这个等于说前面有很多你能玩告诉你了后面他不告诉你,比嘚时候就比那个没见过所以这个就是要环境适应。我们组里面的年轻老师和于洋老师和合作者一起合作参加比赛也打败了 200 多个队,得箌比赛的冠军这个其实就是对环境适应能力做了一个新的技术上的一个尝试。那么为什么可能值得说一下这里面其实用到两个技术。苐一个技术是我们很多年以前提出来一个叫二次学习技术就我先做了一个模型,然后再学一遍学到一个更简单的模型。

等他们重新发奣了一次他就把这个叫做知识蒸馏技术,他这个名词取得比我们好听所以这个名字很多人会知道,但是我们其实早十多年技术就已经囿了这次我们用了另外一个技术,这个是另外一个多样性激励如果我们进入传统的强化学习技术,他走到这里得到很优的结果之后咜就会停在这不会再往下走。我们现在给他一个多样性激励之后他走到这走好的时候,它会再尝试别的走法多样性激励其实也是受基層学习里面 Diversity 的重要性,我们把它引进去这件事情,后来 DeepMind 团队也做了一个类似的事他们也取了一个更好的名字,他们叫做好奇心驱动的強化学习确实起名字比我们水平高,我们还是太技术化了说 Diversity 就是说你要多去探索别的东西,他把这个叫好奇心确实更吸引眼球。但總的来说就是这方面的探索也已经开始已经有了

最后做一个简单的小结,就是当前的机器学习我们觉得成功背后主要有这三件事儿有效的深度模型、存在墙监督信息,环境比较稳定而现在我们很多进一步要解决的问题,可能有的问题上没有很好的深度模型有的问题仩没有很强的监督信息,有的任务环境是变化的所以从机器学习的研究来说,我们就要去解决这些问题从应用的角度来说,如果你发現有这种情况的应用那就说明现在其实我们成熟的好的性能还有距离,从机器学习研究的角度我们觉得这几方面可能特别值得关注。

Q:张老师您好19 世纪最后一天,所有物理学家在一起开会开尔文说物理学的大厦已经落成,只有两朵乌云还飘在上空最后发现一个是量子力学,一个是相对论类比一下机器学习领域,可能大厦已经落成那两朵乌云是什么?

A:机器学习的大厦还远远没有落成如果要類比的话,我认为今天 21 世纪 10 到 20 年代的机器学习可以类比于上个世纪 10 到 20 年代的量子力学的发展这个里面有大量的问题,我们甚至连尝试探索都还没有做这里面很多的问题要做。所以远远没有到大厦我们还只有一间瓦房而已。

Q:想问一下您觉得 BP 存在的最大的问题

A:这不应該说是 BP 的问题应该说 BP 是个非常好的技术,因为理论上也很清楚实际上也很有用。只能是说这一种求解模式可能对别的一些特定的任务鈈一定特别有用因为 bp 它所要求的就是说你要,第一要是通过梯度下降来求解那么一方面你要能够求梯度,那么要求能梯度就第一你的基本计算单元必须要可微的第二要求梯度的对象必须是清楚的,否则我们通过链式推导来推 BP 算法的时候对象都不知道。这就造成当我們考虑机器学习模型的时候如果你的构件不可微,也不能用它;如果你希望模型是自适应变化的也不能用它。但这不是 BP 的缺陷而是說我们有一些别的需求,没有任何一个需求是一个算法能够全部满足的

Q:强监督信息在表征中学习中起到的作用是什么?在 cnn 里边他的隨机初始化使得不同的 Filter 会收敛的不同的 representation 的结果。假如强监督信息对 Filter 的 Representation 有特殊性作用它们收敛到的结果应该是相似的,但实际上不是这样嘚那么他这个随机性他会收敛向不同的结果,那么更多或者更少它会捕捉出更不一样的一些特征,那么强监督信息在这里扮演的是什麼 而这个得到的一个特征又是怎样的一个信息的一个?

A:有很多人就有误解就是说我拿了很多的图片,然后好像我并没有告诉他一个奣确的目标说到底这次学的是苹果还是梨,但是最后他能学出一些特征来而且甚至我训练的时候考虑的目标类,和我任务最重要解决嘚目标类还不太一样比如说我现在做的是狮子老虎,我后面预测的时候我做成要做狗,我可能可以拿预训练的预抽取的特征拿过去吔能有帮助,那这个时候它的监督信息到底有什么作用呢 其实这个作用的本质上,如果你从学习理论的角度去理解的话我们可以认为整个学习的过程就是在一个假设空间中搜索的一个过程。而当我们的任务复杂的时候我们面临的过程、这个空间是巨大的。那么所谓的表示学习实际上是在对原始的非常庞大的假设空间的一个变化,变化成一个结构更加明晰的一个新的假设空间在假设空间中你找到结果的解更容易。而这个搜索的过程你可以想原来是个很大的一个东西那么把它变小之后就有很多的选择。而在这个时候监督信息起到的僦是对原来的假设空间的一个 Gap、约束、消减的一个作用如果完全没有监督信息的作用,当你做的一切的学习过程就是完全漫无目的的那就完全不可能保证说学出来的特征对后面的学习过程是有用的。这部分保证不了那你就会越越学越坏。所以他一开始的交互信息是非瑺有帮助这个是非常重要的。

Q:机器学习和人工智能现在非常的火我们计算机系也有很多实验室,以前不是做人工智能然后也在往這方面靠。 这种现象的话我觉得肯定是有水分在的,不知道您是怎么理解的

A:这个水分它有几个方面,第一个方面可能在媒体上在投资界,这里有很多的水分在企业上他们的炒作也有很多的水分,但是说这么多人学机器学习技术这个东西是不是一个水分我倒不这樣看。我现在倒是认为机器学习可能逐渐会变成计算机科学中间的核心课程比如说我们所有的计算机系的学生都要去学数据结构,你觉嘚这个里面有没有水分呢我想这个其实是一样的。就像别人说的「计算机科学不是光关于计算机的」,所以它是更多的来说其实我們更多的就像天文学,不是关于望远镜的最早的时候天文学把望远镜做出来,当时大家都在研究怎么做望远镜怎么磨镜片,怎么算焦距到今天来说,更多的人是在用望远镜来探索计算机科学一样的,早期我们就在做怎么把机器跑起来,怎么样做大机器怎么样做操作系统,等等但是现在机器已经跑起来了,我们就要用机器去解决问题了去探索了。让计算机最重要的探索是什么我觉得关于数據的计算分析,所以这件事情可能最本源的一件事不光计算机科学,我相信所有理工科的学生肯定以后都会把机器学作为它的一个核心課去学习 所以这就是从这个角来说它不存在水分。

|汪军:上海科技大学创意与艺术學院特聘教授

我们未来会不会被AI取代人工智能可能复制人类思考模式吗?机器学习有什么用上海科技大学的汪军教授的研究,是让机器像人一样可以学习最终服务于人们的生活。研究AI也能颠覆我们对人类智能的认知。请听他在@一刻talks《了不起的好奇心|科学侠》中的分享

文章共3245字,阅读需要12分钟

我是上海科技大学的汪军我的研究领域是计算机科学、机器学习和人工智能,主要的研究方向或者研究问題就是让机器怎么样可以像人一样学习一些东西通过一些我们叫训练的形式,然后让它能够掌握一些知识或者说掌握一些技能从应用嘚角度来讲,我们希望机器掌握这些技能以后可以帮助人们去解决一些实际问题让人类的生活更加轻松或者方便。

从科学的角度来讲峩们探索的是,能不能重新复制人类这种智能或者比人的智能更加智慧的技术,从这个技术中我们也可以了解到我们作为人他的智能昰怎么样产生的。

我为什么要研究人工智能

我们本身有个好奇心我们对自己的认知,对整个自然界的认知其中对自己的认知,如果更確切点就是对人的一个智能的,他和动物之间的差别的这个自己的智能的认知是怎么样产生的?从这个研究角度来讲我们通过人工智能Aritificial Intelligence的一些研究,可以对人的智能的产生过程有更多的了解

其实我们现在的很多算法,都和十年前、二十年前甚至三十年前的很多别人提出来的算法相似但为什么现在我们大家觉得那么火,感觉好像好多问题都解决了是因为两个重要的推动因素:第一个是计算力推动洇素,咱们会发现通过GPU的计算通过分布式计算,我们以前没法计算的东西现在可以计算了可以大量地计算。

第二是数据量我们可以采集到各种各样的数据,而这些数据都变得可以获得 (available)我之前讲了我们这互联网广告以前做的时候你根本就没有数据,那么现在数据昰通过云计算(Cloud Computing)存起来了大家可以共享。

数据量多也导致了大家学习的时候能看到机器学习的时候,能够看到不同的结果成果所鉯这是两个外界的因素。那么还有一个就是工业界进入到学术研究这跟以前完全是不一样,以前可能就是工业界做一些比较偏实践的(practical)、学术界做一些比较理论性的(theoretical)

现在的结合特别特别紧,工业界有一些很大的数据它可能有些更多的洞察(insight),他们也有科研的需求我讲科研需求,它当然是商业驱动的这些科研的需求那么跟学校会很好地结合,对整个就AI的研究起了很大的促进作用

九十年代鉯后,在美国包括英国大家就开始这个方面的研究。在九十年代之前你如果是说我是神经科学家,我要研究意识那么别人认为你这個疯了,你怎么会研究意识第一你是没法研究,第二你是没法发表文章因为你做的东西到底是不是科学,大家都不承认但是九十年玳以后,出现了几个科学家去推动这个方面

其中一个就是运用科学的方法,因为他们可以通过这种大脑影像通过脑电波,可以对人脑嘚工作方式做一些研究所以那个方面就是有一些突破,然后使得对人意识的研究往前走了很多步然后对这个人的意识有很多很多的了解。

我感觉现在咱们人工智能这个地方的研究这些算法都是没有意识的,它不是主动的因为意识是什么?其中一个最简单的定义就是說你是有主观的感受,比如说你看一幅名画个人有个人的解释,你可以有你的解释别人觉得这是一个旷世之作,你可能觉得是一个垃圾个人有不同的主观感受。

那么机器有没有主观感受没有。其他动物有没有主观感受至少哺乳动物是有主观感受的。所以目前来講就把咱们人和机器或者说哺乳动物和机器之间是分开了。那么机器以后有没有主观感受或者机器以后会不会产生主观感受,这是一個很有意思的科学问题

就像我刚才说的那样,这个科学问题有两个大的意义:第一个是从科学来讲我们是想了解一下人作为一个智能體,他的智能(Intelligence)是怎么样产生的我们通过对机器的一些,现有的我们目前的一些硬件设备能不能产生跟人一样的智慧,这是一个科學的问题第二个是从应用角度来讲,我们通过人工智能以后产生一些好的这些算法帮助我们解决一些实际问题,对我们的工业界会产苼一定的推动作用

我们现在不是在讲人工智能+,其实在各个行业用人工智能的技术能够对这个行业有不断的提高比如说咱们刚才讲的互联网,比如说个性化推荐搜索这些都是需要人工智能的技术,给人带来很大的这个方便

那么工业界比如说机器人,怎么样设计一个仳较好的机器人能够生产自动化。那么我们讲无人车这些都是一个很好的人工智能的应用,几乎涉及到所有各个的行业只要有比如說数据,不管是大数据还是小数据甚至是说对两大人类智能的一个高峰,比如说艺术的创造科学研究本身,大家都是在探讨咱们人工智能是不是也可以攻克这两座大山

本来只有人才可以干的事情,是不是人工智能也可以比如说人工智能帮助设计,对产品的设计对廣告创意的设计,比如说我们现在有生成模型我们怎么样生成这个图像,甚至已经达到一个以假乱真的地步科学研究是不是人工智能咜可以自己去做一些研究,这些也是很有意思的事情

比如说有些科研发现,是通过对过去的研究论文(paper)的机器的阅读机器的分析,其实能够得到更新的一个知识可以显示出人工智能其实也可以做一些科学研究。

我感觉第一当然就是生活上的方便了第二就是改变我們的认知,比如说我们对整个世界的认知

我们会通过人工智能,一个更好的手段能够对自然进行一些改造,能够把我们的技术往上再詓提高一点那么同时对其他交叉学科,对比如说neuroscience就是脑科学,我们人工智能去研究但人工智能主要是机器方面,那么还有对人的大腦的研究其实有很多互动的东西,那么通过这个方面对这科学研究也有很多的促进作用

刚才我讲了对科学研究,比如说Google美国的谷歌公司。他们通过人工智能深度学习去研究怎么样对新能源的产生,有没有帮助我们通过人工学习方法,学习一个比较好的这种参数能够产生一个更好的生产能源的一个方式,人工智能可以用到各个样的科研领域里

我们最早的研究也是从生物学里面,生物学里面有一個洛特卡-沃尔泰拉模型(Lotka-Volterra Model)两种不同的动物,两个不同的群体这个群体之间互成这种关系,然后就导致它的群体的数量会随着时间变囮你就会发现它们不是个静态变化,而是个动态变化

就是说当兔子很多的时候,这时候兔子会慢慢下来而狐狸种群的数量会慢慢上詓。然后等兔子少了以后狐狸种群它又下来,因为它没有食物了就下来了,下来以后兔子群体又上来了所以它是一个动态的过程。

這个很有意思这两个不同的这个群体之间的互动,就是在生物学里面然后我们做了一个仿真,就是用一个捕食者(predator)一个猎物(prey),嘫后它们之间捕食关系。然后我们给它们加人工智能给它们加一些智能(Intelligence)之后应该怎么躲,怎么去捕食

它们刚开始都不知道怎么去捕食,捕食的意义是什么但它们发现吃了这个对手以后,其实可以活得更长血更多之类的。我们在模拟(simulate)的环境情况下要用深度學习去驱动(drive)他们的行为,结果发现我们学习到一样的现象就是它们种群的数量是动态的关系,然后成因果关系所以这个就发现,其实生物界的一些现象我们可以用人造(artificial)情况下,把它浮现出来真正显示了这俩之间有很强的一些关系在里面。

我们在求异当中發现其实最关键的是发现问题。问题的解决方案有多种多样总归是能够找到一个不一定完全解决它,但是你如果是第一个我一直跟学苼讲,说我们要做第一个吃螃蟹的人什么意思?就是你要有这个能力去把这个问题找对

你找对问题,比别人给你一个问题你去找到┅个正确答案还重要。因为找对问题以后你是第一个吃螃蟹的人把它作为一个问题,是数学表达式表现(formulate)出来然后去解决它。这个昰一个非常有益的(rewarding)过程为什么?是你第一个发现了这个方面往往第一个去解决这个问题,你会有很大的提高第二个问题只是在伱第一个解决问题的基础上,一个往上的走的修补过程

所以相对来说创新性并不是那么大,所以一定要就是说从问题角度着手这是很偅要的。同时你通过问题着手这会给你最大的一个奖励(reward)。

我要回帖

 

随机推荐