Eufisky - The lost book

绝密 | 机器学习老手不会轻易告诉你的12件事儿

 
 
编译 | AI科技大本营
参与 | 彭硕 刘畅
编辑 | 明明
 
 
机器学习是人工智能的核心,而机器学习的算法是其最重要的武器。机器学习算法可以从例子中归纳出执行重要任务的重要方法,这种方法不仅可行还可节约成本,随着可用的数据越来越多,我们就可以利用其解决更多的问题,因此,机器学习在计算机科学和其他领域中都得到了广泛的运用。
 
尽管如此,开发出成功的机器学习应用程序还需要大量的“黑科技”,而这些是在课本中找不到的。华盛顿大学的Pedro Domingos教授发表的一篇题为《关于机器学习你需要知道的一些事儿》的科技论文,总结了机器学习研究人员和实践者所学习到的12个重要的经验教训,包括要避免的陷阱、要关注的重要问题以及常见问题的答案等等。营长找到了对这篇科技论文的一个解读文章,并将主要内容翻译如下。
 
 
▌1. 学习=表示+评价+优化
 
所有的机器学习的算法通常包括三个组成部分:
 
表示:一个分类器必须用计算机能够处理的一些正式语言来表示。相反,为学习者选择一种表示方式就等同于选择一组可以学习的分类器。这个集合被称为学习者的假设空间。如果一个分类器不在假设空间中,它就不能被学习。一个相关的问题是:如何表示输入,比如使用哪种特征。
评价:要区分好的分类器和坏的分类器,需要一个评价函数。算法内部使用的评估函数与分类器外部使用的评价函数可能不同,其主要是为了便于优化,以及下一节中我们要讨论的问题。
优化:最后,我们需要在语言的分类器中找到得分最高的一种方法。优化技术的选择是提高学习者效率的关键,同时也有助于确定分类器的评价函数是否具有多个最优值。初学者开始的时候使用现成的优化器是很常见的,不过这些优化器会被专门设计的优化器取代。
 
 
 
 
 
▌2 . 泛化起着举足轻重的作用
 
机器学习的基本目标是泛化训练集中的例子。这是因为,无论我们有多少数据,我们都不太可能在测试时再次遇到一模一样的例子。在训练集上做得很好很容易,机器学习初学者最常见的错误是,对训练数据进行测试之后以为自己成功了。之后把选择的分类器放在新数据上测试,发现还没有随机猜测的准确。所以,如果你雇了一个人来构建一个分类器,一定要保留一些数据用来测试他们给你的分类器。相反,如果你已经被雇佣来构建一个分类器,那么在开始的时候将一些数据放在一边,最后用它来测试你选择的分类器,也就是最后在全部数据的基础上学习你的最终分类器。
 
 
 
▌3. 只有数据是不够的
 
把泛化当成目标还有另一个重要的后果:不管你有多少数据,只有数据本身是不够的。 
 
这似乎是一个令人沮丧的消息。那么我们怎么能学到东西呢?幸运的是,我们想要在现实世界中学习的函数并不是由所有数学上可能的函数集合而来。事实上,一般的假设(比如平滑、具有相似的类(class)的相似例子、有限的依赖关系,或者有限的复杂性)通常都能很好地完成,这也是为什么机器学习如此成功的一个重要原因。像演绎法一样,归纳法(学习者所做的)是一个知识杠杆:它将少量的输入知识转化为大量的输出知识。归纳是一种比演绎更强大的杠杆,用较少的输入知识来产生有用的结果,但它仍然需要输入知识大于零才能工作。和任何杠杆一样,我们投入的越多,我们就能得到更多。
 
 
 
现在回想起来,学习知识的必要性并不令人惊讶。机器学习并不是魔法,它不能无中生有。它所做的是从很少的东西中学到更多。和所有的工程一样,编程也有很多工作要做:我们必须从头开始构建一切。学习更像是一种耕作,它可以让大自然完成大部分的工作。农民把种子和营养结合起来种植作物。学习者将知识与数据结合起来,以发展项目。
 
 
▌4 . 过拟合有多样性
 
如果我们所拥有的知识和数据不足以完全确定正确的分类器,那该怎么办?那样我们就会冒着产生幻觉的风险(或者一部分),这不是基于现实的,只是在数据中随机编码。这个问题被称为“过拟合”,是机器学习的难题。当学习者输出的分类器在训练数据上能达到100%准确度,但在测试数据上却只有50%的准确率,而实际上它在两个数据集上的输出结果都能达到75%的准确率,这就是我们所说的过拟合。
 
机器学习中的每个人都知道过拟合,但它的形式多种多样,而且也不会立即变得明显。理解过拟合的一种方法是将泛化误差分解为偏差和方差。偏差是一种学习者倾向于不断地学习同样的错误;方差是不管实际信号是什么,学习随机事物的倾向。线性学习者有很高的偏差,因为当两个类之间的边界不是一个超平面的时候,学习者就无法归纳它。决策树不存在这个问题,因为它们可以表示任何布尔函数,但另一方面,它们可能会受到高方差的影响:由相同现象产生的不同训练集的决策树通常是非常不同的,实际上它们应该是一样的。
 
 
 
交叉验证可以帮助对抗过拟合,例如通过使用它来选择决策树的最佳大小来学习。它不是万金油,因为如果我们用它来做太多的参数选择,它本身就会开始过拟合。
 
除了交叉验证,还有很多方法可以对抗过度拟合。最受欢迎的是在评价函数中添加一个正则化项。例如,它可以对具有更大结构的分类器进行惩罚,从而倾向于较小的结构,进而避免过拟合。另一种选择是,在添加新结构之前执行像卡方这样的统计显著性测试,以确定这个类的分布是否真的不同于这种结构。当数据非常稀缺时,这些技术尤其有用。虽然如此,你应该对某种技术能解决所有过度拟合问题的说法表示怀疑。想要避免过拟合(方差)很简单,我们可能会掉入另一个极端也就是欠拟合(偏差)。想要同时躲开这个两个错误需要我们学习一个完美的分类器,并且在事先不知道它的情况下没有任何一种方法总是能做到最好(世上没有免费的午餐)。
 
 
▌5 . 高维度中直觉不再好用
 
说完过拟合的问题,接下来要谈的是机器学习中的最大的问题——维度的诅咒。这一表达是1961年Bellman提出的,指的是许多在低维度上工作正常的算法在输入是高维度的时候变得难用。但在机器学习中,这里包含的更多。随着示例的维度数(特征数量)的增长,泛化变得更加困难,因为固定大小的训练集覆盖了输入空间的一小部分。
 
 
 
高维的普遍问题是,我们的直觉是来自于三维世界,通常并不适用于高维的情况。在高维的情况下,一个多变量高斯分布的质量并不在平均值附近,而是在一个越来越远的“壳”周围。高维度的橙色的体积大部分是在皮肤上,而不是在果肉上。如果一个常数的例子在高维超级立方体里均匀地分布,在多维度的情况下,大多数例子更接近于超立方体的一个面而不是它们最近的邻居。如果我们用一个超立方体来近似一个超球体,在高维度中几乎所有的超立方体的体积都在超球面之外。这对机器学习来说是个坏消息,其中一种类型的形状通常被另一种类型的形状所近似。
 
在二维或三维空间中构建一个分类器很容易:通过视觉检查我们可以找到一个不同类别的例子之间的合理的界限。但在高维度中,很难理解发生了什么。这就使得设计一个好的分类器变得困难。有些人们可能会天真的认为收集更多的特性并没有坏处,他们认为即使是最坏的情况,他们没有提供关于这个类的新信息而已。但事实上,它们的好处可能被维度的诅咒所抵消。
 
 
▌6 . 理论保证通常与实际情况不一样
 
机器学习的论文充满了理论保证。最常见的类型是为了确保良好的泛化所需要的示例数量。如何去看待这些理论保证呢?首先,要注意的是这些都是可能的。归纳法传统上与演绎法形成鲜明对比,在演绎法中你可以保证结论是正确的。在归纳法中所有的赌注都被取消了,这其实是许多世纪以来的传统智慧。近几十年来最重要的发展之一是我们认识到事实上我们可以保证归纳结果,特别是如果我们愿意接受概率担保。
 
我们要小心这个界限意味着什么。例如,它并没有说,如果你的学习者返回了一个与特定训练集一致的假设,那么这个假设很可能泛化的很好。它所说的是,如果有足够大的训练集,那么你的学习者可能会返回一个泛化很好的假设或者无法找到一个与训练集一致的假设。这个界限也没有说明如何选择一个好的假设空间。它只告诉我们,如果假设空间包含真正的分类器,那么学习者输出坏分类器的概率就会随着训练集的大小而减少。如果我们缩小假设空间,约束就会得到改善,但它包含真正的分类器的可能性也会减小。
 
 
 
另一种常见的理论保证是渐近的:有了无限的数据,学习者就可以输出正确的分类器。这是让人安心的,但由于它的渐近保证,在选择学习者的时候就会显得轻率。在实践中,我们很少处于渐近状态(也被称为“不对称”)。由于前面讨论过的偏差-方差权衡,如果给了无限的数据之后,学习者A比B更好,那么在给了有限数据的情况下,通常学习者B比A要更好。
 
在机器学习中,理论保证的主要作用不是作为实际决策的标准,而是作为算法设计的理解和驱动力的来源。在这种能力下,它们非常有用,事实上,理论与实践的密切互动是机器学习多年来取得长足进步的主要原因之一。不过需要注意的是:学习是一种复杂的现象,仅仅因为学习者既有理论上的依据又在实践中工作并不意味着前者是后者的原因。
 
 
▌7. 特征工程是关键
 
最终来看,有些机器学习项目能成功,而有些却失败了。那是什么造成了这样的差异?显而易见,最重要的原因应该是使用特征的方式。如果你有许多独立的特征,而其中每一个都和这一类相关联,这种情况下学习起来很容易。相反,如果这个类是一个关于特征非常复杂的函数,那就可能无法学习它。通常情况下,原始数据不是可以直接用于学习的形式,但是可以从中构建特征。这通常是机器学习项目中需要花费大部分时间的地方。它往往也是最有趣的部分之一,因为可以发现数据直觉、创造力和“黑科技”与纯技术性东西是同等重要。
 
常常令初学者感到惊讶的是,在机器学习项目中,研究机器学习算法花费的时间是非常少的。但是,如果你考虑了收集,整合,清理和预处理数据的时间,以及在设计特征上很多次尝试和失败的时间,那你就不会对之前的现象感到惊讶。
 
另外,机器学习中建立数据集和训练模型的过程不是一次性的,而是包含训练模型,分析结果,修改数据和(或)模型并重复迭代的过程。训练通常是花费时间最少的部分,但那是因为我们已经很好掌握了其中的技巧!而特征工程就显得更加困难,因为它具有很强的针对性,而模型在很大程度上是可以通用的。但是,两者之间没有明显的界限,这也是为什么能促进知识整合的模型才是最有用的模型。
 
 
 
 
 
▌8. 数据比算法更重要
 
在大多数计算机科学中,两种主要的有限资源是时间和内存。在机器学习中,还有第三种:训练数据。哪一种资源会成为计算机科学发展的瓶颈,年复一年,一直在变化。在20世纪80年代,这种瓶颈往往是数据。而在今天,却是时间。我们有大量可用的数据,却没有足够的时间来处理它,所以这些成为了没用的数据。这产生了一个悖论:即使原则上有更多的数据意味着可以训练更复杂的分类器,而实际上更简单的分类器才能被广泛使用,因为训练复杂的分类器需要很长的时间。这个悖论的部分答案是想出一种快速训练复杂分类器的方法,事实上在这个方向的确已经出现了显著的进展。
 
使用那些比期望回报更小的智能算法的部分原因是为了更加拟合数据,而所有的智能算法都做同样的事情。当你认为表征规则集和神经网络不同时,会令人感到惊讶。但事实上,规则项很容易被编码为神经网络,而在其他表征之间也存在类似的关系。所有的模型算法本质上的工作都是通过将近似的样例分组到同一个类,他们之间关键的区别在于如何定义“近似”。在数据是非均匀分布的状态下,模型会产生大量不同的边界,同时在重要的区域(即具有大量训练样例的那些区域,也是大多数测试样例可能会出现的区域)中也做出相同的预测。这也有助于解释为什么强有力的训练可能是不稳定的,但结果仍然准确。
 
 
 
通常,首先尝试最简单的学习模型(例如,朴素贝叶斯,k-最近邻)是值得的。虽然更复杂的模型更具诱惑力,但他们通常难以使用,因为如果你想获得好的结果,你需要踩更多的坑,而且这类模型的算法细节通常是不透明的。
 
模型可以分为两大类:具有固定大小的表征,如线性分类器;以及可以随数据一起增长的表征,如决策树。固定大小的学习器只能利用一定的数据。原则上可变大小的学习器可以在给定足够数据的情况下拟合任何函数,但实际上由于算法或计算成本的限制,他们可能达不到这一效果。而且,由于数据维度带来的灾难,现有的数据量根本还不够。出于这些原因,如果你愿意付出努力的话,那些能充分利用数据和计算资源的智能算法,往往会得到相应的回报。设计学习器和学习分类器之间没有明显的界限,相反,任何给定的知识都可以编码在学习器中或从数据中学到。所以在机器学习项目中,设计学习器往往会成为其中重要的部分,而从业者需要具备一定的专业知识。
 
 
▌9. 训练不止一个模型
 
在机器学习发展的早期阶段,每个研究者都有自己最喜欢的学习模型,并有一些先验的理由去相信它的优越性。在尝试很多不同方法上做了大量的努力,并选择了结果最好的一个。然而系统的经验比较表明,应用对象不同,最好的学习模型也是有所不同,而且包含许多不同学习器的系统开始出现。现在努力尝试许多学习器的许多变体,选择结果最好的一个。但随后研究人员注意到,如果不是选择去找到最佳变体,而是融合许多变体,结果通常是要好得多。而且对研究人员来说没有额外的工作量。
 
 
 
现在,创建这样的模型融合是机器学习标准化流程。最简单的融合技术,称为套袋(bagging),我们通过重新采样简单地生成训练集的随机变化,分别学习一个分类器,并通过投票策略来融合结果。这种方法是有效的,因为它大大降低了模型的方差,而只是稍微增加了偏差。在Boosting算法中,训练样例有权重,而且这些都是不同的,所以每个新的分类器都集中于前面那些往往会出错的样例上。在stacking算法中,单个分类器的输出是“更高级”学习器的输入,这个学习器需要计算出如何最好地组合它们。
 
也存在许多其他的技术,而总体趋势是越来越大的模型融合。在Netflix prize比赛中,来自世界各地的团队争相构建最佳视频推荐系统。随着比赛的进行,参数团队发现把他们自己的学习器和其他小组的结合起来,并且再与其他组合并为更大的模型,能取得最好的成绩。冠军和亚军都是融合了100多个学习器,而将两只队伍的学习模型再一融合,能进一步提高成绩。毫无疑问,将来我们会看到更大的学习模型。
 
 
▌10 . 简单并不意味着准确
 
奥卡姆剃刀定律阐明,如无必要,无增实体。在机器学习中,这通常意味着,给定两个具有相同训练错误的分类器,两者中较简单的可能具有最低的测试错误。有关这一说法的证据在文献中经常出现,但事实上有很多反例,“天底下没有免费的午餐”定理也暗示它不可能是真的。
 
 
 
我们在前一节看到一个反例:模型融合。即使在训练误差已经达到零之后,通过添加分类器,增强融合模型的泛化误差仍然在不断提高。因此,与直觉相反,一个模型的参数数量与其过度拟合倾向之间没有必然的联系。
 
其实,更复杂的观点是将复杂性等同于假设空间的大小,因为较小的空间允许假设由较短的符号表示。像上面有理论保证的那部分界限就可以被认为是在暗示更短的假设能更好地概括。这可以通过给空间中的假设分配更短的符号来进一步论证,这些空间我们是有先验偏好的。但是,把这看作准确性和简单性之间权衡的“证据”,就会是循环推理:我们做出假设,人们喜欢更简单的设计,如果它们是准确的,那就是因为我们的偏好是准确的,而不是因为在我们选择的表征方式上假设是“简单的”。
 
 
▌11. 可表征不意味着可学习
 
本质上,所有用于可变规模学习器的表征都与“每个函数都可以用这样的表征方式来表示或近似”的定理相关。基于此的理论保证,热衷于表征方式的研究者经常忽视所有其他的部分。但是,仅仅因为一个函数可以表征并不意味着它可以被学习。例如,标准的决策树学习器不能比具有训练样例的决策树学习更多。在连续的空间中,使用一组固定的原语来表示简单的函数通常需要无限数量的内容。
 
 
 
另外,如果假设空间具有许多评价函数的局部最优值,那么往往是这样,即使学习器具有表征能力,也可能找不到真正的函数。对于有限的数据,时间和内存,标准的学习模型只能学习所有可能函数的一小部分,而这些子集对于具有不同表征能力的学习器是不同的。因此,关键的问题不是“能否表现出来”,这个问题的答案往往是无关紧要的,而是“能否学习它?”,也值得去尝试不同的学习器(并可能是把它们结合起来)。
 
 
▌12. 相关性并不意味着因果关系
 
研究人员经常指出一点,相关性并不意味着因果关系,因此这也许是不值得的。但是,尽管我们所讨论的那种学习器只能学习相关性,但他们的结果往往被视为可以表示因果关系。这不是错的吗?如果是的话,那么为什么人们要这样做呢?
 
 
 
而事实往往是,学习预测模型的目标是用它们作为策略的指南。如果发现啤酒和尿布经常在超市同时被购买,那么也许把啤酒放在尿布部分旁边就会增加其销量。但是实际上很难说清楚相关实验。与实验数据不同的是,机器学习通常应用于预测变量不受学习器控制的观测数据。虽然一些学习算法可能会潜在地从观测数据中提取因果信息,但是它们的适用性会受到限制。另一方面,相关性是潜在的因果关系的一个标志,我们可以将它作为进一步研究的指导。
 
 
作者 | James Le
原文链接| https://towardsdatascience.com/12-useful-things-to-know-about-machine-learning-487d3104e28

学界与工业界的AI研究:有哪些重要不同?

撰文|颜水成(360首席科学家、人工智能研究院院长)

整理|邸利会

 

  

 

我之前在学术界,现在在工业界。现在不少学界的科学家都到公司里面做研发,通常遇到的一个问题是:在工业界从事研发和以前在学界究竟有哪些不同?很多关心研发的人会有这样的疑问。我想从自己的经历出发,谈一下我的体会,希望能提供一些借鉴。

 

去年,我们讲到人工智能有“三要素”:算法、算力和数据。从今年开始,我们把场景加入进来,开始用“四元分析”的方式来理解人工智能。

 

为什么要加入场景?去年大家对人工智能非常热情,包括学校、企业都在讨论。但是,一年过去了,大家在想人工智能到底给我们带来了什么实实在在的价值?其实,加入场景非常重要的原因是人工智能终究是一种技术,人工智能必须要落实到精准的场景,才有它实实在在的价值。

 

学术界追逐精度的极限

 

我们现在来看一下,在学术界是怎么做人工智能。因为人工智能的概念实在太大了,现在深度学习最热,那我们就看下在学术界里研究深度学习,会做一些什么事情。

 

一般情况下,学术界是把问题设立好之后,去思考研究一些新的算法,然后在具体的问题上,力图在精度上达到极限。从深度学习上设计更好的模型结构方面,大家可以看到在过去这些年,像最初的Hinton用最基本的网络结构,到谷歌的GoogleNet,微软的残差网络(ResNet),到今年我们参加比赛所设计的模型,可以看到基础网络结构是推动学术界往前走的核心。但是除了基本的网络结构之外,更大的网络、更深的网络以及不同的网络模型的融合,也是大家追逐精度的常用方法。

 

另一方面,我们要训练这些网络,可能需要更多的计算资源,比如像图形处理器集群(GPU Cluster),比如说我们希望有更便捷的训练平台,比如说像Caffe、MxNet、Tensorflow等等。当然,更重要的是大家在一点点往前推动的同时,积累了很多小的经验,这些经验通过学术报告,通过论文的形式来分享。大家都站在巨人的肩膀上在一步一步往前走。当然,还有怎么样用其它的非标注的数据来提升解决问题的能力。所有的一切都合在一起,在解决具体问题的时候,能够把精度达到极限。

 

学术界很多时候研究的目的,是要有成果论文发在最顶级的学术杂志上,也希望这些算法能够具有普适性,除了能解决自己的问题,其他人也能借鉴,最好能开源,所有的人都可以去使用,这样就能很好的提升自己在这个领域的影响力。

 

刚刚说的像深度学习去解决图像识别的很多问题,大家可以看到在过去的几年,错误在一点一点的降低,这正是大家在追逐精度的极限。

 

没有瑕疵的用户体验如何产生?

 

但是工业界不是这样。工业界要去探索商业,注定要有经济上的考虑,思考盈利模式,那对人工智能的考虑就会不一样。

 

在工业界里待过就会明白,人工智能本身并不是一个产品,不是单纯靠人工智能就能获得利益,必须要通过与自己的业务和场景相结合,才能发挥它的价值,核心算法只是其中的一个模块而已。无论是往前端走,还是往后端走,还是需要很多不同类型的人,才可以做出一个产品。

 

最重要的是,人工智能并不是一个静态的东西。比如说训练出来的模型,要用到某个业务场景里面,业务场景里产生新的数据,这些数据进一步提升人工智能模型的能力,再用到场景里面,这是一个闭环和不断迭代的过程。

 

另一方面,也是很多从学术界到工业界的教授和学者经常很容易犯的一个很严重的错误。就是认为技术在真正推动产品,但其实,用在具体的场景里面,技术只是起到一个非常小的作用,如果说它的贡献大概到30%到40%就不错了。

 

一个成功的产品,还需要产品工程师和非常多的人,大家一起才能做出一个非常完美的用户体验的产品出来。一个核心点就是我们做技术的人,做研究的人,要明白永远没有完美的算法,算法永远是有瑕疵存在的,我们一定要和场景工程师在一起,通过好的产品设计,把这些算法上的瑕疵避免掉,产生没有瑕疵的用户体验。

 

比如说有一个很现实的场景,人脸的检测和定位的技术之后,大家都想做一些非常有趣的增强现实的应用。早期的时候,我们特别享受技术有多么牛,比如早期产品的设计模式,会看一张图能不能把我的脸换成刘德华的脸,即使在脸动的时候,在张嘴闭嘴的时候,看起来都像刘德华。可是,很多时候如果产品的定位是这样子,技术永远都不可能做得非常好,为什么呢?人脸的场景,光照条件或者是姿态不一样,就会产生一种烧伤脸的感觉,不会产生很好的效果。但是,像我们,还有国外的一些创业公司,他们的想法就是没有必要把人脸全都换掉,只要利用人脸定位的技术,可以在脸上加一些花卉,有蝴蝶飞,这样即使人脸定位的技术还不是很完美,还有一些抖动的情况,产生出来的视觉效果,还是可以接受的。这是一个典型的例子,需要算法和产品相互结合才能产生没有瑕疵的用户体验。

 

我最佩服的应该是Snapchat, 他们的技术是做算法的和做工程设计的人在一起,一个一个的效果不停地打磨。他们用的人脸的技术,像分割的技术,像SLAM(simultaneous localization and mapping, 即时定位与地图构建)技术,这些技术都不是完美的。在这种情况下,通过工程师的产品设计,把每一个特效都做的非常有意思,非常酷。

 

此外,除了考虑用户体验,工业界设计一个产品还会考虑其它方面。比如,当前把视觉,语音和相关的技术用在智能硬件上的时候,可能会想,到底这个产品是不是能满足某种高频的刚需?

 

我原来在新加坡每年写很多文章,一年写50、60篇的文章都有可能。那时候有一个很明显的特点,在写文章的时候我们会造一个场景,这个场景从用户需求来说,根本就不存在;从写文章的角度来说是有价值的,从产品的角度来说,不一定有价值。工业界还会考虑一款产品用到的技术有没有成熟?比如说家用机器人,可以端茶送水,可以聊天,这是不可能的,技术上还有一个过程。

 

另外,工业界还会考虑技术成熟了,但有没有壁垒?假设没有技术壁垒的话,今天做一个产品出来,比较前沿的大公司,都有专家团队,你把这个产品做出来立马又失掉了,技术上的壁垒也一定要有。

 

另外一方面,就是学术界想得最少的:我们做一个场景,一定要有变现的模式。没有一个变现的模式,我们的产品出来了,但是今后挣不了钱,也不可能让这个公司维系下去。这些都是工业界和学术界思考的点不一样的地方。

 

用四元分析来看学界和工业界的区别

 

总的来说,学界进行人工智能,深度学习的研究,一直是在追求精度和极限。用四元分析的方法来说就非常有意思,即我们的场景和数据确定了,然后设定一个问题,设定一个数据集,假设有足够多的计算机资源,怎么样设计新的算法,让精度能够达到极限?

 

我们知道有很多的数据集,比如ImageNet,号称人工智能的世界杯;人脸研究界有LFW(Labeled Faces in the Wild,人脸图片的数据库,用来研究不受限的人脸识别问题);在视频领域有美国组织的TRECVID;语音的话有Switchboard。他们共同特点就是:问题和数据都是确定的,用尽量多的计算机资源,去设计不同的算法,最终是希望达到精度的上限。

 

但是我们不得不承认,这里面很多的成果是没有办法商业化的。为什么?在ImageNet上,假设训练了1000多层的网络,把9个或更多网络全部合在一起能达成一个很好的精度,在现实的场景下是不可能用这么大的模型和这么多的资源去做一件事情。所以,很多的成果,是假设将来计算能力达到一定的程度,精度能够达到这个上限。

 

AI研究的另外一个维度是追求用户体验的极限。用四元分析的方法,是把场景和算力固定了。这是什么意思?假设我们要做一个机器人,这个机器人希望它能识别你,这时候场景是确定的。算力确定了是说,这个场景推出的时候,用什么样的芯片和什么样的硬件,其实已经确定了。我们要做的事情是在这样一个确定场景和算力的情况下,怎么样去提升数据和算法,跟具体的应用场景去形成一个闭环,去不断地迭代,去提升它的性能。这跟学术界把场景和数据固定是完全不一样。在这种场景下,可以不停的用收集到的新数据不停提升和优化模型,在数据,算法和场景形成一个闭环。虽然我们能把所有的问题解决,但是在具体的场景下,也有可能逐步地提升它的性能。

 

这时候做的事情很有意思,要做很多数据的清洗、标注。为了把产品的价格降低,比如用一个很差的CPU就能够去做计算,肯定要不停地去优化模型的速度。另一方面,很多时候,满足这种体验的需求会有一些新的问题出来。

 

如果我们仔细想一想,学术界多数做的事情是在思考,在想它的极限在哪,主要用脑;工业界并不是强调用脑,而是用心——就是怎么样能把这个场景做出来,并不一定要有非常高大上的算法,就是要从用户使用产品的维度上,让用户感觉这个产品非常好。

 

学术界和工业界又不是完全割裂的:工业界敢去提某一个产品的设想,是看到了在学术界有一些前沿的成果,可以在工业界来用。同时,工业界也在逐步提炼它的问题,扔给学术界,希望他们去做这种前沿的探索。比如说工业界可以想,三年、五年以后会往哪些方向去推动,他就可以把这些任务推给学术界。

 

现在有很多公司,在中国和在美国纷纷建立AI实验室,其实有两种目标。一方面是长期希望能瞄准将来前沿的领域,做技术的积累;另一方面是要追求产品更好的落地,所以现在很多公司就建起了自己人工智能的实验室。

 

在人工智能深度学习的研究,学术界和工业界的差别还是很大的,同时也相互作用,相互增强。学术界和工业界一起合作,研究和产业相结合,一定会把人工智能带上另外一个阶段。

 

本文系颜水成在最近某论坛的演讲整理稿,经本人确认。

 

关于作者:

颜水成是奇虎/360公司的首席科学家,新加坡国立大学Dean’s Chair副教授。他的研究领域包括机器学习,计算机视觉和多媒体。独自或与人合作撰写了几百篇文章,涉及广泛的研究题目。Google Scholar引用超过20,000次,H指数为66。他同时也是ISI 2014,2015,2016年的高被引研究者。

 

制版编辑: 许逸