香港科技大学杨强教授:深度学习如何才能更靠谱?

雷锋网AI科技评论按:7月22-23日,第三届中国人工智能大会(CCAI
2017)在杭州国际会议中心举行。其中来自香港科技大学的计算机与工程系主任、AAAI
Fellow杨强教授发表了《深度学习的迁移模型》主题报告。本文主要阐述了杨强教授在大会中所讲的如何将迁移学习和深度学习相结合,使深度学习模型变得更加可靠,以及具体的实际应用案例。

杨强教授从深度学习模型的共性问题谈起,深度剖析如何使深度学习模型变得更加可靠,在数据变化的情况下,如何让模型持续可用。报告谈到,迁移学习有小数据、可靠性、个性化等优点,虽然深度学习模型已在语音、图像、推荐等众多领域非常有影响力,但是在如医疗、教育等领域还无法运用,究其原因,主要存在这样三点:遇到的数据往往都是小数据,而不是大数据;深度学习模型非常脆弱,稍微移动、离开现有场景,其效果便会大打折扣;再有就是应用问题。由此,杨强教授与学生一起,将迁移学习与深度学习相结合进行了探索实践,在现场通过解决大额消费金融的困境、跨领域舆情分析、互联网汽车分类问题等多个实际应用案例多角度地展示了迁移学习的深度模型所带来的优点。

可参考雷锋网(公众号:雷锋网)之前发表过的另一篇文章:关于迁移学习的本质与实际应用

以下内容为杨强教授的大会现场实录,雷锋网做了不改动原意的整理编辑

大家好!今天很高兴跟大家分享我和研究生同学在研究当中的一些心得,总结起来叫深度学习的迁移模型。

首先讲一下我们的出发点,我们知道AlphaGo很厉害,但是它还有哪些点不够呢?它不会举一反三。你让它下一盘棋,它不会利用前面的知识来帮助自己很快地学习新的棋艺,更不会利用下棋的知识做一些其他事,比如说自动驾驶。我们人是有这个能力的,如何能够赋予计算机做这件事,这就是我们研究的一条主线。

由此引入我们的研究方向就是迁移学习(Transfer

Learning),我们知道人能很自然地做这件事,从自行车迁移到摩托车,生活中还有很多的例子。这也从某种程度上解释了我们看到小孩子在学习中并不需要上千万的正例和负例帮助他学习,他往往用很少的例子就能学会一个很复杂的概念。同时学术界、工业界现在也认为迁移学习是下一个研究和应用的重点。去年Andrew
Ng(前百度公司首席科学家 吴恩达)就讲了迁移学习下一步将被大量应用。

迁移学习的三大优点

为什么我们做迁移学习?我总结了三条原因:

  1. 小数据。我们生活当中大量遇见的是小数据而不是大数据,当数据很稀疏,看到不同的类别我们还是能在当中做出很靠谱的模型。这并不是空穴来风,而是之前我们有过很多大数据的经验可以去借鉴,站在大数据的巨人肩膀上,所以人工智能大量地应用,迁移学习这种模式是必不可少的。
  2. 可靠性即使我们有一个大数据模型,我们也很关心它的可靠性。把一个模型迁移到不同的领域,就会发现它的准确率会大量下降,如何防止这一点,我们就需要模型本身具有自适应的能力,能够自带迁移能力。
  3. 个性化。我们整个的社会,我们的应用在向一个个性化的方向发展,有了云端,有了各种各样的终端,终端的操作者都是我们个性化的人。那么我们让一个模型、一个服务来适应我们每个人的特性,迁移学习是必不可少的。

迁移学习的难点

迁移学习又是很难的,难在找出不变量。教育学有一个概念叫“学习迁移”,就是说如果一个学生学到了很靠谱的知识,怎样检测呢,就是看看他有没有能力迁移到未来的场景,再学一门新课他就发现学得容易,但是这种学习迁移能力的传输又非常难。

再来看看怎样找出不变量。在国内和世界很多地方,驾驶员都是坐在左边,但是去香港驾驶员就是在右边,很多人不会开车了,就会出现危险,但是用迁移学习教你一招马上可以开,而且很安全,就是找出一个不变量。这个不变量就是司机的位置总是靠路中间最近的,你就保持司机的位置离中线最近就可以了。

找出不变量很难,但是在其他的领域已经大量出现。最近YannLeCun提出一个问题:机器学习的热力学模型是什么?我的回答是迁移学习,把一个领域里面的知识、也就是“能量”,转化到另外一个领域,这和热力学把两个物质放在一起,然后研究热是如何能量是如何在物质间传播的,是类似的概念。区别是,在我们这里的知识比物理里的能量复杂很多倍。所以这个问题在科学上也是有深远意义的。

如何实现迁移学习:深度学习+迁移学习

今天讲的是如何实现迁移学习中的一个方面。从单层次来看一个东西,把一个领域里的模型和知识通过层次分解,就好比杭州有雷锋塔,我们可以从一个古典的建筑发展到像雷锋塔这样有层次的建筑,一层一层分析,深度学习恰恰为我们提供了分层和层次。

下面我就仔细地描述一下,深度学习如果是从左到右,从输入到输出的变化过程,中间是有很多非线性地转化,我们可以忽略不计,但是这些层次我们要迁移到新的领域的话,知识的迁移就相当于参数的迁移,这些参数就是权重。

在这个里面我们可以看知识到底有多少可以从蓝色到橘色的,从源领域到目标领域,产生这样的迁移,我们可以看到中间层有很多层参数可以共享。另外层次越高的话,可能它关心的高层的概念离得越远。我们关心的是领域之间的距离,我们能否把领域之间的距离刻画出来,在深度学习的初创期,有很多启发式的做法,其实很多概念是和迁移学习不谋而合的。

下面我们看看这样一种分层的研究对迁移学习到底产生了什么样的作用呢?我的学生魏颖就把最近的迁移学习和深度学习共同的工作画了表,这里面的名词像CNN、DDC都是最近发表的文章里面的系统名。横轴是年代,从2011年到最近,纵轴是准确率。左边是我一些学生做的工作,把迁移学习在不同领域里面的子空间,它们共享的知识找到,但是没有用到深度学习的概念,大概是2010年、2011年做的工作,叫TCA。

右边上面角是DAN,是深度学习加上迁移学习。我们看到深度学习加上迁移学习准确率大大提高,这不仅仅对理论有帮助,对工程的效率也是有帮助的。这里面用一个距离的表述,使用MMD发现两个领域两个数据集之间的距离,这个距离是在网络的上层,从左到右,从下到上,更重要的是发现并且尽量减少这样的距离。

大家可以看到固定住,从一个领域迁移到另外一个领域,在下层比较容易迁移,在上层我们就关心领域之间的距离。

也有人把这个工作系统地进行了比较,我们可以看到代表迁移能力的红色是逐层下降的,从左到右逐层加深,如果是以深度学习的模型,下层在图像上比较容易迁移,在上层就不容易。我们在当中也可以做各种各样的演算和变化,比如说我们可以让迁移过来的参数,让它在之后的领域里面再得到重新的训练,这样就会得到上面的这条线,我们这个线放得越宽迁移能力就会变得越强,如果两个领域之间相差太大了,那么这个迁移是没办法进行的,就像下面的这条蓝线直线下降,这个能力就不行。

关于模型迁移,主要关心两点。一是不同模型里面的一个层次,它的迁移量化。二是两个领域的距离有没有一个很好的衡量,这也为我们的研究提供了一个很好的指引方向,像这里几条线就是更进一步地说明我刚才表明的观点,第一个是细微的调参,就是目标领域帮助我们继续调参是有帮助的。另外从上层到下层是通用到个体的一种演化,大家看这些曲线是下降的。另外我们关心两个领域之间的距离。

下面我们就可以利用这个观点,对于不同的知识迁移的场景进行总结。

  1. 第一个是说我们在两个领域完全都没有标注的,目标和源数据都没有标注,这个时候我们就可以利用刚才的知识把下层固定住,直接迁移。在比较靠上层就可以放开,利用的方法是可以来减少两个领域之间的距离,这个距离虽然我们没有标注,我们还是可以把它衡量出来的,就像用刚才MMD的方法。
  2. 还有一个方法是就用一个Loss描述,这也有所不同,比如说两个领域之间的直接衡量,还有我们同时做两件事,第一件事是说利用两个领域之间的距离,我们要把这个距离尽量减少,同时我们让每个领域自己能够更好地表达它自己。

三种不同的迁移方法

将这些概念加起来,就可以总结出三个不同的迁移方法。

基于差异的方法

在哪里做迁移的转换、自适应。可以在某个层次来做,也可以在多个层次来做,如何来衡量两个领域之间的距离,可以用鲜艳的这种概率、模型,也可以用联合概率、模型,另外还可以将源领域的信息加进来,建立一个更准确的Loss。这都是图像领域获得的知识,那自然语言会不会有类似的方式呢?

下面一篇描述NLP的文章也证明了这一点,假设我们把自然语言的深度处理分成三个层次,即E、H、O,如果我们锁定不变,而其他的层次有可能变化,也有可能不变化,这样可以发现,先迁移,后微调的效果最好。还有,在目标领域我们能够让它的再生后期做自适应的学习,就是开锁的这种,效果是最好的。

这个模型也可以发展到多模态,上面的源领域是图像,下面的可以是文字,可以让他们之间有一些层次可以分享。最后得到的系统就是既可以理解一个源领域,比如说图像可以转化为文字,又可以把文字转化成图像。另外还可以加入正则化,我们可以变化各种各样的正则,使得靠上层的层次之间互相靠拢。

传递式迁移学习

有了刚才的这些层次概念,可以将迁移学习进一步地发展,过去的迁移学习都是给一个源领域,一个目标领域,从源到迁移目标,现在我们可以多步迁移,从A到B,然后从B到C,就像石头过河一样的,这是我们最近做的工作,传递式的迁移学习。

传递式的迁移学习也可以利用深度学习的分层这个概念进行。我们右边这里有三类数据,有一个是源领域的数据,比如图像,有一个是目标领域的数据,比如说文字,中间有很多文字和图像混杂在一起的领域。我们一个做法就是在中间领域挑一些样本,让它更好地帮助源领域迁移到目标领域,这些就像中间石头过河一样的。

如何得到这个,在训练目标模型的时候我们就有两个数据,一个是不断地检测在目标领域的分类效果,另外一个是不断地尝试新的样本,这些样本来自于中间领域和源领域,最后使整个不同的数据集之间形成一个新的数据集。

这样的一个理念在应用当中也非常有用,这是斯坦福大学最近做的一项工作,是从一个图像到卫星图像区分在非洲大陆上的贫困情况,最后就发现这种传递式的迁移方法效果确实和人为地去采样、标注效果差不多,一个是0.776,一个是0.761,而它中间人为的参与大大减少,因为它用了传递的过程。

生成对抗网络GAN

还有一种最近比较火的思想就是叫生成对抗网络GAN,它的思想来自两个模型交互,一个是生成模型,可以生成样板,就是右边的G模块,它一开始是非常粗糙的。还有是D模型,比较生成和真实的样本,它可以告诉你有没有被发现,你生成模型生成的样本够不够好,经过他们两者之间的博弈,最后就产生了学习的跃进,使得G和D两者都得到了改进。

很多学者也用这个方法来做迁移学习,比如说给两个数据集,我们一开始并没有一个数据,并不知道这个包对应这个鞋,系统通过深度网络,可以把这个Alignment模型生成出来,根据这个模型找到一个最匹配的鞋的模型,而且是完全生成的,在原数据,鞋的数据集是没有的,就像右边这里展示的。这种也是迁移学习的概念。

CycleGAN的思想也非常有趣,一个源领域可以迁移到一个目标领域的话,我们同样也应该让一个目标领域的数据、知识迁移到源领域。如果是回来的话,如果还能返回原来的样本,那么就是说明迁移已经学得靠谱了。就像我们拿一首唐诗到机器翻译的软件翻译成英文,然后再拿同样的软件再翻译回中文,我们大家知道往往得到像乱码一样的东西,完全回不到原来的一首诗,如果能够回到原来的诗,那翻译就靠谱了,概念也是类似的。

GAN的模型确实带来了迁移的新意,让两个领域同时做两件事,这个图表示做的两件事。绿色部分是两者共享的深度学习的层次空间。我们如何找到这样的层次呢?就依靠第二件事,就是我们尽量地找到一个区分领域的模型,我们有源领域A和目标领域B,如果有一天模型发展到我们区分不了数据来自于哪个模型,那就说明共享的模型靠谱了,它就是抓住了两个领域之间的不变量,那就回到了左右开车的场景,那个不变量就找到了,这就可以用这部分做迁移了。最后得到的领域,准确率最高的就是通过刚才的模型得到的。

迁移学习应用案例

下面说一下我和我学生一起做的迁移学习的工作,尤其是跟深度学习结合。一个叫戴文渊的学生,在第四范式这个公司做的工作就很有意义,他们为银行做一个大额产品的营销,比如说车贷,比较贵的车贷的样本非常少,少于一百个,这么少的数据是没办法建模型的,怎么办?去借助小微贷款的数据,比如说上亿的客户的交流,然后发现两个领域,一个是小微贷款,一个是大额贷款,他们之间的共性,把这个模型迁移过来,这就使得它的响应率提高了2倍以上。

