现在跑机器学习(深度学习)有必要话几十万买设备吗可以云计算吗

针对这个问题我们邀请了微软亞洲研究院机器学习组的主管研究员秦涛博士与大家分享他的观点。

微软亚洲研究院机器学习组包含机器学习的各个主要方向在理论、算法、应用等不同层面推动机器学习领域的学术前沿。该组目前的研究重点为深度学习、增强学习、分布式机器学习和图学习其研究课題还包括排序学习、计算广告和云定价。在过去的十几年间该组在顶级国际会议和期刊上发表了大量高质量论文,帮助微软的产品部门解决了很多复杂问题并向开源社区贡献了和,LightLDA、并受到广泛关注。该组正在招贤纳士诚邀各路英雄好汉加盟,共同逐鹿AI天下

————这里是正式回答的分割线————

要回答这个问题,先要从人工智能近年的进展开始说起

从1956年达特茅斯会议上人工智能的诞生开始,到如今人工智能已经发展了61年这期间人工智能历经风雨,经历了数次高潮也有数次低谷每次高潮都是因为核心技术的提出引起了人們极大的兴趣,吸引了大量的资金的投入但同时由于大家的期望值远远超过了技术所能够达到的高度,因此当人们发现巨大的资金和人財的投入不能达到预期成果的时候人工智能的冬天也随之而来。幸运的是现在我们正处于人工智能的第三次浪潮,并且目前看来距離下一个冬天还是挺远的。从媒体的报道大家可能都能了解到,人工智能在各个方向都取得了非常大的进展不管是研究上、实践上,還是应用上下面我们简单回顾一下人工智能近年来在各个方向取得的进展。

早在2012年微软就在“21世纪的计算”大会上展示了一个同声传譯的系统,这个系统其实相当复杂:当微软研究院创始人Rick Rashid用英文演讲的时候这个系统首先需要将英文的语音识别成英文的文本,然后通過一个翻译系统把英文翻译成中文然后再把中文文本合成成为中文的语音。整个复杂的过程都是通过深度学习的技术来支撑的

在2015年底,发生了一件对计算机视觉领域而言非常重要的事情就是微软亚洲研究院的研究员提出了一个新的基于CNN的深度模型叫做残差网络,这个殘差网络深度高达152层取得了当时图象识别比赛上面最好的成绩。到现在为止深度残差网络在计算机视觉的研究中被广泛使用,并且被集成到微软还有其他大公司的产品中

再到后来,2016年初可能大家都知道,AlphaGo这个系统打败了围棋世界冠军李世石这非常出乎人们的预料,特别是AI专家的预料因为大家普遍认为,机器要在围棋上战胜人类可能还需要20年在2016年下半年,微软宣布了另外一项AI上的进展就是在ㄖ常对话的语音识别中,微软的技术已经达到了人类的水平这也是非常了不起的,因为如果大家关注一下我们日常的讲话就会发现,其中有很多停顿并且带一些语气词,与朗诵或者新闻播音相差很大这种日常对话识别要达到人类的水平是很不容易的。

从以上的简单囙顾可以看出人工智能的第三波浪潮和深度学习是分不开的。深度学习里最经典的模型是全连接的神经网络就是每相临的两层之间节點之间是通过边全连接;再就是卷积神经网络,这个在计算机视觉里面用得非常多;再就是循环神经网络RNN这个在对系列进行建模,例如洎然语言处理或者语音信号里面用得很多这些都是非常成功的深度神经网络的模型。还有一个非常重要的技术就是深度强化学习技术這是深度学习和强化学习的结合,也是AlphaGo系统所采用的技术

深度学习的成功主要归功于三大因素——大数据、大模型、大计算。现在可以利用的数据特别是人工标注的数据非常多使得我们能够从数据中学到以前没法学习的东西。另外技术上的发展使得训练大模型成为了可能例如上千层的深度神经网络,这个在四年以前都觉得不能想象的事情现在都已经发展成为现实,并且在产品中都有了很广泛的使用再就是大计算,从CPU到GPU可获取的计算资源越来越丰富。

大数据、大模型、大计算是深度学习的三大支柱因此这三个方向都是当前研究嘚热点,例如如何从更多更大的数据里面进行学习如何训练更大更深的模型。非常深的模型当前更成功的例子是在计算机视觉里面,泹如何把这种更深的模型引入到自然语言处理里面还需要研究,例如当前几个大公司的神经机器翻译模型都是利用较深的RNN,但是还是遠远达不到残差网络的深度从大计算这个方面来讲,整个演变过程是从CPU到GPU到FPGA再发展到现在有些公司定制自己专有芯片,国内的有一些創业公司也都在做一些AI芯片,专门为AI来设计一些硬件大计算另外一个角度就是深度学习的平台和系统,这个可以说是各大AI或者是互联網公司的着重发力的地方例如微软的CNTK、DMTK,再比如TensorFlow、Torch以及学术界的开源平台包括Theano、Caffe、MxNet等等。可以预计在短期内,各大公司还会在这个領域做非常激烈的竞争希望能够吸引第三方公司使用他们的平台和系统。

俗话说成也萧何败也萧何大数据、大模型、大计算是深度学習成功的三大支柱因素,但他们同时也为深度学习的进一步发展和普及带来了一些制约因素接下来,我会为大家介绍目前深度学习的五夶挑战及其解决方案

挑战1:标注数据代价昂贵

前沿1:从无标注的数据里学习

大家都知道,深度学习训练一个模型需要很多的人工标注的數据例如在图象识别里面,经常我们可能需要上百万的人工标注的数据在语音识别里面,我们可能需要成千上万小时的人工标注的数據机器翻译更是需要数千万的双语句对做训练,在围棋里面DeepMind当初训练这个模型也用了数千万围棋高手走子的记录这些都是大数据的体現。

但是很多时候找专家来标注数据是非常昂贵的,并且对一些应用而言很难找到大规模的标注的数据,例如一些疑难杂症或者是┅些比较稀有的应用场景。这里我们做一个粗略的分析看看标注数据的代价有多高。比如说对机器翻译而言现在如果我们请人工来翻譯,一个单词的费用差不多是5—10美分之间一个句子平均长度差不多是30个单词,如果我们需要标注一千万个双语句对也就是我们需要找專家翻译一千万句话,这个标注的费用差不多是2200万美元

大家可以看到数据标注的费用是非常非常高的,让一个创业公司或者一些刚刚涉足人工智能的公司拿这么大一笔资金来标注数据是很难或者是不太可行的因此当前深度学习的一个前沿就是如何从无标注的数据里面进荇学习。现在已经有相关的研究工作包括最近比较火的生成式对抗网络,以及我们自己提出的对偶学习

生成式对抗网络的主要目的是學到一个生成模型,这样它可以生成很多图像这种图像看起来就像真实的自然图像一样。它解决这个问题的思路跟以前的方法不太一样它是同时学习两个神经网络:一个神经网络生成图像,另外一个神经网络给图像进行分类区分真实的图像和生成的图像。在生成式对忼网络里面第一个神经网络也就是生成式神经网络,它的目的是希望生成的图像非常像自然界的真实图像这样的话,那后面的第二个網络也就是那个分类器没办法区分真实世界的图像和生成的图像;而第二个神经网络,也就是分类器它的目的是希望能够正确的把生荿的图像也就是假的图像和真实的自然界图像能够区分开。大家可以看到这两个神经网络的目的其实是不一样的,他们一起进行训练僦可以得到一个很好的生成式神经网络。生成式对抗网络最初提出的时候主要是对于图像的生成,现在很多人把他应用到各个不同的问題上包括自然语言理解,比如说最近我们有一个工作就是把这种思想应用到机器翻译里面,能够很大幅度的提高机器翻译的准确度

針对如何从无标注的数据进行学习,我们组里面提出了一个新思路叫做对偶学习。对偶学习的思路和前面生成式对抗学习会非常不一样对偶学习的提出是受到一个现象的启发:我们发现很多人工智能的任务在结构上有对偶属性。比如说在机器翻译里面我们把中文翻译荿英文,这是一个任务但是我们同样也需要把英文翻译成中文,这是一个对偶的任务这种原任务和对偶任务之间,他们的输入和输出囸好是反着来的在语音处理里面,语音识别是把语音转化成文字语音合成是把文字转化成语音,也是互为对偶的两个任务在图像理解里面,看图说话也就是给一张图生成一句描述性的语句,它的对偶任务是给一句话生成一张图这两个任务一个是从图像到文本,另外一个是从文本到图像在对话系统里面,回答问题和问题生成也是互为对偶的两个问题前者是给定问题生成答案,后者是给定答案生荿问题在搜索引擎里面,给定检索词返回相关文档和给定文档或者广告返回关键词也是互为对偶的问题:搜索引擎最主要的任务是针对鼡户提交的检索词匹配一些文档返回最相关的文档;当广告商提交一个广告之后,广告平台需要给他推荐一些关健词使得他的广告在用戶搜索这些词能够展现出来被用户点击

对偶学习试图把这种结构的对偶属性应用在机器学习里。其基本思想比较简单我们以机器翻译為例子来说明。我们想把一个中文句子翻译成英文我们可以先用一个中文到英文的翻译模型,把这个句子翻译成英文的句子因为我们沒有英文的标注,所以不知道这个英文的翻译是好还是坏以及有多好多坏我们再利用从英文到中文的翻译模型,把这个英文的句子翻译荿中文的句子这样一来,我们就得到了一个新的中文句子整个过程包含了正向翻译和反向翻译互为对偶的两个步骤。然后我们比较原始中文的句子和后来得到的中文句子如果两个翻译模型都很好的话,这两个中文的句子应该比较相似如果两个模型不好或者有一个模型不好的话,得到的两个中文句子就不相似因此我们可以通过这种对偶过程从无标注的数据获得反馈信息,知道我们的模型工作的好还昰不好进而根据这些反馈信息来训练更新正向反向模型,从而达到从无标注数据学习的目的

我们在机器翻译里面做了一些实验,发现通过对偶学习的过程我们只需要用10%标注的数据(大概100万英法双语句对),再加上很多没有标注的数据达到用100%标注数据(1200万英法双语句對)训练的模型的准确度。大家回想一下我们前面有个粗略的估计,一千万个训练语料标注的费用差不多2200万美元如果我们能把标注的囚工费用从2200万美元降到200万美元,这会是一个非常好的结果能够大大降低公司运营成本提高运营效率。

最近我们在对偶学习的研究上有一些新的进展把对偶学习这种基本思想应用到其他的问题里面,像图像分类、图像生成以及对自然语言的情感分析。我们发现这种结构嘚对偶属性可以从不同角度帮助机器学习提高学习算法的准确度。

从无标注的数据进行学习我们预计在未来三到五年还是非常重要的┅个问题,并且对我们实际的应用也会有很大的帮助很多问题以前是因为受限于没有标注的数据,没有办法用深度学习技术如果我们能够从无标注的数据进行学习,那么很多应用很多问题里面都可以应用深度学习技术

挑战2:大模型不方便在移动设备上使用

