CN110809772A - 用于改进机器学习模型的优化的系统和方法 - Google Patents
用于改进机器学习模型的优化的系统和方法 Download PDFInfo
- Publication number
- CN110809772A CN110809772A CN201880044003.1A CN201880044003A CN110809772A CN 110809772 A CN110809772 A CN 110809772A CN 201880044003 A CN201880044003 A CN 201880044003A CN 110809772 A CN110809772 A CN 110809772A
- Authority
- CN
- China
- Prior art keywords
- computing devices
- computer
- implemented method
- power series
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000010801 machine learning Methods 0.000 title claims abstract description 54
- 238000005457 optimization Methods 0.000 title abstract description 25
- 238000012549 training Methods 0.000 claims abstract description 77
- 239000011159 matrix material Substances 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 27
- 238000013528 artificial neural network Methods 0.000 claims description 22
- 238000002474 experimental method Methods 0.000 description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003467 diminishing effect Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 235000009499 Vanilla fragrans Nutrition 0.000 description 1
- 244000263375 Vanilla tahitensis Species 0.000 description 1
- 235000012036 Vanilla tahitensis Nutrition 0.000 description 1
- 238000002679 ablation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011173 large scale experimental method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007170 pathology Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
一般地,本公开涉及用于改进机器学习模型的优化的系统和方法。具体地,本公开提供了随机优化算法,该随机优化算法比用于固定计算量的广泛使用的算法更快,并且还能够随着更多的计算资源变得可用而显著更好地扩展。随机优化算法可以与大的批量大小一起使用。作为示例,在一些实施方式中,本公开的系统和方法可以隐式地计算每个小批量训练数据的逆Hessian,以产生下降方向。
Description
技术领域
本公开总体上涉及机器学习。更具体地,本公开涉及用于改进机器学习模型(诸如,例如深度神经网络)的优化的系统和方法。
背景技术
机器学习(例如,深度学习)的进展因训练大型模型所需的天数或周数而放缓。使用更多硬件的自然解决方案受到收益递减的限制,并导致附加资源的低效使用。
训练深度神经网络的当前状态是,简单的小批量(mini-batch)优化器(诸如随机梯度下降(stochastic gradient descent,SGD)和动量优化器)以及对角自然梯度方法在实践中使用最多。随着分布式计算可用性增加,训练大型模型的总的实际时间(wall-time)已成为一个实质性的瓶颈,并且在不牺牲模型泛化的情况下降低总的实际时间的方法非常有价值。
在小批量SGD的最简单版本中,对小的示例集计算平均梯度,并朝负梯度方向采取步骤。原始SGD算法的收敛性有两个条件,其中之一取决于梯度估计的方差。然而在实践中,通过增加批量大小来降低方差通常会导致与批量大小成次线性(sublinear)的加速,以及降低泛化能力。
发明内容
本公开的实施例的方面和优点将在下面的描述中部分阐述,或者可以从描述中知晓,或者可以通过实施例的实践知晓。
本公开的一个示例方面针对计算机实施的方法。该方法包括由一个或多个计算设备访问一批量训练示例。该方法包括由一个或多个计算设备将该批量训练示例输入到机器学习模型中,以获得多个预测。机器学习模型包括多个参数。该方法包括由一个或多个计算设备使用Hessian矩阵的近似逆(approximate inverse)的幂级数展开来确定目标函数的下降方向,该目标函数评估相对于多个目标的多个预测。该方法包括由一个或多个计算设备至少部分基于所确定的下降方向来更新多个参数的一个或多个值。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定下降方向包括由一个或多个计算设备使用Hessian矩阵的近似逆的Neumann级数展开来确定下降方向。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定下降方向包括迭代地更新用于在所述一批量训练示例中包括的每个训练示例的Neumann迭代。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开包括由一个或多个计算设备仅对该批量使用Hessian矩阵的近似逆的幂级数展开。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定下降方向包括由一个或多个计算设备执行内部循环迭代,该内部循环迭代在不显式表示Hessian或计算Hessian向量乘积的情况下应用Hessian矩阵的近似逆。
在一些实施方式中,目标函数包括三次正则化项(cubic regularizer)和排斥正则化项(repulsive regularizer)中的一个或两个。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定下降方向包括由一个或多个计算设备确定与多个参数的一个或多个值当前位于的当前点不同的替代点处的梯度。
在一些实施方式中,由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定下降方向包括由一个或多个计算设备使用幂级数展开来求解线性系统。
在一些实施方式中,该方法还包括:针对多个附加批量的附加训练示例中的每一个附加批量的附加训练示例执行所述访问、输入、使用和更新。
在一些实施方式中,该方法还包括:在将该批量训练示例输入到机器学习模型中之前,对该机器学习模型执行随机梯度下降的多次迭代。
在一些实施方式中,机器学习模型包括神经网络。
本公开的另一示例方面针对计算机实施的方法。该方法包括一个或多个训练迭代。对于一个或多个训练迭代中的每一个,执行以下步骤。该方法包括通过一个或多个计算设备获得该批量训练示例。该方法包括由一个或多个计算设备将该批训练示例输入到机器学习模型中,以获得多个预测。机器学习模型包括多个参数。该方法包括由一个或多个计算设备确定评估相对于多个目标的多个预测的目标函数的导数。该方法包括由一个或多个计算设备至少部分基于目标函数的导数来确定更新。该方法包括由一个或多个计算设备至少部分基于更新来更新幂级数迭代。该方法包括由一个或多个计算设备至少部分基于更新的幂级数迭代来更新多个参数的一个或多个值。
在一些实施方式中,幂级数迭代是Neumann迭代。
在一些实施方式中,该方法还包括由一个或多个计算设备至少部分基于多个参数的更新值来更新多个参数的移动平均值。
在一些实施方式中,由一个或多个计算设备至少部分基于目标函数的导数来确定更新包括由一个或多个计算设备至少部分基于目标函数的导数并且至少部分基于一个或多个正则化项来确定更新。
在一些实施方式中,一个或多个正则化项包括三次正则化项和排斥正则化项中的一个或两个。
在一些实施方式中,由一个或多个计算设备至少部分基于目标函数的导数来确定更新包括由一个或多个计算设备至少部分基于目标函数的导数并且至少部分基于多个参数的移动平均值来确定更新。
在一些实施方式中,由一个或多个计算设备至少部分基于更新来更新幂级数迭代包括由一个或多个计算设备设置幂级数迭代等于:前一迭代幂级数迭代乘以动量参数减去该更新乘以学习速率参数。
在一些实施方式中,由一个或多个计算设备更新多个参数的一个或多个值包括由一个或多个计算设备将多个参数的值设置为等于:值的前一迭代集加上更新的幂级数迭代乘以动量参数减去该更新乘以学习速率参数。
在一些实施方式中,该方法还包括由一个或多个计算设备返回多个参数的值的最终集。
在一些实施方式中,多个参数的值的最终集等于多个参数的值的最近更新集减去最近幂级数迭代乘以动量参数。
在一些实施方式中,该方法还可以包括由一个或多个计算设备周期性地重置幂级数迭代值。
在一些实施方式中,机器学习模型包括神经网络。
在一些实施方式中,该批量训练示例包括超过16000个训练示例。
在一些实施方式中,该批量训练示例包括至少32000个训练示例。
本公开的另一示例方面涉及一种计算机系统,该计算机系统包括一个或多个处理器和一个或多个非暂时性计算机可读介质,该一个或多个非暂时性计算机可读介质共同存储指令,当该指令被一个或多个处理器执行时,使得计算机系统执行本文描述的一个或多个方法。
本公开的另一示例方面针对一个或多个非暂时性计算机可读介质,该一个或多个非暂时性计算机可读介质共同存储指令,当指令被一个或多个处理器执行时,使得计算机系统执行本文描述的一个或多个方法。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户界面和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。结合在本说明书中并构成其一部分的附图示出了本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1A-图1B描绘了根据本公开的示例实施例的对Inception V3的示例训练和评估曲线。
图2A-图2C描绘了根据本公开的示例实施例的Neumann优化器与手动调整优化器在不同图像网(ImageNet)模型上的示例比较。
图3A-图3B描绘了根据本公开的示例实施例的Neumann优化器相对于具有动量的SGD的示例缩放特性。
图4A描绘了根据本公开的示例实施例的示例计算系统的框图。
图4B描绘了根据本公开的示例实施例的示例计算设备的框图。
图4C描绘了根据本公开的示例实施例的示例计算设备的框图。
图5描绘了根据本公开的示例实施例的训练机器学习模型的示例方法的流程图。
图6描绘了根据本公开的示例实施例的训练机器学习模型的示例方法的流程图。
图7描绘了根据本公开的示例实施例的训练机器学习模型的示例方法的流程图。
在多个图中重复的参考数字旨在标识不同实施方式中的相同特征。
具体实施方式
1.概述
一般地,本公开涉及用于改进机器学习模型的优化的系统和方法。具体地,本公开提供了随机优化算法,该随机优化算法比用于固定计算量的广泛使用的算法更快,并且还能够随着更多的计算资源变得可用而显著更好地扩展。随机优化算法可以与大的批量大小一起使用。作为示例,在一些实施方式中,本公开的系统和方法可以隐式地计算每个小批量训练数据的逆Hessian,以产生下降方向。这可以在没有对Hessian或Hessian向量乘积的显式近似的情况下完成。提供了示例实验,其通过成功地使用高达32000个的小批量大小来训练大型图像网模型(例如,Inception-V3、Resnet-50、Resnet-101和Inception-Resnet-V2),相对于当前基线没有验证误差的损失并且步骤总数没有增加,来证明了本文所述算法的示例实施方式的有效性。在较小的小批量大小情况下,本公开的系统和方法将这些模型中的验证误差改进了0.8-0.9%。或者,可以对这种精度进行权衡(traded off),以减少大约10-30%的所需训练步骤的数量。本文描述的系统和方法是实用的,并且容易被其他人使用。在一些实施方式中,只有一个超参数(例如,学习速率)需要调整。此外,在一些实施方式中,本文描述的算法与常用的Adam优化器一样计算成本低廉。因此,本公开的系统和方法提供了许多技术效果和益处,包括更快的训练和/或改进的模型性能。换句话说,可以使用更少的计算资源来训练模型,从而节省诸如处理能力、存储器空间等计算资源。
更具体地说,训练深度神经网络的当前状态是,简单的小批量优化器(诸如随机梯度下降(SGD)和动量优化器)以及对角自然梯度方法在实践中使用最多。随着分布式计算可用性增加,训练大型模型的总的实际时间已成为一个实质性的瓶颈,并且在不牺牲模型泛化的情况下降低总的实际时间的方法非常有价值。
在小批量SGD的最简单版本中,对小的示例集计算平均损失梯度,并朝负梯度方向采取步骤。原始SGD算法的收敛性有两个条件,其中之一取决于梯度估计的方差。在实践中,通过增加批量大小来减小方差会受到收益递减的影响,这通常会导致与批量大小成次线性的加速,并且更糟糕的是,泛化性能下降。
本公开提供了系统和方法,在一些实施方式中,其经由使用二阶信息(例如,有限的二阶信息)的新颖随机优化算法而无需Hessian矩阵的显式近似或者甚至Hessian向量乘积,来求解具有减少的实际时间的训练问题。在一些实施方式中,对每个小批量,本公开的系统和方法可以通过求解中间优化问题并对小批量的Hessian进行求逆来计算下降方向。
用Hessian矩阵进行显式计算极其昂贵。因此,本公开提供了一种内部循环迭代,其应用Hessian逆,而不显式表示Hessian或者计算Hessian向量乘积。在一些实施方式中,这种迭代的一个关键方面是矩阵逆的Neumann级数展开以及允许Hessian的每次出现被单个梯度评估代替的观察。
对图像网数据集使用真实模型(例如,Inception-V3、Resnet-50、Resnet-101、Inception-Resnet-V2)进行了大规模实验。本文提供了这些示例实验的结果。
与最近的工作相比,本文描述的系统和方法的示例实施方式具有有利的缩放特性。与基线相比,在保持甚至改进模型质量的同时,能够获得对高达32000个的批量大小的线性加速。此外,当使用较小的小批量运行时,本公开的示例实施方式能够将所有测试模型中的验证误差改进0.8-0.9%。或者,可以保持基线模型质量,同时使步骤数量减少10-30%。
因此,本公开提供了用于训练机器学习模型(例如,深度神经网络)的优化算法(例如,大批量优化算法)。粗略地说,在一些实施方式中,本公开的系统和方法隐式地对单独的小批量的Hessian求逆。本文描述的某些示例算法高速实用,并且在一些实施方式中,唯一需要调整的超参数是学习速率。实验表明,优化器的示例实施方式能够处理高达32000个的非常大的小批量大小,而相对于被训练以收敛的当前模型,质量没有任何下降。有趣的是,在较小的小批量大小时,优化器的示例实施方式能够产生更好地泛化的模型,并将在各种架构中第一名(top-1)的验证误差改进0.8-0.9%,而分类损失不会随之下降。
将进一步详细讨论本公开的示例实施例。
2.示例算法
令是机器学习模型的输入,诸如具有一些权重的神经网络g(x,w):该神经网络被训练来学习预测可以是离散或连续的目标可以通过最小化损失函数来训练该网络以做到这一点,其中x是从数据分布中抽取的,并且l是每个样本损失函数。因此,目的是求解优化问题
如果不知道真实的数据分布(这在实践中经常发生),将用经验损失来代替预期损失。给定N个训练样本集(x1,y1),(x2,y2),…,(xN,yN)},令fi(w)=l(yi,g(xi,w))是特定样本xi的损失。则要求解的问题是
本公开提供的一个示例算法如下工作:对每个小批量,形成如等式(2)中的单独的二次子问题。这些子问题可以使用第2.1节中描述的迭代方案来求解。不幸的是,这个迭代方案的简单应用需要Hessian矩阵;第2.2节示出了如何避免这种挑战。在第3节中描述对算法的实践性修改。
2.1Neumann级数
存在许多可以求解等式(3)中线性系统的方法。Hessian矩阵的显式表示极其昂贵;因此,第一尝试可能是使用Hessian向量乘积来代替。这种策略可以使用经由Pearlmutter技巧有效计算的Hessian向量乘积来应用共轭梯度或Lanczos类型迭代,以直接最小化二次型。在这个想法的初步实验中,Hessian向量乘积的成本压倒了从更好下降方向的任何改进。因此,本公开的各方面采取甚至更间接的方法,甚至避开Hessian向量乘积。
本文描述的某些示例方法的核心在于用于求解线性系统的近似逆的幂级数展开。具体地,本公开的各方面使用矩阵逆的Neumann幂级数-给定矩阵A,矩阵A的特征值λ(A)满足0<λ(A)<1,则由下式给出逆:
进行变量代换(substitution)r=(In-A),这是几何级数(1-r)-1=1+r+r2+…。使用此,线性系统Az=b可以经由递归关系来求解
z0=b,zt+1=(In-A)zt+b, (4)
其中可以容易地示出zt→A-1b。这是Richaardson迭代(Varga,Richard S.Matrixiterative analysis,volume 27.Springer Science&Business Media,2009),并且相当于二次目标上的梯度下降。
2.2小批量的二次近似
是在特定步骤中被优化的函数。类似于等式(2),小批量的随机二次近似可以形成为:
和以前一样,可以通过求解线性系统来计算下降方向,但是现在,线性系统只在小批量上。为此,可以使用等式(4)中的Neumann级数。假设Hessian是正定的(第3.1节示出了如何移除正定的假设),并有运算符范数边界设置η<1/λmax,可以通过将zt=mt,和代入等式(4)中来定义Neumann迭代mt:
梯度传输的这种想法是本公开的新颖贡献之一,从而以实用的方式使用二阶信息以用于优化。通过在不是当前权重的点处仅使用一阶信息,曲率信息可以以无矩阵(matrix-free)的方式并入。这种近似是使用缓慢收敛的Neumann级数的主要原因—它允许极其廉价地并入二阶信息。理想化的Neumann算法示例如下:
示例算法1理想化的两个循环(Two-Loop)Neumann优化器
在一些实施方式中,可以使用两种不同的学习速率—内部循环学习速率和外部循环学习速率—来代替算法1中所示的单个学习速率。
下面将进一步讨论等式(6)的实际解决方案。然而,鉴于以上描述,本文所述的技术与典型的随机拟Newton(quasi-Newton)算法之间的差异如下:在理想化的随机拟Newton算法中,人们希望对总损失的进行近似,并且然后对其求逆以获得下降方向另一方面,本公开的各方面满足于仅对小批量近似Hessian以获得下降方向这两个量根本不同,即使在预期中也是如此,因为在Hessian和梯度估计两者中批量的存在导致不考虑(factor)乘积。人们可以认为随机拟Newton算法试图通过使用关于总目标的二阶信息来找到最佳下降方向,而本文描述的某些算法试图通过使用小批量隐含的二阶信息来找到下降方向。虽然在文献中很好地理解了试图使用基于小批量的曲率信息是不可取的,但是通过注意到曲率信息仅来自梯度评估,并且在大批量设置中,梯度具有比Hessian更好的浓度特性来证明本方法是合理的。
本文献中使用了两种循环结构,诸如算法1中包含的循环结构。然而,人们通常求解在内部循环中的困难的凸优化问题。相比之下,算法1求解内部循环中更简单的线性系统。
这里,本公开转到了构建适用于大规模深度神经网络的优化器的被更差地定义的问题上,而不是使用对平滑性和强凸性的标准假设来导出收敛速度。
3.用于诸如神经网络的机器学习模型的示例优化器
与Neumann优化器相关联的一些实际问题是:
1.假设预期的Hessian是正定的,并且更进一步,关于每个小批量的Hessian也是正定的。
2.存在多个超参数,该超参数显著地影响优化学习,包括(多个)速率η、内部循环迭代以及批量大小。
将引入用于突出问题的两种单独的技术—一种用于总Hessian,并且一种用于小批量Hessian,并且超参数的数量将减少到只有学习速率。
3.1凸化
在确定性设置中,可以通过三次正则化来处理目标中的非凸性:在目标函数中添加正则化项其中α是标量(scalar)超参数权重。已示出,在温和假设下,在正则化目标上的梯度下降收敛到二阶固定点(即定理3.1)。三次正则化方法属于广泛类别的信任区域方法。这个项对于理论上保证收敛到临界点是至关重要的。
在一些实施方式中,本公开向目标添加两个正则化项-三次正则化项和斥力正则化项β/‖w-vt‖,其中vt是参数在优化过程中的指数移动平均值。这两个项彼此对立—三次项是吸引的,并且会阻止对参数的较大更新,尤其是在学习速率为高时(在训练的初始部分),而第二个项会添加排斥力,并在学习速率变小时(在训练结束时)开始占主导地位。正则化目标是并且它的梯度是
即使预期的Hessian是正定的,这并不意味着单独批量的Hessian它们本身也是正定的。这造成了很大的困难,因为中间二次型变得无界,并且在负特征值的子空间跨度中具有任意最小值。假设Hessian的特征值满足则定义系数如下:
尚不清楚矩阵将产生良好的下降方向的先验,但如果|λmin|比λmax更小,则扰动不会影响Hessian超出简单的缩放比例。在稍后的训练中就是这种情况,但为了验证这一点,进行了一项实验,其中使用Lanczos算法计算了极小批量Hessian特征值。在训练的轨迹上,出现以下定性行为:最初,存在许多大的负特征值;在优化过程期间,这些大的负特征值在幅度上朝向零减小;同时,在优化过程中,最大的正特征值不断增加(几乎呈线性增加)。
这验证了小批量凸化例程。原则上,三次正则化项是多余的—如果每个小批量都是凸的,则整个问题也是凸的。但是由于λmin和λmax只是粗略估计的,所以三次正则化项确保凸性,又不会对中的Hessian产生过大的失真。基于实验研究中的发现,使用了以下设置:和η∝1/t。
3.2运行优化器:SGD老化(Burn)和内部循环迭代
现在提出了对理想化的Neumann算法的一些示例调整,以改进训练的性能和稳定性。作为第一种改变,在开始时执行非常短的阶段的朴素SGD(vanilla SGD)。与其他优化算法相比,SGD通常对初始化的病态(pathology)更具鲁棒性。
接下来,还有一个开放的问题,即需要进行多少次内部循环迭代。实验已经得出的经验是,重复使用小批量返回的边际收益会显著下降。深度网络具有大约几百万个参数,并且即使最大的小批量大小也常常少于五万个示例。因此,人们不能希望依赖来自每个小批量的非常细粒度的信息。从效率的角度来看,内部循环迭代的数量应保持相对较低;另一方面,这导致算法退化为SGD式(SGD-esque)迭代,其中内部循环下降方向mt从未真正有用。
可以如下求解该问题:代替冻结小批量并且然后在内部循环的每次迭代中相对于该小批量计算梯度,我们在内部循环的每次迭代中计算随机梯度。人们可以认为这是求解内部循环中的随机优化子问题,而不是求解确定性优化问题。这种小的改变在实践中是有效的,并且也免除了必须仔细选择内部循环迭代的数量—代替必须仔细平衡内部循环中优化质量的考虑和对特定小批量的过度拟合,优化器现在对内部循环迭代的数量变得相对不敏感。选择了加倍时间表(doubling schedule)用于实验,但是线性时间表(例如,如算法2所呈现的)工作同样良好。另外,由于内部和外部循环更新现在是相同的,因此可以应用单个学习速率η(而不是针对内部循环和外部循环替代使用两种不同的速率)。
最后,存在如何为算法设置小批量大小的问题。由于一个目标是从小批量中提取二阶信息,一种可能的解释是Neumann优化器更好地适合大批量设置,并且小批量大小应该尽可能大。第4节提供了对这一假设的实验证据。
示例算法2Neumann优化器。
学习速率η(t)、三次正则化项α、排斥正则化项β、动量μ(t)、移动平均值参数γ、内部循环迭代K
作为实施方式的简化,在一些实施方式中,算法2中保持的wt实际上是等式(7)中的位移参数(displaced parameters)(wt+μmt)。然后这种轻微的符号变化允许我们可以“扁平化(flatten)”两个循环结构,而无需改变底层迭代。在表1中,编译了适用于各种模型的示例超参数列表(我们在大型和小型模型两者上进行的所有实验均使用这些值):用户唯一需要选择的是学习速率。
表1:超参数的概述。
4.示例实验
优化器在用于图像分类的几个大型卷积神经网络上进行了实验评估。虽然在较小数据集(CIFS-10和CIFS-100)上的实验是成功的,无需任何超参数修改,但仅针对图像网数据集报告结果。
在分布式基础架构中的Tesla P100 GPU上以Tensorflow运行实验。为了抽象化分布式系统中固有的可变性(诸如网络通信量、工作负载、抢占等),使用训练轮次作为时间的概念。因为将相同的计算量和存储器量用作Adam优化器(Diederik Kingma and JimmyBa.Adam:Amethod for stochastic optimization.International Conference forLearning Representations,2015),因此步长时间(step time)与常用的优化器相当。标准的Inception数据增强(Szegedy et al.,Inception-v4,inception-resnet and theimpact of residual connections on learning.In AAAI,pp.4278–4284,2017)用于所有模型。Inception-V3和Inception-Resnet-V2模型使用的输入图像大小为299×299,并且所有Resnet模型使用的输入图像大小为224×224。评估指标使用单个裁剪(crop)进行测量。
Neumann优化器似乎对不同的初始化和轨迹都具有鲁棒性。具体地,最终评估指标是稳定的,并且在每次运行(run to run)中没有显著变化,因此贯穿该实验结果部分呈现来自单次运行的结果。
4.1固定小批量大小:更好的精度或者更快的训练
首先,将Neumann优化器与固定小批量大小的标准优化算法进行比较。为此,对于基线,训练Inception-V3模型(Szegedy et al.,Rethinking the inceptionarchitecture for computer vision.In Proceedings of the IEEE Conference onComputer Vision and Pattern Recognition,pp.2818–2826,2016.)、a Resnet-50和Resnet-101(He et al.,Deep residual learning for image recognition.InProceedings of the IEEE conference on computer vision and patternrecognition,pp.770–778,2016a和He et al.,Identity mappings in deep residualnetworks.In European Conference on Computer Vision,pp.630–645.Springer,2016b.)、以及最后Inception-Resnet-V2(Szegedy et al.,Inception-v4,inception-resnet and the impact of residual connections on learning.In AAAI,pp.4278–4284,2017)。以同步的方式使用RMSProp优化器,另外将小批量大小(从32个)增加到64个以适应现代硬件,来如在他们各自的论文中那样训练Inception-V3和Inception-Resnet-V2模型。使用具有动量为0.9并且学习速率为0.045(该学习速率每两个轮次以因子0.94衰减)的SGD以异步方式用32个的小批量大小来训练Resnet-50和Resnet-101模型。在所有情况下,使用了50个GPU。当同步训练时,学习速率在5个轮次的初始老化时段后线性缩放,在此时段,我们缓慢提高学习速率,并且每40个轮次以因子0.3衰减(这与异步设置的时间表类似,因为0.9420≈0.3)。此外,运行Adam是为了与流行的基线算法进行比较。
表2:最终第一名验证误差
优化器根据最终测试精度(第一名验证误差)和达到固定精度所需的轮次的数量进行评估。图1A-图1B提供了与基线RMSProp相比,Inception V3的训练曲线和测试误差。
一些显著特征如下:第一,分类损失(主交叉熵损失和辅头部损失(auxiliaryhead loss)的总和)没有得到改进,并且第二,训练早期存在振荡,这也在评估中表现出来。振荡相当令人不安,并且假设它们源于超参数μ的轻微不规范,但是所有被训练的模型似乎对这些振荡都表现出鲁棒性。缺乏对分类损失改进是有趣的,尤其是因为评估误差被改进了0.8-0.9%的不小增量。这种改进在我们所有的模型中都是一致的(见表2和图2A-图2C)。图2A-图2C提供了示例图表,其在不同图像网模型上比较了Neumann优化器和手动调整优化器。当从调整良好的优化器改变时,获得这种质量的改进是不寻常的。
这种泛化的改进也可以被权衡,以用于更快的训练:如果人们满足于获得先前的基线验证误差,则人们为了更少的步骤可以简单地运行Neumann优化器。这在保持当前基线精度的同时产生了10-30%的加速。
在这些大规模的图像分类模型上,与Neumann优化器和RMSProp两者相比,Adam表现出较差的性能。这反映了一种理解,即架构和算法相互调整以获得最佳性能。在本节的剩余部分,Neumann优化器将仅与RMSProp进行比较。
4.2在非常大的批量大小时的线性缩放
之前,假设本文描述的方法能够有效地使用大批量。如图3B和表3所示,通过在越来越大的批量上训练Resnet-50(使用与第4.1节相同的学习速率时间表)来研究这一点。每个GPU可以处理32个示例的小批量,因此例如,8000个的批量大小意味着250个GPU。对于16000个和32000个的批量大小,我们使用了250个图形处理器,每个处理器在应用任何更新之前对模型及其梯度进行多次评估。
图3A-图3B提供了示出Neumann优化器相对于具有动量的SGD的缩放特性的示例图表。
Neumann优化器算法可以缩放到非常大的小批量:多达32000个的小批量大小,性能仍优于基线。因此,Neumann优化器是在保持模型质量的同时利用大的小批量大小的新的最先进的技术。与Goyal等人(Accurate,large minibatch sgd:Training imagenet in1hour.arXiv preprint arXiv:1706.02677,2017.)相比,它可以利用4倍(4x)更大的小批量;与You等人(Scaling sgd batch size to 32k for imagenet training.arXivpreprint arXiv:1708.03888,2017a and Imagenet training in 24minutes.arXivpreprint arXiv:1709.05011,2017b)相比,它使用相同的小批量大小,但与基线精度相匹配,而You等人遭遇了0.4-0.7%的下降。
表3:我们的优化器在Resnet-50上的缩放性能
4.3正则化的效果
通过执行消融实验(将α和β设置为0),研究了正则化的效果。在表4中总结主要发现。可以看出,正则化改进了验证性能,但是即使没有正则化,仅仅运行Neumann优化器也能改进性能。
表4:正则化的效果-Resnet-50,批量大小4000
方法 | 第一名误差 |
基线 | 24.3% |
Neumann(没有正规化) | 23.5% |
Neumann(具有正则化) | 23.0% |
5.示例设备和系统
图4A描绘了根据本公开的示例实施例的包括机器学习模型的示例计算系统100的框图。系统100包括通过网络180通信耦合的用户计算设备102、服务器计算系统130和训练计算系统150。
用户计算设备102可以是任何类型的计算设备,诸如,例如个人计算设备(例如膝上型或台式)、移动计算设备(例如智能电话或平板电脑)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等及其组合。存储器114可以存储数据116和由处理器112执行的指令118,以使用户计算设备102执行操作。
用户计算设备102可以存储或包括一个或多个机器学习模型120。例如,机器学习模型120可以是或可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度神经网络)、其他多层非线性模型或其他模型。神经网络可以包括递归神经网络(例如,长短期记忆递归神经网络)、前馈神经网络、卷积神经网络或其他形式的神经网络。虽然本公开是特别参考神经网络来讨论的,但是本公开可适用于所有类型的机器学习模型,包括但不限于神经网络。
在一些实施方式中,一个或多个机器学习模型120可以通过网络180从服务器计算系统130接收,存储在用户计算设备存储器114中,并且由一个或多个处理器112使用或以其他方式实施。在一些实施方式中,用户计算设备102可以实施单个机器学习模型120的多个并行实例。
附加地或替代地,一个或多个机器学习模型140可以被包括在根据客户端-服务器关系与用户计算设备102通信的服务器计算系统130中,或者以其他方式被服务器计算系统130存储和实施。例如,机器学习模型140可以由服务器计算系统140实施为网络服务的一部分。因此,一个或多个模型120可以在用户计算设备102处存储和实施,和/或一个或多个模型140可以在服务器计算系统130处存储和实施。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实施虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘、或用户可以通过其输入通信的其他装置。
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等及其组合。存储器134可以存储由处理器132执行的指令138和数据136,以使服务器计算系统130执行操作。
在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或者以其他方式由一个或多个服务器计算设备实施。在服务器计算系统130包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构、或它们的一些组合来操作。
如上所述,服务器计算系统130可以存储或以其他方式包括一个或多个机器学习模型140。例如,模型140可以是或可以以其他方式包括各种机器学习模型,诸如神经网络(例如深度神经网络)、其他多层非线性模型或其他模型。
服务器计算系统130可以经由与通过网络180通信耦合的训练计算系统150的交互来训练模型140。训练计算系统150可以与服务器计算系统130分离,或者可以是服务器计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等及其组合。存储器154可以存储由处理器152执行的指令158和数据156,以使训练计算系统150执行操作。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或者以其他方式由一个或多个服务器计算设备来实施。
训练计算系统150可以包括模型训练器160,模型训练器160使用各种训练或学习技术(诸如,例如误差的反向传播)来训练机器学习模型120或140。在一些实施方式中,执行误差的反向传播可以包括随着时间的推移执行截断的反向传播。模型训练器160可以执行多种泛化技术(例如,权重衰减、缺失等)来改进被训练模型的泛化能力。
具体地,模型训练器160可以基于训练数据集142训练机器学习模型120或140。训练数据142可以包括例如多批量训练示例。在一些实施方式中,每个训练示例可以具有与之相关联的目标答案。
在一些实施方式中,模型训练器160可以使用本文描述的方法、技术和/或算法(例如,方法200、300和/或400、算法1和/或2等)来训练模型120或140。
模型训练器160包括用于提供期望功能的计算机逻辑。模型训练器160可以以控制通用处理器的硬件、固件和/或软件来实施。例如,在一些实施方式中,模型训练器160包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,诸如RAM硬盘或光学或磁性介质。在一些实施方式中,模型训练器(例如,包括执行本文描述的优化技术)可以作为服务提供,作为使用户能够接收机器学习服务的更大机器学习平台的一部分。
网络180可以是任何类型的通信网络,诸如局域网(例如内联网)、广域网(例如因特网)或它们的一些组合,并且可以包括任何数量的有线或无线链路。一般地,可以使用各种各样的通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)、和/或保护方案(例如,VPN、安全HTTP、SSL),经由任何类型的有线和/或无线连接来承载网络180上的通信。
图4A示出了可用于实施本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实施方式中,用户计算设备102可以包括模型训练器160和训练数据集162。在这样的实施方式中,模型120可以在用户计算设备102处被本地地训练和使用。在这样的实施方式中的一些中,用户计算设备102可以实施模型训练器160,以基于用户特定的数据个性化模型120。
图4B描绘了根据本公开的示例实施例而执行的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
计算设备10包括多个应用(例如,应用1至N)。每个应用包含自己的机器学习库和(多个)机器学习模型。例如,每个应用可以包括机器学习模型。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等
如图4B所示,每个应用可以与计算设备的多个其他组件通信,例如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,每个应用可以使用API(例如,公共API)与每个设备组件通信。在一些实施方式中,由每个应用使用的API是特定于该应用的。
图4C描绘了根据本公开的示例实施例而执行的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
计算设备50包括多个应用(例如,应用1至N)。每个应用与中央智能层通信。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。在一些实施方式中,每个应用可以使用API(例如,所有应用的公共API)与中央智能层(以及存储在其中的(多个)模型)通信。
中央智能层包括多个机器学习模型。例如,如图4C所示,可以为每个应用提供相应的机器学习模型(例如,模型),并由中央智能层管理机器学习模型。在其他实施方式中,两个或多个应用可以共享单个机器学习模型。例如,在一些实施方式中,中央智能层可以为所有应用提供单个模型(例如,单个模型)。在一些实施方式中,中央智能层被包括在计算设备50的操作系统内或者以其他方式由计算设备50的操作系统实施。
中央智能层可以与中央设备数据层通信。中央设备数据层可以是计算设备50的中央数据储存库。如图4C所示,中央设备数据层可以与计算设备的多个其他组件通信,诸如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,中央设备数据层可以使用API(例如,专用API)与每个设备组件通信。
6.示例方法
图5描绘了根据本公开的示例实施例而执行的示例方法的流程图。尽管为了说明和讨论的目的,图5描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。方法200的各种步骤可以以各种方式被省略、重新排列、组合和/或调整,而不脱离本公开的范围。
在202,计算系统可以访问一批量训练示例。
在204,计算系统可以将该批量训练示例输入到机器学习模型中,以获得多个预测。该机器学习模型可以包括多个参数。
在206,计算系统可以使用Hessian矩阵的近似逆的幂级数展开来确定目标函数的下降方向,其中该目标函数评估相对于多个目标的多个预测。
在208,计算系统可以至少部分基于所确定的下降方向来更新多个参数的一个或多个值。
图6描绘了根据本公开的示例实施例而执行的示例方法的流程图。尽管为了说明和讨论的目的,图6描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。方法300的各种步骤可以以各种方式被省略、重新排列、组合和/或调整,而不脱离本公开的范围。
在302,计算系统访问一批量训练示例。
在304,计算系统确定目标函数的导数,并将所确定的值设置为初始幂级数迭代值。
在306,计算系统获得该批量中的下一个训练示例。
在308,计算系统至少部分基于目标函数在除了模型的参数当前位于的位置之外的点处的导数来更新幂级数迭代。例如,在一些实施方式中,通过在不是当前参数值的点处仅使用一阶信息,计算系统可以以无矩阵的方式合并曲率信息。
在310,计算系统确定该批量中是否包括附加的训练示例。如果是,则该方法返回306。如果该批量中没有剩余附加的训练示例,则该方法前进到312。
在312,计算系统至少部分基于最终幂级数迭代值来更新参数值。
在314,计算系统确定附加的训练示例批量是否可用和/或被期望。如果是,该方法返回302。如果附加的批量不可用和/或不被期望,则该方法进行到316。
在316,计算系统返回最终参数值。
图7描绘了根据本公开的示例实施例而执行的示例方法的流程图。尽管为了说明和讨论的目的,图7描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。方法400的各种步骤可以以各种方式被省略、重新排列、组合和/或调整,而不脱离本公开的范围。
在402,计算系统可以访问一批量训练示例。
在404,计算系统可以将该批量训练示例输入到机器学习模型中,以获得多个预测。该机器学习模型可以包括多个参数。
在406,计算系统可以确定评估相对于多个目标的多个预测的目标函数的导数。
在408,计算系统可以至少部分基于目标函数的导数来确定更新。
在410,计算系统可以至少部分基于该更新来更新幂级数迭代。
在412,计算系统可以至少部分基于更新的幂级数迭代来更新多个参数的一个或多个值。
在414,计算系统可以至少部分基于多个参数的更新值来更新多个参数的移动平均值。
在416,计算系统可以确定附加的训练示例批量是否可用和/或被期望。如果是,该方法返回402。如果附加的批量不可用和/或不被期望,则该方法进行到418。
在418,计算系统返回最终参数集。
7.附加公开
本文讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作和发送到这些系统和从这些系统接收的信息。基于计算机的系统固有的灵活性允许各种可能的配置、组合以及组件之间任务和功能的划分。例如,本文讨论的过程可以使用单个设备或组件或者组合工作的多个设备或组件来实施。数据库和应用可以在单个系统上实施,也可以分布在多个系统上。分布式组件可以顺序或并行运行。
尽管已经针对本发明的各种具体示例实施例详细描述了本发明,但是每个示例都是通过解释的方式提供的,而不是对本公开的限制。本领域技术人员在理解前述内容后,可以容易地产生对这些实施例的改变、变化和等同物。因此,本主题公开不排除包括对本主题的这种变更、变化和/或添加,这对本领域普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用,以产生又一个实施例。因此,本公开旨在覆盖这些变更、变化和等同物。
Claims (27)
1.一种计算机实施的方法,所述方法包括:
由一个或多个计算设备访问一批量训练示例;
由一个或多个计算设备将所述一批量训练示例输入到机器学习模型中以获得多个预测,其中所述机器学习模型包括多个参数;
由一个或多个计算设备使用Hessian矩阵的近似逆的幂级数展开来确定目标函数的下降方向,所述目标函数评估相对于多个目标的多个预测;以及
由一个或多个计算设备至少部分基于所确定的下降方向来更新所述多个参数的一个或多个值。
2.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开来确定下降方向包括:由一个或多个计算设备使用所述Hessian矩阵的近似逆的Neumann级数展开来确定下降方向。
3.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开来确定下降方向包括:迭代地更新用于在所述一批量训练示例中包括的每个训练示例的Neumann迭代。
4.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开包括:由一个或多个计算设备仅对所述一批量使用所述Hessian矩阵的近似逆的幂级数展开。
5.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开来确定下降方向包括:由一个或多个计算设备执行内部循环迭代,所述内部循环迭代在不显式表示Hessian或计算Hessian向量乘积的情况下应用Hessian矩阵的近似逆。
6.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述目标函数包括三次正则化项和排斥正则化项中的一个或两个。
7.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开来确定下降方向包括:由一个或多个计算设备确定与所述多个参数的一个或多个值当前位于的当前点不同的替代点处的梯度。
8.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备使用所述Hessian矩阵的近似逆的幂级数展开来确定下降方向包括:由一个或多个计算设备使用所述幂级数展开来求解线性系统。
9.根据前述权利要求中任一项所述的计算机实施的方法,还包括:
针对多个附加批量的附加训练示例中的每一个附加批量的附加训练示例执行所述访问、输入、使用和更新。
10.根据前述权利要求中任一项所述的计算机实施的方法,还包括:
在将所述一批量训练示例输入到机器学习模型中之前,对机器学习模型执行随机梯度下降的多次迭代。
11.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述机器学习模型包括神经网络。
12.一种计算机实施的方法,所述方法包括:对于一个或多个训练迭代中的每一个,
由一个或多个计算设备获得一批量训练示例;
由一个或多个计算设备将所述一批量训练示例输入到机器学习模型中以获得多个预测,其中所述机器学习模型包括多个参数;
由一个或多个计算设备确定评估相对于多个目标的多个预测的目标函数的导数;
由一个或多个计算设备至少部分基于所述目标函数的导数来确定更新;
由一个或多个计算设备至少部分基于所述更新来更新幂级数迭代;以及
由一个或多个计算设备至少部分基于更新的幂级数迭代来更新所述多个参数的一个或多个值。
13.根据权利要求12所述的计算机实施的方法,其中所述幂级数迭代包括Neumann迭代。
14.根据权利要求12或13所述的计算机实施的方法,还包括:
由一个或多个计算设备至少部分基于所述多个参数的更新值来更新所述多个参数的移动平均值。
15.根据权利要求12-14中任一项所述的计算机实施的方法,其中,由一个或多个计算设备至少部分基于目标函数的导数来确定更新包括:由一个或多个计算设备至少部分基于目标函数的导数并且至少部分基于一个或多个正则化项来确定更新。
16.根据权利要求15所述的计算机实施的方法,其中,所述一个或多个正则化项包括三次正则化项和排斥正则化项中的一个或两个。
17.根据权利要求12-16中任一项所述的计算机实施的方法,其中,由一个或多个计算设备至少部分基于目标函数的导数来确定更新包括:由一个或多个计算设备至少部分基于目标函数的导数并且至少部分基于所述多个参数的移动平均值来确定更新。
18.根据权利要求12-17中任一项所述的计算机实施的方法,其中,由一个或多个计算设备至少部分基于所述更新来更新所述幂级数迭代包括:由一个或多个计算设备将所述幂级数迭代设置为等于:前一迭代幂级数迭代乘以动量参数减去所述更新乘以学习速率参数。
19.根据权利要求12-18中任一项所述的计算机实施的方法,其中,由一个或多个计算设备更新所述多个参数的所述一个或多个值包括:由一个或多个计算设备将所述多个参数的值设置为等于:值的前一迭代集加上更新的幂级数迭代乘以动量参数减去所述更新乘以学习速率参数。
20.根据权利要求12-19中任一项所述的计算机实施的方法,还包括:
由一个或多个计算设备返回所述多个参数的值的最终集。
21.根据权利要求20所述的计算机实施的方法,其中,所述多个参数的值的最终集等于所述多个参数的值的最近更新集减去最近幂级数迭代乘以动量参数。
22.根据权利要求12-21中任一项所述的计算机实施的方法,还包括:
由一个或多个计算设备周期性地重置幂级数迭代值。
23.根据权利要求12-22中任一项所述的计算机实施的方法,其中,所述机器学习模型包括神经网络。
24.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述一批量训练示例包括超过16000个训练示例。
25.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述一批训练示例包括至少32000个训练示例。
26.一种计算机系统,包括:
一个或多个处理器;和
一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质共同存储指令,当所述指令被所述一个或多个处理器执行时,使得所述计算机系统执行根据权利要求1-25中任一项所述的方法。
27.一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质共同存储指令,当所述指令被所述一个或多个处理器执行时,使得计算机系统执行根据权利要求1-25中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762578349P | 2017-10-27 | 2017-10-27 | |
US62/578,349 | 2017-10-27 | ||
PCT/US2018/041033 WO2019083578A1 (en) | 2017-10-27 | 2018-07-06 | SYSTEMS AND METHODS FOR ENHANCED OPTIMIZATION OF AUTOMATIC LEARNING MODELS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110809772A true CN110809772A (zh) | 2020-02-18 |
CN110809772B CN110809772B (zh) | 2024-04-02 |
Family
ID=63036380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880044003.1A Active CN110809772B (zh) | 2017-10-27 | 2018-07-06 | 用于改进机器学习模型的优化的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200250515A1 (zh) |
EP (1) | EP3616134A1 (zh) |
CN (1) | CN110809772B (zh) |
WO (1) | WO2019083578A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688809A (zh) * | 2020-12-21 | 2021-04-20 | 声耕智能科技(西安)研究院有限公司 | 一种扩散自适应网络学习方法、系统、终端及存储介质 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
CN113039556B (zh) | 2018-10-11 | 2022-10-21 | 特斯拉公司 | 用于使用增广数据训练机器模型的系统和方法 |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
US11657118B2 (en) * | 2019-05-23 | 2023-05-23 | Google Llc | Systems and methods for learning effective loss functions efficiently |
JP7116711B2 (ja) * | 2019-06-14 | 2022-08-10 | 株式会社東芝 | 情報処理装置、情報処理方法及びコンピュータプログラム |
US11521254B2 (en) * | 2019-08-08 | 2022-12-06 | Ebay Inc. | Automatic tuning of machine learning parameters for non-stationary e-commerce data |
US11922316B2 (en) * | 2019-10-15 | 2024-03-05 | Lg Electronics Inc. | Training a neural network using periodic sampling over model weights |
US11886963B2 (en) | 2020-12-01 | 2024-01-30 | OctoML, Inc. | Optimizing machine learning models |
CN113837260B (zh) * | 2021-09-17 | 2024-05-28 | 北京百度网讯科技有限公司 | 模型训练方法、对象匹配方法、装置及电子设备 |
CN114325777B (zh) * | 2021-11-11 | 2023-10-13 | 中航机载系统共性技术有限公司 | 一种周跳探测和修复方法、装置及设备 |
US11853392B2 (en) | 2021-11-30 | 2023-12-26 | International Business Machines Corporation | Providing reduced training data for training a machine learning model |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5408424A (en) * | 1993-05-28 | 1995-04-18 | Lo; James T. | Optimal filtering by recurrent neural networks |
CN103064878A (zh) * | 2012-11-19 | 2013-04-24 | 北京大学 | 一种快速序列标注方法 |
US20140067738A1 (en) * | 2012-08-28 | 2014-03-06 | International Business Machines Corporation | Training Deep Neural Network Acoustic Models Using Distributed Hessian-Free Optimization |
US20150161988A1 (en) * | 2013-12-06 | 2015-06-11 | International Business Machines Corporation | Systems and methods for combining stochastic average gradient and hessian-free optimization for sequence training of deep neural networks |
CN104781836A (zh) * | 2012-11-20 | 2015-07-15 | 高通股份有限公司 | 分段线性神经元建模 |
US20170228645A1 (en) * | 2016-02-05 | 2017-08-10 | Nec Laboratories America, Inc. | Accelerating deep neural network training with inconsistent stochastic gradient descent |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9269012B2 (en) * | 2013-08-22 | 2016-02-23 | Amazon Technologies, Inc. | Multi-tracker object tracking |
-
2018
- 2018-07-06 US US16/624,949 patent/US20200250515A1/en active Pending
- 2018-07-06 CN CN201880044003.1A patent/CN110809772B/zh active Active
- 2018-07-06 WO PCT/US2018/041033 patent/WO2019083578A1/en unknown
- 2018-07-06 EP EP18746405.2A patent/EP3616134A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5408424A (en) * | 1993-05-28 | 1995-04-18 | Lo; James T. | Optimal filtering by recurrent neural networks |
US20140067738A1 (en) * | 2012-08-28 | 2014-03-06 | International Business Machines Corporation | Training Deep Neural Network Acoustic Models Using Distributed Hessian-Free Optimization |
CN103064878A (zh) * | 2012-11-19 | 2013-04-24 | 北京大学 | 一种快速序列标注方法 |
CN104781836A (zh) * | 2012-11-20 | 2015-07-15 | 高通股份有限公司 | 分段线性神经元建模 |
US20150161988A1 (en) * | 2013-12-06 | 2015-06-11 | International Business Machines Corporation | Systems and methods for combining stochastic average gradient and hessian-free optimization for sequence training of deep neural networks |
US20170228645A1 (en) * | 2016-02-05 | 2017-08-10 | Nec Laboratories America, Inc. | Accelerating deep neural network training with inconsistent stochastic gradient descent |
Non-Patent Citations (3)
Title |
---|
NAMAN AGARWAL ET AL: "Second-Order Stochastic Optimization for Machine Learning in Linear Time", pages 1 - 39 * |
亢良伊;王建飞;刘杰;叶丹;: "可扩展机器学习的并行与分布式优化算法综述" * |
亢良伊;王建飞;刘杰;叶丹;: "可扩展机器学习的并行与分布式优化算法综述", 软件学报, no. 01, pages 113 - 134 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688809A (zh) * | 2020-12-21 | 2021-04-20 | 声耕智能科技(西安)研究院有限公司 | 一种扩散自适应网络学习方法、系统、终端及存储介质 |
CN112688809B (zh) * | 2020-12-21 | 2023-10-03 | 声耕智能科技(西安)研究院有限公司 | 一种扩散自适应网络学习方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110809772B (zh) | 2024-04-02 |
WO2019083578A1 (en) | 2019-05-02 |
EP3616134A1 (en) | 2020-03-04 |
US20200250515A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110809772B (zh) | 用于改进机器学习模型的优化的系统和方法 | |
US11651259B2 (en) | Neural architecture search for convolutional neural networks | |
CN111970163B (zh) | 一种基于注意力机制的lstm模型的网络流量预测方法 | |
Botev et al. | Practical Gauss-Newton optimisation for deep learning | |
Zeiler | Adadelta: an adaptive learning rate method | |
US11941527B2 (en) | Population based training of neural networks | |
EP3629250A1 (en) | Parameter-efficient multi-task and transfer learning | |
CN110832509B (zh) | 使用神经网络的黑盒优化 | |
Tang et al. | Automatic sparse connectivity learning for neural networks | |
Fan et al. | A linear recurrent kernel online learning algorithm with sparse updates | |
US20210256375A1 (en) | Reduced computation real time recurrent learning | |
WO2020149971A2 (en) | Robust and data-efficient blackbox optimization | |
Malladi et al. | On the SDEs and scaling rules for adaptive gradient algorithms | |
CN113705793B (zh) | 决策变量确定方法及装置、电子设备和介质 | |
Liu et al. | Gradient‐Sensitive Optimization for Convolutional Neural Networks | |
CN111630530B (zh) | 数据处理系统、数据处理方法和计算机可读存储介质 | |
Su et al. | Neural dynamics for improving optimiser in deep learning with noise considered | |
US11915120B2 (en) | Flexible parameter sharing for multi-task learning | |
Roth et al. | Variational inference in neural networks using an approximate closed-form objective | |
CN112381591A (zh) | 基于lstm深度学习模型的销售预测优化方法 | |
Wang et al. | Dichotomy value iteration with parallel learning design towards discrete-time zero-sum games | |
Wu et al. | Improved saddle point prediction in stochastic two-player zero-sum games with a deep learning approach | |
CN116048785A (zh) | 一种基于监督学习和强化学习的弹性资源分配方法 | |
WO2019208248A1 (ja) | 学習装置、学習方法及び学習プログラム | |
Rao et al. | Efficient computation of extreme excursion probabilities for dynamical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |