学习数据增强策略

文档序号:1047882 发布日期:2020-10-09 浏览:2次 >En<

阅读说明:本技术 学习数据增强策略 (Learning data enhancement strategy ) 是由 维贾伊·瓦苏德万 巴雷特·佐福 埃金·多乌什·丘布克 国·V·勒 于 2019-05-20 设计创作,主要内容包括:方法、系统和装置,包括编码在计算机存储介质上的计算机程序,其用于学习用于训练机器学习模型的数据增强策略。在一个方面,一种方法包括:接收用于训练机器学习模型以执行特定机器学习任务的训练数据;确定多个数据增强策略,包括在多个时间步长中的每一个:基于在先前时间步长处生成的数据增强策略的质量度量,生成当前数据增强策略;使用当前数据增强策略,在训练数据上训练机器学习模型;以及,在使用当前数据增强策略已经对机器学习模型进行训练之后,使用该机器学习模型确定当前数据增强策略的质量度量;以及基于所确定的数据增强策略的质量度量,选择最终数据增强策略。(Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for learning data enhancement strategies for training machine learning models. In one aspect, a method comprises: receiving training data for training a machine learning model to perform a particular machine learning task; determining a plurality of data enhancement policies, including at each of a plurality of time steps: generating a current data enhancement policy based on a quality metric of the data enhancement policy generated at a previous time step; training a machine learning model on training data using a current data enhancement strategy; and, after the machine learning model has been trained using the current data enhancement strategy, determining a quality metric for the current data enhancement strategy using the machine learning model; and selecting a final data enhancement policy based on the determined quality metric of the data enhancement policy.)

学习数据增强策略

技术领域

本说明书涉及使用机器学习模型处理数据。

背景技术

机器学习模型接收输入,并基于所接收的输入生成输出,例如,预测输出。一些机器学习模型是参数模型,并且基于所接收的输入和模型的参数的值生成输出。

一些机器学习模型是采用多层模型对所接收的输入生成输出的深度模型。例如,深度神经网络是包括输出层和一个或多个隐藏层的深度机器学习模型,每个隐藏层将非线性变换应用于所接收的输入以生成输出。

发明内容

本说明书描述了一种训练系统,该训练系统被实现为一个或多个位置的一个或多个计算机上的计算机程序。

根据第一方面,提供了一种方法,包括接收用于训练机器学习模型以执行特定机器学习任务的训练数据。训练数据包括多个训练输入。确定多个数据增强策略,其中,每个数据增强策略都具有多个数据增强策略参数,多个数据增强策略参数定义了在训练输入被用来训练机器学习模型之前变换训练输入的过程。

在多个时间步长的每一个处,基于在先前时间步长生成的数据增强策略的质量度量来生成当前数据增强策略。数据增强策略的质量度量表示作为使用数据增强策略训练机器学习模型的结果的、对特定机器学习任务的机器学习模型的性能。使用当前数据增强策略,在训练数据上训练机器学习模型。使用数据增强策略训练机器学习模型包括:选择一批训练数据;根据数据增强策略,通过对该批训练数据中的训练输入进行变换,确定增强后的一批训练数据;以及基于该增强后的一批训练数据,调整机器学习模型参数的当前值。在使用当前数据增强策略对机器学习模型进行训练之后,使用机器学习模型确定当前数据增强策略的质量度量。

基于所确定的数据增强策略的质量度量,选择最终数据增强策略。通过使用最终数据增强策略训练最终机器学习模型来生成最终训练过的机器学习模型。

在一些实施方式中,特定机器学习任务是包括分类或回归的图像处理任务。

在一些实施方式中,每个数据增强策略包括一个或多个子策略。每个子策略包括一个或多个变换元组的序列,其中,对于每个变换元组,数据增强策略参数定义:(i)变换操作,以及(ii)变换操作的大小。根据数据增强策略,对一批训练数据中的训练输入进行变换包括对于每个训练输入:识别数据增强策略中包括的子策略;以及通过将所识别的子策略中包括的每个变换元组依次地应用于训练输入,来根据所识别的子策略变换训练输入。

在一些实施方式中,为训练输入识别在数据增强策略中包括的子策略包括随机地采样在数据增强策略中包括的子策略。

在一些实施方式中,将变换元组应用于训练输入包括:将变换元组中的变换操作以变换元组中的变换操作大小来应用于训练输入。

在一些实施方式中,对于每个变换元组,数据增强策略参数进一步定义应用变换操作的概率;以及将变换元组应用于训练输入包括:以变换元组中的变换概率,将变换元组中的变换操作以变换元组中的变换操作大小来应用于训练输入。

在一些实施方式中,机器学习模型是神经网络,以及基于增强后的一批训练数据来调整机器学习模型参数的当前值包括:使用增强后的一批训练数据确定损失函数的梯度:以及使用梯度来调整机器学习模型参数的当前值。

在一些实施方式中,基于在先前时间步长所生成的数据增强策略的质量度量来生成当前数据增强策略包括根据策略神经网络参数的当前值,使用策略神经网络生成当前数据增强策略;以及通过强化学习技术,训练策略神经网络,并且在每个时间步长,强化学习奖励信号基于时间步长的当前数据增强策略的质量度量。

在一些实施方式中,对于每个数据增强策略参数,策略网络输出定义数据增强策略参数的可能值的得分分布。

在一些实施方式中,由策略网络输出确定当前数据增强策略包括使用数据增强策略参数的得分分布来采样每个数据增强策略参数的值。

在一些实施方式中,策略神经网络是递归神经网络。

在一些实施方式中,基于在先前时间步长生成的数据增强策略的质量度量来生成当前数据增强策略包括使用遗传规划过程来生成当前数据增强策略。

在一些实施方式中,在已经使用当前数据增强策略训练了机器学习模型之后,使用机器学习模型来确定当前数据增强策略的质量度量包括:使用包括多个训练输入的验证数据,确定机器学习模型对特定机器学习任务的性能度量;以及基于性能度量,确定质量度量。

在一些实施方式中,包括在验证数据中的训练输入不包括在训练数据中。

在一些实施方式中,基于所确定的数据增强策略的质量度量来选择最终数据增强策略包括选择具有最高质量得分的所确定的数据增强策略。

在一些实施方式中,训练输入是图像。

根据第二方面,提供了一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,指令当由一个或多个计算机执行时,使一个或多个计算机执行包括第一方面的操作的操作。

根据第三方面,提供了一个或多个存储指令的计算机存储介质,指令在由一个或多个计算机执行时,使一个或多个计算机执行包括第一方面的操作的操作。

可以实现本说明书中描述的主题的特定实施例,以实现以下优点中的一个或多个。

在本说明书中描述的训练系统可以使用“学习的”数据增强策略而不是手动设计的数据增强策略来训练机器学习模型。训练系统可以通过自动搜索可能的数据增强策略的空间来识别特定数据增强策略以学习数据增强策略,该特定数据增强策略使能使用该特定数据增强策略训练的机器学习模型以有效地执行机器学习任务。

与使用手动设计的数据增强策略训练的机器学***,从而使得能够更有效地使用计算资源(例如,存储器)。

通过本说明书中描述的训练系统学习到的数据增强策略在一些情况下,可在训练数据集之间传送。也就是说,参考第一训练数据集学习的数据增强策略可以被用来在第二训练数据集上有效地训练机器学习模型(即,即使没有参考第二训练数据集来学习数据增强策略)。通过训练系统学习的数据增强策略的可传递性可以减少计算资源的消耗,例如,通过使得所学习的数据增强策略能够在新的训练数据集上重新使用,而不是学习用于新训练数据集的新数据增强策略。

在以下附图和描述中阐述了本说明书的主题的一个或多个实施例的细节。本主题的其他特征、方面和优点根据说明书、附图和权利要求将变得显而易见。

附图说明

图1示出了示例性训练系统。

图2示出了示例性策略生成引擎。

图3是示例性数据增强策略的图示。

图4是将数据增强策略的不同子策略应用于原始图像的效果的图示。

图5示出了可以通过使用训练系统来实现的性能增益的示例。

图6描述了可以应用于图像的不同类型的变换操作。

图7是用于自动地选择数据增强策略并且使用数据增强策略来训练机器学习模型的示例性过程的流程图。

各个附图中相同的附图标记和名称表示相同的元件。

具体实施方式

本说明书描述了一种训练系统,该训练系统被实现为在一个或多个位置中的一个或多个计算机上的计算机程序,该训练系统使用数据增强策略训练机器学习模型以执行机器学习任务。可以使用数据增强策略来增加用在训练机器学习模型中的训练输入的数量和多样性,从而导致(例如,通过更高预测精度)更有效地执行机器学习任务的训练后的机器学习模型。训练系统自动地搜索可能的数据增强策略的空间以识别特定的数据增强策略,然后使用特定的数据增强策略来训练机器学习模型。

图1示出了示例性训练系统100。训练系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,在该系统中可以实现下文所述的系统、组件和技术。

训练系统100被配置为生成训练后的机器学习模型102,该训练后的机器学习模型102通过使用以下训练机器学习模型104来被训练以执行机器学习任务:(i)训练数据集106,以及(ii)“最终”数据增强策略108。如下文更详细所述,训练系统100通过搜索可能的数据增强策略的空间来识别最终数据增强策略108。

机器学习任务可以涉及处理图像以基于图像生成预测。即,机器学习模型104可以被配置为处理包括图像的输入以生成相应的输出,例如,分类输出、回归输出或其组合。下面是机器学习任务的几个示例。

在一个示例中,机器学习模型被配置为处理图像以生成分类输出,该分类输出包括对应于多个类别中的每个类别的相应得分。类别的得分指示图像属于该类别的可能性。在一些情况下,类别可以是对象类(例如,狗、猫、人等),并且如果图像描绘了包括在与类别相对应的对象类中的对象,则图像可以属于该类别。在一些情况下,类别可以表示全局图像属性(例如,图像描绘白天或者黑夜的场景,或者图像描绘夏天或者冬天的场景),并且如果图像具有对应于该类别的全局属性,则可以属于该类别。

在另一示例中,机器学习模型被配置为处理图像以生成像素级分类输出,该输出包括针对每个像素,对应于多个类别中的每个类别的相应得分。对于给定的像素,类别的得分指示像素属于该类别的可能性。在一些情况下,类别可以是对象类,并且如果像素属于与类别相对应的对象类中所包括的对象上的一部分,则像素可以属于该类别。即,像素级分类输出可以是语义分段输出。

在另一示例中,机器学习模型被配置为处理图像以生成回归输出,该回归输出估计表征该图像的一个或多个连续变量(即,可以假设无限多个可能的数值)。在特定示例中,回归输出可以估计包围图像中描绘的各个对象的边界框的坐标。边界框的坐标可以由边界框的顶点的x-y坐标来定义。

为了方便,本说明书主要将机器学习任务描述为处理图像以基于图像生成预测。更一般地,机器学习任务可以是涉及处理输入以基于输入生成预测的任何任务。接下来描述机器学习任务的一些其他示例。

在一个示例中,机器学习任务可以是语音识别任务,其中,机器学习模型被配置为处理音频波形的表示以生成表征与音频波形相对应的音素、字符或单词的序列的输出。

在另一示例中,机器学习任务可以是视频分析任务,其中,机器学习模型被配置为处理视频帧序列,以生成表征视频帧的输出,例如,通过表征视频帧是否描绘执行特定动作的人。

在另一示例中,机器学习任务可以是自然语言处理任务,其中,机器学习模型被配置为处理文本的一部分以生成表征文本的该部分的输出,例如,通过表征文本的该部分到另一种自然语言的翻译。

训练数据106由多个训练示例组成,其中,每个训练示例指定训练输入和相应的目标输出。训练输入包括图像。目标输出表示应当由机器学习模型通过处理训练输入来生成的输出。例如,目标输出可以是指定对应于输入图像的类别(例如,对象类)的分类输出,或者是指定对应于输入图像的一个或多个连续变量(例如,对象边界框坐标)的回归输出。

机器学习模型104可以具有任何适当的机器学习模型架构。例如,机器学习模型可以是神经网络模型、随机森林模型、支持向量机(SVM)模型、线性模型或它们的组合。

系统100可以以各种方式中的任何一种来接收训练数据106和定义机器学习模型104的数据。例如,系统100可以例如通过数据通信网络,例如,使用使系统100可用的应用编程接口(API),接收训练数据106和定义机器学习模型104的数据,作为来自系统100的远程用户的上传。

数据增强策略由参数(在本文档中称为“数据增强策略参数”)集定义,这些参数指定在使用训练输入来训练机器学习模型之前,变换(即,包括在训练示例中的)训练输入的过程。参考图3,更详细地描述数据增强策略和相应的数据增强策略参数的示例。

用于变换训练输入的过程通常包括将一个或多个操作(在本文档中称为“变换操作”)应用于训练输入中包括的图像。这些操作可以是任何适当种类的图像处理操作,例如,平移操作、旋转操作、剪切操作、颜色反转操作或其组合。数据增强策略参数可以指定应该应用哪些变换操作、以何种大小以及以什么概率。参考图6更详细地描述可能的变换操作的示例。

系统100实现搜索算法以从可能的数据增强策略的空间识别具有高“质量度量”的数据增强策略。数据增强策略的质量度量表征了使用数据增强策略训练的机器学习模型的性能(例如,预测准确性)。为了方便,在本文中将较高质量度量理解为暗指更好的性能(例如,较高预测精度)。

系统100可以通过评估在“验证集”上使用数据增强策略训练的机器学***方误差或绝对误差来确定质量度量110。对于较低值指示训练后的机器学***方误差性能度量),数据增强策略的质量度量可能与性能度量成反比(即,因此,较高质量度量仍然暗指更好的性能)。

系统100可以例如通过随机地划分较大的训练数据集以生成训练数据106(即,用于训练机器学习模型)和验证集(即,用于评估训练后的机器学习模型的性能)来获得验证集。

如在整个文档中使用的,可能的数据增强策略的空间是指由数据增强策略参数的可能值参数化的空间。

训练系统100包括训练引擎112和策略生成引擎114。

在本说明书中被称为“时间步长”的多个迭代中的每个迭代中,策略生成引擎114生成一个或多个“当前”数据增强策略116。对于每个当前数据增强策略116,系统100使用训练引擎112来使用当前数据增强策略训练机器学习模型104,并且此后,确定当前数据增强策略的质量度量110。策略生成引擎114使用当前数据增强策略116的质量度量110来提高对下一时间步长生成的数据增强策略的预期质量度量。

训练机器学习模型是指由机器学习模型的参数的初始值来确定机器学习模型的参数的训练值。训练引擎112可以从例如随机选择的或默认的机器学习模型参数的初始值开始训练机器学习模型104。

通常,可以通过变换现有训练示例的训练输入以生成“新的”训练示例,然后使用新的训练示例(代替或补充现有的训练示例)来训练机器学习模型,使用数据增强策略来训练机器学习模型。例如,可以通过将由数据增强策略指定的一个或多个图像处理操作应用于图像来变换训练示例的训练输入中包括的图像。

在一些情况下,可以(例如,根据数据增强策略)变换训练示例的训练输入,同时保持相同的相应目标输出。例如,对于目标输出指定训练输入中描绘的对象类型的图像分类任务,将图像处理操作(例如旋转、剪切等)应用于训练输入中包括的图像将不影响图像中描绘的对象的类型。因此,在该示例中,变换后的训练输入将对应于与原始训练输入相同的目标输出。

但是,在某些情况下,变换训练示例的训练输入也可能需要改变训练示例的目标输出。在一个示例中,与训练输入相对应的目标输出可以指定包围该训练输入的图像中描绘的对象的边界框的坐标。在该示例中,将平移操作应用于训练输入的图像将需要将相同的平移操作应用于目标输出所指定的边界框坐标。

由训练引擎112执行以使用数据增强策略训练机器学习模型104的特定操作取决于机器学习模型104的架构,例如,机器学习模型104是神经网络模型还是随机森林模型。参考图7,更详细地描述了使用数据增强策略训练神经网络模型的示例。

策略生成引擎114可以使用多种技术中的任何一种来搜索可能的数据增强策略的空间。在一个实施方式中,策略生成引擎114使用神经网络,在本文中被称为“策略”网络来生成数据增强策略。可以使用强化学习技术来训练策略网络,其中,通过与由策略神经网络生成的数据增强策略相对应的质量度量来提供奖励(即,训练策略网络以最大化)。参考图2更详细地描述策略生成引擎114的示例性实施方式,该策略生成引擎114使用通过使用强化学习技术训练的策略网络。

在其他实施方式中,策略生成引擎114可以使用多种其他技术中的任何一种来搜索可能的数据增强策略的空间。例如,策略生成引擎114可以使用,例如,参考H.Mania,A.Guy和B.Recht,“Simple random search provides a competitive approach toreinforcement learning(简单的随机搜索提供了一种竞争性方法以强化学习)”,arXiv:1803.07055v1,2018中描述的随机搜索技术。作为另一示例,策略生成引擎114可以使用,例如,参考E.Real,A.Aggarwal,Y.Huang,和Q.V.Le:“Regularized evolution for imageclassifier architecture search(图像分类器体系结构搜索的正则化进化)”,arXiv:1802.01548,2018描述的进化搜索技术(即,“遗传规划过程”)。

系统100可以继续生成数据增强策略,直到满足搜索终止标准为止。例如,如果已经针对预定数量的时间步长生成了数据增强策略,则训练系统100可以确定满足搜索终止标准。作为另一示例,如果所生成的数据增强策略的质量度量满足预定阈值,则训练系统100可以确定满足搜索终止标准。

在确定满足搜索终止标准之后,系统100基于所生成的数据增强策略的相应质量度量110来选择最终数据增强策略。例如,系统100可以选择由训练系统100生成的具有最高质量得分的数据增强策略作为最终数据增强策略。作为另一示例,将参考图3更详细地描述的,系统100可以结合由训练系统生成的具有最高质量得分的预定数量(例如,5个)数据增强策略,以生成最终数据增强策略108。

系统100可以通过使用最终数据增强策略108,在训练数据106上训练机器学习模型104来生成训练后的机器学习模型102,并且然后输出定义训练后的机器学习模型102的数据。

在一些实施方式中,代替输出训练后的机器学习模型102或除了输出训练后的机器学习模型102之外,系统100使用训练后的机器学习模型102来处理用户例如通过系统100提供的API接收的请求。即,系统100可以接收待处理的输入,使用训练后的机器学习模型102来处理输入,并且响应于所接收的输入,提供由训练后的机器学习模型102所生成的输出或由所生成的输出中导出的数据。

虽然训练系统100相对于特定的训练数据集106确定了最终数据增强策略108,但是最终数据增强策略108(在一些情况下)可以被传递到其他训练数据集。即,相对于训练数据106确定的最终数据增强策略108可以被用来在不同的训练数据集上有效地训练其他机器学习模型。

图2示出了示例性策略生成引擎114。策略生成引擎114包括:策略神经网络202,其被配置为根据策略网络202的参数来生成策略网络输出;以及参数更新引擎204,其被配置为调整策略网络参数值。由策略网络202生成的每个策略网络输出206定义相应的数据增强策略116。

特别地,每个策略网络输出206包括在多个输出位置中的每个位置处的相应输出,并且每个输出位置对应于不同的数据增强策略参数。因此,每个策略网络输出在每个输出位置处包括相应的数据增强策略参数的相应值。总的来说,由给定策略网络输出指定的数据增强策略参数的值定义了数据增强策略。

在每个时间步长,策略生成引擎114根据策略网络参数的当前值,使用策略网络202来生成一个或多个策略网络输出206,每个策略网络输出206定义相应的数据增强策略116。

策略网络202是递归神经网络,其包括一个或多个递归神经网络层,例如,长短期记忆(LSTM)层或门控递归单元(GRU)层。策略网络202通过顺序地生成对应于策略网络输出206的输出位置序列中的每个输出位置的相应数据增强策略参数,来生成策略网络输出206。特别地,对于每个输出位置,策略网络202接收对应于策略网络输出206中的先前输出位置的数据增强策略参数的值作为输入,并且处理该输入以更新策略网络202的当前隐藏状态。对于策略网络输出中的第一输出位置,由于不存在先前的输出位置,因此策略网络202可以处理预定的占位符输入。

策略网络202还包括策略网络输出206中的每个输出位置的相应输出层。对应于输出位置的输出层处理对应于该输出位置的策略网络202的更新的隐藏状态以生成输出,该输出定义了对应于该输出位置的数据增强策略参数的可能值的得分分布。例如,输出层可以首先将策略网络202的更新后的隐藏状态投影到用于相应数据增强策略参数的可能值的数量的适当维度中。然后,输出层可以将softmax应用于投影的隐藏状态,以对用于相应数据增强策略参数的多个可能值中的每个生成相应的得分。

对于每个输出位置,策略网络202通过从(即,由相应的输出层生成的)数据增强策略参数的可能值的得分分布采样来生成用于相应的数据增强策略参数的值。给定的数据增强策略参数可以采用的可能值在训练之前是固定的,并且对于不同的数据增强策略参数,可能值的数量可以不同。

通常,策略网络参数的值在时间步长内不改变。然而,通过从可能值的得分分布采样数据增强策略参数的值,策略网络202可以在每个时间步长生成多个不同的策略网络输出206(即,每个策略网络输出206对应于不同的数据增强策略116)。

对于在时间步长生成的每个数据增强策略116,训练系统100使用数据增强策略116来训练机器学习模型,然后确定训练后的机器学习模型的相应质量度量110(如前所述)。

然后,参数更新引擎204使用质量度量110作为奖励信号,以使用强化学***方、质量度量的立方、质量度量的平方根等等。

在一些情况下,参数更新引擎204使用策略梯度技术来训练策略网络202以最大化期望奖励。例如,策略梯度技术可以是REINFORCE技术或近端策略优化(PPO)技术。例如,在给定的时间步长,参数更新引擎204使用由下述表达式给出的策略网络参数的梯度组合来更新策略网络参数的当前值:

其中,k指数化在该时间步长生成的策略网络输出,K是在该时间步长生成的策略网络输出的总数,t指数化策略网络输出中的输出位置,T是策略网络输出中的输出位置的总数,▽θ是相对于策略网络参数的梯度算子,P(ak,t)是对应于策略网络输出k中的输出位置t处生成的数据增强策略参数的得分,Rk是策略网络输出k的奖励,以及b是基线函数,例如先前奖励的指数移动平均线。

通过重复更新策略网络参数的值,参数更新引擎204可以训练策略网络202以生成定义数据增强策略的策略网络输出,数据增强策略导致训练后的机器学习模型在机器学习任务上的性能有所提高。也就是说,以这种方式更新策略网络参数的值可以提高使用策略网络提出的数据增强策略训练的机器学习模型的验证集的预期精度。

图3是示例性数据增强策略300的图示。数据增强策略300由一个或多个“子策略”302-A至302-N组成。每个子策略指定一系列变换操作(例如304-A至304-M),例如图像处理操作,例如平移、旋转或剪切操作。每个变换操作具有关联的大小(例如306-A至306-M)和关联的概率(例如308-A至308-M)。

变换操作的大小是一个或多个数值的有序集合,这些数值指定了如何将变换操作应用于训练输入。例如,平移操作的大小可以指定图像应当在x和y方向上平移图像的像素数。作为另一示例,旋转操作的小可以指定应当旋转图像的弧度数。

为了使用数据增强策略300来变换训练输入,例如通过随机采样子策略,从包括在数据增强策略中的子策略集中选择子策略。然后,对于由所选择的子策略指定的变换操作序列中的每个变换操作,将变换操作以与变换操作相关联的概率应用于训练输入。如果将变换操作应用于训练输入,则以与变换操作相关联的大小应用它。根据由子策略指定的变换操作的顺序,应用被应用于训练输入的变换操作。在图4中示出了对图像应用不同的子策略的效果的图示。

示例性数据增强策略300的参数对于每个子策略的每个变换操作,包括:(i)变换操作的类型(例如,平移、旋转、剪切等),(ii)变换操作的大小,以及(iii)应用变换操作的概率。

每个数据增强策略参数都可以具有预定的可能值集。例如,可以从预定的可能变换类型集中选择变换操作的类型。变换操作的大小可以具有例如在整个容许值的连续范围内均匀地间隔开的预定数量的可能值。例如,对于旋转操作,容许值的连续范围可以是[0,2π]弧度,并且旋转操作的大小的可能值可以是:{0,π/2,π,3π/2}。应用变换操作的概率可以具有例如在整个范围[0,1]中均匀地间隔开的预定数量的可能值。在一个示例中,应用变换操作的概率的可能值可以是:{0,0.2,0.4,0.6,0.8,1}。

数据增强策略可以具有预定数量的子策略,并且每个子策略可以指定预定数量的变换操作。在一些情况下,应用变换操作的概率可能为0,导致变换操作永远不被应用于训练输入。以这种方式设计数据增强策略的空间可以增加发现的数据增强策略的多样性。

在特定示例中,数据增强策略可以具有5个子策略,每个子策略指定2个变换操作。每个变换操作都有各自的标量大小和概率值,并且可以是16个不同变换类型中的任何一个。在该示例中,数据增强策略将总共具有5×2×2×16=320个参数。如果变换操作的大小具有10个可能的值,并且应用变换操作的概率具有11个可能值,则可能的数据增强策略的空间将包括大约29×1032个数据增强策略。

如参考图1所述,训练系统100可以将由训练系统100生成的、具有最高质量得分的预定数量的数据增强策略相结合,以生成最终数据增强策略。对于具有参考图3描述的形式的数据增强策略,可以通过将它们各自的子策略聚合到单个组合的数据增强策略来组合多个数据增强策略。为了将组合的数据增强策略应用于训练输入,可以从组合的子策略集合中随机选择子策略中的一个,并且可以根据随机选择的子策略指定的变换操作序列来变换训练输入(如前所述)。

图4是将不同的子策略应用于原始图像400的效果的图示。例如,“子策略1”指定了一系列变换操作,包括:(i)具有相应概率为0.4和大小为4的均衡操作,以及(ii)具有相应概率为0.8和大小为8度的旋转操作。参考图6更详细地描述均衡操作和旋转操作。由402、404和406图示了将子策略1应用于三个不同时间的原始图像400的效果。图4还图示了将“子策略2”、“子策略3”、“子策略4”和“子策略5”应用于原始图像400的效果。

图5示出了可以通过使用本说明书中描述的训练系统实现的性能增益的示例。对于多个训练数据集(即“CIFAR-10”、“CIFAR-100”、“SVHN”、“StanfordCars”和“ImageNet”)中的每一个,使用由训练系统100选择的(即,在相应的验证集上评估的)数据增强策略训练的神经网络模型的错误率超出了对该训练数据集的某些最佳已发布结果。

图6描述了可以应用于图像的不同类型的变换操作。任何给定的增强策略的参数之一的值可以定义图6所示的变换类型集中的哪些变换类型被包括在给定增强策略中。

图7是用于自动地选择数据增强策略并且使用该数据增强策略来训练机器学习模型的示例性过程700的流程图。为了方便,将过程700描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,参考本说明书适当地编程的例如图1的训练系统100的训练系统可以执行过程700。

该系统接收用于训练机器学习模型以执行特定机器学习任务的训练数据(702)。例如,系统可以通过系统可用的API来接收训练数据。训练数据包括多个训练示例,每个示例指定训练输入和相应的目标输出。

系统在多个时间步长中的每个时间步长处执行过程700的步骤704至708。为了方便,将步骤704-708中的每一个描述为以“当前”时间步长处执行。

该系统基于在先前时间步长处生成的数据增强策略的质量度量来生成一个或多个当前数据增强策略(704)。如果当前时间步长是第一时间步长,则系统可以例如,通过随机地选择定义每个数据增强策略的参数值,以各种方式中的任何一种来生成数据增强策略。在一种实施方式中,系统可以基于在先前时间步长处生成的数据增强策略的质量度量所定义的奖,使用策略网络来生成当前数据增强策略励(例如,如参考图2所述),该策略网络是使用强化学习技术训练的。在其他实施方式中,系统可以使用多种适当的搜索技术中的任何一种,例如随机搜索技术或进化搜索技术来生成当前数据增强策略。

对于每个当前数据增强策略,系统使用当前数据增强策略,在训练数据上训练机器学习模型(706)。在一个示例中,机器学习模型是神经网络模型,并且系统在多次训练迭代中训练神经网络模型。在每次训练迭代时,系统选择一个或多个训练示例中的当前“批”(即,集合),然后通过使用当前数据增强策略,变换当前批的训练示例中的训练输入来确定“增强”批的训练示例。可选地,系统可以调整当前批的训练示例中的目标输出,以说明应用于训练输入的变换(如前所述)。系统根据机器学习模型的当前参数值处理变换后的训练输入,以生成相应的输出。然后,系统确定目标函数的梯度,该梯度可以测量以下各项之间的相似性:(i)机器学习模型生成的输出,以及(ii)训练示例指定的目标输出,并且使用梯度来调整机器学习模型参数的当前值。该系统可以使用例如反向传播过程来确定梯度,并且该系统可以使用任何适当的例如RMSprop或Adam过程的梯度下降优化过程来使用梯度以调整机器学习模型参数的当前值。

对于每个当前数据增强策略,在已经使用当前数据增强策略训练了机器学习模型之后,该系统使用该机器学习模型来确定当前数据增强策略的质量度量(708)。例如,系统可以在验证数据集上,将质量度量确定为训练后的机器学习模型的性能度量(例如,FI得分或均方误差),该验证数据集由不被用来训练机器学习模型的多个训练示例组成。

系统可以重复地执行步骤704至708,直到满足搜索终止标准为止(例如,如果已经执行步骤704至708预定次数)。

在系统确定满足搜索终止标准之后,系统基于在步骤704-708生成的数据增强策略的质量度量来选择最终数据增强策略(710)。例如,系统可以通过组合在步骤704至708期间生成的、具有最高质量得分的预定数量的数据增强策略来生成最终数据增强策略。

该系统通过使用最终数据增强策略在训练数据上训练机器学习模型来生成最终训练后的机器学习模型(712)。该系统可以向该系统的用户提供最终训练后的机器学习模型。替代地或组合地,系统可以使用训练后的机器学习模型来处理从用户接收的请求。

在一些情况下,与系统使用在步骤706生成的“当前”数据增强策略训练机器学习模型时相比,系统可能会使用最终数据增强策略来训练最终机器学习模型达更多次训练迭代。例如,系统可以使用最终数据增强策略来训练最终机器学习模型,直到满足收敛标准为止,例如,直到在验证集上评估的最终机器学习模型的预测精度达到最小值为止。另一方面,系统可以训练在步骤706生成的当前数据增强策略的每一个达较少(例如,固定的)数量的训练迭代。

本说明书连同系统和计算机程序组件一起使用术语“被配置”。对于要被配置成执行特定操作或动作的一个或多个计算机的系统意指系统已在其上安装了在操作中使该系统执行这些操作或动作的软件、固件、硬件或软件、固件、硬件的组合。对于要被配置成执行特定操作或动作的一个或多个计算机程序意指该一个或多个程序包括指令,所述指令当由数据处理装置执行时,使该装置执行操作或动作。

本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形地具体实现的计算机软件或固件、用包括本说明书中公开的结构及其结构等同物的计算机硬件或者用它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序被实现,所述一个或多个计算机程序即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。替换地或另外地,可将程序指令编码在人工生成的传播信号上,所述传播信号例如是机器生成的电、光或电磁信号,该传播信号被生成来对信息进行编码以用于传输到适合的接收器装置以供由数据处理装置执行。

术语“数据处理装置”指代数据处理硬件并且包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或者进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

也可以被称为或者描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可用包括编译或解释语言或声明或过程语言的任何形式的编程语言编写;并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。程序可以但是不必对应于文件系统中的文件。程序可以被存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;在专用于所讨论的程序的单个文件中或者在多个协调文件中,例如存储代码的一个或多个模块、子程序或部分的文件。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者分布在多个站点上并通过数据通信网络互连的多个计算机上执行。

在本说明书中,术语“引擎”广泛地用于指代被编程来执行一个或多个具体功能的基于软件的系统、子系统或过程。通常,引擎将作为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可在同一计算机或多个计算机上安装并运行多个引擎。

本说明书中描述的过程和逻辑流程可由执行一个或多个计算机程序的一个或多个可编程计算机执行以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可由例如FPGA或ASIC的专用逻辑电路执行,或者通过专用逻辑电路和一个或多个编程计算机的组合来执行。

适合于执行计算机程序的计算机可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可由专用逻辑电路补充或者并入在专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者操作上被耦合以从所述一个或多个大容量存储设备接收数据或者将数据传送到所述一个或多个大容量存储设备,或者两者以用于存储数据。然而,计算机不必具有这样的设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如是移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制器、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器等。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,作为示例包括半导体存储设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。

为了提供与用户的交互,可在计算机上实现本说明书中描述的主题的实施例,所述计算机具有用于向用户显示信息的显示设备以及用户可用来向该计算机提供输入的键盘和定点设备,所述显示设备例如是CRT(阴极射线管)或LCD(液晶显示器)监视器,所述定点设备例如是鼠标或轨迹球。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到请求而向用户的设备上的web浏览器发送网页。另外,计算机可通过向个人设备发送文本消息或其它形式的消息并且继而从用户接收响应消息来与用户交互,所述个人设备例如是正在运行消息传送应用的智能电话。

用于实现机器学习模型的数据处理装置还可包括例如用于处理机器学习训练或生产,即推理、工作负载的公共和计算密集部分的专用硬件加速器单元。

可使用机器学习框架来实现和部署机器学习模型。所述机器学习框架例如是TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架。

本说明书中描述的主题的实施例可被实现在计算系统中,所述计算系统包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有用户可用来与本说明书中描述的主题的实现方式交互的图形用户界面、web浏览器或app的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。

计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传输例如HTML页面的数据例如以用于向与作为客户端的设备交互的用户显示数据并从该用户接收用户输入的目的。可在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围的限制,而是相反地被解释为对可能特定于特定发明的特定实施例的特征的描述。也可在单个实施例中组合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能在上面被描述按照某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然按照特定次序在附图中描绘并在权利要求书中记载操作,但是这不应该被理解为要求按照所示的特定次序或者以先后次序执行这样的操作,或者要求执行所有图示的操作以实现所预期的结果。在一些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中要求这样的分离,并且应该理解的是,所描述的程序组件和系统一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。

已描述了主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作可被以不同的次序执行并仍然实现所预期的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所预期的结果。在一些情况下,多任务处理和并行处理可以是有利的。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:大规模并行神经推理计算元件

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!