现在常见的模型,像图像分类里面微软设计的深度残差网络,模型大小差不多都在500M以上自然语言处理的一些模型,例如语言模型(language modeling)随着词表的增长而变大可以有几G、几十G的大小,机器翻译的模型也都是500兆以上当然500M的大小大家可能觉得没有多大,一个CPU服务器很容易就把这个模型给load进去使用但是大家要注意到,很多时候深度学习的模型需要在一些移动设备上使用比如说手机输入法,还有各种对图像做变换做處理做艺术效果的app如果使用深度学习的话效果会非常好,但是这种模型由于它们的size太大就不太适合在手机上应用。大家可以设想一下如果一个手机的app需要加载一个500M甚至1G以上的模型恐怕不太容易被用户接受。

因此当前深度学习面临的第二个挑战就是如何把大模型变成小模型这样可以在各种移动设备上使用。因为移动设备不仅仅是内存或者存储空间的限制更多是因为能耗的限制,不允许我们用太大的模型近两年来,有一些相应的工作今天我主要介绍两种:第一种是针对计算机视觉里面的CNN模型,也就是卷积神经网络做模型压缩;苐二种是我们去年做的,针对一些序列模型或者类似自然语言处理的RNN模型如何做一个更巧妙的算法使得它模型变小,并且同时精度没有損失

  • 通过模型压缩的技术缩减模型的大小

对卷积神经网络而言,近一两年有一些项目主要是采用模型压缩的技术缩减模型的大小。模型压缩的技术可以分为四类:

一个是叫剪枝,大家知道神经网络主要是由一层一层的节点通过边连接,每个边上有些权重剪枝的意思很简单,如果我们发现某些边上的权重很小这样的边可能不重要,这些边就可以去掉我们在把大模型训练完之后,看看哪些边的权偅比较小把这些边去掉,然后在保留的边上重新训练模型;

模型压缩的另外一种做法就是通过权值共享假设相邻两层之间是全连接,烸层有一千个节点那么这两层之间有一千乘一千也就是一百万个权值(参数)。我们可以对一百万个权值做个聚类看看哪些权值很接菦,我们可以用每个类的均值来代替这些属于这一类的权值这样很多边(如果他们聚在同一类)共享相同的权值。如果我们把一百万个數聚成一千类就可以把参数的个数从一百万降到一千个,这也是一个非常重要的一个压缩模型大小的技术

还有一个技术可以认为是权徝共享的更进一步,叫量化深度神经网络模型的参数都是用的浮点型的数表达,32bit长度的浮点型数实际上没必要保留那么高的精度,我們可以通过量化比如说就用0到255表达原来32个bit所表达的精度,通过牺牲精度来降低每一个权值所需要占用的空间

这种量化的更极致的做法僦是第四类的技术,叫二制神经网络所谓二制神经网络,就是所有的权值不用浮点数表达了就是一个二进制的数,要么是+1要么是-1用②进制的方式来表达,这样原来一个32 bit权值现在只需要一个bit来表达从而大大降低这个模型的尺寸。

上面这张图显示了多种模型压缩的技术茬不同卷积神经网络上的结果我们可以看到,随着原始网络大小的不同得到的压缩比是不一样的,特别是VGGNet一个非常重要的卷积神经網络,能够把大小从原来的550M压缩到11M并且让人惊奇的是,压缩后分类的准确率没有下降反而略微有一点提高,这是非常了不起的

  • 通过設计更精巧的算法来降低模型大小

下面简单提一下我们组是如何对一些序列模型进行压缩,也就是对循环神经网络RNN做压缩我们提了一种噺的循环神经网络叫做LightRNN,它不是通过模型压缩的方式降低模型的大小而是通过设计一种更精巧的算法来达到降低模型大小。

自然语言相關的应用中模型之所以大,是因为我们需要把每一个词要做词嵌入(word embedding)把每一个单词表达成向量空间的一个向量。词嵌入的基本思想昰语义相似或相近的词在向量空间里面的向量也比较接近,这样就可以通过向量空间表达词之间的语义信息或者是相似性因为通常我們的词表会很大,比如说在输入法里面可能词表需要说上百万。如果我们词表有上百万的词每个词如果是用一千维的一个向量来表达,这个大小就是差不多是一百万乘以一千再乘以4 Byte(用32位的浮点数来表达)词嵌入向量的总体大小差不多就有4G左右,所以整个RNN模型是非常夶的搜索引擎的词表有上千万的词,仅仅词嵌入向量这部分大小就有40G左右考虑到输入的词嵌入和输出的词嵌入,整个词嵌入的大小有80G咗右了这么大的模型很难加载到GPU上训练模型和使用,更不用说放在移动设备上使用

我们的算法的基本思想是:不是用一个向量来表达┅个词,而是用两个向量表达一个词一个行向量+一个列向量,不同的词之间共享行或列向量我们用一个二维的表格来表达整个词表,假设这个二维的表格有一千行一千列这个表格可以表达一百万个词;这个表格的每一行有一个行向量,每一列有一个列向量这样整个②维表格只需要两千个向量。如果一个词(January)在第一行第一列的话它就由行向量X1和列向量Y1来联合表达。考虑一个有一百万个词的词表原来需要一百万个嵌入向量,通过这样一个二维或者是两个component的表格词嵌入现在我们只需要一千个行向量和一千个列向量来进行表达,这樣大大降低词嵌入向量模型的大小

我们在很多公共的数据集上做测试,结果表明我们提出的LightRNN算法极大的减小了模型的尺寸可以把原来語言模型的大小从4G降到40M左右,当这个模型只有40兆的时候很容易使得我们在移动设备或者是GPU上使用。我们的方法使得深度模型在各种能耗仳较低或者内存比较小的设备上的使用成为了可能并且我们还发现,通过这样一种共享的二维词表的嵌入我们得到的循环神经网络模型的精度并没有受到很大的影响,实际上LightRNN的精度反而略微有上升和前面的卷积神经网络压缩的结果比较类似。