另外是我们要去发表的一篇文章,做舆情分析。我们知道舆情分析是非常有用的,不管是在商业上还是在政府的服务上,大家都希望了解那么多的留言,是正向还是负向的?为什么是这样的?对哪些产品有兴趣?大家对哪个服务满意等。我这里给出两个不同的领域,如果我们在一个领域已经有像最左边这里给出的标注,比如说Great,这就是一个赞,说这个是Owfulbook,就给出一个差。我们的问题是能否借助相同领域的数据来减少我们的分量,使得我们建立一个靠谱的模型,在新的领域、目标领域。这是一个非常好的迁移学习的场景。

但是过去做迁移工作的时候,需要有一个概念叫Pivot,两个领域之间共享的关键词,这个关键词对于指出这个是正向和负向也是非常有用的,像Great这个词,Boring和Awful,以前完全是靠人找到这两个词,我们知道这是不靠谱的。

我们通过迁移学习把这个词找出来,在这里用的工具是Adversarial模型,在一堆摹本里面找出关注量比较大的词和词组,有了这一Adversarial模型,我们就可以自动打分,我们打的分数是否靠谱,可以用另外一个Domain 

Label的词告诉我们,什么样的词才有这样的特性呢?首先两个领域共享,能够帮助我们在新领域共同地指出舆情的趋向。同时希望模型越少越好,就是这三件事翻译成目标函数里面,就能建立模型。左边是舆情的Classifier,右边是领域的,我们同时希望领域的混淆度越大越好,同时我们希望Sentiment(舆情)的准确率越高越好,这两个之间形成博弈,就形成了GAN(生成网络)的概念,另外是多任务学习,就是两个任务共同进行,共同有一些共享。

最后我们在正确设定了一些距离函数和Loss以后,就可以学出来,效果非常好。

最后一个应用是和上海汽车做的研究,汽车在跑的时候能否根据它的路况分析车到底做什么?是共享还是私用的?我们很荣幸得到了一些数据,在这些数据里面我们可以同时进行两种分析,一种是图像分析,虽然我们本领域没有太多的标注数据,但是可以借用出租车来学习。左边的是同时做两个任务的学习,第一个是根据现在出租车的数据,来帮助我们标注互联网汽车的数据,但是这个当中可能会有错误,所以我们在本领域可以用一些图像分析来矫正这些错误,校正完再拿回来拓展这样的一个样本集。在这两个之间进行多次往返以后,我们就会得到一个很靠谱的模型,最后这样的一个算法我们就可以得到一个很不错的迁移效果。

最后总结一下,迁移学习和深度学习可以非常有机地结合,两个是可以互补的,深度学习帮助我们分非常细地层次,每一层我们可以进行量化的分析,迁移学习可以帮助深度学习变得更加靠谱,得到的一个结果就是深度学习的迁移模型,同时也应该说是迁移学习的一个深度模型。

本文作者:杨文

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-11-16 01:18:53

香港科技大学杨强教授:深度学习如何才能更靠谱?的相关文章

香港科技大学杨强教授:AI学术的前沿工作,也要从工业界获得灵感|CCF-GAIR 2017

雷锋网(公众号:雷锋网) AI 科技评论按:在7月7日,由中国计算机学会(CCF)主办,雷锋网与香港中文大学(深圳)承办的第二届 CCF-GAIR全球人工智能与机器人峰会正式召开.今年CCF-GAIR的程序委员会主席.香港科技大学计算机系主任杨强教授,担任了大会第一天人工智能前沿专场的「AI 学术前沿」主持人.学术前沿 Session 分别由两位优秀的学术界人士进行演讲,一位是 CMU 金出武雄教授,另一位是 UCL 副教授汪军.在该 Session 结束后,雷锋网 AI 科技评论与杨强教授进行

香港科技大学杨强教授专注研究的这项新兴技术,可能能造就最初的真正“智能”

迁移学习,简单的说,就是能让现有的模型算法稍加调整即可应用于一个新的领域和功能的一项技术.这个概念目前在机器学习中其实比较少见,但其实它的潜力可以相当巨大.杨强教授在刚刚结束的CCF-GAIR上的演讲中曾提到一个愿景--利用迁移学习,即使是自身没有条件获得大量训练数据的小公司也可以按照自己的需要应用大公司训练出来的模型,从而普及AI的应用. 在目前大家都在努力提高人工智能应用通用性的大背景下,迁移学习的崛起之势已经比较明显.不过杨强教授其实早在2009年之前就开始研究迁移学习了--那时他是国内为

专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门

