Jeff Dean与David Patterson:不思考体系结构的深度学习研究者不是好工程师

今年 1 月,谷歌人工智能负责人 Jeff Dean(当时还是谷歌大脑负责人)与 2017 年图灵奖得主、体系结构巨擘 David Patterson(当时获奖结果尚未公布)联合发表了题为《计算机体系结构黄金时代:赋能机器学习革命》的文章。文章指出,机器学习算法正在革命性地着手解决人类社会最为巨大的一些挑战,因此,不难想象,在不远的将来,无论是数据中心还是终端设备,都将会出现专用于机器学习计算的硬件。这样的硬件会具有什么特性?在文章中,作者列出了一系列硬件设计者需要考虑到的关键问题,这些问题对深度学习研究者也十分具有启发性。

另一方面,在摩尔定律逐渐失效和深度学习的算力需求如无底洞般膨胀的今天,深度学习研究者们也在思考:能否改进算法以使其更适应计算硬件?能否帮助优化系统配置?在近日举行的首届「清华-谷歌 AI 学术研讨会」上,Jeff Dean 谈了谈「接下来我们希望设计什么样的模型」,来自谷歌大脑的研究员 Azalia Mirhoseini 则给出了主题演讲「如何用强化学习方法进行系统优化」。

谷歌人工智能负责人 Jeff Dean

如果将这几份工作联系起来,我们似乎就能看出,在深度学习这个 Arxiv 论文增速超越摩尔定律的领域里,谷歌大脑的研究者们如何同时思考软硬件问题以实现系统最佳性能与最佳效率。

「超越摩尔定律」的机器学习

在《黄金时代》论文里,Jeff 和 David 以谷歌开发的两代机器学习 ASIC(用于加速推理的 TPUv1 和用于加速训练的 TPUv2)为例,介绍了很多设计专用硬件的思路。进行硬件设计要着眼于至少 5 年后的模型:现在开始一款 ASIC 的设计,它大约可以在 2 年后投入使用,而一款专用硬件至少需要能够保持 3 年的竞争力才有价值。那么在这样的前提下,设计深度学习专用硬件要考虑哪些问题?在文章中,作者列出了六个这样的关键点,按照从「纯架构相关」到「纯机器学习算法相关」的顺序,分别是:训练、批规模、稀疏性与嵌入、参数量化与提炼、带有软记忆机制的神经网络以及元学习

训练

谷歌从 2013 年开始设计的第一代 TPU 是针对推理而非训练工作设计的,一定程度上是为训练设计硬件架构要更加困难:

  • 第一,训练的运算量是推理的 3 倍以上。

  • 第二,因为要将全部激活值存储以进行反向传播,训练过程所需的存储也远比推理高。

  • 最后,训练的可扩展性远不如推理,因为需要进行大量昂贵的序列计算。

但是,为训练设计 ASIC 是有价值的,因为研究者的时间是宝贵的而耐心是有限的,如果一次实验需要跑 30 天甚至更长,大概大多数人会选择放弃探索这个方向。

第二代 TPU 就面向训练开发。Jeff 在多次演讲中提到了一些 TPU v2 的成功应用案例,包括用四分之一个 pod 把谷歌的搜索排序模型的训练提速到 14.2 倍,把处理图片的模型训练提速到 9.8 倍等。

TPUv2 在谷歌内部的应用案例

而且,TPUv2 具有几乎是线性的扩展性,64 块 TPU 可以组成一个 TPU pod,提供最高 11.5 PFLOPS 的算力。用一块 TPUv2 把 ResNet-50 训练到 76% 准确度需要 1402 分钟,用二分之一个 pod(32 块 TPUv2)只需要 45 分钟(31.2 倍速)。

TPUv2 近乎线性可扩展

虽然 TPU 云价格不菲,但时间就是生命,生命就是金钱。另外,如果你是一位有志于机器学习研究并致力于开源自己的工作,谷歌正以 TensorFlow 研究云的形式向研究者免费提供一千块 TPU。

批规模(batch size

批量是越大越好还是越小越好?这是一个在研究上仍然有争议的问题。

直觉上,理想选择是带有动量的批规模为 1 的随机梯度下降(SGD with momentum at a minibatch size of 1),这时单位计算量带来的准确率提升最大。另外选择一个大于 1 的批规模相当于把输入维度直接提升了一维(Jeff 原话:一想到这儿我就头痛。)然而在当前用于训练的硬件中,以 GPU 为例,它执行程序时的基本单元,即每个 warp 包含 32 个线程(threads),因此如果你的批规模不是 32 的整数倍,将会导致效率降低,所以现行的模型通常都采用 32 或者 64 作为批规模。

批规模与计算效率

但是,从 2017 年开始,有一些看起来前景明朗的研究显示,我们可以用 8192 甚至 32768 作为批规模来高效训练用于图像的卷积神经网络

直到批规模上升到 8k 左右,验证集的错误率仍然能保持相对低的水平

source:Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour (1706.02677)

值得一提的是,Yann LeCun 对于增加批量持有强烈反对态度,他曾经在今年 4 月份转发一篇支持小批量的论文称,「用巨型批量做训练有害健康……选择 32 而不是 1 做批量只能说明我们的硬件很差劲。」

哦,8192 那篇论文是 Facebook 的工作,作者列表里包括 Ross Girshick,贾扬清,还有何恺明……

稀疏性与嵌入(Sparsity and Embeddings)

「我们想要更大的模型,但希望每一个样本只激活它的一小部分。」又是一个 Jeff 反复提到的趋势。

「我们想要什么样的模型?」

大模型是好的,因为巨大的参数量意味着我们可以记住数据集方方面面的特性。但是如果我们在处理每一个数据的时候都需要激活整个模型,这意味着巨大的计算成本。因此,最理想的状态是拥有一个可以分割成众多独立的小部分的庞大模型,每一部分都承担不同分工,当数据进入模型时,模型按任务需求激活少数几个部,让大部分保持闲置状态。这样的特性又可以称作「粗粒度稀疏性」。

粗粒度稀疏性

Source: Exploring the Regularity of Sparse Structure in Convolutional Neural Networks (1705.08922)

谷歌在 ICLR2017 的一篇论文上就提出了一个叫做混合专家层(MoE)的概念。每一个「专家」相当于神经网络中的一小撮参数,只不过比普通神经网络里的参数更容易训练,而一层由超过 2000 个专家组成。

MoE 层的结构

Source: Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (1701.06538)

训练过程中,除了学习模型参数,还要学习如何做路由选择(routing),即如何根据一个样本选择激活的「专家」。在语言任务里,模型学会了如何根据语境选择「专家」:专家 381 擅长谈论科学研究,专家 752 擅长「领导力」,如果涉及速度,那就交给专家 2004 吧。

路由选择学到了什么

Source: Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (1701.06538)

在英-法翻译任务里,相比于之前的 STOA 模型 GNMT,模型的规模上升了 35 倍,却可以用更少的 GPU 在六分之一的训练时间内完成。

相比于 MoE,应用更为广泛的动态路由的案例是嵌入机制。无论是将单词从数万维的独热向量映射到几百维的词嵌入,还是给每一个 YouTube 视频赋予一个数千维的、能够捕捉它与其他视频间关系的表征,都是一个需要为了一个样本,从庞大的数据结构(可能高达数百 G)中随机地读取非常少的数据(数十或数百字节,不到 1KB)。

现有硬件结构里还鲜有专门处理动态路由选择的高效读取的解决方案。

参数量化与提炼(Quantization and Distillation)

稀疏性和嵌入的共同点是保留「大模型」,而关注如何能精确定位到其中的「小部分」。参数量化与提炼则直接追求「小模型」。

参数量化的是低精度运算的另一种说法。

现在常见的做法是,在训练阶段采用浮点数,而在推理中采用定点数。例如在 TPU 的例子中,所有的推理只采用 8 比特定点数表达。其实现原理是在完成训练后,根据各层的参数和激活部分的最大值和最小值,找到表达其整数部分所需的最小比特数,用此表示,然后用 8 比特中剩下的部分表示其小数点后部分。实证研究显示,将精度从 32 比特降低到 8 比特,只会少量影响 GoogLeNet 和 VGG-16 的表现,但是如果继续下降到 6 比特,模型效果就会受到显著影响。

推理参数量化对精度的影响

Source: Going Deeper with Embedded FPGA Platform for Convolutional Neural Network

cadlab.cs.ucla.edu/~jaywang/papers/fpga16-cnn.pdf 

文中提到,只有很少的研究关注了如何在训练阶段采用低精度运算,大多数结果都仍然集中在 MNIST,CIFAR-10 等小数据集上。不过低精度训练也在逐渐获得更多关注,ICLR2018 上,百度和英伟达提出了「混合精度训练法」,在前向、后向计算中使用 FP16 运算,在权重更新时使用 FP32 计算,在 ImageNet 上的分类任务、Pascal VOC 2007 上的检测任务、WMT15 上的翻译任务等多个大型数据集的任务中,达到了使用 FP32 所获得的准确率,同时节省了算力需求和近半的存储需求。如今,英伟达已经给出了用混合精度进行训练的 SDK 范例。

提炼方法是 Hinton 在 NIPS2014 上提出的,试图以先让复杂模型进行学习分类问题,然后将最后一层 softmax 学到的软分类视为知识,训练简单模型以预测软分类。这样的方法得到的简单模型(层数更少、每层神经元更少)也能达到复杂模型同样的准确度。提炼方法让人们思考,是否能够直接训练小模型。小模型和大模型需要的专用硬件特性会截然不同,因此模型的发展方向也是硬件发展方向的重要影像因素。

带有软记忆机制的神经网络(Networks with Soft Memory)

这一部分强调的是一些对存储和存储访问有特殊需求的深度学习技巧,例如注意力机制。传统的记忆机制每次只要访问存储数据的表中的一个值,但是以注意力机制为代表的软记忆机制则需要对表内的所有值进行加权平均。

相比于特定运算的加速,当前问世的或已经进入开发周期后段的深度学习 ASIC 更强调数据流与存储的优化。原 Movidius CEO Remi El-Ouazzane 在谈论其视觉处理单元 VPU 的设计理念时提到,VPU 中的几乎所有架构设计都是为了同一个目标:优化数据流。在当前的终端深度学习计算中,用于数据传输的能量消耗是用于计算的 10 倍乃至更多,因此要使性能最大化并将功耗降至最低,唯一的方法就是增加数据的本地性,减少外部内存访问次数。致力于加速训练的 Intel Nervana NNP 的逻辑也是这样。

FPGA 的逻辑也是如此。大量的引脚和可以根据算法定制数据通路(datapath)的逻辑单元,让它不需要像 GPU 一样需要反复调取片外存储中的数据,理想状态时,只要数据一次性流进去再流出来,算法就完成了。

元学习(Learning to Learn, L2L)

深度学习相比于机器学习的「进步」,就是将人工选择的固定特征提取过程变成了机器选择的可训练特征提取过程。研究者只需要选择一系列基本模型结构和超参数,就可以由机器接手,进行特征提取和分布拟合。

在上述的五个部分里,无论模型采用什么结构、技巧,作出这些决策都仍然是人类的工作。而在元学习的设想里,人类的决策工作进一步被大量的计算和机器自动完成的实验所替代。

在自动机器学习技术的种种方法中,谷歌选择了强化学习的方法。模型的准确度被视为「奖励信号」。在获得了 ICLR2017 最佳论文的《用强化学习进行神经网络结构搜索》中,谷歌的研究员分别为 CIFAR-10 和 PTB 数据集搜索到了最佳的 CNN 和 LSTM RNN 结构。

普通 LSTM 结构和结构搜索出的结构

Source: Neural Architecture Search with Reinforcement Learning (1611.01578)

而事实上不只是模型结构,「用强化学习进行元学习」的思路适用于深度学习的方方面面:选择输入数据预处理路径,选择激活函数、选择优化与更新策略,以及,选择硬件配置。

本次谷歌大脑研究员 Azalia 的演讲就是以优化硬件配置为主题。传统的硬件配置多数以贪婪启发式方法为基础,需要工程师对硬件的方方面面,从算力到带宽,都有深刻的理解。而即便如此,随着模型越来越大,使用的设备越来越多,得到的配置方案也越来越难具有可泛化性。

谷歌大脑研究员 Azalia Mirhoseini

因此,将一种特定配置的收敛时间的期望作为奖励信号来将各运算分配到不同设备上,就变成了一个有吸引力的解决方案。算法学到了并不符合人类直觉的配置,但比专家设计出来的方案快 27.8%,节约近 65 个小时。

元学习得到的运算硬件配置以及效果

Source: Device Placement Optimization with Reinforcement Learning (1706.04972)

元学习指向的道路是让我们更高效地利用大规模的计算资源,同时「节省」机器学习专家的劳动力。除此之外,在这个深度学习算法和计算设备都在快速更新迭代的时期,元学习也奠定了快速进行软硬件结合的系统设计的基础。

将所有这些愿景综合起来,深度学习下一个阶段会以何种形式出现?

Jeff 在演讲中概括为:

  • 只是稀疏地激活的更为庞大的模型。

  • 能够解决多个任务的单一模型。

  • 在庞大的模型中动态地学习新路径,并不断增加新路径。

  • 专用于进行机器学习超算的硬件

  • 高效地配置在硬件上的机器学习模型。

紫色模块为新任务和为此而增加的新节点,加粗的红线表示用于解决新任务的新路径

你的研究思路是否有助于其中一个目标的实现?又是否将从这样的模型中获益?

无论答案是什么,确定的一件事情是:研究者、工程师、体系结构设计者,在当下,想要朝通用人工智能进攻的道路上前行,这些身份,一个都不能少。

产业Jeff DeanDavid Patterson硬件深度学习
3
相关数据
激活函数技术
Activation function

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

注意力机制技术
Attention mechanism

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

分类问题技术
Classification

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

收敛技术
Convergence

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

卷积神经网络技术
Convolutional neural network

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

超参数技术
Hyperparameter

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

逻辑技术
Logic

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

动量技术
Momentum

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

摩尔定律技术
Moore's law

摩尔定律是由英特尔创始人之一戈登·摩尔提出来的。其内容为:积体电路上可容纳的电晶体数目,约每隔两年便会增加一倍;经常被引用的“18个月”,是由英特尔首席执行官大卫·豪斯所说:预计18个月会将芯片的性能提高一倍。

神经元技术
neurons

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

元学习技术
Meta learning

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

强化学习技术
Reinforcement learning

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

随机梯度下降技术
Stochastic gradient descent

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

验证集技术
Validation set

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

词嵌入技术
Word embedding

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

批次规模技术
batch size

一个批次中的样本数。例如,SGD 的批次规模为 1,而小批次的规模通常介于 10 到 1000 之间。批次规模在训练和推断期间通常是固定的;不过,TensorFlow 允许使用动态批次规模。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

张量技术
Tensor

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

TensorFlow技术
TensorFlow

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

准确率技术
Accuracy

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

邱陆陆
邱陆陆

机器之心编辑

返回顶部