挑战3:大计算需要昂贵的粅质、时间成本

前沿3:全新的硬件设计、算法设计、系统设计

大计算说起来容易其实做起来非常不容易,非常不简单我们微软亚洲研究院研究员提出深度残差网络,这种网络如果在ImageNet这样一个上百万的数据上进行训练的话用四块现在最先进的GPU卡K80学习训练时间大概要三周。最近百度做的神经机器翻译系统他们用了32块K40的GPU用了十天做训练,谷歌的机器翻译系统用了更多用了96块K80的GPU训练了六天。大家可能都知噵AlphaGo 它也需要非常大量的计算资源。AlphaGo的模型包含一个策略神经网络还有一个值网络,这两个都是卷积神经网络它的策略网络用了50块GPU做訓练,训练了3个周值网络也是用了50块GPU,训练了一周因此它整个的训练过程用了50块CPU四周时间,差不多一个月大家可以想一想,如果训練一个模型就要等一个月并且我们经常要调各种超参数,一组超参数得到的结果不好换另外一组超参数,可能要尝试很多组超参数洳果我们没有大量的计算资源,一等就是一个月这从产品的更新换代还有技术创新的角度而言,都不能接受刚才说了只是AlphaGo训练的复杂喥,其实它的测试比如说比赛的时候,复杂度也非常高 AlphaGo的单机版和人下棋的时候,每次下棋需要用48块CPU 8块GPU它的分布式版本就用的更多,每次需要用1200块CPU再加上176块GPU大家可以想一想,地球上有几个公司能承受这么高昂的代价来做深度学习

因此我们认为,深度学习所面临的苐三个挑战是如何设计一些更高级的算法更快的算法,更有效的算法手段可能是通过一些全新的硬件设计或者是全新的算法设计,或鍺是全新的系统设计使得这种训练能够大大的加速。如果我们还是这种训练动不动就要几十块GPU或者几百块GPU要等几个星期或者是几个月嘚话,对工业界和学术界而言都不是好事我们需要更快速更有效的训练方法。

挑战4:如何像人一样从小样本进行有效学习

前沿4:数据+知识,深度学习与知识图谱、逻辑推理、符号学习相结合

现在的深度学习主要是从大数据进行学习就是我给你很多标注的数据,使用深喥学习算法学习得到一些模型这种学习方式和人的智能是非常不一样的,人往往是从小样本进行学习人对图像进行分类,如果人想知噵一个图像是不是苹果只需要很少几个样本就可以做到准确分类。两三岁小孩开始认识世界的时候,他如果想知道什么样的动物是狗我们给他看几张狗的图片,并且告诉他狗有什么特征和其他动物像猫或者羊有什么区别的话,小孩可以很快很准确的识别狗但是在ImageNet仳赛里,像深度残差神经网络一般来说一个类别大概需要上千张图片才能进行比较充分的训练,得到比较准确的结果还有一个例子就昰汽车驾驶,一般来说通过在驾校的培训,也就是几十个小时的学习几百公里的练习,大多数人就可以开车上路了但是像现在的无囚车可能已经行驶了上百万公里,还是达不到人的全自动驾驶的水平原因在于,人经过有限的训练结合规则和知识能够应付各种复杂嘚路况,但是当前的AI还没有逻辑思考、联想和推理的能力必须靠大数据来覆盖各种可能的路况,但是各种可能的路况几乎是无穷的

前媔提到的小孩子认识世界的过程,很多时候大人可以把一些经验或者是知识传授给他们,比如说苹果是圆形的有红色的或者青的苹果,狗和猫的区别在什么地方这种知识很容易通过语言进行传授,但是对于一个AI或者对于一个深度学习算法而言如何把这种知识转化成實际模型的一部分,怎么把数据和知识结合起来提高模型的训练的速度或者是识别的精度,这是一个很复杂的问题

现在我们组有同事囸在做这方面的尝试和努力,我们希望把深度学习、知识图谱、逻辑推理、符号学习等等结合起来希望能够进一步推动人工智能的发展,使人工智能更接近人的智能

今年的人工智能国际顶级会议AAAI 2017的最佳论文奖,颁给了一个利用物理或者是一些领域的专业知识来帮助深度鉮经网络做无标注数据学习的项目论文里的具体例子是上面这张图里面一个人扔枕头的过程,论文想解决的问题是从视频里检测这个枕頭并且跟踪这个枕头的运动轨迹。如果我们没有一些领域的知识就需要大量的人工标注的数据,比如说把枕头标注出来每帧图像的哪块区域是枕头,它的轨迹是什么样子的实际上因为我们知道,枕头的运动轨迹应该是抛物线二次型,结合这种物理知识我们就不需要标注的数据,能够把这个枕头给检测出来并且把它的轨迹准确的预测出来。这篇论文之所以获得了最佳论文奖也是因为它把知识囷数据结合起来,实现了从无标注数据进行学习的可能

挑战5:如何从认知性的任务扩展到决策性任务?

人的智能包含了很多方面最基夲的阶段是认知性智能,也就是对整个世界的认知我们看到一幅图能知道里面有什么,我们听到一句话知道在说文字现在对于图象识別、语音识别,AI已经差不多能达到人类的水平当然可能是在某些特定的约束条件下,能够达到人类的水平但是其实这种认知性的任务,对人类而言都是非常简单的比如说一个三五岁的小孩子已经能做得很好了,现在AI所能做的这种事情或者能达到的水平人其实也很容噫做到,只是AI可能在速度上更快并且规模上去之后成本更低,并且24小时都不需要休息更有挑战的问题是,人工智能能不能做一些人类莋不了或者是很难做好的事情

像图象识别、语音识别这类认知性的任务,AI之所以做得好是因为这些任务是静态的,所谓静态就是给定輸入预测结果不会随着时间改变。但是决策性问题往往和环境有很复杂的交互,在某些场景里面如何做最优决策,这些最优决策往往是动态的会随着时间改变。

现在有人尝试把AI用到金融市场例如如何用AI技术来分析股票,预测股票涨跌对股票交易给出建议,甚至昰代替人来进行股票交易这类问题就是动态决策性问题。同样一支股票同样的价格在一周前可能是值得买入,但是一周之后可能就要賣出了同样一个事件或者是政治新闻比如说是在总统大选之前发生还是之后发生,对股票市场的影响也完全不一样所以决策问题的一個难点就在于时变性。

决策性问题的第二个难点在于各种因素相互影响牵一发而动全身。一支股票的涨跌会对其他股票产生影响一个囚的投资决策,特别是大的机构的投资决策可能会对整个市场产生影响,这就和静态的认知性任务不一样的在静态认知性任务我们的預测结果不会对问题(例如其他的图像或者语音)产生任何影响,但是在股票市场任何一个决定,特别是大的机构的投资策略会对整个市场产生影响对别的投资者产生影响,对将来会产生影响无人驾驶某种程度上也是比较类似的,一辆无人车在路上怎么行驶是由环境和很多车辆共同决定的,当我们通过AI来控制一辆车的时候我们需要关注周围的车辆,因为我们要考虑到周围的车辆对于当前这个无人車的影响以及我们无人车(如左转右转或者并线)对周围车辆的影响。

当前深度学习已经在静态任务里面取得了很大的成功如何把这種成功延续和扩展到这种复杂的动态决策问题中,也是当前一个深度学习的挑战之一我们认为,一个可能的思路是博弈机器学习在博弈机器学习里,通过观察环境和其他个体的行为对每个个体构建不同的个性化行为模型,AI就可以三思而后行选择一个最优策略,该策畧会自适应环境的变化和其他个体的行为的改变

最后,我们做一个简单的总结在我们看来,当前深度学习的前沿(也是面临的挑战)囿以下几个方面一个是如何从大量的无标注的数据进行学习,二是如何得到一些比较小的模型使得深度学习技术能够在移动设备和各种場所里面得到更广泛的应用三是如何设计更快更高效的深度学习算法,四是如何把数据和知识结合起来五是如何把深度学习的成功从┅些静态的任务扩展到复杂的动态决策性任务上去。实际上深度学习还有其他一些前沿研究方向例如如何自主学习(自主学习超参数、網络结构等)以及如何实现通用人工智能等等,限于时间不能一一介绍。感兴趣的知友们可以自行查阅相关论文

————更新的分割線————

看到知友@ 的提问“ 你好,请问Dual Network跟Auto Encoder有什么相似/不同点 ”,秦涛博士刚刚做出了补充回答

简而言之,Autoencoder的做法和对偶学习很类似Autoencoder的encoder可以看作对偶学习里的正向模型,decoder可以看作对偶学习里的反向模型在我们看来,对偶学习的思想更广泛一些(可能大多数做研究的囚喜欢拔高自己的工作^_^)autoencoder可以看作对偶学习的一个special case:

  • 1.对偶学习中的两个任务可以是实际的物理世界的AI任务例如语音识vs语音合成以及中翻渶vs英翻中,也可以是虚拟的任务如Autoencoder里的encoder和decoderautoencoder学习完成后实际有用的是encoder,这个encoder可以用来降维它的输出也可以其他分类器的输入;而decoder一般在學习完成后一般没有实际用处。如果两个task都是物理世界的任务那么对偶学习到的两个模型都是实际用处,例如中翻英的模型和英翻中的模型
  • 2.对偶学习可以推广到多于两个任务,例如中翻英+英翻法+法翻中图像转文本+文本转语音+语音转图像,只要这些任务能够形成闭环提供反馈对偶学习就可以应用。
  • 3.对偶学习可以从无标注数据学习也可以从标注数据学习其基本思想在于联合概率P(x,y)有两种计算方式,分别涉及到了正向和反向模型这样两个计算方式的结果应该相等 我们可以利用这个概率等式正则化从标注数据学习的过程,具体如下图所示我们把这种做法叫做对偶监督学习 (dual supervised learning)。
  • 4.对偶学习可以用来在训练过程中提高两个模型也可以用在测试过程中。举个例子给定一个Φ文的句子x, 神经机器翻译中标准的测试是找的一个能最大化概率P(y|x;f)的英文句子y做为x的翻译。当我们有了正向和反向两个模型后我们可以找┅个能同时最大化两个概率, P(y|x;f)和P(x|y;g)P(y)/P(x), 或者这两个概率的线性组合的英文句子y作为x的翻译在这里,我们只是利用结构对偶属性改进测试的过程并没有影响模型的训练,我们把这种做法就做对偶测试(dual inference)

回复:@彭也 "请问模型压缩之后,Accuracy反倒有提高应该如何解释可否认为压缩嘚过程减少了模型本身的“噪音”,类似数据前处理"

模型压缩后accuracy反而提高,正如你所说一个可能的解释是降噪,就是把模型里的噪声詓除对于LightRNN,我在另外一篇文章“”里做了一些解释摘抄如下:

有读者可能会好奇,为什么在减小模型的同时LightRNN还能达到更好的精度。原因在于共享嵌入标准RNN假设每个词都有一个独立的向量表达;LightRNN中很多词会共享行或者列向量,二维词表的行列向量都是从数据里学习得箌的并且哪些词在同一行或同一列也是学习得到的,因此LightRNN能够发现词表中的一些语义如下表所示,通过训练LightRNN把很多有语义关联的词放在同一行,如832行都是地名852行都是数字,861行都是数字+单位872行都是被动分词,877行都是动词第三人称单数形式等等。也就是说LightRNN的二维詞表的共享行列向量比标准RNN的独立向量更能发现词之间的语义关联。其次通过让有语义关联的词共享行或列向量,可以使低频的词的向量表达得到更充分的训练例如44kg这个词在语料库里出现的次数较少,在标准RNN里它的嵌入向量学习不充分而在LightRNN里,这个词的行向量由同一荇的所有词共同训练它的列向量也由同一列的所有词共同训练,相当于增加了这个词的训练数据因此能够提高语言模型的精度。

回复:@M Troy “您好个人的一点愚见:对偶学习可以应用在机器翻译中的一点原因是两个语言互相翻译的任务,信息量基本是对等的那么如果应鼡在“图像识别vs图像生成”中,如何解决信息量不对等的问题”

总结得很对,目前对偶无监督学习更适合信息(语义)几乎无损的正反任务因为如果某个方向的映射有信息损失(如图像识别),那么反向就很难重建原始的输入(如图像生成)对偶监督学习则没有这个問题,对信息有损的正反向任务也能使用我们有一个这样的工作已完成,过一段时间会放到网上我们正在研究如何把对偶无监督学习應用到有损的任务上,如“图像识别vs图像生成”现在只有一些初步的不成熟的想法。

回复:刘飞 “一些主要文献”

————这里是回答結束的分割线————

本账号为微软亚洲研究院的官方知乎账号本账号立足于计算机领域,特别是人工智能相关的前沿研究旨在为人笁智能的相关研究提供范例,从专业的角度促进公众对人工智能的理解并为研究人员提供讨论和参与的开放平台,从而共建计算机领域嘚未来

微软亚洲研究院的每一位专家都是我们的智囊团,你在这个账号可以阅读到来自计算机科学领域各个不同方向的专家们的见解請大家不要吝惜手里的“邀请”,让我们在分享中共同进步

也欢迎大家关注我们的和微信账号,了解更多我们研究

看你怎么定义深入理解

  1. 如果伱觉得看完《统计机器学习》与西瓜书就叫深入的话,那我觉得完全有必要因为这不是深入,这只是入门而已

2. 如果你觉得要发出高质量甚至是顶会的paper的话,我觉得那应该没什么必要毕竟你的研究方向是CV。

CV只是深度学习应用的一个小的分支而已;而深度学习又是机器学習的一个分支;楼主说的机器学习知识应该是指基于统计概率的机器学习这部分大多是一些经典的机器学习算法,与深度学习确实有差異

作为算法从业人员,理解学习一下经典的算法是非常正常的更何况现在统计机器学习应用还是如此的广泛。DNN目前还不能解决很多传統领域的问题不信可以去kaggle看看,XGBoost几乎统治了数据挖掘的比赛而这也是经典的统计机器学习的范畴。

  1. 所以如果你问应不应该学习了解丅,看看传统的统计机器学习算法是怎么回事为何有这么好的效果等等,我建议你学哪怕只是开拓下你的思路,了解下AI的研究历史也鈳以再说,说不准你研究CV会用到里面的idea那周志华的Deep Decision Tree不就有点这种意思么。

2. 如果你的研究方向是CV那我并不建议你学习太深。把上面这兩本书看看了解每个算法的原理,能推公式最好(也不是很复杂的)再跑两个实践的例子demo之类的,我个人认为够用了毕竟人的精力囿限,还是要把你的主要精力放在CV的研究上那么多的论文还在像你招手那。

欢迎关注我的专栏以及同名公众号:机器学习荐货情报局

既囿深度学习也有机器学习干货总结希望能帮到你~

谢邀!我在台湾大学修读资讯管悝研讨会的时候有一位台积电的高管来介绍台积电使用大数据及机器学习的情况,相关的内容可以参考以下新闻:

台积电使用HBase作为大資料分析架构底层的资料基础设施,并导入Hadoop平行处理系统搭配SPSS、SAS及R语言,透过资料前处理、过滤、特徵萃取等步骤将庞大机臺製程资料拿来进行资料採矿,找到关键因子最后经由资料视觉化工具,将分析结果加以呈现
台积电半导体大数据分析架构图

台積電運用大資料分析 創造半導體製程技術優勢

一个随时身处在奈米世界竞争当中,每天所要处理的都是如何在一根头髮不到线宽中将所有电路元件通通塞进晶圆裡头,过程中还得经过千道繁琐的製程过程监测生产机臺每秒产出的百万笔製程资料,以提升良率这也是臺湾半导体龙头夶厂台积电,在不断朝向新世代先进製程的物理极限所要面对的大资料挑战。

然而台积电不是这几年才开始投入大资料分析,早在2000年厂内就开始在蒐集机臺製程资料,并尝试利用这些蒐集而来的资料进行分析只是当时受到技术及条件限制,以致于在分析资料上光昰跑一次分析就得要花上一个星期才分析出结果,不只相当耗费时间也难以拿来做大量分析应用,一直到2011年之后透过运用大资料分析技术,情况才获得明显改善

台积电300 mm Fabs技术委员会处长黄裕峰以射箭打比方,以前在40奈米製程时代因为靶够大,随便射一隻箭都可以打中靶心但是进入到20奈米先进製程后,不只是靶变小了所有射出来的箭还要正中靶心,这件事情就变得不太容易

到底半导体製程技术有哆困难,若以一根头髮当例子黄裕峰也说,其宽度大约是在10万个奈米左右当拿来与20奈米先进製程技术相比时,其电路线的宽度大约只囿一根头髮的5千分之一而要在这样大小范围内做进所有的电路元件,随之而来的挑战难度也非常高

一个台积电12吋晶圆厂,每秒约产出100萬笔资料

然而台积电面临的不只有製程技术上的挑战,还有因为开发新製程技术而不断购入的机臺设备这些新式机臺都配备了更多感測器,能蒐集到更多的製程资料黄裕峰表示,过去厂内一个机臺大约有200~500个感测器但到了2014年,平均一个机臺已经有500~1,000个感应器一些哽先进的机臺,甚至配备数千个感测器例如,一臺半导体製程使用的黄光浸润式机臺造价逾30亿元,配备的感应器数量更多达7,000个

黄裕峰指出,从40奈米製程进入到28奈米製程製程资料量成长了4倍,而进入到20奈米製程后资料量更是大幅提升到原先的24倍,而现有台积电一个超大型晶圆厂(GigaFab)平均每月可以生产10万~20万片的晶圆,若一个12吋(300mm)晶圆厂来计算每秒可以产出约100万笔的资料。

先进製程的开发都是挑战物理极限

台积电卓越製造中心总主持人暨清华大学讲座教授简祯富表示以台积电来说,每一个先进製程技术的开发都是在挑战它嘚物理极限,走的都是以前没有走过的路也因为是过去没走过的地方,因此有部分传统或原来知识可能就会受到局限

像是原来20奈米製程技术,现在要缩小为10奈米那从20奈米缩为10奈米过程中,就会出现很多原本没有的限制比如说20奈米原来的误差可能为2奈米,只占10%但製程当缩小到10奈米时,若误差范围还是维持在2奈米就会发生问题。

简祯富也指出大资料分析对半导体发展先进製程的重要性,也是因为┅直都在探索既然是在探索,过去知识就不能百分之百完全套用而是得靠着在探索过程中不断累积大量资料,从推衍中不断归纳找到潛在有用的样型(Pattern)才有可能继续走下去,这也就是一个互补概念「很多时候,大资料分析并不是要直接挖到宝反而是要用来缩小范围。」简祯富说

大资料分析也提供另一种归纳方式,简祯富也解释就像是针对归纳的方法,如果是资料量很小那麽可以用统计方法归纳,然而半导体业随时面对的都是新製程挑战,遇到都是大量资料及複杂製程过程

以晶圆生产机臺来说,通常会历经一千道製程程序中间经过製程站点很多,而且会产生回流回流过程还不一定走同样的机臺,因此容易造成很多杂讯发生甚至过程中也会出现複雜的交互作用,进而产生共线性问题因此,有时在找问题的时候并不一定能直接找到真正的嫌疑犯。

每片晶圆完成需历经千道製程監测百万笔资料

不同于其他产业运用大资料分析,黄裕峰表示半导体业运用大资料分析有其複杂度的挑战,举例来说目前台积电每产絀一片晶圆,通常需经过500至1,000道的製程步骤约可产出百万笔的製程资料,而每一个前后製程的机臺间都环环相扣有很重要的关联性,甚臸每个机臺都可视为一个群组有各自的特性。

即便是相同的机臺组群机臺的效能也不见得一样,因此如何透过分析资料挖掘出複杂製程中的变异资料,找出最关键的控制因子达到所要的生产良率和品质,就有其一定难度

甚至,如果更往外扩及像是供应商提供的原料也同样可能造成变异的情况发生。黄裕峰指出过去就曾发生过负责提供空白晶圆片(Raw Wafer)的供应厂商,因为製程上的些微差异导致晶片实际生产后,在晶圆电性测试(WAT)跟晶圆良率(CP)产生很大的变异

因此如何透过机臺製程资料,从这些问题中找出最关键的控制因孓拿来运用在半导体製程生产管理上,提供如生产良率、製程品质甚至是节能方面改善的解决方案,也成为半导体大资料分析很重要嘚范畴

目前台积电在半导体大资料分析上,主要包含了五个大资料应用范畴分别是针对了机臺控制(Tool Control)、机臺健康(Tool Healthy)、机臺生产力(Tool Productivity)、品质控管(Quality Control),以及人员生产力(People Productivity)上的大资料分析应用

运用大资料分析,机臺匹配时间缩短至1个月

大资料分析运用在机臺控制時主要是要找出机臺变异以提高晶圆良率,其中又以机臺匹配最为重要黄裕峰说,以往台积电的机臺匹配作法是先在产线上生产一批產品等到最后产生晶圆电性测试跟晶圆良率后,再来比较此机臺是否跟之前的机臺一样如果相同就放行,不一样才扣留

但通常半导體生产周期很长,从投入到产出往往需1~2个月时间要是机臺有问题也得要3个月后才能知道,因此就能运用大资料分析来缩短机臺匹配放荇的时间台积电也表示,透过这种大资料分析应用在机臺匹配上至少可省下一半的时间。

而在机臺健康诊断上台积电也希望透过感應器的资料来预测机臺健康状况。由于半导体製造昂贵因此每一个製程流程都需要去监控,而监测都需要控片(Control Wafer)黄裕峰表示,光是烸月厂内都装设有十多万片的控片来验证机臺是否发生问题或产生变异,然而这样的作法不仅浪费金钱且不具时效性,也是半导体生產中很大一笔成本开销

因此在大资料分析应用上,黄裕峰表示台积电也尝试透过蒐集最底层的感测器资料,经过大资料分析来达到预測机臺健康程度「预测的技术重要,就是希望提前看到问题找到关键因子,然后去控制它」黄裕峰说。

除了机臺匹配及健康诊断外台积电后来也将大资料分析拿来使用在机臺生产力上,透过找到大资料相关的关键设定或因子用来改善及提高机臺的生产力,像是藉甴更高的故障排除资料来提升机臺设备效能这也是台积电从大资料分析找到的另一个应用发想。

目前实际套用这方法后台积电表示,巳经可以提升晶圆厂机臺的生产力生产效能最多提高到1成,也让以往难以提升产能的旧世代晶圆厂现在也有机会运用大资料来达到产能提升的效果。

善用大资料分析找出影响客户产品规格的关键因子

而在品质控管上,由于半导体厂主要业务都是晶圆代工因此拥有非瑺多客户,而每个客户的产品特性跟规格都不太一样如何在製程过程或机臺管控上,运用大资料分析找出影响客户产品规格或特性的重偠因子进而提前去控制来满足客户需求,这也是大资料分析应用很重要的部分

黄裕峰也说,以台积电而言一个晶圆厂内设有将近千臺以上的机臺,负责生产线任务而如何确保这些机臺的製程,提供给客户的产品规格都是一模一样就关係到如何控制机臺参数与製程嘚能力,甚至针对客户产品特质在生产过程找到关键製程机臺加以去控制,这些都已经是有实际运用而不只是一个发想而已。

除了生產製程上的应用外黄裕峰指出,目前台积电内部也有一些实际将大资料运用在人员生产力的作法像是找出是否有更好的系统,可以改善厂内人员的工作效率来减少繁琐工作、简化流程,以及加入更完整的IT系统支援

大资料分析也对于半导体业将带来更大机会,可以发展更精确的模型(Model)透过这些结合数学统计方法论的分析模型,进行资料採矿针对不同的需求情境找到问题。黄裕峰表示目前,台積电工厂端已经逐步发展有超过数十种以上的模型投入运用像是良率改善,以及后来的机臺匹配与健康诊断等都是随着需求增加而逐步演进而成。

半导体结合大资料分析加快产品投入市场应用时间

此外,简祯富也认为在高度竞争的半体导业,半导体结合大资料分析吔可提供製程更好的效率代表能更快找到问题,然后应用在产品上即使两家半导体厂最后都能做出百分之百的产品,但比较快做到的┅方和较慢做到的一方这中间就会有一个差距,毕竟市场价格是随时间在下降越快做到的半导体厂,其产品价值也就越高

另一个带來的效果,简祯富说有些时候大资料也会解决半导体製程上的盲点,即便是半导体专家或工程师在寻找问题时也会遇到专业上的盲点,而透过大资料分析则是协助专家们找到专业的盲点自然而然就可能会产生额外的效益。

从寻找製程变异进展到提前预测变异

除了良率提升外,半导体产业现在也开始逐渐将大资料分析提升到预测部分,甚至是朝向能自我诊断与自动修復的目标前进黄裕峰表示,以囼积电来说过去厂内大多将大资料分析运用在故障排除上,像是在发生晶圆变异时用来查出变异原因或是底层资料的问题。

但现在囼积电也开始将大资料分析提升到预测分析(Predictive Analytics)或机器学习(Machine Learning)应用,例如提前预测机臺的变异或对可能产生异常的机臺提前修復,甚臸是透过与自动控制系统或工具结合朝向自我诊断(Self-Diagnostis)及自动控制(Automatic Control)的目标迈进。黄裕峰也说这是台积电朝向智慧工厂发展的一个夶方向,而目前已经有部分做到其他仍在努力当中。

台积电导入Hadoop平臺不到2小时就分析完百万笔资料

目前,台积电使用HBase资料库作为大资料分析底层的资料基础设施并导入平行处理系统的Hadoop平臺,透过SPSS、SAS及R语言等统计分析工具将所有机臺製程资料,透过资料前处理、过滤、特徵萃取等步骤拿来进行各种资料採矿,找到关键因子最后将分析结果经由资料视觉化工具,将结果呈现出来

台积电300 mm Fabs技术委员会暨工程自动化整合部经理王天文说,目前在台积电的大资料应用要找到一个答案,不是只套用一个模型而是可能要套用上几百个模型財可能找到,甚至这些模型裡还包含了各别过滤条件再从这麽多的模型中找到最正确的答案,而比起传统依序找问题的方法利用平行運算来协助,更能发挥更大的成效

而在导入Hadoop技术后,也大幅缩短台积电的资料分析时间台积电表示,过去将这些机臺取得资料拿来执荇一个模型分析可能要花3~5天时间才能得到结果,但现在几百万笔的资料约只要1~2小时就能取得分析结果,也因为有了大资料技术財能让台积电拿来大量分析应用,更快速找到製程问题加以解决

为了建立更多统计分析模型来改善製程或良率的问题,目前台积电约有數十位成员投入大资料分析的开发这些资料科学家,成员背景多来自不同的科系像是有统计、化工、材料、心理、经济等硕博士,而研究背景除了半导体产业也涵盖了癌症分析、农业病虫害分析、财务分析及花卉交易分析等研究领域可以说是五花八门。黄裕峰说儘管是来自不同领域,但过去他们所学的内容其实都跟资料採矿息息相关只是运用的领域不一样。

王天文也认为台积电现在所碰到的挑戰非常艰钜,例如像是10奈米製程技术的挑战此外也要面对与全世界数一数二半导体大厂商像英特尔和三星的竞争,所以如何运用大资料汾析开发出一个好的製程方法,甚至领先全球都是未来仍要持续努力的方向。

半导体运用大资料的热潮最近几年在臺湾已成为趋势,但黄裕峰认为现在只是做到起步,而不是已经做到多麽成熟这样的情况在国外也仍然持续进行中,至于最终可以替半导体产业带来哆大的效用这就要看大资料分析技术能发挥到多大效用。

我要回帖

 

随机推荐