CN116710974A - 在合成数据系统和应用程序中使用域对抗学习的域适应 - Google Patents

在合成数据系统和应用程序中使用域对抗学习的域适应 Download PDF

Info

Publication number
CN116710974A
CN116710974A CN202280008642.9A CN202280008642A CN116710974A CN 116710974 A CN116710974 A CN 116710974A CN 202280008642 A CN202280008642 A CN 202280008642A CN 116710974 A CN116710974 A CN 116710974A
Authority
CN
China
Prior art keywords
neural networks
gradient
domain
parameters
data
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.)
Pending
Application number
CN202280008642.9A
Other languages
English (en)
Inventor
D·J·阿库纳·马雷罗
S·菲德勒
M·劳
张国军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Priority claimed from PCT/US2022/031379 external-priority patent/WO2022251661A1/en
Publication of CN116710974A publication Critical patent/CN116710974A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

在各种示例中,可以使用多阶梯度来更新机器学习模型(MLM),以便训练所述MLM,例如至少一阶梯度和任意数量的高阶梯度。可以训练MLM中的至少第一个以生成对于对应于第一数据集的第一域和对应于第二数据集的第二域是不变的特征表示。可以训练所述MLM中的至少第二个以对表示是对应于所述第一域还是所述第二域进行分类。可以训练所述MLM中的至少第三个以执行任务。所述第一数据集可以对应于标记的源域,而所述第二数据集可以对应于未标记的目标域。所述训练可以包括在表示空间中将知识从所述第一域转移到所述第二域。

Description

