前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >周志华KDD China技术峰会现场演讲:深度学习并不是在“模拟人脑”

周志华KDD China技术峰会现场演讲:深度学习并不是在“模拟人脑”

作者头像
AI科技评论
发布2018-03-09 11:54:36
7580
发布2018-03-09 11:54:36
举报
文章被收录于专栏:AI科技评论

编者按:12月18日,KDD China技术峰会在深圳举行,AI科技评论根据周志华教授当天会上所做报告《关于机器学习研究的讨论》,摘取其中亮点内容整理成本文,由亚萌、亚峰、宗仁联合编辑。此前,在今年10月21日CNCC 2016大会上,周志华教授也曾做了一场精彩演讲,感兴趣的读者可以点击链接《CNCC 2016 | 周志华 57 张 PPT 揭开机器学习本质》。

周志华, 南京大学教授,校学术委员会委员,计算机软件新技术国家重点实验室常务副主任。AAAI Fellow, IEEE Fellow, IAPR Fellow,中国计算机学会会士,新晋ACM Fellow、AAAS Fellow。

美国东部时间2016年12月8日, ACM 正式公布了今年Fellow 名单,南京大学周志华教授当选,成为全部53名新Fellow中唯一的中国本土学者。

周志华教授是长江学者特聘教授、国家杰出青年科学基金获得者。主要从事人工智能、机器学习、数据挖掘等领域的研究。著有《Ensemble Methods: Foundations and Algorithms》、《机器学习》。在本领域顶级期刊会议发表论文百余篇,被引用2万余次。获发明专利14项,多种技术在企业应用中取得成效。

任《Frontiers in Computer Science》执行主编及多种国内外学术期刊副主编、编委;亚洲机器学习大会创始人,国际人工智能联合大会(IJCAI)顾问委员会成员,IEEE 数据挖掘大会(ICDM)等数十次国内外学术会议主席;IEEE 计算智能学会数据挖掘技术委员会主席等。曾获国家自然科学二等奖、两次教育部自然科学一等奖、亚太数据挖掘卓越贡献奖等。

| 机器学习不是万能的

如今,机器学习已经无处不在。我们现实生活中碰到的分类、预测、预报等各种各样的问题,如果是利用计算机以数据驱动的方式去解决,那这个背后其实是在做机器学习。

但是我们要注意,机器学习虽然能力很强,但它并不是一个万能的东西。至少有两件事,我们经常都要提醒自己,机器学习可能是做不了的。

第一种情况,如果我们的拿到的数据特征信息不够充分,那么机器学习可能就帮不上忙。这件事大家可能都很容易理解,当我们解决一个问题,你需要三个变量,但实际上你手上只有一个,还有两个信息根本没收集到,那这肯定是做不了的。

第二种情况,就是这个数据样本的信息非常不充分,那么这种情况也基本上解决不了问题。比如大家经常在说,我们现在地震预报为什么做得不好。其实地震预报抽象出来看,也可以通过机器学习来解决,只不过我们的数据实在太少了。因为在你事先做了地质勘探,最后这个地方又发生了地震,这样的情况是非常非常罕见的。所以没有数据,机器学习也就帮不上太多忙。

| 机器学习算法哪个好?

在工业界,有很多的工程师经常会提这样的一个问题,就是我们现在机器学习里面有很多算法,但是哪一类方法最好呢?如果你对机器学习有比较多的了解,那么就会知道一个很重要的定理,叫做“没有免费的午餐”

这个定理告诉我们,如果算法A在某个问题上比算法B更好一些,那么一定在另外某个问题上,两个算法的优劣是反过来的,即算法B更好。这样的理论对任何一个算法甚至包括随机猜测,都是成立的。就是说我们拿任何一个算法和随机猜测比的话,你都一定能找到在某个问题上,这个算法还不如随机猜测。所以我们在针对一个具体的任务时,要使用什么算法或技术,一定要具体问题具体分析。

而机器学习里面我们说到的“问题”呢,可能跟大家一般理解的“问题”的意义不太一样。大家一般认为,比如说“推荐”可能就是一个“问题”,但是在机器学习里面,其实我们不是这样看的。一个“问题”,一定是说输入描述的属性确定了,这个数据的分布是怎么样,这时候才定义出来一个“问题”。所以哪怕都是推荐,文本推荐、电影推荐甚至不同公司用自己手上数据做的电影推荐,这其实从机器学习的角度来看可能都是不一样的“问题”。

这时候就有另外一件事,有时候就会有公司的工程师说,你看我现在掌握了机器学习十大算法、二十大算法,我把它们都用得很熟,那么来一个问题之后,我把这些算法全部试一遍,然后找到最好的算法就行了。如果发现试一遍,这些都不Work,那就认为机器学习是骗人的。

但是如果大家有了刚才那样的理解之后,其实就知道,这样看待机器学习是不行的。因为我们在现实生活中碰到的问题,可能是无限多的情况,而如果你只是套用这些有限多种的方法,那一定有些东西是解决不了的。我们用机器学习解决问题更多的时候像一个裁缝,一定要量体裁衣,针对某个问题专门设计有效的方法,这样才能得到一个更好的结果。所以,按需设计、度身定制,是在做机器学习应用的时候特别重要的一点。有这样能力的人不多,这可能也是很多大企业要把机器学习专家挖过去的一个原因。

| 机器学习有着深厚的理论基础

机器学习本身,是一个有着深厚理论基础的学科。最主要的是计算学习理论,其中最基本的理论模型,叫做“概率近似正确模型”。虽然这个模型很简单,但非常重要。

机器学习做的是什么事情呢?

  • 我们拿到一些数据x,然后建立一个模型f,就是f(x)。
  • 我们希望这个模型f特别准确,也就是f(x)和真实结果y非常接近,那么怎么算接近呢?我们希望f(x)和y的区别很小,小于一个很小的值epsilon。
  • 我们不能保证每次预测都完美,只能希望以大概率得到好结果,所谓大概率就是比1-\delta更大的概率,这里\delta是个很小的值。

所以可以看出,机器学习做的事情,是你给我数据之后,希望能够以很高的概率给出一个好模型。在这个意义上我们做的很多事情是可以有理论保证的。比如说我们可以估算,需要多大规模的数据样本,才能对某个问题做到什么样的程度。如果你对这个问题的要求非常高,但是要达到这个效果所需要的样本规模大到无法满足,那这个问题就是不可学习的。所以在“概率近似正确”的意义下,要做出一个什么样的模型,把问题能解决得多好,我们是可以从理论上去探讨它的,并且是可以有理论的保证。但这件事情,在今天可能会发生一些变化,我待会在后面谈一谈。

| 深度学习并不是在“模拟人脑”

那么深度学习,如果从技术上来看是一个什么东西呢?其实它就是一个神经网络。以往我们有很多神经网络的研究,那么我这边画了非常简单的一个3层网络,这个里面的一个圆圈就是我们所谓的一个神经元。如果从生物机理来说的话,一个神经元收到很多其它神经元发来的电位信号,信号经过放大到达它这里,如果这个累积信号比它自己的电位高了,那这个神经元就被激活了。这个现象其实在1943年的时候,就有芝加哥大学的两位学者创立了M-P 模型,把它形式化出来。你看,一个神经元接受到很多x,经过w加权输入到它,如果这个加权的和大于θ,它就激活产生y,其实这个写出来是很简单的一条公式。

我们可以看到其实神经网络本质上,是一个简单函数通过多层嵌套叠加形成的一个数学模型,背后其实是数学和工程在做支撑。而神经生理学起的作用,可以说是给了一点点启发,但是远远不像现在很多人说的神经网络研究受到神经生理学的“指导”,或者是“模拟脑”。再比如说我们在深度学习里面仍然用的非常多的一个算法,BP(反向传播)算法,这个是1986年被重新发明出来的,这个算法完全是从数学上推导出来的,它和神经生理学基本没有联系。

今天我们再看使用最多的深度学习模型之一:卷积神经网络,它也是这样很多层。只不过在这个里边,除了原来的这些基本操作之后,还引入了一些操作,比如说这个信号处理里面的卷积,卷积其实是起到了一定的时间、空间的平移不变性。还有这个采样,把一个区域的值用一个值代替,这是数据挖掘里对噪声进行平滑的基本技术,也是缩减计算量的基本技术。所以这些都是常见的操作,融合进去了。

但是特别要注意的是,其实CNN这个东西新不新呢?并不新。它第一次被完整地发表出来,是在1995年,然后这个东西成功地被用于手写体字符识别,是在1998年。那为什么今天才会热起来呢?这有一些原因,我们下面要继续探讨它。在探讨它之前,我要说一点,就是现在有很多媒体,常说深度学习是“模拟人脑”,其实这个说法不太对。我们可以说最早的神经网络受到一点点启发,但完全不能说是“模拟人脑”之类的。那么深度学习的层数很深了,是不是就模拟了呢?我在此引用一下Yann LeCun的说法,大家都知道LeCun是国际上深度学习领域非常著名的3位学者之一,他对“深度学习造成人工智能威胁”的说法不赞成。他尤其这样说:

对深度神经网络,“我最不喜欢的描述是‘它像大脑一样工作’。我不喜欢人们这样说的原因是,虽然深度学习从生命的生物机理中获得灵感,但它与大脑的实际工作原理差别非常非常巨大。将它与大脑进行类比给它赋予了一些神奇的光环,这种描述是很危险的,这将导致天花乱坠的宣传,大家在要求一些不切实际的事情。”

其实确实是这样,如果我们把深度学习就当做一个数学模型去理解,可能还可以相对多明白一些,因为神经机理本身就说不清楚。

| 深度学习火起来的3个因素

那么深度学习技术发展发表的那么早,为什么今天才特别热呢?有几个问题很重要。

  • 第一个问题,我们今天用到的深度学习模型到底有多深?

比如2015年,微软亚洲研究院参加ImageNet比赛,获得冠军的网络用到152层,到今天的话有很多网络已经上千层了。这个上千层的网络里涉及到的参数的数目是几十亿甚至上百亿个,是非常大型的一个模型。

  • 第二个问题,为什么要做到这么深呢?

其实在机器学习理论里面,我们很早就知道,如果你能够提升一个模型的复杂度,那么可以提升其学习能力。比如说对神经网络这样的模型,我们怎么样提升它的复杂度呢?很明显的就有两个办法,一个办法,是把网络加宽,另外一个办法,是把它加深。但是如果从提升复杂度的角度来说,加深会更有用。因为你加宽的话其实是增加了基函数的个数,加深的话,不光增加了函数个数,还增加了函数嵌套的层数。所以从泛函表达上,它的能力是会更好。所以“加深”对增强模型的复杂度和学习能力更有用。

  • 第三个问题,那既然你们早就知道“加深”能够增强学习能力,为什么早一点不去做?

这个很重要的一点就是,机器的学习能力增强并不见得一定是好事。因为大家知道,机器学习所做的,是你给我一些数据,我从这些数据里面希望把一般的规律学出来,用来处理今后的新数据。但是有时候,我可能会把所给数据的自身特性学出来,错误地当成一般规律,这时候就会犯错。那这种情况在机器学习里面叫做“过拟合”,所以我们一直是在和“过拟合”作斗争。那过拟合是怎么发生的呢?以往理论告诉你,主要因为你的模型过于复杂。这就好比说我们在解决一个问题的时候,你把这个问题想得过度复杂化了,你反倒会犯错误,这就是“过拟合”。

所以以往大家都不希望用太复杂的模型,机器学习界设计了很多技术来缓解过拟合,例如决策树剪枝、神经网络提早停止,SVM正则化等等,但实际上最简单有效的是什么?就是使用更多的数据。因为你想,你给我1000个数据,我可能学出来的是特性,不是一般规律,但是从1000万个数据里面学出来的,很可能就是一般规律了。

所以,为什么这么复杂的模型在今天特别有用呢?

  • 第一个原因,是我们有了大量的训练数据。没有大数据的话,这个东西是不会有那么多用处的。
  • 第二个原因,这么大的模型,我们一定要有很强的计算设备才能算出来,今天我们恰恰也有了。

不管是GPU,还是CPU集群,还包括今天有这么多人去研究机器学习的平台,做机器学习技术的底层支撑。如果我们只做简单模型的话,可能这些计算设备和技巧上的努力就不是那么重要。

  • 第三个原因,就是这里面要使用大量的“窍门”(Trick)。

大家如果用过深度学习网络的,你就会知道,第一个人说我在某模型上加了一层性能更好,可能第二个人会告诉你,在我的任务上把这层网络减掉才更好。很多都是这样。更关键的是,什么时候有效、什么地方无效,不知道。所以正统机器学习界来看这些东西不能称为“方法”,因为道理不清楚,只能称为“窍门”。

深度学习里面有大量的Trick,所以今天来看就有点像老中医在治病一样,虽然能治病,但是什么东西是有用的,什么是没有用的,什么是起副作用的,都不太清楚,笼统地混到一起,有些浑水摸鱼的味道。这里面理论研究远远没有跟上,因为应用尝试比较容易。现在有很多深度学习架构,让大家很方便,新手学习个十天半个月就可以上手调试不同的模型做应用了,性能有提高就很快发表文章。但是理论研究的门槛很高,先要训练四五年可能才能开始做事情。这就造成很多应用方面的尝试,报道说这样好、那样好,但是能做理论的人很少,来不及去研究,而且因为很少有共性的东西。不同的人哪怕用的都是CNN,其实模型完全不同,做理论的也不知道从哪里去下手才不是浪费时间。这些问题要解决,需要有更多的人沉下心来研究基础问题,基础问题弄明白了,反过来可以更大地促进应用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • | 机器学习不是万能的
  • | 机器学习算法哪个好?
  • | 机器学习有着深厚的理论基础
  • | 深度学习并不是在“模拟人脑”
  • | 深度学习火起来的3个因素
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档