7 月 22 - 23 日,由中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,作为独家直播合作伙伴的第三届中国人工智能大会(CCAI 2017)将在杭州国际会议中心盛大开幕. 作为大会主席,香港科技大学计算机与工程系主任.AAAI Fellow 杨强教授最近接受了大会记者专访.这次访谈干货满满,其中有不少话题是杨强教授首度公开谈及,比如下一个 AI 突破口.深度学习泡沫.AI 之路心得.本科生入门 AI.好学生要能教导师学习,等等. (点击阅读杨强教授历史

科学式家|杨强教授漫谈《西部世界》、生成式对抗网络及迁移学习

「范式大学」由第四范式发起,致力于成为"数据科学家"的黄埔军校,校长为第四范式首席科学家,华人界首个国际人工智能协会AAAI Fellow.唯一的AAAI 华人执委杨强教授.   [范式大学]在探索AI工业化的同时,也关注最新学术研究成果.近日,杨强教授在[范式大学]内部课程中,与大家分享了他在 "生成式对抗网络模型" 和迁移学习等领域的独特见解和最新思考.在此特别感谢杨教授的博士生张颖华同学的帮助.   以下内容根据杨强教授演讲编写,略微有所删减. 有些人看过电视

第四范式首席科学家杨强教授:人工智能的下一个技术风口与商业风口

作为华人界首个国际人工智能协会AAAI Fellow.至今为止唯一的AAAI 华人执委,以及IEEE Fellow.AAAS Fellow.IAPR Fellow,杨强教授在专注学术研究的同时,也更关注如何让人工智能技术落地转化为生产力的问题. 作为第四范式首席科学家.范式大学的导师,杨强教授近日在第四范式公司内部进行了一场主题为"人工智能的下一个三年"的培训,深入浅出地分享了自己在人工智能产业推广上的经验,并预判了人工智能即将爆发的技术风口与商业风口.此前,杨强教授与第四范式曾提出人

AAAI Fellow、现任执委杨强教授做客雷锋网沙龙,解读AAAI的历史变迁| AAAI 2017

AAAI 2017于今天(美国西部时间2月4号)在旧金山开幕,雷锋网(公众号:雷锋网)编辑团队也在现场.会议正式开始前,雷锋网就注意到这届大会论文收录的情况,几乎超过六成作者都是华人:而今天在会场仔细一看,一眼望去的确大半都是华人面孔. 我们在之前的介绍中也提及,这次会议原定在新奥尔良召开,和中国春节时间冲突,经过多位华人学者的努力才改期到2月4号-9号."我们之所以能在这里(旧金山)见面,也是多位华人学者共同努力的结果."在今天晚上雷锋网组织的AAAI华人沙龙上,AAAI Fello

微软的这项新技术证明 深度学习还能更“深入”

计算机视觉已经是日常生活的一部分.借助这种技术,Facebook可以识别你上传到社交网络的照片上的人物:Google Photo能够自动在收藏行列中找出特定的图片,以及识别出各种各样的东西--这样的应用已经在互联网中流行已久. 所有这些"识别"都源自于一种被称为深度学习的人工智能技术.但就在这种技术被大肆炒作的几年时间中,来自微软研究院的一项新实验证明这只是人工智能的开始--深度学习还可以更深度. 深层神经网络的突破:152个层级 计算机视觉革命是一场持久的斗争.2012年,这项技术迎

能准确“猜透”玩家心理,深度学习让游戏更智能

[编者按]随着深度学习技术的发展,当下深度学习已经不止于理解我们的语言以及辨识我们的声音,位于美国北卡罗来纳州研究人员就建立了一个深度学习系统,这个系统可以在一个开放式的视频游戏环境中以63%的准确度预测玩家的目标,联想到谷歌先前以4亿美元收购DeepMind,不难发现深度学习在视频游戏领域的竞争也在不断增强. 以下为译文: 深度学习现在炙手可热,尽管大多数时候我们知道它能识别图片中特定的对象,理解我们的语言或识别我们的声音.但是北卡罗来纳州立大学的最新研究表明,一种深度学习模型也可能让我们的游

java 如何学习技术才能更上层!!

问题描述 学习java 一年多了,工作也快半年了,总觉着自己学的慢.java 都是自己学的.怎样学技术才能更强一点.大家给点建议!!学过ssh .没有用到真正的项目上.现在用oracle 能写一般的sql 语句.现在正在做项目,用的是公司自己的框架.估计只会用这一次.时间充足,不知道譔学什么,怎样才能提高技术.还请有经验人指教!问题补充怎么没人指点一下啊. 问题补充:这么多好心人啊..都知道分譔给谁了.. 解决方案 那些推荐的书都很不错,我自己也有过这样的感受,Java的领域太宽广,任何一个方向