在合成数据系统和应用程序中使用域对抗学习的域适应
背景技术
无监督域适应(UDA)通过从标记的源域(例如,具有不同分布的相关数据集,其中已经存在大量标记数据)转移知识来解决目标域中缺乏标记数据的问题。域对抗学习(DAL)是UDA的一种形式,它涉及以对抗方式学习输入的域不变表示。DAL可能旨在欺骗在表示空间中运行的分类器,以对数据点属于源域还是目标域进行分类。更正式地说,DAL可以理解为训练以最小化表示空间中源域和目标域之间的差异。
在训练神经网络时,可以使用优化器来定义如何更改神经网络的参数,诸如权重和学习率,以便根据损失函数减少损失。DAL通常实现基于梯度下降的优化器,其是一种依赖于损失函数的一阶导数的一阶优化算法。在DAL中,学习算法的对抗性可能是由于梯度反转层(GRL)的引入。在反向传播过程中,GRL可以从后续级别获取梯度并更改其符号—例如,将梯度乘以-1—然后再将其传递到前一层。虽然DAL理论上能够实现高性能,但在实践中,DAL可能明显不稳定且难以实现用于训练神经网络。
发明内容
本公开的实施例涉及对竞争神经网络组件具有增强收敛性的优化器。更具体地,本公开涉及用于确定神经网络的参数值,同时避免与基于梯度的优化算法相关联的潜在问题的方法,这些潜在问题可能导致训练中的不稳定或以其他方式限制训练性能。
与诸如上述那些训练机器学习模型(MLM)的传统方法相比,MLM的参数值可以至少基于对应于一个或更多个成本函数的多阶梯度来更新。例如,可以至少基于一阶梯度和任意数量的高阶梯度来更新这些值。可以使用对抗性学习来训练MLM,例如,通过联合训练MLM。MLM中的至少第一个可以被训练以生成对于与第一数据集对应的第一域和与第二数据集对应的第二域是不变的一个或更多个特征的表示。MLM中的至少第二个可以被训练以对表示是对应于第一域还是第二域进行分类。MLM中的至少第三个可以被训练以使用分配给第一数据集的一个或更多个真值标签来执行任务——例如对输入数据中表示的对象进行分类。在至少一个实施例中,第一数据集可以对应于标记的源域(例如,对应于三维模型的渲染),并且第二数据集可以对应于未标记的目标域(例如,对应于真实世界的图像)。训练可以包括在表示空间中将知识从第一域转移到第二域。
附图说明
下面参照附图详细描述了用于对竞争神经网络组件具有增强收敛性的优化器的本系统和方法,其中:
图1是根据本公开的一些实施例的可用于训练一个或更多个机器学习模型的示例过程的图示;
图2示出了根据本公开的一些实施例的可用于领域对抗学习的机器学习模型和相关数据集的示例;
图3A示出了根据本公开的一些实施例的源域的数据集分布的示例;
图3B示出了根据本公开的一些实施例的目标域的数据集分布的示例;
图4是根据本公开的一些实施例的针对各种形式的优化器的联合训练神经网络中的参数值的示例图;
图5是根据本公开的一些实施例示出用于使用至少第一梯度和第二梯度训练一个或更多个MLM的方法的流程图;
图6是根据本公开的一些实施例示出用于使用至少第一梯度和第二梯度联合训练MLM的方法的流程图;
图7是适用于实现本公开的一些实施例的示例计算设备的框图;以及
图8是适用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
本公开涉及对竞争神经网络组件具有增强收敛性的优化器。更具体地说,该公开涉及用于确定神经网络的参数值,同时避免与基于梯度的优化算法相关的潜在问题的方法,这些潜在问题可能导致训练不稳定或以其他方式限制训练性能。
所公开的方法提供了神经网络的参数的基于梯度的优化,其中参数的值至少基于对应于一个或更多个成本函数的多阶梯度来更新。例如,可以至少基于一阶梯度和任意数量的高阶梯度来更新这些值。在至少一个实施例中,可以将一个或更多个样本应用于具有一个或更多个参数的第一值的一个或更多个神经网络,以生成一个或更多个输出。例如,一个或更多个神经网络可以包括将使用对抗性学习来训练的多个神经网络(或者更一般地,为竞争任务或功能而被训练的神经网络组件)。一个或更多个输出可用于计算与所述一个或更多个成本函数对应的至少第一梯度和第二梯度,其中第二梯度具有比第一梯度更高的阶。可以使用第一梯度和第二梯度来调整第一值,以确定一个或更多个神经网络的一个或更多个参数的第二值。在至少一个实施例中,调整可以至少基于至少第一梯度和第二梯度的统计组合(例如,平均值)。可以使用一个或更多个参数的第二值来训练一个或更多个神经网络。
在一个或更多个实施例中,使用多阶梯度来更新一个或更多个参数的值可以改善在使用基于梯度的优化算法(例如梯度下降)训练神经网络时可能出现的许多潜在问题。例如,使用梯度下降来优化包括梯度反转层(GRL)的一个网络(或更多个网络)的参数,例如在域对抗学习(DAL)中,可能违反局部纳什均衡的渐近收敛保证,除非对学习率设置上限。使用高阶梯度可以有效地抵消基于梯度的优化算法导致上限的特性。因此,可以使用更积极的学习率,同时实现更快的收敛。
在至少一个实施例中,多个神经网络可被联合训练且包括一个或更多个第一神经网络,该一个或更多个第一神经网络被训练以生成对于与第一数据集对应的第一域和与第二数据集对应的第二域是不变的一个或更多个特征的表示。神经网络还可以包括一个或更多个第二神经网络,用于对表示是对应于第一域还是第二域进行分类。神经网络可以进一步包括被训练为对表示进行分类的一个或更多个第三神经网络(该训练可以使用分配给第一数据集中的样本的一个或更多个真值标签)。在至少一个实施例中,第一数据集可以对应于标记的源域(例如,对应于三维模型的渲染),并且第二数据集可以对应于未标记的目标域(例如,对应于真实世界的图像)。训练可以包括在由神经网络学习的表示空间中将知识从第一域转移到第二域。
本文描述的系统和方法可以由(但不限于)非自动驾驶汽车、半自动驾驶汽车(例如,在一个或更多个自适应驾驶员辅助系统(ADAS)中)、有人驾驶和无人驾驶的机器人或机器人平台、仓库车辆、越野车辆、连接到一个或更多个拖车的车辆、飞行船只、船只、班车、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下船只、无人机和/或其他车辆类型使用。此外,本文中描述的系统和方法可用于多种目的,作为示例但不限于,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监视、模拟和数字孪生、自动或半自动机器应用、深度学习、环境模拟、对象或参与者模拟和/或数字孪生、数据中心处理、对话式AI、光传输模拟(例如光线追踪、路径追踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用程序。
所公开的实施例可以被包括在各种不同系统中,诸如汽车系统(例如,一种用于自主或半自主机器的控制系统,一种用于自主或半自主机器的感知系统)、使用机器人实现的系统、空中系统、医疗系统、划船系统、智能区域监控系统、用于执行深度学习操作的系统、用于执行模拟操作的系统、用于执行数字孪生操作的系统、使用边缘设备实现的系统、结合一个或更多个虚拟机(VM)的系统、用于执行合成数据生成操作的系统、至少部分在数据中心中实现的系统、用于执行对话式AI操作的系统、用于执行光传输模拟的系统、用于执行3D资产的协作内容创建的系统、至少部分使用云计算资源实现的系统和/或其他类型的系统。
图1是根据本公开的一些实施例的示例过程100的示出,其可用于训练一个或更多个机器学习模型。应当理解,本文所述的这种和其他布置仅作为示例被阐述。除了所示的那些布置和元件之外或代替所示的那些布置和元件,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且一些元件可以完全省略。进一步,本文描述的元件中的许多是可被实现为分立式或分布式组件或结合其他组件,和以任何合适的组合和在任何合适的位置实现的功能实体。本文中描述为由实体执行的不同功能可由硬件、固件和/或软件执行。例如,不同功能可由执行存储在存储器中的指令的处理器执行。
过程100可以使用一个或更多个机器学习模型(MLM)102和训练引擎104以及其它组件来实现。训练引擎104可以包括参数调整器106和输出分析器108。过程100(及其组件和/或特征)可以使用一个或更多个计算设备来实现,诸如图7的计算设备700和/或一个或更多个数据中心,诸如图8的数据中心800,下面将更详细地描述。
在高层次上,过程100可以包括MLM 102接收一个或更多个输入,诸如数据集110的一个或更多个样本(例如,训练数据集),并从一个或更多个输入生成一个或更多个输出,诸如输出数据112(例如,张量数据)。如图1所示,数据集110可以由训练引擎104应用于MLM102。过程100还可以包括训练引擎104的输出分析器108接收一个或更多个输入,诸如输出数据112,并从一个或更多个输入生成一个或更多个输出,诸如损失函数数据114(例如,表示一个或更多个MLM 102关于一个或更多个成本函数的一个或更多个损失)。参数调整器106可以接收一个或更多个输入,诸如损失函数数据114,并从一个或更多个输入生成一个或更多个输出,诸如更新数据116(例如,表示对一个或更多个MLM 102的一个或更多个参数的一个或更多个值的更新)。参数调整器106可以将更新数据116应用于MLM 102,以根据更新数据116更新MLM 102中的一个或更多个的一个或更多个参数的一个或更多个值。过程100可以重复任意次数的迭代,例如,直到MLM 102被完全训练。例如,训练引擎104可以使用任何合适的方法来确定结束训练,诸如确定MLM 102已经收敛(例如,使用损失函数数据114)、确定已经发生训练迭代的阈值次数等。至少基于该确定,MLM 102可以被部署和/或经受额外的验证、测试和/或适应。
数据集110可以包括训练、验证或测试数据。例如,数据集110可由训练引擎104用于训练MLM 102、用于验证MLM 102和/或用于测试MLM 102。在一个或更多个实施例中,数据集110可以在过程100的多次迭代中应用于MLM 102。在一个或更多个实施例中,数据集110可以表示在过程100中由训练引擎104应用于MLM 102的一个或更多个样本。样本可以对应于具有一个或更多个属性的至少一个类(例如,MLM 102中的一个或更多个的输出类)。
此处描述的MLM 102和其它MLM可以包括任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、K表示聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、循环、感知器、长期/短期记忆(LSTM)、霍普菲尔德、玻尔兹曼、深度信念、反卷积、生成对抗、液体状态机等)的机器学习模型和/或其他类型的机器学习模型。在各种示例中,MLM可以包括一个或更多个卷积神经网络。
作为示例而不是限制,MLM 102可以包括训练引擎104可以使用对抗学习来训练的一个或更多个MLM。例如,MLM和/或其部分(例如,层、子网等)可以针对竞争任务或功能进行训练。
作为示例,诸如在机器学习模型102包括至少一个卷积神经网络(CNN)的情况下,机器学习模型102可以包括任意数量的层。一个或更多个层可以包括输入层。输入层可以保存与数据集110相关联的值(例如,在后处理之前或之后)。例如,当数据集110中的样本表示图像时,输入层可以将表示图像的原始像素值的值保存为体积(例如,宽度、高度和颜色通道(例如,RGB),诸如32×32×3)。
一个或更多个层可以包括卷积层。卷积层可以计算连接到输入层中局部区域的神经元的输出,每个神经元计算它们的权重和它们在输入体积(input volume)中连接到的小区域之间的点积。卷积层的结果可能是另一个体积,其中一个维度基于应用的过滤器数量(例如,宽度、高度和过滤器的数量,诸如32x 32x 12,如果12是过滤器的数量)。
一个或更多个层可以包括整流线性单元(ReLU)层。ReLU层可以应用元素激活函数,诸如max(0,x),例如阈值为零。ReLU层的结果体积可能与ReLU层的输入的体积相同。
一个或更多个层可以包括池化层。池化层可以沿空间维度(例如,高度和宽度)执行下采样操作,这可能导致比池化层的输入小的体积(例如,来自32x 32x 12输入体积的16x 16x 12)。
一个或更多个层可以包括一个或更多个全连接层。全连接层中的每个神经元可以连接到前一体积中的每个神经元。全连接层可以计算类分数,结果体积可以是1x 1x类数。在一些示例中,CNN可以包括全连接层,使得CNN的层中的一个或更多个层的输出可以作为输入提供给CNN的全连接层。在一些示例中,一个或更多个卷积流可以由机器学习模型102实现,并且卷积流的部分或全部可以包括相应的全连接层。
在一些非限制性实施例中,机器学习模型102可以包括一系列卷积和最大池化层以促进图像特征提取,然后是多尺度扩张卷积和上采样层以促进全局上下文特征提取。
尽管本文针对机器学习模型102讨论了输入层、卷积层、池化层、ReLU层和全连接层,但这并不旨在限制。例如,额外的或替代的层可用于机器学习模型102,诸如归一化层、SoftMax层、梯度反转层和/或其它层类型。
在机器学习模型102包括神经网络的实施例中,取决于实施例,可以使用神经网络的层的不同顺序和/或数量。换句话说,机器学习模型102的层的顺序和数量不限于任何一种架构。
此外,一些层可包括参数(例如,权重和/或偏差),诸如卷积层和全连接层,而其他层可不包括,诸如ReLU层和池化层。在一些示例中,参数可以在训练期间由机器学习模型102学习。此外,一些层可以包括额外的超参数(例如,学习率、步幅、时期等),诸如卷积层、全连接层和池化层,而其他层可不包括,诸如ReLU层。参数和超参数不受限制,并且可以根据实施例而有所不同。
训练引擎104的输出分析器108可以被配置成从输出数据112生成损失函数数据114。输出数据112可以表示来自MLM 102中的一个或更多个的一个或更多个输出。在至少一个实施例中,输出数据112可以包括来自一个或更多个MLM 102的至少一部分张量数据(和/或向量数据,和/或标量数据)。输出分析器108可以至少基于对输出数据112的分析来生成损失函数数据114。输出数据112的分析可以使用各种方法进行。在至少一个实施例中,输出分析器108可以后处理输出数据112中的至少一些,例如以确定一个或更多个MLM 102的一个或更多个推断或预测的输出(例如,MLM 102被训练以推断或正在被训练以推断的一个或更多个输出)。输出分析器108可以分析被后处理的数据以确定损失函数数据114。例如,输出分析器108可以包括一个或更多个优化器或求解器,训练引擎104可以使用优化器或求解器来定义如何改变一个或更多个MLM 102的参数-诸如权重和学习率-以便根据损失或成本函数减少损失。
在一个或更多个实施例中,输出分析器108可以使用输出数据112计算对应于一个或更多个成本函数的多个梯度,其中梯度是不同的阶数。例如,输出分析器108可以计算至少第一梯度和第二梯度,其中第二梯度具有比第一梯度更高的阶。在一个或更多个实施例中,第一梯度可以是成本函数的一阶梯度,而第二梯度可以是成本函数的二阶梯度。然而,在不同的示例中,梯度可以是任意顺序的(例如,前四、第二和第四、第一和第三等)。
参数调整器106可以被配置成生成一个或更多个输出,诸如从损失函数数据114生成更新数据116。例如,参数调整器106可以使用使用输出分析器108计算的梯度来确定一个或更多个MLM 102的一个或更多个参数的更新值。
现在参考图2,图2示出了根据本公开的一些实施例的可用于域对抗学习的数据集110和MLM 102的神经网络204、206、208的示例。特别地,过程100可以采用图2中所示的数据集110和MLM 102进行域对抗学习(DAL)。
数据集110包括数据集210和数据集212。作为示例,数据集210可以对应于标记的源域,而数据集212可以对应于未标记的目标域。作为示例而不是限制,数据集210可以对应于合成数据,并且数据集212可以对应于真实世界的数据。在所示的示例中,数据集210包括物体的3D模型(例如,车辆模型)的合成渲染,而数据集212包括物体的真实世界的图像(例如,车辆的照片)。
该过程100可用于在由MLM 102学习的表示空间中将知识(例如,由标签编码)从第一域(例如,合成的)转移到第二域(例如,真实世界)。为此,过程100可用于实现DAL。使用DAL,MLM 102可以以对抗方式学习输入的域不变表示。
如图所示,MLM 102包括神经网络204(例如,特征提取器),其可以被训练成生成一个或更多个特征的表示,该表示对于与输入到MLM 102的数据集210相对应的第一域和对于与输入到MLM 102的数据集212相对应的第二域是不变的。
MLM 102还可以包括神经网络206(例如分类器),其可以被训练为使用与使用神经网络204生成的一个或更多个特征中的特征相对应的数据来执行推理任务——其可以在MLM 102的部署期间使用以控制机器的一个或更多个参数,诸如自动驾驶车辆、机器人、计算机上的应用程序等,或用于其他目的。在至少一个实施例中,训练引擎104可以使用分配给数据集210的样本的一个或更多个真值标签来训练神经网络206。然而,真值标签在训练时可能不可用于数据集212。
MLM 102还可以包括神经网络208(例如,域分类器),其可以被训练成分类或以其他方式生成指示使用神经网络204产生的表示是对应于第一域还是第二域(例如,数据集210或数据集212)的数据。
现在参照图3A和图3B以及图2,根据本公开的一些实施例,图3A示出了源域的数据集分布Ps的示例,并且图3B示出了目标域的数据集分布Pt的示例。
在一个或更多个实施例中,为了训练MLM 102,训练引擎104可以访问并使用数据集210的标记示例,诸如样本316,而数据集212可以提供未标记的示例,诸如样本318。来自数据集212的源输入Xs可以从数据集分布Ps中采样,而来自数据集210的目标输入Xi可以从数据集分布Pt中采样,两者都在X上。训练引擎104可以被配置成使用来自与数据集分布Ps对应的源域的标记示例来查找联合最小化对应于数据集分布Pt的目标域中的风险的假设。例如,训练引擎104可以被配置成查找一个函数,使得该函数与神经网络206结合,使源域的风险及其与神经网络206的组合最小化,并且使得神经网络208最小化数据集分布Pt和数据集分布Ps的散度。散度的计算可以由神经网络208使用域分类来估计,以检测样本是属于源域还是目标域。当不存在能够正确区分源域样本和目标域样本的函数时,MLM 102可被认为对于域完全不变。
在训练MLM 102时,训练引擎104可以被配置成自私地最小化每个神经网络的成本函数。学习算法的对抗性可能是由于在神经网络208中引入了梯度反转层(GRL)。在反向传播过程中,GRL可以从后续级别获取梯度并更改其符号—例如,将梯度乘以-1—然后再将其传递到前一层。在向后传递期间翻转梯度的符号可能对训练引擎104采用的学习算法的训练动态和渐近行为产生强烈影响。例如,GRL可以将梯度下降转化为竞争性的基于梯度的算法,该算法可以收敛到例如在混沌系统中出现的周期轨道和其他非平凡的限制行为。这与传统技术形成鲜明对比,在传统技术中,梯度下降引入的隐式正则化已被证明是可取的。
对抗训练中的最优解可能对应于纳什均衡。全局纳什均衡(NE)可能并不总是存在,例如,损失既不是凸的也不是凹的。在一个或更多个实施例中,训练引擎104可以至少基于确定对抗性神经网络的一个或更多个参数的值收敛到局部纳什均衡来训练MLM 102。例如,在DAL和其他对抗学习方法中,最优解可能对应于局部纳什均衡。NE可能意味着MLM 102中的神经网络都不会改变其参数,因为它不会导致任何额外的性能增益。
梯度下降可用于使用DAL训练MLM 102。使用带有GRL的梯度下降可能会违反局部NE的渐近收敛保证,除非对学习率设置了上限。这可以解释为什么如果学习率太高,使用梯度下降会导致训练不稳定和对优化器参数的敏感性。虽然学习率可能保持在较低,但这可能会导致训练时间较长以及额外的计算处理和训练迭代。
根据公开的各个方面,输出分析器108可以实现一个或更多个高阶常微分方程(ODE)求解器,其可以改善可能由MLM 102的各种实施例的梯度下降引起的约束。例如,在MLM 102的训练本质上是对抗性的情况下,诸如在DAL中,由ODE施加的对学习率的限制可以得到改进(例如,消除)。在一个或更多个实施例中,由输出分析器108采用的高阶ODE求解器可以是高阶梯度下降/欧拉法求解器、高阶Runge-Kutta求解器和/或其他类型的高阶ODE求解器。
鉴于存在严格的局部NE,梯度游戏动力学(gradient-play dynamics)可能会被吸引到严格的局部NE。该情况意味着NE在结构上是稳定的,并且所公开的方法可能受益于该特性。结构稳定性意味着梯度的轻微偏差估计量(例如,由于采样噪声)在平衡邻域中具有类似的行为。但是,在实践中,此假设可能不成立,并且可能在计算上难以验证。尽管如此,对于许多不同的任务、基准测试和网络架构,仍可实现明显的性能提升。
DAL可能旨在欺骗在表示空间中运行的分类器,该表示空间旨在对数据点是属于源域还是目标域进行分类。更正式地说,DAL可以理解为训练以最小化表示空间中源域和目标域之间的差异。在实践中,ODE的显式解可能是不可能的。因此,输出分析器108可以采用积分算法来近似解。训练MLM可以采用与等式(1)相对应的欧拉方法:
ω+=ω-ηv(ω) (1)
其中v(ω)指MLM 102的联合参数集w的向量场,而ω+指用于联合参数集ω的更新,其可对应于更新数据116,并且η指学习率。这种方法可以称为梯度下降,如本文所述。
使用GRL基于梯度下降的高分辨率ODE可以采用等式(2)的形式:
虽然传统上-v(ω)后面的术语被认为对监督学习有益,但在各种情况下,诸如在对抗学习中,它可能会导致引入学习率的上限的动力学的雅可比矩阵。使用公开的方法,该术语可被有效地取消。
使用龙格-库塔(Runge-Kutta)方法,例如,具有二阶,基于梯度下降的ODE可以采用等式(3)的形式:
将等式(3)与等式(1)进行比较,很明显,等式(3)可以使用标准的深度学习框架以直接的方式实现。此外,它不需要引入任何额外的超参数,同时以高精度近似连续ODE。
使用龙格-库塔方法,例如,具有四阶,基于梯度下降的ODE可以采用等式(4)的形式:
其中,根据等式(5):
根据等式(6):
如从等式(3)和(4)可以看出,所公开的方法可以至少基于梯度的统计组合来更新参数,诸如平均值(例如,加权平均值)或其它统计组合。
现在参考图4,图4是根据本公开的一些实施例的用于各种形式的优化器的联合训练的神经网络中的参数值的示例图400。图400包括MLM 102在实现多阶ODE求解器时使用训练引擎104执行的训练迭代期间的参数值406,如本文所述。图400还包括MLM 102在实现一阶ODE求解器时执行的训练迭代期间的参数值408和410。可以看出,参数值406以比一阶ODE求解器的参数值408和410更快和更直接的方式从初始化420进展到最优422,参数值408和410可能永远不会达到最优422或收敛的状态。
现在参考图5-6,方法500和600以及本文描述的其它方法的每个框,包括可以使用硬件、固件和/或软件的任意组合执行的计算过程。例如,各种功能可以由处理器执行存储在存储器中的指令来执行。这些方法也可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序、服务或托管服务(独立或与其他托管服务组合)或另一个产品的插件提供,仅举几例。此外,方法500和600作为示例相对于图1和图2进行描述。然而,方法500和600可以额外地或替代地由任何一个系统执行,或者由系统的任何组合执行,包括但不限于本文描述的那些。
图5是示出根据本公开的一些实施例的用于使用至少第一梯度和第二梯度来训练一个或更多个MLM的方法500的流程图。
方法500在框B502处包括将一个或更多个样本应用于具有一个或更多个参数的第一值的一个或更多个MLM,以生成一个或更多个输出。例如,训练引擎104可以将对应于数据集110的一个或更多个样本应用于具有一个或更多个参数的第一值的MLM 102,以生成对应于输出数据112的一个或更多个输出。
方法500在框B504处包括使用一个或更多个输出来计算对应于一个或更多个成本函数的第一梯度和第二梯度,第二梯度比第一梯度更高阶。例如,输出分析器108可以使用输出数据112计算对应于一个或更多个成本函数的第一梯度和第二梯度(例如,根据等式(3)或(4))。
方法500在框B506处包括使用第一梯度和第二梯度调整一个或更多个参数的第一值,以确定用于一个或更多个MLM的一个或更多个参数的第二值。例如,参数调整器106可以使用第一梯度和第二梯度来调整一个或更多个参数的第一值,以确定用于MLM 102的一个或更多个参数的第二值。一个或更多个参数的第二值可以对应于更新数据116。
方法500在框B508处包括至少基于调整来训练具有一个或更多个参数的第二值的一个或更多个MLM。例如,方法500可以重复以至少基于调整来训练具有一个或更多个参数的第二值的MLM 102。
现在参考图6,图6是示出根据本公开的一些实施例的用于使用至少第一梯度和第二梯度来联合训练MLM的方法600的流程图。
方法600在框B602处包括生成一个或更多个第一MLM的一个或更多个第一输出和一个或更多个第二MLM的一个或更多个第二输出。例如,训练引擎104可以生成神经网络204的至少一个或更多个第一输出和神经网络208的一个或更多个第二输出(例如,使用一个或更多个第一输出)。
方法600在框B604处包括使用一个或更多个第一输出和一个或更多个第二输出,使用一个或更多个成本函数来确定来自一个或更多个第一MLM和一个或更多个第二MLM的联合参数集的第一梯度和第二梯度,第二梯度比第一梯度更高阶。例如,输出分析器108可以使用一个或更多个第一输出和一个或更多个第二输出来计算对应于一个或更多个成本函数的第一梯度和第二梯度(例如,根据等式(3)或(4))。
方法600在框B606处包括使用第一梯度和第二梯度更新联合参数集的值。例如,参数调整器106可以使用第一梯度和第二梯度来调整联合参数集的值。联合参数集的值可以对应于更新数据116。
方法600在框B608处包括联合训练具有使用第一梯度和第二梯度更新的值的一个或更多个第一MLM和一个或更多个第二MLM。例如,方法600可以重复以联合训练具有使用第一梯度和第二梯度更新的值的神经网络204和神经网络208。在一个或更多个实施例中,方法600进一步应用于联合训练神经网络206与神经网络204和神经网络208。
示例计算设备
图7为适合用于实现本公开一些实施例的示例计算设备700的框图。计算设备700可以包括直接或间接耦合下列设备的互连系统702:存储器704,一个或更多个中央处理单元(CPU)706,一个或更多个图形处理单元(GPU)708,通信接口710,输入/输出(I/O)端口712,输入/输出组件714,电源716,一个或更多个呈现组件718(例如显示器)和一个或更多个逻辑单元720。在至少一个实施例中,计算设备700可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个GPU 708可以包括一个或更多个vGPU,一个或更多个CPU 706可以包括一个或更多个vCPU,和/或一个或更多个逻辑单元720可以包括一个或更多个虚拟逻辑单元。因此,计算设备700可以包括分立组件(例如,专用于计算设备700的完整GPU)、虚拟组件(例如,专用于计算设备700的GPU的一部分),或其组合。
尽管图7的各个框被示为经由具有线路的互连系统702连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件718可以被认为是I/O组件714(例如如果显示器为触摸屏)。作为另一个示例,CPU 706和/或GPU708可以包括存储器(例如,存储器704可以表示除了GPU 708、CPU 706和/或其他组件的存储器以外的存储设备)。换言之,图7的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图7的计算设备的范围内。
互连系统702可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统702可以包括一种或更多种链路或总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 706可以直接连接到存储器704。此外,CPU 706可以直接连接到GPU 708。在组件之间存在直接或点对点连接的情况下,互连系统702可以包括PCIe链路来执行该连接。在这些示例中,计算设备700中不需要包括PCI总线。
存储器704可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器704可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备700访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 706可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备700的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 706中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 706可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备700的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机制(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备700还可以包括一个或更多个CPU 706。
除了或替代CPU 706,GPU 708还可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个GPU 708可以是集成GPU(例如,具有一个或更多个CPU 706)和/或一个或更多个GPU 708可以是离散GPU。在实施例中,一个或更多个GPU 708可以是一个或更多个CPU 706的协处理器。计算设备700可以使用GPU 708来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 708可用于GPU上的通用计算(GPGPU)。GPU 708可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 708可以响应于渲染命令(例如经由主机接口接收的来自CPU 706的渲染命令)而生成用于输出图像的像素数据。GPU 708可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(例如GPGPU数据)的图形存储器。显示存储器可以作为存储器704的部分而被包括。GPU 708可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 708可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。
除了或替代CPU 706和/或GPU 708,逻辑单元720可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,CPU 706、GPU708和/或逻辑单元720可以离散地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元720可以是一个或更多个CPU 706和/或一个或更多个GPU 708的一部分和/或集成在其中和/或一个或更多个逻辑单元720可以是CPU 706和/或GPU 708的离散组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元720可以是一个或更多个CPU 706和/或一个或更多个GPU 708的处理器。
逻辑单元720的示例包括一个或更多个处理核心和/或其组件,例如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU))、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口710可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口710可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或InfiniBand通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。在一个或更多个实施例中,逻辑单元720和/或通信接口710可以包括一个或更多个数据处理单元(DPU)以将通过网络和/或通过互连系统702接收的数据直接传输到一个或更多个GPU 708(例如,一个或更多个GPU 708的存储器)。
I/O端口712可以使得计算设备700能够逻辑地耦合到包括I/O组件714、呈现组件718和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备700中。说明性I/O组件714包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。I/O组件714可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备700的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备700可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备700可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备700用来渲染沉浸式增强现实或者虚拟现实。
电源716可以包括硬接线电源、电池电源或者其组合。电源716可以向计算设备700供电以使得计算设备700的组件能够操作。
呈现组件718可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件718可以接收来自其他组件(例如GPU 708、CPU 706、DPU等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
示例数据中心
图8示出了示例数据中心800,其可用于本公开的至少一个实施例中。数据中心800可以包括数据中心基础设施层810、框架层820、软件层830和应用层840。
如图8所示,数据中心基础设施层810可以包括资源协调器812、分组计算资源814和节点计算资源(“节点C.R.”)816(1)-816(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.816(1)-816(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在一些实施例中,节点C.R.816(1)-816(N)中的一个或更多个节点C.R.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.816(1)-816(N)可以包括一个或更多个虚拟组件,例如vGPU、vCPU等和/或节点C.R.816(1)-816(N)中的一个或更多个可以对应于虚拟机(VM)。
在至少一个实施例中,分组计算资源814可以包括容纳在一个或更多个机架内的节点C.R.816的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组计算资源814内的节点C.R.816的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU、GPU、DPU和/或其他处理器的几个节点C.R.816分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括以任意组合的任何数量的电源模块、冷却模块和/或网络交换机。
资源协调器812可以配置或以其他方式控制一个或更多个节点C.R.816(1)-816(N)和/或分组计算资源814。在至少一个实施例中,资源协调器812可以包括用于数据中心800的软件设计基础结构(“SDI”)管理实体。资源协调器812可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图8所示,框架层820可以包括作业调度器833、配置管理器834、资源管理器836和分布式文件系统838。框架层820可以包括支持软件层830的软件832和/或应用层840的一个或更多个应用程序842的框架。软件832或应用程序842可以分别包括基于Web的服务软件或应用程序,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务软件或应用程序。框架层820可以是但不限于一种免费且开源的软件网络应用框架,例如可以利用分布式文件系统838来进行大规模数据处理(例如“大数据”)的Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器833可以包括Spark驱动器,用于促进对数据中心800的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器834可以能够配置不同的层,例如软件层830和包括Spark和用于支持大规模数据处理的分布式文件系统738的框架层820。资源管理器836能够管理映射到或分配用于支持分布式文件系统838和作业调度器833的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层810处的分组计算资源814。资源管理器836可以与资源协调器812协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层830中的软件832可以包括由节点C.R.816(1)-816(N)的至少部分,分组计算资源814和/或框架层820的分布式文件系统838使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒浏览软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层840中包括的一个或更多个应用程序842可以包括由节点C.R.816(1)-816(N)的至少部分、分组的计算资源814和/或框架层820的分布式文件系统838使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)和/或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器834、资源管理器836和资源协调器812中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心800的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或行差的部分。
数据中心800可以包括工具、服务、软件或其他资源,用于根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心800描述的软件和计算资源,根据神经网络架构计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心800所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息,例如但不限于本文所述的那些。
在至少一个实施例中,数据中心800可以使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与之对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图7的计算设备700的一个或更多个实例上实现—例如,每个设备可以包括计算设备700的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可以是作为数据中心800的一部分而被包括的,其示例在此关于图8更详细地描述。
网络环境的组件可以通过网络彼此通信,网络可以是有线、无线或两者。网络可以包括多个网络,或者多个网络中的网络。举例来说,网络可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如因特网和/或公共交换电话网(PSTN))、和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)之类的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下服务器可能不包括在网络环境中),以及一个或更多个客户端-服务器网络环境(在这种情况下一个或更多个服务器可以包含在网络环境中)。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、它们的组合等。基于云的网络环境可以包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件系统,这些服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括用于支持软件层的软件和/或应用层的一个或更多个应用程序的框架。软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用程序(例如,通过经由一个或更多个应用程序编程接口(API)访问服务软件和/或应用程序)。框架层可以是但不限于一种类型的免费且开源软件网络应用程序框架,例如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一个都可以分布在来自(例如,可以分布在州、地区、国家、全球等地的一个或更多个数据中心的)中央或核心服务器的多个位置。如果到用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,仅限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
客户端设备可以包括本文关于图7描述的示例计算设备700的至少一些组件、特征和功能。作为示例而非限制,客户端设备可以体现为个人计算机(PC)、膝上型计算机、移动设备、智能手机、平板计算机、智能手表、可穿戴计算机、个人数码助理(PDA)、MP3播放器、虚拟现实头戴式显示器、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统、车辆、船只、飞行器、虚拟机器、无人机、机器人、手持通信设备、医院设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描述设备的任意组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

Claims (20)

1.一种方法,包括:使用一个或更多个神经网络生成一个或更多个输出,所述一个或更多个神经网络包括对应于一个或更多个第一值的一个或更多个参数;使用一个或更多个成本函数并至少基于所述一个或更多个输出,计算第一梯度和比所述第一梯度更高阶的第二梯度;以及使用所述第一梯度和所述第二梯度调整对应于所述一个或更多个参数的所述一个或更多个第一值,以确定与所述一个或更多个神经网络的所述一个或更多个参数相对应的一个或更多个第二值。
2.根据权利要求1所述的方法,其中所述一个或更多个神经网络包括第一神经网络和第二神经网络,所述第一神经网络和所述第二神经网络使用对抗性训练来训练。
3.根据权利要求1所述的方法,其中所述一个或更多个神经网络包括多个神经网络,并且至少部分地通过以下方式训练所述多个神经网络:训练所述多个神经网络中的至少一个第一神经网络,以生成一个或更多个特征的表示,所述表示对于与输入到所述至少一个第一神经网络的第一数据集相对应的第一域和与输入到所述至少一个第一神经网络的第二数据集相对应的第二域是不变的;以及训练所述多个神经网络中的至少一个第二神经网络以对所述表示是对应于所述第一域还是所述第二域进行分类。
4.根据权利要求3所述的方法,其中所述第一域对应于合成数据,而所述第二域对应于真实世界的数据。
5.根据权利要求3所述的方法,还包括:使用分配给所述第一数据集的一个或更多个真值标签来训练所述多个神经网络中的至少一个第三神经网络,以对所述表示进行分类。
6.根据权利要求1所述的方法,其中调整对应于所述一个或更多个参数的所述一个或更多个第一值是至少基于至少所述第一梯度和所述第二梯度的统计组合。
7.根据权利要求1所述的方法,其中所述第一梯度是所述一个或更多个成本函数的一阶梯度,并且所述第二梯度是所述一个或更多个成本函数的二阶梯度。
8.根据权利要求1所述的方法,其中所述一个或更多个神经网络包括一个或更多个对抗性神经网络,并且所述训练包括确定所述一个或更多个对抗性神经网络的所述一个或更多个参数收敛到局部纳什均衡。
9.根据权利要求1所述的方法,其中所述一个或更多个神经网络包括梯度反转层。
10.根据权利要求1所述的方法,还包括使用所述一个或更多个神经网络来执行系统内的一个或更多个操作,所述系统包括或被包括在以下的至少一个中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行数字孪生操作的系统;用于执行光传输模拟的系统;用于执行3D资产的协作内容创建的系统;用于执行深度学习操作的系统;使用边缘设备实现的系统;使用机器人实现的系统;用于执行对话式AI操作的系统;用于生成合成数据的系统;包含一个或更多个虚拟机(VM)的系统;至少部分地在数据中心中实现的系统;或者至少部分地使用云计算资源实现的系统。
11.一种系统,包括:一个或更多个处理单元,用于:生成一个或更多个第一神经网络的一个或更多个第一输出和一个或更多个第二神经网络的一个或更多个第二输出;使用一个或更多个成本函数并至少基于所述一个或更多个第一输出和所述一个或更多个第二输出,确定所述一个或更多个第一神经网络和所述一个或更多个第二神经网络的联合参数集的第一梯度和第二梯度,所述第二梯度比所述第一梯度更高阶;以及使用所述第一梯度和所述第二梯度更新所述联合参数集的值。
12.根据权利要求11所述的系统,其中通过以下方式更新所述联合参数集的所述值:更新所述一个或更多个第一神经网络的一个或更多个第一参数,以生成一个或更多个特征的表示,所述表示对于与输入到所述一个或更多个第一神经网络的第一数据集相对应的第一域和与输入到所述一个或更多个第一神经网络的第二数据集相对应的第二域是不变的;以及更新所述一个或更多个第二神经网络的一个或更多个第二参数,以对所述表示是对应于所述第一域还是所述第二域进行分类。
13.根据权利要求12所述的系统,其中所述一个或更多个处理单元还用于:使用分配给所述第一数据集的一个或更多个真值标签来训练一个或更多个第三神经网络,以对所述表示进行分类。
14.根据权利要求12所述的系统,其中至少基于使用所述第一梯度和所述第二梯度生成的统计组合来更新所述值。
15.根据权利要求12所述的系统,其中所述一个或更多个处理单元还用于使用所述一个或更多个神经网络来执行一个或更多个操作,所述系统被包括在以下的至少一个中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行数字孪生操作的系统;用于执行光传输模拟的系统;用于执行3D资产的协作内容创建的系统;用于执行深度学习操作的系统;使用边缘设备实现的系统;使用机器人实现的系统;用于执行对话式AI操作的系统;用于生成合成数据的系统;包含一个或更多个虚拟机(VM)的系统;至少部分地在数据中心中实现的系统;或者至少部分地使用云计算资源实现的系统。
16.一种处理器,包括:用于使用一个或更多个神经网络执行一个或更多个操作的一个或更多个电路,所述一个或更多个神经网络至少部分地通过使用对应于一个或更多个成本函数的多阶梯度更新所述一个或更多个神经网络的一个或更多个参数的一个或更多个值来进行训练。
17.根据权利要求16所述的处理器,其中所述一个或更多个神经网络包括多个神经网络,并且更新所述一个或更多个值是使用所述多个神经网络之间的对抗性训练来执行的。
18.根据权利要求16所述的处理器,其中更新所述一个或更多个值包括在由所述一个或更多个神经网络学习的表示空间中将知识从标记的源域转移到未标记的目标域。
19.根据权利要求16所述的处理器,其中所述一个或更多个神经网络包括多个神经网络,并且更新所述一个或更多个参数的所述一个或更多个值包括:更新所述多个神经网络中的一个或更多个第一神经网络的一个或更多个第一参数,以生成一个或更多个特征的表示,所述表示对于与输入到所述一个或更多个第一神经网络的第一数据集相对应的第一域和与输入到所述一个或更多个第一神经网络的第二数据集相对应的第二域是不变的;以及更新所述多个神经网络中的一个或更多个第二神经网络的一个或更多个第二参数,以对所述表示是对应于所述第一域还是所述第二域进行分类。
20.根据权利要求16所述的处理器,其中所述处理器被包括在以下的至少一个中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行数字孪生操作的系统;用于执行光传输模拟的系统;用于执行3D资产的协作内容创建的系统;用于执行深度学习操作的系统;使用边缘设备实现的系统;使用机器人实现的系统;用于执行对话式AI操作的系统;用于生成合成数据的系统;包含一个或更多个虚拟机(VM)的系统;至少部分地在数据中心中实现的系统;或者至少部分地使用云计算资源实现的系统。
CN202280008642.9A 2021-05-28 2022-05-27 在合成数据系统和应用程序中使用域对抗学习的域适应 Pending CN116710974A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163194697P 2021-05-28 2021-05-28
US63/194,697 2021-05-28
PCT/US2022/031379 WO2022251661A1 (en) 2021-05-28 2022-05-27 Domain adaptation using domain-adversarial learning in synthetic data systems and applications

Publications (1)

Publication Number Publication Date
CN116710974A true CN116710974A (zh) 2023-09-05

Family

ID=84194107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008642.9A Pending CN116710974A (zh) 2021-05-28 2022-05-27 在合成数据系统和应用程序中使用域对抗学习的域适应

Country Status (2)

Country Link
US (1) US20220383073A1 (zh)
CN (1) CN116710974A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115830471B (zh) * 2023-01-04 2023-06-13 安徽大学 一种多尺度特征融合和对齐的域自适应云检测方法

Also Published As

Publication number Publication date
US20220383073A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
US11798271B2 (en) Depth and motion estimations in machine learning environments
US11941719B2 (en) Learning robotic tasks using one or more neural networks
US11610115B2 (en) Learning to generate synthetic datasets for training neural networks
US11816790B2 (en) Unsupervised learning of scene structure for synthetic data generation
US11557085B2 (en) Neural network processing for multi-object 3D modeling
CN111797893B (zh) 一种神经网络的训练方法、图像分类系统及相关设备
US11651214B2 (en) Multimodal data learning method and device
WO2022068623A1 (zh) 一种模型训练方法及相关设备
US20220383570A1 (en) High-precision semantic image editing using neural networks for synthetic data generation systems and applications
JP7226696B2 (ja) 機械学習方法、機械学習システム及び非一時的コンピュータ可読記憶媒体
US20240185506A1 (en) Hybrid differentiable rendering for light transport simulation systems and applications
US20220383073A1 (en) Domain adaptation using domain-adversarial learning in synthetic data systems and applications
US20230153612A1 (en) Pruning complex deep learning models based on parent pruning information
US11922558B2 (en) Hybrid differentiable rendering for light transport simulation systems and applications
US20220398283A1 (en) Method for fast and better tree search for reinforcement learning
WO2022251661A1 (en) Domain adaptation using domain-adversarial learning in synthetic data systems and applications
US20240160888A1 (en) Realistic, controllable agent simulation using guided trajectories and diffusion models
US20240177034A1 (en) Simulating quantum computing circuits using kronecker factorization
US20230377324A1 (en) Multi-domain generative adversarial networks for synthetic data generation
US20230376849A1 (en) Estimating optimal training data set sizes for machine learning model systems and applications
US20230385687A1 (en) Estimating optimal training data set size for machine learning model systems and applications
US20240095527A1 (en) Training machine learning models using simulation for robotics systems and applications
US20230290057A1 (en) Action-conditional implicit dynamics of deformable objects
US20230244985A1 (en) Optimized active learning using integer programming
CN117242502A (zh) 使用面部特征点估计面部表情

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination