CN113822437B - 深度分层的变分自动编码器 - Google Patents

深度分层的变分自动编码器 Download PDF

Info

Publication number
CN113822437B
CN113822437B CN202110290061.6A CN202110290061A CN113822437B CN 113822437 B CN113822437 B CN 113822437B CN 202110290061 A CN202110290061 A CN 202110290061A CN 113822437 B CN113822437 B CN 113822437B
Authority
CN
China
Prior art keywords
vae
training
network
layer
encoder
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.)
Active
Application number
CN202110290061.6A
Other languages
English (en)
Other versions
CN113822437A (zh
Inventor
A·瓦达特
J·考茨
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
Publication of CN113822437A publication Critical patent/CN113822437A/zh
Application granted granted Critical
Publication of CN113822437B publication Critical patent/CN113822437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/047Probabilistic or stochastic networks
    • 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/048Activation functions
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

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

Abstract

本发明公开了深度分层的变分自动编码器。本发明的一个实施例阐述了一种用于执行机器学习的技术。该技术包括将训练数据集输入到包括编码器网络、在先网络和解码器网络的变分自动编码器(VAE)中。该技术还包括基于VAE从训练数据集中产生的一个或更多个输出的平滑度,通过更新VAE的一个或更多个变分自动编码器参数来训练VAE。该技术还包括通过将解码器网络应用于从由先前网络生成的潜在变量的第二分布中采样的一个或更多个值来产生反映训练数据集的第一分布的生成式输出。

Description

深度分层的变分自动编码器
相关申请的交叉引用
本申请要求于2020年6月18日提交的、序列号为63041038的、题为“深度分层的变分自动编码器(DEEP HIERARCHICAL VARIATIONAL AUTOENCODERS)”的美国临时申请的权益。该相关申请的主题内容在此通过引用并入。
技术领域
本公开的实施例总体上涉及生成式机器学习模型,并且更具体地涉及深度分层的变分自动编码器。
背景技术
在机器学习中,生成模型包括深度神经网络和/或其他类型的机器学习模型,这些模型经过训练以生成新的数据实例。例如,可以在包括大量猫的图像的数据集上训练生成模型。然后可以使用生成模型来生成在训练数据集中找不到的新的猫图像。
生成模型包括变分自动编码器(VAE),该变分自动编码器(VAE)学习训练数据集中的数据分布,然后通过从分布中采样来生成新数据。VAE通常包括两个神经网络:将训练数据集中的数据点转换为低维潜在空间的编码器网络,以及将潜在空间中的数据点转换为训练数据中数据的概率分布的解码器网络。可以通过将来自潜在空间的样本输入解码器网络来生成与训练数据集中的数据点相似的新数据,该解码器网络将样本转换为反映对应于潜在空间中的潜在变量值的属性的数据点。
例如,在猫的图像上训练的VAE可以学习潜在变量的分布,这些变量反映了代表猫的图像(例如,猫的脸、毛皮、身体、表情、图像中的姿势等)中像素之间的相关性。然后可以通过从VAE中的编码器网络学习到的潜在变量的分布中进行采样并使用解码器网络将采样的潜在变量值转换为图像中像素值的分布以及从所述分布中采样所述像素值,来生成不在训练数据集中的猫的其他图像。
在生成模型中,VAE倾向于提供有效的贝叶斯推断和采样,但是通常比其他类型的生成模型具有较低的性能。例如,VAE生成的图像往往比其他类型的生成模型的图像模糊。
如前所述,本领域需要用于改善VAE的性能的技术。
发明内容
本发明的一个实施例阐述了一种用于执行机器学习的技术。该技术包括将训练数据集输入到包括编码器网络、在先网络和解码器网络的变分自动编码器(VAE)中。该技术还包括基于VAE从训练数据集中产生的一个或更多个输出的平滑度,通过更新VAE的一个或更多个参数来训练VAE。该技术还包括通过将解码器网络应用于从由先前网络生成的潜变量的第二分布中采样的一个或更多个值来产生反映训练数据集的第一分布的生成式输出。
与用于创建、训练和/或执行VAE的常规技术相比,所公开的技术的技术优势之一是VAE的更快的收敛和/或更好的生成式能。因此,通过减少资源开销和/或改善与训练和/或执行VAE相关的性能,所公开的技术在计算机系统、应用程序、框架和/或技术中提供了技术改进,以训练和执行生成模型、生成内容、增强数据、渲染计算机图形和/或执行表示或特征学习。
附图说明
为了可以详细理解各个实施例的上述特征的方式,可以通过参考各个实施例来对以上简要概述的发明构思进行更具体的描述,其中一些实施例在附图中示出。然而,应注意,附图仅示出了发明构思的典型实施例,因此不应以任何方式被认为是对范围的限制,并且还有其他等效的实施例。
图1示出了配置为实现各种实施例的一个或更多个方面的计算设备。
图2是根据各种实施例的图1的训练引擎和执行引擎的更详细的图示。
图3A是根据各种实施例的图2的编码器的示例架构。
图3B是根据各种实施例的用于图2的VAE中的生成模型的示例架构。
图4A是根据各种实施例的在图2的编码器中的示例残差单元。
图4B是根据各种实施例的在图2的VAE 200的生成模型中的示例残差单元。
图5是根据各个实施例的用于执行机器学习的方法步骤的流程图。
图6是根据各个实施例的用于产生生成式输出的方法步骤的流程图。
图7是根据各种实施例的用于游戏流传输系统的示例系统图。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对各种实施例的更彻底的理解。然而,对于本领域的技术人员将显而易见的是,可以在没有一个或更多个这些具体细节的情况下实践本发明构思。
通用概览
变分自动编码器(VAE)是一种生成模型,可以“学习”训练数据集中的数据点分布。VAE包含两个神经网络:将训练数据集中的数据点转换为低维潜在空间的编码器网络,以及将潜在空间中的数据点转换为训练数据中数据的概率分布的解码器网络。然后,可以使用VAE生成与训练数据集中的数据点相似但在训练数据集中找不到的新数据点。
VAE可以在涉及内容生成(例如,生成图像、文本、音乐和/或可以在广告、出版物、游戏、视频和/或其他媒体类型中使用的其他内容的内容生成)的许多不同的真实世界应用程序中。例如,可以在大量的人脸图像集上训练VAE。受过训练的VAE中的编码器网络可以学习潜在(即“隐藏”)变量的分布,这些变量表示人脸的视觉属性(例如,肤色、发型、面部特征、面部表情、可见的衣服、珠宝等),如图像像素之间的相关性所示。然后,可以通过从由VAE中的编码器网络学习的潜变量值范围中选择值,然后使用解码器网络将选定的潜变量值转换为图像中的像素值,来生成不在训练数据集中的其他人脸图像。
VAE也经常用在计算机图形中(例如,在不显式创建或指定相应模型的情况下渲染角色、对象和/或场景);数据增强(例如,通过调整编码器网络从图像输出的潜变量并使用解码器网络将调整后的潜变量转换为新图像来更改图像中人的形象,针对其他机器学习模型使用VAE生成训练数据等的新样本);和/或表示或特征学习(例如,将人脸、动物和/或物体的视觉属性编码为可以更改或分析以更好地理解属性的潜在变量)。
可通过多种技术来改善VAE的训练和生成式能。首先,VAE可以包括一个层次结构,其中层次结构的每个级别都包含一组潜变量,并且将层次结构级别上给定组的样本与特征图一起传递给下一个层次在下一级别的相应组中进行采样。VAE中潜在变量的这种层次结构安排可以允许较早级别的层次结构,用以捕获跨训练数据集(例如,面部图像中的左右对称和/或均匀肤色)的远程相关性,并且允许较后级别的层次结构,用以对训练数据集(例如,面部表情、眼睛和头发的颜色、面部形状、面部毛发、眼镜等)中数据点内的细粒度依存关系进行编码。
第二,层次结构的每个级别包括具有多个层的残差单元,即将这些残差单元选择和布置为改善VAE的训练和性能。例如,编码器网络中的残差单元可以包括与常规残差单元不同的层布置,以在将输入数据转换为潜在表示中改善VAE的性能。在另一个示例中,解码器网络中的残差单元可以包括增加信道数量的多个层和应用于所增加的数个信道的逐深度可分离卷积层,以改善解码器网络的接收场而不会显着增加解码器网络的计算复杂度。
第三,可以以存储高效和减小与潜在变量的分层采样相关联的不稳定性的方式来训练VAE。例如,可以将控制VAE的输出的平滑度的频谱正则项添加到用于更新编码器和/或解码器网络的参数的目标函数。该频谱正则项可用于在更新编码器和/或解码器参数的过程中约束目标函数的一项或更多项,从而减少了VAE训练期间的不稳定性。在另一示例中,可以使用不同级别的精度来选择性地存储VAE的参数和/或将其丢弃,随后重新计算以减少与训练VAE相关联的存储器占用空间。因此,与不使用这些技术的常规VAE相比,VAE在训练和新数据采样期间可能具有更好的性能和效率。
系统概览
图1示出了被配置为实现各种实施例的一个或更多个方面的计算设备100。在一个实施例中,计算设备100可以是台式计算机、膝上型计算机、智能电话、个人数字助理(PDA)、平板计算机或配置为接收输入、处理数据和可选地显示图像的并且适合于实践一个或更多个实施例的任何其他类型的计算设备。计算设备100配置为运行驻留在存储器116中的训练引擎122和执行引擎124。应注意,本文描述的计算设备是说明性的,并且任何其他技术上可行的配置都落入本公开的范围内。例如,训练引擎122和执行引擎124的多个实例可以在分布式和/或云计算系统中的一组节点上执行以实现计算设备100的功能。
在一个实施例中,计算设备100包括但不限于连接一个或更多个处理器102的互连(总线)112、耦合到一个或多个输入/输出(I/O)设备108设备的输入/输出(I/O)设备接口104、存储器116、贮存器114和网络接口106。一个或更多个处理器102可以是实现为中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC),现场可编程门阵列(FPGA)、人工智能(AI)加速器、任何其他类型的处理单元或不同处理单元(例如配置为与GPU结合操作的CPU)的组合的任何合适的处理器。通常,处理器102可以是能够处理数据和/或执行软件应用程序的任何技术上可行的硬件单元。此外,在本公开的上下文中,计算设备100中示出的计算元件可以对应于物理计算系统(例如,数据中心中的系统),或者可以是在计算云内执行的虚拟计算实例。
在一个实施例中,I/O设备108包括诸如键盘、鼠标、触敏屏幕等能够提供输入的设备,以及诸如显示设备之类的能够提供输出的设备。另外,I/O设备108可以包括能够既接收输入又提供输出的设备,诸如触摸屏、通用串行总线(USB)端口等。I/O设备108可以是配置为从计算设备100的终端用户(例如,设计者)接收各种类型的输入,并且还可以向计算设备100的终端用户提供各种类型的输出,例如所显示的数字图像或数字视频或文本。在一些实施例中,一个或更多个I/O设备108配置为将计算设备100耦合到网络110。
在一个实施例中,网络110是任何技术上可行的通信网络,其允许数据在计算设备100与诸如网页服务器或另一联网的计算设备之类的外部实体或设备之间交换。例如,网络110可以包括广域网(WAN)、局域网(LAN)、无线(WiFi)网络和/或互联网等等。
在一个实施例中,贮存器114包括用于应用程序和数据的非易失性存储器,并且可以包括固定或可移除磁盘驱动器、闪存设备以及CD-ROM、DVD-ROM、蓝光、HD-DVD或其他磁性、光学或固态存储设备。训练引擎122和执行引擎124可以存储在贮存器114中,并且在执行时将其加载到存储器116中。
在一个实施例中,存储器116包括随机存取存储器(RAM)模块、闪存单元或任何其他类型的存储器单元或其组合。处理器102,I/O设备接口104和网络接口106配置为从存储器116读取数据并将数据写入存储器116。存储器116包括可以由处理器102执行的各种软件程序以及与所述软件程序相关联的应用程序数据,包括训练引擎122和执行引擎124。
训练引擎122包括在训练数据集上训练变分自动编码器(VAE)的功能,并且执行引擎124包括用于执行VAE的一个或更多个部分以生成在训练数据集中找不到的其他数据的功能。例如,训练引擎122可以在一组训练图像上训练VAE中的编码器、在先和/或解码器网络,并且执行引擎124可以执行生成模型,该模型包括训练后的在先和解码器网络以产生在训练图像中找不到的其他图像。如下面进一步详细描述的,训练引擎122和执行引擎124可以使用多种技术来提高训练和执行VAE的效率和性能。
深度分层的变分自动编码器
图2是根据各种实施例的图1的训练引擎122和执行引擎124的更详细的图示。训练引擎122训练VAE 200,该VAE 200学习训练数据208的数据集的分布,执行引擎124执行VAE200的一个或更多个部分以产生生成输出250,该输出250包括分布中未在训练数据208中找到的其他数据点。
如图所示,VAE 200包括多个神经网络:编码器202、在先252和解码器206。编码器202将一组训练数据208“编码”为潜在变量值,在先252学习由编码器202输出的潜在变量的分布,以及解码器206将从分布中采样的潜在变量值“解码”为重构数据210,该重构数据210实质上再现了训练数据206。例如,训练数据208可以包括人脸、动物、车辆和/的图像或其他类型的对象。编码器202可以将每个图像中的像素值转换为较小数量的潜在变量,这些变量表示对象和/或图像的推断视觉属性(例如,肤色、头发的颜色和样式、面部特征的形状和大小、性别、面部表情、和/或图像中人脸的其他特征),在先252学习训练数据206中跨多个图像的潜变量分布的均值和方差,并且解码器202可以将从潜变量分布中采样的和/或由编码器202输出的潜在变量转换到训练数据206中的图像重建中。
可使用以下概率模型来表示VAE 200的生成操作:
p(x,z)=p(z)p(x|z),
其中p(z)是由在先252在潜在变量z上学习的在先分布,而p(x|z)是似然函数或解码器202,其在给定潜在变量z的情况下生成数据x。换句话说,从在先252p(z)中采样潜在变量,并且数据x具有以采样的潜在变量z为条件的可能性。概率模型包括在后p(x|z),用于推断潜在变量z的值。因为p(x|z)是难解的,所以编码器202学习的另一分布q(x|z)用于粗略估计p(x|z)。
在一些实施例中,VAE 200是使用深度神经网络用于编码器202、在先252和解码器206的分层VAE。分层VAE包括潜在变量分层结构204,其将潜在变量划分成不相交的组的序列。在潜在变量层次结构204内,将来自给定潜在变量组的样本与特征图组合,并传递到层次结构中的下一组潜在变量,以用于从下一组样本中生成样本。
继续以上概率模型,潜变量的划分可以由z={z1,z2,…,zL}表示,其中L是组数。在潜在变量层次结构204中,在先252由p(z)=Пl p(zl|z<l)表示,近似在后由q(z|x)=Пl q(zl|z<l,x),其中在先中的每个条件p(zl|z<l)和近似在后中的每个条件q(zl|z<l,x)由阶乘正态分布表示。
在一些实施例中,编码器202包括自下而上模型和自上而下模型,其基于训练数据208执行潜在变量组的双向推断。自上而下的模型然后被用作在先252以推断输入到解码器206中、以产生重构数据210和/或生成式输出240的潜在变量值。下面参照图3A-3B更详细地描述编码器202和解码器206的体系架构。
如图所示,训练引擎122包括更新组件212,其基于目标函数220来更新编码器202、在先252和解码器206的参数,目标函数220是基于代表VAE 200的概率模型和训练数据208和重构数据210之间的误差计算的。在某些实施例中,目标函数220包括证据下限,该证据下限将通过以下形式最大化:
其中,是直到第(l-1)组的近似在后。另外,log p(x|z)是给定采样潜变量z时观测数据x的对数似然;当p(x|z)将高概率指派给原始数据x时(即,当解码器206尝试在给定编码器202从数据点生成的潜在变量z的情况下,在训练数据208中重建数据点x时)这一项将最大化。等式中的“KL”项表示在潜变量层次结构204的不同级别的在后与相应在先(例如,如在先252所表示)之间的Kullback-Leibler(KL)散度。每个KL(q(zl|x,z<l)||p((zl)|z<l))都可以认为是第l组中编码的信息量。重新参数化技巧可以用于通过目标函数220相对于编码器202的参数反向传播。
为了减轻潜在变量层次结构204中的潜在变量组中的在后坍塌,可以将由γl表示的KL平衡系数添加到目标函数220:
当对应组的KL项较小时,给定的平衡系数γl可以设置为较小的值,以鼓励VAE200使用组中的潜在变量。相反,当对应组的KL项较大时,可以将平衡系数设置为较大的值,以减少组中潜在变量的使用。为了说明不同空间维度的潜在变量组,平衡系数可以与相应组的大小sl成正比:
可以在VAE 200的训练过程中的“预热期”(例如,训练的前30%)期间附加应用平衡系数,然后再将其设置为1,以优化目标函数220表示的变分范围。
在一个或更多个实施例中,更新组件212包括目标函数220中的谱正则化项232,以稳定VAE 200的训练。更具体地,目标函数220中的KL项可能会变得无界,并导致急剧的梯度更新,从而使编码器202、在先252、和/或解码器204的训练不稳定。为了限制KL项,更新组件212可以使用频谱正则化232来最小化VAE 200的每一层的Lipschitz常数。例如,频谱正则化232可以通过添加项到等式1来执行,其中S(i)是第i个卷积层的最大奇异值(例如,使用单次幂迭代更新估算),而λ是控制编码器202、在先252和/或解码器206的输出的平滑度的系数。
因此,通过确保编码器202、在先252和/或解码器206的输出不会随相应的输入变化而急剧变化,通过频谱正则化232选择合适的λ可减少目标函数220中的KL项引起的训练不稳定性。例如,将λ设置为1.0可使KL项在数万次训练迭代中逐渐减小并稳定,而省略频谱正则化232和/或将λ设置为较小的值(例如0.1)会导致KL项在经过一定次数的训练迭代后变得不受限制。
更新组件212还或者替代地使用关于p(z)参数化q(z|x)的残差正态分布来减少与目标函数220中的KL项相关联的不稳定性。特别地,可以使用以下正态分布来表示在先中的zl的第i个变量:
反过来,在先可以采用下式表示:
其中,Δμi(z<l,x)和Δσi(z<l,x)是相对位置和关于在先对近似在后的缩放。
在该参数化中,当在先运动时,近似在后运动相应地运动,使得编码器202将在后学习为表示关于在先运动252的相对变化的正态分布。相反,目标函数220中的KL项变为:
为了方便表示,删除了下标l和相关的依赖项。在以上等式中,如果由解码器206生成的σi从下面限制,则KL项主要取决于由编码器202生成的相对参数,并且与当q(zl|x,z<l)预测在后的绝对位置和范围时相比,可被更容易地最小化。例如,在潜在变量层次结构204中使用具有40个潜在变量组的VAE的q(z|x)中的残差正态分布,可以在训练过程中将KL项每维度(bpd)提升0.04位并将测试对数似然提升0.03bpd。
更新组件212还或者替代地在编码器202、在先252和/或解码器206的训练期间将批处理归一化222应用于VAE 200的至少一些层。在一些实施例中,使用VAE 200中的一个或更多个批处理归一化层执行批处理归一化222。每个批处理归一化层通过将每个输出移位该批次的均值和标准偏差,将前一个激活层的输出“批次”归一化以具有归一化平均值(例如0)和方差(例如1)。为了防止与VAE的常规批处理归一化相关联的不稳定性,更新组件212执行缩放正则化234,该缩放正则化234将正则化应用于编码器202,在先252和/或解码器206的批处理归一化层中的缩放参数的范数(例如,L1范数、L2范数、L-无穷范数等)。如下面关于图4A和图4B进一步详细描述的,可以将批处理归一化与Swish激活函数结合使用,以进一步提高VAE 200的性能。
训练引擎122还包括在VAE 200训练期间改善存储器消耗的存储器管理组件214。首先,存储器管理组件214可以使用混合精度226存储编码器202、在先252和解码器206的参数。例如,存储器管理组件214可以在VAE 200中选择性地存储某些类型的参数或操作(例如卷积、矩阵乘法等)作为半精度(例如16位)浮点数,并在VAE200中存储其余参数或操作作为单精度(例如32位)浮点数。
第二,存储器管理组件214可以执行梯度检查点228,该梯度检查点228选择性地存储激活的第一子集,该激活的第一子集是在VAE 200的训练过程中执行的前向遍历期间由VAE 200从训练数据208生成的,并使用存储的激活来重新计算在训练VAE 200期间执行的相应的反向遍历期间由VAE 200生成的第二子集。例如,存储器管理组件214可以融合VAE200中某些层的批处理归一化和Swish激活功能,并存储在前向遍历过程中通过融合操作产生的特征图的单个副本。然后,在相应的反向遍历期间重新计算批处理归一化(例如,使用针对VAE 200的卷积层或其他层选择性存储的激活),以计算目标函数220相对于批处理归一化层的梯度,并相应地更新VAE 200的权重。这样的梯度检查点228可以在VAE 200的训练期间减少存储器消耗(例如,减少18%),这又允许通过更大的批处理大小来增加训练吞吐量(例如,从每秒34个图像增加到每秒64个图像)。。
在完成对VAE 200的训练之后,执行引擎124执行VAE 200的一个或更多个部分以产生在训练数据208的集合中未找到的生成式输出250。特别地,执行引擎124从在先252学习的潜在变量层次结构204中的潜在变量的分布中获得潜在变量样本236。执行引擎124使用潜在变量样本236生成数据分布238作为解码器206的输出,并随后从数据分布238采样以产生生成式输出250。
例如,执行引擎124可以获取一组潜在变量样本236作为潜在变量层次结构204中的潜在变量的值,这些潜变量从在先252输出的参数(例如,均值和方差)描述的分布中采样,之后在包括人脸图像的训练数据208上训练VAE 200。执行引擎124可以将解码器206应用于潜在变量样本236,并且解码器206可以输出与似然性p(x|z)(例如,给定潜在可变样本236的情况下,图像中各个像素的像素值的分布)相对应的数据分布238的参数。执行引擎124然后可以从由解码器206参数化的似然中采样以产生包括人脸图像的生成式输出250。因为潜在变量样本236是从编码器202输出的连续潜在空间表示中获得的,所以执行引擎124可以在由潜在变量表示的视觉属性之间进行内插(例如,在由一个或更多个潜在变量表示的生气和高兴的面部表情之间生成平滑的过渡),以生成在训练数据208中找不到的人脸图像。
在一个或更多个实施例中,执行引擎124使用动量参数216来计算在创建生成式输出250的期间在批处理归一化224中使用的批处理统计信息218。更具体地,执行引擎124可以选择增加与批次归一化224相关联的指数移动平均值和/或其他运行统计信息赶上批次统计信息218的速率的动量参数216的值,这提升了生成输出250的多样性和/或质量。
执行引擎124可以以多种方式另外执行与产生生成式输出250相关联的批处理归一化224。例如,执行引擎124可以丢弃用于训练VAE 200的批处理统计信息,并为生成式输出250的一批样本重新计算批处理统计信息218。当要生成生成式输出250的单个样本时,执行引擎124可以为一批生成式输出250计算批处理统计信息218,并使用计算出的批次统计信息数据218产生生成式输出250的最终样本。
图3A是根据各种实施例的图2的编码器202的示例架构。如图所示,示例架构形成双向推理模型,该双向推理模型包括自下而上模型302和自上而下模型302。
自下而上模型302包括多个残差网络308-312,而自上而下模型304包括多个附加残差网络314-316和可训练参数326。每个残差网络308-316都包含一个或更多个更多残差单元,将在下面相对于图4A和4B进一步详细描述。
自下而上模型302中的残差网络308-312确定性地从输入324(例如,图像)中提取特征,以推断针对VAE 200的概率模型中近似在后的潜在变量(例如,q(z|x))。反过来,自上而下模型304的组件用于生成潜在变量层次结构204中每个条件分布的参数。在从潜在变量层次结构204中的给定组中采样潜变量之后,将样本与自下而上模型302的特征图进行组合并作为输入传递到下一个组。
更具体地说,给定的数据输入324由下而上模型302中的残差网络308、310和312顺序处理。残差网络308根据输入324生成第一特征图,残差网络310根据第一特征图生成第二特征图,并且残差网络312根据第二特征图生成第三特征图。第三特征图用于生成潜在变量层次结构204中的潜在变量的第一组318的参数,并从组318中提取一个样本,并将其与参数326组合(例如,求和),以产生到自上而下的模型304中残差网络314中的输入。自上而下的模型304中的残差网络314的输出与自下而上的模型302中的残差网络310生成的特征图相组合,并用于生成在潜在变量层次结构204中的潜在变量的第二组320的参数。从组320中提取一个样本,并将其与残差网络314的输出组合以生成到残差网络316的输入。最后,自上而下模型304中的残差网络316的输出与自下而上模型302中的残差网络308的输出组合以生成潜在变量的第三组322参数,并且可以从组322中获取样本以产生代表输入324的完整的潜在变量集。
尽管以具有三个潜在变量组的潜在变量层次结构来说明图3A的示例体系结构,但是本领域技术人员将理解,编码器202可以在该层次结构中利用层次结构中不同数量的潜在变量组,层次结构的每个组中的不同数量的潜在变量和/或残差网络中变化数量的残差单元。例如,使用手写字符的28×28像素图像训练的编码器的潜在变量层次结构204可以在两个不同的“尺寸”(即空间维度)上包括15组潜在变量,每组潜在变量包含一个残差单元。前五个组具有4×4×20维潜在变量(以高度×宽度×通道的形式),接下来的十组具有8×8×20维潜在变量。在另一个示例中,使用人脸的256×256像素图像进行训练的编码器的潜在变量层次结构204可以包括五组不同比例的36组潜在变量,每组潜在变量包含两个残差单元。尺寸包括分别为8×8×20、16×16×20、32×32×20、64×64×20和128×128×20的空间尺寸以及4、4、4、8和16组。
图3B是根据各种实施例的用于图2的VAE 200中的生成模型的示例架构。如图所示,生成模型包括来自图3A的示例编码器体系架构的自上而下模型304,以及实现解码器206的其他残差网络328。
在图3B的示例生成模型体系结构中,自上而下模型304的残差网络314-316提取的表示用于推理层次结构中潜在变量的组318-322。然后,将来自潜在变量的最后一组322的样本与残差网络316的输出组合,并作为输入提供给残差网络328。继而,残差网络328生成数据输出330,该输出是对相应的输入至编码器的输入324和/或从VAE 200的训练数据分布中采样的新数据点的重构。
在一些实施例中,自上而下模型304用于学习VAE 200的训练期间潜在变量318-322的在先(例如,图2的在先252)分布。然后,在一些或所有样本由解码器206转换成生成输出之前,在生成模型中被重新使用在先。编码器202与生成模型之间的这种自上而下模型304的共享减少了与学习用于在先252的单独的自上而下模型以及在生成模型中使用该单独的自上而下模型相关的计算和/或资源开销。可选地,可以构造VAE 200,使得编码器202使用第一自上而下的模型来生成训练数据208的潜在表示,并且生成模型使用第二独立的自上而下的模型作为在先252。
图4A是根据各种实施例的图2的编码器202中的示例残差单元。更具体地说,图4A示出了由图3A的自下而上模型302中的一个或更多个残差网络308-312使用的残差单元。如图所示,残差单元包括多个块402-410和残差链接430,残差链接430将残差单元中的输入添加到残差单元的输出中。
块402是具有Swish激活函数的批处理归一化块,块404是3×3卷积块,块406是具有Swish激活函数的批处理归一化块,块408是3×3卷积块,而块410是挤压和激励模块,可在残差单元中进行逐通道选通。另外,跨块402-410保持相同数量的通道。与具有卷积批处理归一化激活顺序的常规残差单元不同,图4A的残差单元包括批处理归一化激活激活卷积排序,这可以改善自下而上模型302和/或编码器202的性能。
图4B是根据各种实施例的在图2的VAE 200的生成模型中的示例残差单元。更具体地说,图4B示出了由图3A和3B的自上而下模型304中的一个或更多个残差网络314-316使用的残差单元。如图所示,残差单元包括多个块412-426和残差链接432,残差链接432将输入到残差单元中的输入添加到残差单元的输出中。
块412是批处理归一化块,块414是1×1卷积块,块416是具有Swish激活函数的批处理归一化块,块418是5×5逐深度可分离卷积块,块420是具有Swish激活函数的批处理归一块,块422是1×1卷积块,块424是批处理归一化块,块426是挤压和激励块。标有“EC”的块414-420表示通道数扩展了“E”倍,而标有“C”的块包括原始的通道数“C”。特别地,块414执行1×1卷积,其扩展通道的数量以改善由块418执行的逐深度可分离卷积的表达性,并且块422执行1×1卷积,其映射回“C”个通道。同时,逐深度可分离卷积在内核尺寸增加的情况下,与常规卷积相比,可减小参数大小和计算复杂度,而不会对生成模型的性能产生负面影响。
此外,在图4A和4B的残差单元中使用具有Swish激活功能的批处理归一化可以改善编码器202和/或解码器206在常规残差单元或网络上的训练。例如,与在同一个残差单元中使用权重归一化和指数线性单位激活相比,图4A的残差单元中的批处理归一化和Swish激活的组合将具有40个潜在变量组的VAE的性能提高了约5%。
图5是根据各个实施例的用于执行机器学习的方法步骤的流程图。尽管结合图1和图2的系统描述了方法步骤,本领域技术人员将理解,配置成以任何顺序执行方法步骤的任何系统都落入本公开的范围内。
如图所示,训练引擎122将训练数据集输入502到VAE中,该VAE包括编码器网络、在先网络和解码器网络。例如,训练引擎122可以将已经缩放到一定分辨率的一组训练图像输入到分层VAE中。训练图像可以包括人脸、动物、车辆和/或其他类型的物体。
接下来,训练引擎122通过基于VAE根据训练数据集产生的一个或更多个输出的平滑度和/或与VAE的一层或更多层批的处理归一化相关联的缩放参数的正则化来更新VAE的一个或更多个参数,来训练504VAE。例如,训练引擎122可以包括在用于训练编码器、在先和/或解码器网络的目标函数中的频谱正则化参数。频谱正则化参数包括控制编码器、在先和/或解码器网络的输出的平滑度的系数。频谱正则化参数和/或系数因此可通过确保编码器和/或解码器网络的输出不会随着相应输入的变化而急剧变化而减少目标函数中一个或更多个KL项引起的训练不稳定性。
在另一示例中,训练引擎122可以将正则化项添加到用于在编码器、在先和/或解码器网络的一个或更多个层中执行批处理归一化的缩放参数。正则化项可以包括但不限于L1范数、L2范数和/或L-无穷大范数。反过来,正则项可以稳定关于一个或更多个批处理归一化层对VAE的训练。
训练引擎122可以使用多种技术来减少与训练VAE相关的存储器开销。例如,训练引擎122可以在与训练VAE相关联的前向遍历期间存储由VAE根据训练数据集生成的激活的第一子集,并在与训练VAE相关的反向遍历期间基于所存储的激活的第一子集重新计算由VAE生成的激活的第二子集。与在神经网络训练期间存储所有激活的常规技术相比,激活的这种选择性存储和重新计算可以减少存储器消耗。在另一示例中,训练引擎122可以使用第一精度(例如,单精度浮点数)在VAE中存储参数的第一部分,并且使用低于第一精度(例如,半精度浮点数)的第二精度来存储VAE中的参数的第二部分。
执行引擎124然后通过将解码器网络应用于根据由在先网络生成的潜变量的第二分布采样的一个或更多个值,来生成506反映训练数据集的第一分布的生成式输出。例如,执行引擎124可以从由图3A的自上而下模型304学习的分布中采样潜在变量值。潜在变量可以排列成不相交的组的顺序层次结构;在层次结构中,将来自第一组的第一样本与特征图组合,并传递到第一组之后的第二组,以用于生成第二组的分布参数(和第二样本)。
在使用分层结构对潜在变量进行采样之后,执行引擎124可以将采样的潜变量值中的一个或更多个输入到解码器网络中,并且解码器网络可以基于一个或更多个采样的潜在变量值来更新用于训练数据的分布的似然函数。然后可以通过根据似然函数采样的值(例如,图像中的像素值)来产生生成输出。
图6是根据各种实施例的用于产生生成式输出的方法步骤的流程图。尽管结合图1和图2的系统描述了方法步骤,本领域技术人员将理解,配置成以任何顺序执行方法步骤的任何系统都落入本公开的范围内。
如所示,执行引擎124从与包括第一残差单元的编码器网络相关联的潜在变量的第一分布中采样602一个或更多个值。接下来,执行引擎124将包括第二残差单元的解码器网络应用604于(一个或更多个)采样值,以生成数据的第二分布的参数,利用该数据来训练包括编码器和解码器网络的VAE。
例如,编码器网络可以是具有自上而下模型和自下而上模型的双向编码器,其执行对潜在变量组的层次结构的双向推理。第一残差单元可以在自下而上模型中使用,并且包括具有第一Swish激活函数的第一批处理归一化层,跟随具有第一Swish激活函数的第一批处理归一化层的第一卷积层,具有第二Swish激活函数的第二批归一化层,跟随具有第二Swish激活函数的第二批处理归一化层的第二卷积层和跟随第二卷积层的第一挤压和激励层。在训练编码器网络之后,可以使用自上而下模型对潜变量值进行采样,并将其输入到解码器中。继而,给定输入的潜在变量值、解码器网络输出用于第二分布的似然函数的参数。
最后,执行引擎124从第二分布中采样606以产生与数据相关的生成式输出。继续以上示例,执行引擎124可以从由解码器网络输出的似然函数获得样本,以产生生成式输出(例如,作为图像中像素的像素值)。
示例游戏流传输系统
图7是根据各种实施例的用于游戏流传输系统700的示例系统图。图7包括一个或更多个游戏服务器702(其可以包括与图1的示例计算设备100类似的组件、特征和/或功能)、一个或更多个客户端设备704(其可以包括类似于图1的示例计算设备100的组件、特征和/或功能),以及一个或更多个网络706(其可以类似于本文所述的网络)。在一些实施例中,可以使用云计算系统和/或分布式系统来实现系统700。
在系统700中,对于游戏会话,一个或更多个客户端设备704可以仅响应于对一个或更多个输入设备的输入来接收输入数据,将输入数据发送到一个或更多个游戏服务器702,接收根据一个或更多个游戏服务器702编码的显示数据,并在显示器724上显示显示数据。这样,计算强度更高的计算和处理被卸载到一个或更多个游戏服务器702(例如,渲染-特别是光线或路径跟踪-用于游戏会话的图形输出由一个或更多个游戏服务器702的一个或更多个GPU执行。换句话说,游戏会话从游戏服务器702流传输到一个或更多个客户端设备704,从而降低了一个或更多个客户端设备704对图形处理和渲染的需求。
例如,关于游戏会话的实例化,客户端设备704可以基于从一个或更多个游戏服务器702接收显示数据而在显示器724上显示游戏会话的帧。客户端设备704可以接收到一个或更多个输入设备之一的输入并作为响应生成输入数据。客户端设备704可以经由通信接口720并且通过一个或更多个网络706(例如,互联网)将输入数据传输到一个或更多个游戏服务器702,并且一个或更多个游戏服务器702可以经由通信接口718接收输入数据。一个或更多个CPU可以接收输入数据、处理输入数据,并将数据发送到一个或更多个GPU,该一个或更多个GPU使一个或更多个GPU生成游戏会话的渲染。例如,输入数据可以表示用户在游戏中的角色的运动,射击武器、重新加载、传球、转弯车辆等。渲染组件712可以渲染游戏会话(例如,代表输入数据的结果),以及渲染捕获组件714可以将游戏会话的渲染捕获为显示数据(例如,作为捕获游戏会话的渲染帧的图像数据)。游戏会话的渲染可能包括光线或路径追踪的照明和/或阴影效果,这些效果是使用一个或更多个并行处理单元(例如GPU)计算得出的,它们可能进一步利用一个或更多个专用硬件加速器或处理核心以便执行一个或更多个游戏服务器702的光线或路径追踪技术。编码器716然后可以对显示数据进行编码,以生成编码的显示数据,并且可以将编码的显示数据通过通信通过经由通信接口718的一个或更多个网络706发送到客户端设备704。客户端设备704可以经由通信接口720接收编码的显示数据,以及解码器722可以对编码的显示数据进行解码以生成显示数据。客户端设备704然后可以经由显示器724显示显示数据。
在一些实施例中,系统700包括用于实现图1-图2的训练引擎122和/或执行引擎124的功能。例如,游戏服务器702和/或一个或更多个客户端设备704的一个或更多个组件可以执行训练引擎122以将训练数据集(例如,游戏中的角色或对象的一组图像或模型)输入到VAE和/或包括编码器网络、在先网络和解码器网络另一种机器学习模型中。被执行的训练引擎122还可基于VAE根据训练数据集产生的一个或更多个输出的平滑度,通过更新VAE的参数来训练VAE。通过将解码器网络应用于从由先前网络生成的潜变量的第二种分布中采样的一个或更多个值中,游戏服务器702和/或一个或更多个客户端设备704的一个或更多个组件然后可以执行推理引擎124以产生反映训练数据集的第一分布的生成式输出(例如,不是在训练数据集中发现的对象或角色的额外图像或模型)。然后可以在一个或更多个客户端设备704上的一个或更多个游戏会话期间,在显示器724中显示生成的输出。
总之,所公开的实施例训练分层的VAE并执行VAE的一个或更多个部分以产生生成式输出。分层VAE包括编码器和在先,其学习训练数据集的潜在表示,诸如人脸、动物、车辆和/或其他类型的对象的图像集。分层VAE还包括解码器,该解码器在给定从潜在表示中采样的潜在变量的情况下,将参数输出到训练数据集中的数据分布。潜在表示被组织为不相交的潜在变量组的层次结构,其中,将层次结构中给定组的样本提供为输入,用于生成从其中采样层次结构中的下一个组的分布。通过使用包括频谱正则项的目标函数训练VAE和/或通过使用具有批次统计信息的批处理归一化来改善VAE的性能,在使用训练的VAE的一个或更多个部分对新数据点进行采样期间会重新调整该批次统计信息。可以通过使用混合精度执行梯度检查点和/或存储VAE的参数来减少与训练VAE相关的存储器开销。
VA的这种存储器高效的训练改善了资源开销和训练吞吐量,从而改善了训练VAE所涉及的计算机系统的操作。与用于训练和执行VAE的常规技术相比,用于稳定VAE的训练和/或使用具有批处理归一化的VAE的技术还改善了VAE的收敛性和/或性能。因此,通过减少资源消耗和/或改善与训练和/或执行VAE相关的性能,所公开的技术在用于训练和执行生成模型、生成内容、增加数据、渲染计算机图形和/或执行表示或特征学习的计算机系统、应用程序、框架和/或技术中提供了技术上的改进。
1.在一些实施例中,一种用于执行机器学习的方法,包括:将一组训练图像输入至机器学习模型,所述机器学习模型包括编码器部分、在先部分和解码器部分;基于当处理训练数据集时由所述机器学习模型产生的一个或更多个输出的平滑度,通过更新所述机器学习模型的一个或更多个参数训练所述机器学习模型;以及通过将解码器部分应用于基于在先部分的输出生成的值,产生反映与所述一组训练图像相关联的一个或更多个视觉属性的新图像。
2.根据条款1所述的方法,其中所述新图像包括在所述一组训练图像中没有发现的脸。
3.根据条款1-2任意一项所述的方法,其中所述新图像包括在所述一组训练图像中没有发现的动物或车辆。
4.在一些实施例中,一种用于执行机器学习的方法,包括:将训练数据集输入至包括编码器网络、在先网络和解码器网络的变分自动编码器(VAE);基于由所述VSE根据训练数据集产生的一个或更多个输出的平滑度,通过更新VAE的一个或更多个参数训练VAE;以及,通过将所述编码器网络应用至从由所述在先网络生成的第二分布的潜在变量中采样的一个或更多个值,产生反应所述训练数据集的第一分布的生成式输出。
5.根据条款4所述的方法,其中将所述解码器网络应用至所述一个或更多个值包括基于增加了与批处理归一化相关的运行统计信息达到与批处理归一化相关的批处理统计信息的速率的动量参数,将批处理归一化应用至所述编码器网络的一个或更多个层。
6.根据条款4-5任意一项所述的方法,其中训练所述VAE包括将正则化参数应用至与所述批归一化相关联的缩放参数。
7.根据条款4-6任意一项所述的方法,其中应用所述批处理归一化至所述一个或更多个层包括将所述批处理归一化与Swish激活函数相结合。
8.根据条款4-7任意一项所述的方法,其中将所述批处理归一化应用至所述解码器网络的所述一个或更多个层包括基于从所述第二分布采样的一个或更多个值重新计算与所述批处理归一化相关联的批处理统计信息。
9.根据条款4-8任意一项所述的方法,其中所述VAE包括所述潜在变量组的层次结构,以及其中来自所述层次结构中的第一组的第一采样与特征图相结合并传递到跟随所述层次结构中的所述第一组的第二组以在根据所述第二组生成所述第二采样时使用。
10.根据条款4-9任意一项所述的方法,其中所述VAE包括残差单元并且所述残差单元包括具有第一Swish激活函数的第一批处理归一化(BN)层、跟随具有所述第一Swish激活函数的所述第一BN层的第一卷积层、具有第二Swish激活函数的第二BN层、跟随具有所述第二Swish激活函数的所述第二BN层的第二卷积层,以及挤压和激励(SE)层。
11.根据条款4-10任意一项所述的方法,其中所述VAE包括残差单元并且所述残差单元包括第一BN层、跟随所述第一BN层的第一卷积层、具有第一Swish激活函数的第二BN层,以及跟随所述第二BN层的逐深度可分的卷积层。
12.根据条款4-11任意一项所述的方法,其中所述残差单元进一步包括具有第二Swish激活函数的第三BN层、跟随所述第三BN层的第二卷积层、跟随所述第二卷积层的第四BN层,以及跟随所述第四BN层的SE层。
13.根据条款4-12任意一项所述的方法,其中训练所述VAE包括基于包括谱正则化项的目标函数更新所述VAE的一个或更多个参数,所述谱正则化项控制由所述VAE从所述训练数据集产生的一个或更多个输出的光滑度。
14.根据条款4-13任意一项所述的方法,其中训练所述VAE包括:在与训练所述VAE相关的前向遍历期间,存储由所述VAE从所述训练数据集生成的激活的第一子集;以及在与训练所述VAE相关联的反向遍历期间,基于所存储的所述激活的第一子集,重新计算由所述VAE生成的激活的第二子集,以减少与训练所述VAE相关联的存储器消耗。
15.根据条款4-14任意一项所述的方法,其中训练所述VAE包括使用第一精度存储所述一个或更多个参数的第一部分并且使用比所述第一精度低的第二精度存储所述一个或更多个参数的第二部分。
16.在一些实施例中,一种非暂时性计算机可读介质,其存储指令,当由处理器执行所述指令时,使所述处理器执行以下步骤:输入训练数据集至变分自动编码器(VAE),所述VAE包括编码器网络、在先网络和解码器网络;基于与所述VAE的一个或更多个层的批处理归一化相关联的缩放参数的正则化,通过更新所述VAE的一个或更多个参数训练所述VAE;以及通过将解码器网络应用于由所述在先网络输出生成的潜在变量的第二分布中采样的一个或更多个值,产生反应与所述训练数据集的第一分布的生成式输出。
17.根据条款16所述的非暂时性计算机可读介质,其中训练所述VAE进一步包括基于包括光谱正则化项的目标函数,更新所述VAE的一个或更多个参数,所述光谱正则化项控制由所述VAE从所述训练数据产生的一个或更多个输出的平滑度。
18.根据条款16-17任意一项所述的非暂时性计算机可读介质,其中将所述解码器网络应用至所述一个或更多个值包括:基于增加了与批处理归一化相关的运行统计信息达到与批处理归一化相关的批处理统计信息的速率的动量参数,将所述批处理归一化应用至所述一个或更多个层。
19.根据条款16-18任意一项所述的非暂时性计算机可读介质,其中所述VAE包括所述潜在变量组的层次结构,以及其中来自所述层次结构中的第一组的第一采样与特征图相结合并传递到跟随所述层次结构中的所述第一组的第二组,以在根据所述第二组生成所述第二采样时使用。
20.根据条款16-19任意一项所述的非暂时性计算机可读介质,其中所述编码器网络包括基于所述训练数据集执行对所述潜在变量组的双向推理的自下而上模型和自上而下模型。
21.根据条款16-20任意一项所述的非暂时性计算机可读介质,其中产生所述生成式输出包括:沿着所述潜在变量组的层次结构,执行所述自上而下模型以对所述一个或更多个值进行采样;以及将所采样的所述一个或更多个值输入至所述解码器网络以产生所述生成式输出。
22.根据条款16-21任意一项所述的非暂时性计算机可读介质,其中,应用所述解码器网络至一个或更多个值包括基于从所述第二分布中采样的所述一个或更多个值重新计算与所述批处理归一化相关联的批处理统计信息。
23.在一些实施例中,一种系统,包括:
存储指令的存储器,和耦合至所述存储器的处理器,以及当执行所述指令时,配置成:从与包括第一残差单元的编码器网络相关联的第一分布的潜在变量中采样一个或更多个值,其中所述第一残差单元包括具有第一Swish激活函数的第一批处理归一化(BN)层,跟随具有所述第一Swish激活函数的所述第一BN层的第一卷积层,具有第二Swish激活函数的第二BN层、跟随具有所述第二Swish激活函数的所述第二BN层的第二卷积层,以及跟随所述第二卷积层的挤压和激励(SE)层;将所述解码器网络应用至所述一个或更多个值以生成数据的第二分布的参数,包括所述编码器网络和所述解码器网络的变分自动编码器(VAE)利用数据的所述第二分布进行训练;以及从所述第二分布采样以生成与所述数据相关联的生成式输出。
24.根据条款23所述的系统,其中使用包括第三BN层、跟随所述第三BN层的第三卷积层、具有第三Swish激活函数的第四BN层以及跟随所述第四BN层的逐深度分离的卷积层的第二残差单元采样所述一个或更多个值。
25.根据条款23-24任意一项所述的系统,其中所述第二残差单元进一步包括具有第四Swish激活函数的第五BN层、跟随所述第五BN层的第四卷积层、跟随所述第四卷积层的第六BN层,以及跟随所述第六BN层的第二SE层。
以任何方式,在任何权利要求中记载的任何权利要求要素和/或在本申请中描述的任何要素的任何和所有组合都落入本公开和保护的预期范围内。
已经出于说明的目的给出了各种实施例的描述,但并不意图是穷尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变型对于本领域普通技术人员将是显而易见的。
本实施例的各方面可以体现为系统、方法或计算机程序产品。因此,本公开的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了所有通常在本文中称为“模块”、“系统”或“计算机”的软件和硬件方面的实施例的形式。另外,本公开中描述的任何硬件和/或软件技术、过程、功能、组件、引擎、模块或系统可以实现为一个电路或一组电路。此外,本公开的方面可以采取在其上体现有计算机可读程序代码的一个或更多个计算机可读介质中体现的计算机程序产品的形式。
可以利用一个或更多个计算机可读介质的任何组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下内容:具有一根或更多根电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或任何其他前述的适当组合。在本文的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储供指令执行系统、装置或设备使用或与其结合使用的程序。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器。当经由计算机或其他可编程数据处理装置的处理器执行指令时,这些指令使得能够实现在流程图和/或方块图方块或多个方块中指定的功能/动作。这样的处理器可以是但不限于通用处理器、特殊用途处理器、专用处理器或现场可编程门阵列。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或方块图中的每个方块可以代表代码的模块、段或部分,其包括用于实现指定的逻辑功能的一个或更多个可执行指令。还应注意,在一些替代实施方式中,方块中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个方块,或者有时可以以相反的顺序执行这些方块。还应注意,方块图和/或流程图说明的每个方块以及方块图和/或流程图说明中的方块的组合可以由执行指定功能或动作的基于专用硬件的系统来实现,或专用硬件和计算机指令的组合。
尽管前述内容针对本公开的实施例,但是可以在不脱离本公开的基本范围的情况下设计本公开的其他和进一步的实施例,并且本公开的范围由所附权利要求书确定。

Claims (21)

1.一种用于执行机器学习的方法,包括:
将包括对象的一组训练图像输入至变分自动编码器VAE,所述VAE包括编码器部分、在先部分和解码器部分;
通过基于包括谱正则化项的目标函数更新所述VAE的一个或更多个参数,来训练所述VAE,所述谱正则化项控制当处理所述一组训练图像时由所述VAE产生的一个或更多个输出的平滑度;以及
通过将所述解码器部分应用于基于所述在先部分的输出生成的值,产生反映与所述一组训练图像的所述对象相关联的一个或更多个视觉属性的新图像。
2.根据权利要求1所述的方法,其中所述对象为脸。
3.根据权利要求1所述的方法,其中所述对象为动物或车辆。
4.一种用于执行机器学习的方法,包括:
将包括对象的训练数据集输入至包括编码器网络、在先网络和解码器网络的变分自动编码器VAE;
通过基于包括谱正则化项的目标函数更新所述VAE的一个或更多个参数,来训练所述VAE,所述谱正则化项控制由所述VAE从所述训练数据集产生的一个或更多个输出的平滑度;以及
通过将所述解码器网络应用于从由所述在先网络生成的潜在变量的第二分布中采样的一个或更多个值,产生反映所述训练数据集的所述对象的第一分布的生成式输出。
5.根据权利要求4所述的方法,其中将所述解码器网络应用于所述一个或更多个值包括:基于增加与批处理归一化相关联的运行统计信息赶上与所述批处理归一化相关联的批处理统计信息的速率的动量参数,将所述批处理归一化应用于所述解码器网络的一个或更多个层。
6.根据权利要求5所述的方法,其中训练所述VAE包括:将正则化参数应用于与所述批处理归一化相关联的缩放参数。
7.根据权利要求5所述的方法,其中将所述批处理归一化应用于所述一个或更多个层包括:将所述批处理归一化与Swish激活函数相结合。
8.根据权利要求5所述的方法,其中将所述批处理归一化应用于所述解码器网络的所述一个或更多个层包括:基于从所述第二分布采样的一个或更多个值重新计算与所述批处理归一化相关联的批处理统计信息。
9.根据权利要求4所述的方法,其中所述VAE包括所述潜在变量组的层次结构,以及其中来自所述层次结构中的第一组的第一采样与特征图相结合并传递到所述层次结构中在所述第一组之后的第二组,以在根据所述第二组生成第二采样时使用。
10.根据权利要求4所述的方法,其中所述VAE包括残差单元并且所述残差单元包括具有第一Swish激活函数的第一批处理归一化BN层、跟随具有所述第一Swish激活函数的所述第一BN层的第一卷积层、具有第二Swish激活函数的第二BN层、跟随具有所述第二Swish激活函数的所述第二BN层的第二卷积层,以及挤压和激励SE层。
11.根据权利要求4所述的方法,其中所述VAE包括残差单元并且所述残差单元包括第一BN层、跟随所述第一BN层的第一卷积层、具有第一Swish激活函数的第二BN层,以及跟随所述第二BN层的逐深度可分的卷积层。
12.根据权利要求11所述的方法,其中所述残差单元进一步包括具有第二Swish激活函数的第三BN层、跟随所述第三BN层的第二卷积层、跟随所述第二卷积层的第四BN层,以及跟随所述第四BN层的SE层。
13.根据权利要求4所述的方法,其中所述谱正则化项包括一个系数乘以包括在VAE中的多个层中的多个最大奇异值的和。
14.根据权利要求4所述的方法,其中训练所述VAE包括:
在与训练所述VAE相关联的前向遍历期间,存储由所述VAE从所述训练数据集生成的激活的第一子集;以及
在与训练所述VAE相关联的反向遍历期间,基于所存储的所述激活的第一子集,重新计算由所述VAE生成的激活的第二子集,以减少与训练所述VAE相关联的存储器消耗。
15.根据权利要求4所述的方法,其中训练所述VAE包括:使用第一精度存储所述一个或更多个参数的第一部分并且使用比所述第一精度低的第二精度存储所述一个或更多个参数的第二部分。
16.一种非暂时性计算机可读介质,其上存储指令,当由处理器执行所述指令时,使所述处理器执行以下步骤:
输入包括对象的训练数据集至包括编码器网络、在先网络和解码器网络的变分自动编码器VAE;
通过基于与所述VAE的一个或更多个层的批处理归一化相关联的缩放参数的正则化更新所述VAE的一个或更多个参数,来训练所述VAE,其中训练所述VAE包括:基于包括谱正则化项的目标函数更新所述VAE的所述一个或更多个参数,所述谱正则化项控制由所述VAE从所述训练数据集产生的一个或更多个输出的平滑度;以及
通过将所述解码器网络应用于从由所述在先网络生成的潜在变量的第二分布中采样的一个或更多个值,产生反映所述训练数据集的所述对象的第一分布的生成式输出。
17.根据权利要求16所述的非暂时性计算机可读介质,其中将所述解码器网络应用于所述一个或更多个值包括:基于增加与批处理归一化相关联的运行统计信息赶上与批处理归一化相关联的批处理统计信息的速率的动量参数,将所述批处理归一化应用于所述一个或更多个层。
18.根据权利要求16所述的非暂时性计算机可读介质,其中所述VAE包括所述潜在变量的组的层次结构,以及其中来自所述层次结构中的第一组的第一采样与特征图相结合并传递到所述层次结构中在所述第一组之后的第二组,以在根据所述第二组生成第二采样时使用。
19.根据权利要求18所述的非暂时性计算机可读介质,其中所述编码器网络包括基于所述训练数据集执行所述潜在变量的组的双向推理的自下而上模型和自上而下模型。
20.根据权利要求19所述的非暂时性计算机可读介质,其中产生所述生成式输出包括:
执行所述自上而下模型以沿着所述潜在变量的组的层次结构采样所述一个或更多个值;以及
将所采样的所述一个或更多个值输入至所述解码器网络以产生所述生成式输出。
21.根据权利要求16所述的非暂时性计算机可读介质,其中,将所述解码器网络应用于所述一个或更多个值包括:基于从所述第二分布中采样的所述一个或更多个值重新计算与所述批处理归一化相关联的批处理统计信息。
CN202110290061.6A 2020-06-18 2021-03-16 深度分层的变分自动编码器 Active CN113822437B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063041038P 2020-06-18 2020-06-18
US63/041,038 2020-06-18
US17/089,492 2020-11-04
US17/089,492 US20210397945A1 (en) 2020-06-18 2020-11-04 Deep hierarchical variational autoencoder

Publications (2)

Publication Number Publication Date
CN113822437A CN113822437A (zh) 2021-12-21
CN113822437B true CN113822437B (zh) 2024-05-24

Family

ID=78823254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110290061.6A Active CN113822437B (zh) 2020-06-18 2021-03-16 深度分层的变分自动编码器

Country Status (3)

Country Link
US (1) US20210397945A1 (zh)
CN (1) CN113822437B (zh)
DE (1) DE102021206286A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861494B2 (en) * 2020-06-26 2024-01-02 Intel Corporation Neural network verification based on cognitive trajectories
CN114648048B (zh) * 2022-04-01 2022-10-25 山东省人工智能研究院 基于变分自编码和PixelCNN模型的心电信号降噪方法
WO2023214910A1 (en) 2022-05-03 2023-11-09 Telefonaktiebolaget Lm Ericsson (Publ) Machine for device verification and anomaly checking
CN114898020A (zh) * 2022-05-26 2022-08-12 唯物(杭州)科技有限公司 一种3d角色实时面部驱动方法、装置、电子设备及存储介质
CN115797216B (zh) * 2022-12-14 2024-05-24 齐鲁工业大学 一种基于自编码网络的碑文文字修复模型及修复方法
CN116499607B (zh) * 2023-06-27 2023-09-08 之江实验室 一种光纤传感信号降噪方法、装置和存储介质
CN117290733B (zh) * 2023-11-27 2024-03-12 浙江华创视讯科技有限公司 姿态样本生成方法、模型训练方法、设备及可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018189728A1 (en) * 2017-04-14 2018-10-18 Cerebras Systems Inc. Floating-point unit stochastic rounding for accelerated deep learning
WO2019067960A1 (en) * 2017-09-28 2019-04-04 D5Ai Llc AGGRESSIVE DEVELOPMENT USING COOPERATIVE GENERATORS
WO2019079895A1 (en) * 2017-10-24 2019-05-02 Modiface Inc. SYSTEM AND METHOD FOR IMAGE PROCESSING THROUGH DEEP NEURAL NETWORKS
CN109886388A (zh) * 2019-01-09 2019-06-14 平安科技(深圳)有限公司 一种基于变分自编码器的训练样本数据扩充方法和装置
CN110020684A (zh) * 2019-04-08 2019-07-16 西南石油大学 一种基于残差卷积自编码网络的图像去噪方法
CN110506278A (zh) * 2017-04-19 2019-11-26 西门子医疗有限公司 隐空间中的目标检测
CN110533620A (zh) * 2019-07-19 2019-12-03 西安电子科技大学 基于aae提取空间特征的高光谱和全色图像融合方法
CN110895715A (zh) * 2018-09-12 2020-03-20 辉达公司 存储高效的神经网络
WO2020064990A1 (en) * 2018-09-27 2020-04-02 Deepmind Technologies Limited Committed information rate variational autoencoders
CN111243045A (zh) * 2020-01-10 2020-06-05 杭州电子科技大学 一种基于高斯混合模型先验变分自编码器的图像生成方法
CN111258992A (zh) * 2020-01-09 2020-06-09 电子科技大学 一种基于变分自编码器的地震数据扩充方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042811B2 (en) * 2016-10-05 2021-06-22 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
US20200143240A1 (en) * 2017-06-12 2020-05-07 D5Ai Llc Robust anti-adversarial machine learning
US11861491B2 (en) * 2017-10-16 2024-01-02 Illumina, Inc. Deep learning-based pathogenicity classifier for promoter single nucleotide variants (pSNVs)
US10872596B2 (en) * 2017-10-19 2020-12-22 Baidu Usa Llc Systems and methods for parallel wave generation in end-to-end text-to-speech
US11205121B2 (en) * 2018-06-20 2021-12-21 Disney Enterprises, Inc. Efficient encoding and decoding sequences using variational autoencoders
US11100647B2 (en) * 2018-09-10 2021-08-24 Google Llc 3-D convolutional neural networks for organ segmentation in medical images for radiotherapy planning
US20200090050A1 (en) * 2018-09-14 2020-03-19 D-Wave Systems Inc. Systems and methods for training generative machine learning models with sparse latent spaces
US11727265B2 (en) * 2019-06-27 2023-08-15 Intel Corporation Methods and apparatus to provide machine programmed creative support to a user

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018189728A1 (en) * 2017-04-14 2018-10-18 Cerebras Systems Inc. Floating-point unit stochastic rounding for accelerated deep learning
CN110506278A (zh) * 2017-04-19 2019-11-26 西门子医疗有限公司 隐空间中的目标检测
WO2019067960A1 (en) * 2017-09-28 2019-04-04 D5Ai Llc AGGRESSIVE DEVELOPMENT USING COOPERATIVE GENERATORS
WO2019079895A1 (en) * 2017-10-24 2019-05-02 Modiface Inc. SYSTEM AND METHOD FOR IMAGE PROCESSING THROUGH DEEP NEURAL NETWORKS
CN110895715A (zh) * 2018-09-12 2020-03-20 辉达公司 存储高效的神经网络
WO2020064990A1 (en) * 2018-09-27 2020-04-02 Deepmind Technologies Limited Committed information rate variational autoencoders
CN109886388A (zh) * 2019-01-09 2019-06-14 平安科技(深圳)有限公司 一种基于变分自编码器的训练样本数据扩充方法和装置
CN110020684A (zh) * 2019-04-08 2019-07-16 西南石油大学 一种基于残差卷积自编码网络的图像去噪方法
CN110533620A (zh) * 2019-07-19 2019-12-03 西安电子科技大学 基于aae提取空间特征的高光谱和全色图像融合方法
CN111258992A (zh) * 2020-01-09 2020-06-09 电子科技大学 一种基于变分自编码器的地震数据扩充方法
CN111243045A (zh) * 2020-01-10 2020-06-05 杭州电子科技大学 一种基于高斯混合模型先验变分自编码器的图像生成方法

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION;Kingma 等;《arXiv:Machine Leaning》;第3、6.1节 *
Cai 等.Multi-Stage Variational Auto-Encoders for Coarse-to-Fine Image Generation.《arXiv:Computer Vision and Pattern Recogniton》.2017,第1、2.2节,附图2. *
Hierarchical Variational Models;Ranganath 等;《arXiv:Machine Leaning》;第2.1节 *
LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS;Brock 等;《arXiv:Machine Leaning》;第23页 *
Multi-Stage Variational Auto-Encoders for Coarse-to-Fine Image Generation;Cai 等;《arXiv:Computer Vision and Pattern Recogniton》;第1、2.2节,附图2 *
Residual Flows for Invertible Generative Modeling;Chen 等;《arXiv:Machine Leaning》;摘要、第3.3节 *
SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS;Miyato 等;《arXiv:Machine Leaning》;第24页 *
Squeeze-and-Excitation Networks;Hu 等;《arXiv:Computer Vision and Pattern Recogniton》;第1、3部分,图3 *
多任务学习;张钰;刘建伟;左信;;计算机学报;20190417(07);160-198 *

Also Published As

Publication number Publication date
CN113822437A (zh) 2021-12-21
US20210397945A1 (en) 2021-12-23
DE102021206286A1 (de) 2021-12-23

Similar Documents

Publication Publication Date Title
CN113822437B (zh) 深度分层的变分自动编码器
US10692265B2 (en) Neural face editing with intrinsic image disentangling
CN111325851B (zh) 图像处理方法及装置、电子设备和计算机可读存储介质
EP4377898A1 (en) Neural radiance field generative modeling of object classes from single two-dimensional views
US20220101144A1 (en) Training a latent-variable generative model with a noise contrastive prior
US20220277431A1 (en) Initializing a learned latent vector for neural-network projections of diverse images
CN112102477A (zh) 三维模型重建方法、装置、计算机设备和存储介质
Huang et al. Real-world automatic makeup via identity preservation makeup net
US20230012372A1 (en) Methods and systems for generating three dimensional (3d) models of objects
CA3180427A1 (en) Synthesizing sequences of 3d geometries for movement-based performance
US20220398697A1 (en) Score-based generative modeling in latent space
US20220101122A1 (en) Energy-based variational autoencoders
CN115311127A (zh) 一种脸部处理方法、装置、计算机设备及存储介质
KR102470866B1 (ko) 3d 캐릭터의 얼굴 표정 리타게팅 방법 및 이를 위해 신경망을 학습하는 방법
CN116385667B (zh) 三维模型的重建方法、纹理重构模型的训练方法以及装置
CN113408694A (zh) 用于生成式神经网络的权重解调
AU2018101526A4 (en) Video interpolation based on deep learning
US20220101145A1 (en) Training energy-based variational autoencoders
US20230154090A1 (en) Synthesizing sequences of images for movement-based performance
Zhang et al. Zero-Shot Real Facial Attribute Separation and Transfer at Novel Views
US20220405583A1 (en) Score-based generative modeling in latent space
US20230316616A1 (en) Animation Generation and Interpolation with RNN-Based Variational Autoencoders
Fang et al. Methods and Strategies for 3D Content Creation Based on 3D Native Methods
CN114330471A (zh) 基于能量的变分自动编码器
Guo et al. ACoSkeNet: A unique automatic coloring of sketches model based on U-Net

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
GR01 Patent grant
GR01 Patent grant