通过潜在空间正则化对监督式生成对抗网络进行优化的制作方法

文档序号:26496303发布日期:2021-09-04 00:08阅读:125来源:国知局
通过潜在空间正则化对监督式生成对抗网络进行优化的制作方法
通过潜在空间正则化对监督式生成对抗网络进行优化
1.本专利申请是申请日为2019年10月29日,申请号为2019110342277,发明名称为“通过潜在空间正则化对监督式生成对抗网络进行优化”的发明专利申请的分案申请。
技术领域
2.本发明涉及生成对抗网络(gan),具体领域为gan的训练方法。


背景技术:

3.机器学习涉及到计算机在没有明确指令的情况下学习如何执行任务。计算机根据样本数据来构建(如推断出)用于执行任务的模型。当计算机接收到新数据时将使用该模型来执行任务。所述任务可以是分类任务、预测任务、推理任务等。
4.生成对抗网络(gan)是可用于生成新数据的一类机器学习系统。例如,gan可用于生成新图像。例如,在超分辨率领域中,gan可用于通过低分辨率图像来生成高分辨率图像。例如,在修复领域中,gan可用于重建图像和/或视频中的丢失或受损部分。gan还可以用在许多其他应用中,例如用于生成逼真的域特定图像(即生成看起来像是真实的图像)。


技术实现要素:

5.一方面,本发明提出了一种对生成对抗网络(gan)中的发生器g进行训练的方法。该方法包括由编码器e接收目标数据y;由编码器e接收发生器g的输出g(z),其中发生器g在接收随机样本z后随即生成输出g(z),并且其中gan的鉴别器d受到训练以区分g(z)和目标数据y;训练编码器e以最小化输出g(z)的第一潜在空间表示e(g(z))与目标数据y的第二潜在空间表示e(y)之间的差值,其中输出g(z)和目标数据y被输入到编码器e;以及使用第一潜在空间表示e(g(z))和第二潜在空间表示e(y)来约束发生器g的训练。
6.第二方面,本发明提出了一种用于训练生成对抗网络(gan)的发生器g的设备。该设备包括一个存储器和一台处理器。处理器被配置为执行存储在存储器中的指令,以向编码器e输入目标数据y;向编码器e输入发生器g的输出g(z),其中发生器g在接收随机样本z后随即生成输出g(z),并且其中gan的鉴别器d经过训练以区分g(z)和目标数据y;训练编码器e以最小化输出g(z)的第一潜在空间表示e(g(z))与目标数据y的第二潜在空间表示e(y)之间的差值,其中输出g(z)和目标数据y被输入到编码器e;并使用第一潜在空间表示e(g(z))和第二潜在空间表示e(y)来约束发生器g的训练。
7.第三方面,本发明提出了一种用于生成超分辨率图像的设备。该设备包括存储器和实施方法的处理器。该设备实施的方法包括由发生器g接收一个对应于低分辨率图像的输入;从发生器g输出对应于该低分辨率图像的超分辨率图像,其中使用生成对抗网络(gan)来训练发生器。gan包括发生器g、编码器e和鉴别器d。编码器e的输出用于约束发生器g的训练。
附图说明
8.在阅读以下详细描述时参考附图将有助于更好地理解本发明的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同部分的尺寸进行任意扩大或缩小。
9.图1是一个通用的生成对抗网络(gan)的示例图。
10.图2是一个可以用于实现神经网络的计算设备的示例框图。
11.图3是一个gan生成的数据所产生的一个问题的示例图。
12.图4是一个图像流形和图像流形的潜在空间的示例图。
13.图5是根据本发明实施例所绘制的包含一个编码器的gan架构500的示例图。
14.图6是根据本发明实施例所绘制的训练生成对抗网络(gan)的方法的示例流程图。
具体实施方式
15.深度神经网络(dnn)已被应用于诸多领域,尤其用于解决诸如图像识别和图像生成之类的计算机视觉问题。特别是卷积神经网络(cnn)已经被广泛使用并且已在这些领域中取得了尖端科研成效。
16.深度cnn模型通过诸如滤波、跨步、池化和非线性整流等操作来提取图像特征。cnn层越深这些特征就越抽象。这些特征(称为潜在空间特征)被送到网络的最底层以执行计算机视觉任务,如对象检测、图像分类、图像分割、图像注释和图像生成等。人们已经提出了许多模型架构来改善诸如准确性等各方面性能。
17.生成对抗网络(gan)可用于学习数据分布,例如真实图像的数据分布。基于学习可以生成新图像。更具体地说,gan的生成器g学习关于真实数据底层的真实数据分布,然后试着生成看起来像真实样本的样本。
18.gan网络的一个问题在于所生成的数据(如生成的图像)可能包含不需要的伪像,例如失真或不自然的图像结构,例如图3所述情况。本公开所述的实施例和gan架构可用于消除或至少减少这些伪像。因此,发生器g可以生成更逼真和无伪像的数据。
19.本公开所述的实施例和gan架构在本公开所述的gan架构的训练中采用了利普希茨连续条件(lipschitz continuity condition)。利普希茨连续条件可用于在gan架构中引入编码器e。编码器e可用于最小化所生成的样本g(z)与目标样本y之间的潜在空间差值,详见下文说明。g(z)和y的潜在空间分别表示为e(g(z))和e(y)。本文的公开内容主要应用于监督学习情境。在监督学习中,对应于生成数据g(z
i
)的真实数据样本y
i
是已知的。也就是说,一对真实数据样本和生成数据样本之间的对应关系是已知的。换句话说,当生成新数据g(z
i
)时,已经知道g(z
i
)应该是什么样的,即g(z
i
)应该看起来像与之对应且已知的数据yi。
20.例如,可以在超分辨率应用中使用监督学习。超分辨率是指在拿到低分辨率模糊图像的情况下,生成具有足够细节和清晰度的高分辨率的清晰图像。例如,在视觉通信中,发送方可以通过网络向接收方发送一幅相对模糊的小图像。接收方可以使用超高分辨率来增强图像细节和分辨率。例如,如果接收方接收到标准清晰度(sd标清)的图像,则接收方可以将图像恢复为高清晰度(hd高清)。例如,对于采用图像分辨率有限的数码相机拍摄的图像可以通过使用超分辨率来将其放大。
21.在本文通篇中,发生器可被称为g、发生器或发生器网络;鉴别器可被称为d、鉴别
器或鉴别器网络;编码器可被称为e、编码器或编码器网络。
22.本文首先参考可以实现该训练的系统、架构或环境来说明如何通过潜在空间正则化来优化监督下的生成对抗网络。
23.图1是一个通用的生成对抗性网络(gan)100的示例图。gan 100包括生成器102和鉴别器104。gan 100的目的是通过训练(即在训练完成之后)让生成器102可以生成逼真的数据(如生成的逼真的面部图像),使得鉴别器104无法辨别该数据是生成的。也就是说,鉴别器104认为(即被引导至误认为)所生成的数据是真实数据。
24.生成器102可以是反卷积网络,它接收随机噪声z的向量,并对噪声z进行上采样,以产生生成的数据(如生成的图像)g(z)。发生器102可被视为将输入z映射至输出g(z)的函数。鉴别器104可以是卷积网络,它可以将传送过来的输入数据和输入106一起进行辨别是真实数据还是伪造数据(即生成的数据)。
25.例如,对于给定的输入x,鉴别器104输出一个标签d(x),表明输入x是真实的还是生成的数据。鉴别器104可以是二项分类器,可将输入x标记(如归类)为真实的数据或生成的数据。例如,如果鉴别器104认为输入x为生成的数据,则可将d(x)标识为0;否则可将d(x)标识为1。也可使用其他输出值来标识。又如,d(x)也可以是一个概率值。
26.如开关108所示,鉴别器104可以接收发生器102的输出g(z)或真实数据样本y作为其输入x。当鉴别器104接收g(z)作为输入时(即当x=g(z))时,鉴别器104的输出为值d(g(z)),表明鉴别器104认为输入g(z)是真实的还是生成的。当鉴别器104接收y作为输入时(即当x=y时),鉴别器104的输出为值d(y),表明鉴别器104认为输入y是真实的还是生成的。
27.可以认为发生器102网络和鉴别器104网络互相协作,并且同时也彼此相互作用。通俗地说,可将发生器102看作是伪造者,而将鉴别器104看作是警察。伪造者的目的(在训练期间)是生成数据使得警察无法识别所生成的数据是伪造的。
28.生成器102受到训练以期将概率d(g(z))最大化以便欺骗鉴别器104,使得鉴别器104无法辨别g(z)是生成的。鉴别器104则受到训练以期将概率d(g(z))最小化并将概率d(y)最大化,使其可以在真实数据样本y中将生成的样本g(z)辨别出来。如果将实际输入y输入至鉴别器104,鉴别器104的目标是输出如概率d(x)=1;而如果输入数据是生成的(如g(x))),则输出d(x)=0。如上所述,d(x)可以是指输入x为真实数据的概率(即p(输入的类别=真实数据))。
29.最终结果是,当发生器102和鉴别器104交会时,鉴别器104无法再将所生成的样本g(z)与真实数据样本y区分开来。此时,可以认为生成器102已经了解了真实数据y的分布。此处“交会”是指对发生器102和/或鉴别器104中的任何一个进行的额外训练确实达到了性能的改善(或充分改善)。
30.反向传播可用于改善发生器102网络和鉴别器104网络中的任何一个的性能。
31.如上所述,鉴别器104可以输出值d(x)用于表明输入x是真实数据样本的可能性。鉴别器104的目的是使得将真实数据样本(即y)识别为真实的以及将所生成的样本(即g(z))识别为伪造的(即生成)的可能性达到最大化。也就是说,鉴别器104的目标是最大化输入数据的相似性。可以使用交叉熵p log(q)来计算损失。对鉴别器104的权重θ
d
进行优化可以通过下列等式(1)表示:
32.在等式(1)中,ep
y
表示相对于变量y(即真实数据样本)的分布的期望值,ep
z
表示相对于变量z(即g(z)产生所在的随机噪声)的分布的期望值,θ
d
和θ
g
分别为鉴别器104(d)和发生器102(g)的当前网络权重参数。给定当前鉴别器网络参数为θ
d
,当将输入y(即真实数据样本)发送至鉴别器104时,鉴别器104的输出为给定当前鉴别器网络参数θ
d
,当将输入(即为对于给定当前发生器网络参数θ
g
,当将输入z发送至发生器102时,发生器102所生成的输出)发送至鉴别器104时,鉴别器104的输出为
33.等式(1)(即鉴别器104的目标函数)可以概括为:找到一组新的鉴别器网络参数,即以便最大程度加强鉴别器104识别真实数据样本(即对应于算式的能力,以及识别生成的数据样本(即对应于算式的能力。
34.对发生器102进行训练也可以通过反向传播算法。如上所述,发生器102的目标函数可以使得发生器102生成达到d(x)的最高可能值的数据(如图像)以欺骗鉴别器104。由此,发生器g的目标函数可根据等式(2)给出:
35.ep
z
和如等式(1)所述。等式(2)可以概括为:找到发生器102的最佳参数,即g,使得发生器102的输出g(z)可以最大程度地欺骗鉴别器104。
36.等式(1)和(2)可以组合成极大极小优化问题:
37.在一个示例中,等式(1)和(2)的目标函数可以联合学习,例如分别通过交替鉴别器104和发生器102的梯度递增和递减。例如,可以将发生器102的参数θ
g
固定,使用真实数据样本(即y)和生成数据样本(即))对鉴别器104执行增加一个梯度的单次循环。然后,将鉴别器104的参数θ
d
固定,通过减少一个梯度的单次循环对发生器102进行训练。可以通过交替方式训练鉴别器104网络和发生器102网络,直到生成器102生成样本g(z)让鉴别器104无法识别其为生成的样本。
38.图2是一个可以用于实现神经网络的计算设备的示例框图。神经网络可以是卷积神经网络。例如,计算设备200可以用于实现图1中的发生器102和鉴别器104其中之一或两者同时实现。计算设备200可用于实施编码器e,详见下文所述。计算设备200可以是包括多个计算设备的计算系统,或者是单个的计算设备,如移动电话、平板电脑,膝上电脑、笔记本电脑、台式电脑等。
39.计算设备200中的cpu 202可以是中央处理单元,或者cpu 202也可以是能够操控或处理现在或以后开发的信息的任何其他类型的设备或多个设备。尽管本文所公开的实施
例可以采用如cpu 202这样的单个处理器来实现,如图中所示,但是也可以使用多个处理器来提高速度和效率。
40.计算设备200中的存储器204在具体实现中可以是只读存储器(rom)设备或随机存取存储器(ram)设备。也可采用任何其他合适类型的存储设备作为存储器204。存储器204可以包括可由cpu 202通过总线212访问的代码和数据206。存储器204还可以包括操作系统208和应用程序210,其中应用程序210包括一个或多个让cpu202得以运行本文所述方法的程序。例如,应用程序210可以包括应用程序1到n,其中包括运行本文所述方法的视频编码程序。计算设备200还可以包括辅助存储器214,比如它可以是配合移动的计算设备200使用的存储卡。视频通信会话可以包含大量信息,因此它们可以全部或部分地存储在辅助存储器214中并且根据处理需要加载到存储器204中。
41.计算设备200还可以包括一个或多个输出设备,如显示器218。在一个示例中,显示器218可以是显示器与可操作触摸输入的触敏元件组合而成的触敏显示器。显示器218可以通过总线212耦合到cpu 202上。也可以使用其他允许用户编程或使用计算设备200的输出设备作为显示器218之外的附加或替代输出设备。如果输出设备是显示器或包含显示器,则该显示器可以以各种方式实现,包括液晶显示器(lcd)、阴极射线管(crt)显示器或发光二极管(led)显示器,如有机led(oled)显示器等。
42.计算设备200还可以包括图像传感设备220(如相机),或者包括现存或以后开发的可以感测图像(如一幅用户操作计算设备200的图像)的任何其他图像传感设备220,或者与上述图像传感设备220通信。可将图像传感设备220摆放至面对操作计算设备200的用户的位置。在一个示例中,可以配置图像传感设备220的位置和光轴,使得视场范围包括与显示器218直接相邻并且可见到显示器218的区域。
43.计算设备200还可以包括声音传感设备222(如麦克风),或者包括现存或以后开发的可以感测设备200附近的声音的任何其他声音传感设备222,或者与上述声音传感设备222通信。可将声音传感设备222摆放至面对操作计算设备200的用户的位置,并可以对其进行配置使其接收声音,并且可以被配置为接收声音,比如用户操作计算设备200时由用户发出的声音,如语音或其他声音。
44.图2仅描绘了计算设备200的cpu 202和存储器204被集成到单个处理单元中的情况,除此之外也可以采用其他配置。cpu 202的操作可以分布在多个机器(每个机器包含一个或多个处理器)上,这些机器可以直接耦合或跨局域或其他网络耦合。存储器204可以分布在多个机器上,例如基于网络的存储器或运行计算设备200的操作的多个机器中的存储器。本文仅描述了单个总线的情况,除此之外计算设备200的总线212也可以由多个总线组成。此外,辅助存储器214可以直接耦合到计算设备200的其他组件,也可以通过网络访问,或者也可以包括诸如存储卡的单个集成单元或诸如多个存储卡的多个单元。因此,计算设备200可以以各种各样的配置实现。
45.如上所述,已有越来越多的应用将gan模型用于图像处理任务,如超分辨率、图像到图像转换、图像或视频样式转换、修复以及其他应用。但是,gan模型存在一些固有的问题,比如模式崩溃和失真等问题。模式崩溃是指当多个不同的输入本来预期/意图应得到多个不同的输出,但却发生了多个输入映射到一个输出的情况。例如,对于给定双峰分布的数据,其中2个高斯集中在两个点,gan可能仅仅学习了其中一的个模式。因此,无论发生器接
收到什么输入,输出都将只映射出所学习到的那个高斯分布。
46.例如,在单图像超分辨率的计算机视觉任务中,当采用发生器(如图1中的发生器102)来生成模仿自然图像的图像时,即使对生成器网络进行了监督训练,生成的图像还是可能看起来不真实、失真和/或缺少细节。图3是由gan生成的数据所产生的问题300的一个示例。
47.图像306是一幅呈现高分辨率斑马图像的基准图像。图像306包含一个图块307用于显示清晰的结构。图块307在被缩放的图块308中示出。缩放的图块308显示出条纹309是自然、清晰和未失真的。相比之下,图像302是基于图像306的由gan生成的超高分辨率图像。图像302的图块303对应于图像306的图块307。图块303在被缩放的图块304中示出。可以看出,对应于条纹309的条纹305包含失真的内部结构。在被缩放的图块304中的斑马条纹结构是紊乱的。
48.因此,由gan生成器生成的数据(如图像)最好不要包含伪像,如失真和/或非自然的结构。生成具有较少伪像的图像可以改善gan的学习性能。也就是说,生成的数据越真实,gan就能越快达到等式(1)和(2)的最优解。
49.可以将自然图像看作是存在于一个嵌入高维空间(也称为环境空间)的流形中。图4是一个图像流形和图像流形的潜在空间的示例图。通常流形402的维度比环境空间的维度要低。为便于观察,将环境空间404描绘为三维空间。一般来说,环境空间404可以被认为是m维的。为便于观察,将流形402描绘为映射到二维潜在空间,即潜在空间406。但一般来说,流形402可以被认为是n维的,其中n≤m。
50.如箭头408所示,流形402可以经由编码映射e(即编码器e)映射到较低维的空间(即潜在空间406)。较低维度的空间可以被称为潜在空间。如箭头410所示,从潜在空间406到环境空间404的反向映射是发生器函数g。也就是说,发生器如图1中的发生器102可以在环境空间404中生成数据样本。这两个空间(即环境空间404和潜在空间406)在数学上是同胚的。因此,编码器e和发生器g是同胚的。也就是说,图像流形402在发生器和编码器空间中是同胚的。在这种同胚现像下,至少在理论上,这两个空间是相等的。使用相应的生成器函数或编码函数可以将一个空间映射到另一个空间。
51.不同类别的自然图像存在于流形的不同邻域中。生成的(即通过发生器生成,如图1中发生器102)每个数据样本(如每幅图像)最好是位于目标邻域附近。也就是说,例如,图1中生成的数据样本g(z)最好可以尽可能地接近图1中的目标y。
52.为实现此目的,根据本发明的实施方案可使用采用潜在空间正则化的新gan架构。编码器e可以与gan(如图1的gan 100)相结合。根据本发明的方法,可采用新的损失函数来训练gan模型。
53.上文已经解释了潜在空间的正则化。如图4相关所述,如n
×
m大小的一组自然图像在一个流形(如流形402)中,并存在于n*m维空间(如环境空间404)中。如果该组图像都通过少量连续的变量进行有效地参数化,那么该组图像将在此高维空间中处于低维流形中或在其附近。
54.通常我们知道,在将神经网络用于完成任务(如分类、回归、图像重建等)之前,神经网络会经过训练从多个层(卷积层、循环层、池化层等)中提取特征。神经网络成为(如学习)在潜在空间上投影(如映射)图像的功能。换句话说,潜在空间就是特征所在的空间。潜
在空间包含了图像的压缩形式。然后该压缩图像用于尽可能准确地重建输入。如需出色地完成任务,神经网络必须学会提取最贴切的特征(如最贴切的潜在空间)。
55.给定潜在空间中的任何两个样本z1和z2(即z1和z2作为发生器的输入,如图1中的发生器102),在环境空间中生成的样本为g(z1)和g(z2)(即g(z1)和g(z2)分别为发生器的相应输出)。不等式(3)可以用于生成器函数。|g(z1)

g(z2)|≤k*|z1‑
z2|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
56.不等式(3)表示函数g(即生成器g的输出)的绝对变化(即|g(z1)

g(z2)|))不超过绝对潜在空间差值(即|z1‑
z2|)的常数倍数(该常数以k表示)。该常数k被称为利普希茨(lipschitz)常数。也就是说,利普希茨连续性条件被应用于发生器,使得函数的变化(即发生器的输出)不超过发生器的输入的变化。通过应用利普希茨连续性条件可以很好地控制图像的变化;或者说,可以很好地控制函数g的变化。
57.在监督学习的情况下(即当发生器的输入z所对应的期望目标y是已知的)时,预期(如期望)g(z)在目标y附近。可以要求发生器g(z)和目标y之间的差值不超过潜在空间的差值。
58.直接用发生器输入的差值(即|z1‑
z2|))来限制输出的差值(即|g(z1)

g(z2)|))并不可行,因为输入(如z1和z2)通常是随机噪声或被随机噪声或其他的形式干扰或破坏。
59.可以添加一个清晰的附加编码映射e(即编码器e)。编码映射e可以将环境空间映射到新的潜在空间。利普希茨连续性条件可以同时应用在发生器g和编码器e上,详见下述。利普希茨条件由不等式(4)表示。|y

g(z)|≤k*|e(y)

e(g(z))|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
60.在不等式(4)中,y是真实数据样本,g(z)是对应于y的生成器的输出。也就是说,给定输入z,期望生成器输出的g(z)尽可能接近y。e(y)和e(g(z))是由编码器e从环境空间映射过来的潜在空间点。不等式(4)可以解释为:给定目标样本y,那么最好y和生成的数据g(z)之间的差值不超过潜在空间变量。应注意的是,本文中使用的绝对差值(例如|y

g(z)|),|e(y)

e(g(z))|等)指的是l1范数(l1‑
norms),除非另有说明。但本发明并不限于采用该范数,也可以使用另一种范数或其他误差测量。例如,误差可以是均方误差。
61.重申一下,基于不等式(4),如果e(y)和e(g(z))本身足够接近,则g(z)可以更趋近于y。使用不等式(4)而不是不等式(3)的原因在于,由于已知z通常是有噪声的,因此z可能包含失真和/或其他伪像。采用噪声输入差异来直接限制发生器函数g的差异这一方法并不理想。
62.编码器e将处于环境空间的高维度中的原始(如目标)样本(如图像)y和/或生成的数据(如图像)g(z)映射至另一个低维空间,即潜在空间。对于y的此项映射表示为e(y);对于g(z)的映射表示为e(g(z))。
63.如图1相关所述,典型的gan架构仅包括发生器和鉴别器。因此,典型的gan架构并不包括上述的编码器e。
64.图5是根据本发明实施例所绘制的包含一个编码器的gan架构500的示例图。gan架构500包括生成器502、鉴别器504和编码器506。生成器502可以跟图1中所述的生成器102一样,只是发生器502的目标函数与发生器102的目标函数不同,如下所示。鉴别器504可以跟图1中所述的鉴别器104一样。编码器506可以是神经网络,如卷积神经网络。例如,编码器
506可以改编一个典型vgg模型(如vgg16)的前几层,和/或后面再加上几个放大层,使得编码器506的输出与噪声样本z(即发生器502的输入)的大小相匹配。vgg和vgg16以牛津大学(oxford university)的视觉几何组(visual geometry group)命名,并在karen simonyan,andrew zisserman(2015)所著的very deep convolutional networks for large

scale image recognition.iclr 2015.中描述。获取自https://arxiv.org/pdf/1409.1556.pdf%20http://arxiv.org/abs/1409.1556.pdf,其全部内容并入本文。编码器506可以由计算设备(即装置)实现或由其运行,如图2中的计算设备200。
65.如图1相关所述,生成器502可以接收输入z作为输入并输出生成的样本g(z)。输入z可以是从分布(例如均匀分布)p(z)中采样的随机值。输入z可以包括多个成分。也就是说,输入z可以是随机值的多维(如j维)向量。通过训练,生成器学习从随机噪声z到环境空间g(z)的映射。因此,g(z)是随机输入z的环境空间表示。
66.鉴别器504可通过路径508接收所生成的样本g(z),或通过路径516接收对应于g(z)的目标y。如果鉴别器504接收到g(z),则鉴别器504输出值d(g(z)),用于表明鉴别器504认为g(z)是真实的还是生成的。如果鉴别器504接收到y,则鉴别器504输出值d(y),用于表明鉴别器504认为输入y是真实的还是生成的。
67.编码器506还可通过路径514接收目标y作为输入,并通过路径510接收所生成的样本g(z)。如果编码器506接收到g(z),则编码器506输出值e(g(z))。如果编码器506接收到y,则编码器506输出值e(y)。
68.可以认为编码器506是将原始图像的显著(如重要)特征和对应的生成图像的显著特征编码到通常是特征的较小的空间中,并且在应用不等式(4)的同时最小化这两个编码之间的差值,其中不等式(4)也包含在下列详述的算式中,并且在包含有编码器506的gan模型的优化中如虚线518所示。
69.因此,等式(2)的生成器502优化问题可以转换(即改写)成等式(5),也就是说,等式(2)的优化问题必须在编码映射关系(即编码器506)上满足利普舒茨连续性条件。
70.在等式(5)中,k是常数,θ
g
是发生器502网络的当前权重集;θ
e
是编码器506网络的当前权重集;并且ep
z
表示对于噪声输入样本z的分布的预期。是由等式(2)的优化问题所得到的新的发生器网络权重集。
71.从数学的角度看,等式(5)可以改写为等式(6)(因为等式(5)的解必须是等式(6)的解),其中利普舒茨约束作为一项被添加至(即并入)生成器的目标函数(即等式(2))中:
72.通过引入超参数μ1和μ2,可以将等式(6)转换为等式(7),其中μ1>0且μ2>0。超参数μ1可以与等式(6)的参数μ相同;并且超参数μ2可以等于μ*k。超参数μ1和μ2可以通过启发法来设定和/或可以凭经验导出。
73.如上所述,发生器502将编码器506的输出e(g(z))和e(y)用于发生器502的损耗函数中,如等式(7)所示,见图中虚线518。如上所述,编码器506受到训练以最小化e(g(z))和e(y)之间的绝对差。
74.gan 500模型可以通过以下等式(8)

(10)来表示。在训练期间,交替地训练鉴别器504、发生器502和编码器506。可以训练鉴别器504以最大化等式(8)中的函数,如在图1中的gan 100那样。训练发生器502和编码器506以分别使等式(9)和(10)中的损失函数最小化。注意,等式(8)与等式(1)相同,而等式(9)与等式(7)相同。如等式(10)所示,编码器506优化e(y)(即真实样本的潜在空间表示)与e(g(z))(即通过发生器502所生成的样本的潜在空间表示)之间的差异。表示)之间的差异。表示)之间的差异。
75.使用编码器506的权重集θ
e
,当g(z)被送至(即输入至)编码器506中时,编码器506将输出e(g(z))。使用相同的权重集θ
e
,当y被送至(即输入至)编码器506中时,编码器506将输出e(y)。也就是说,用于生成e(g(z))和e(y)使用的是相同的权重集。在一些实施方案中,在使用并行处理器的情况下,可以将g(z)和y输入到编码器506中以得到输出e(g(z))和e(y)。同样,g(z)是对应于样本y的生成样本。也就是说,预期g(z)应该很像y。
76.将g(z)和y两者送至编码器506可以构成一次循环。编码器506的权重不会在一次循环内更新。在一次或多次完整循环之后才会更新权重。
77.虽然本文采用特定的发生器目标函数(如等式(2))和特定的鉴别器目标函数(如等式(1))作为等式(4)和(5)的约束项,但本发明的内容并不限于此。如果等式(1)和(2)中使用其他形式的鉴别器函数和发生器对抗函数,则等式(4)或(5)中的约束项也可以采用其他形式。例如,等式(4)可以与wasserstein距离、相对鉴别器(relativistic discriminator)或一些其他目标函数一起使用,它们用于代替等式(1)和(2)。wasserstein距离的详细描述见arjovsky,m.,chintala,s.&bottou,l.(2017).wasserstein generative adversarial networks.proceedings of the 34th international conference on machine learning,in pmlr 70:214

223。相对鉴别器的详细描述见jolicoeur

martineau,a.:the relativistic discriminator:a key element missing from standard gan.arxiv preprint arxiv:1807.00734(2018)。由此可见,如使用不同的目标函数则等式(8)

(10)也需做相应调整。
78.表i的伪代码示出了一个包含编码器的gan(如图5中的gan 500)的训练算法的示例。
79.表i说明了可以使用n次循环来训练gan模型。鉴别器网络(即图5的鉴别器504)、发生器网络(即图5的发生器502)和编码器网络(即图5的编码器506)中的每一个按此顺序在一次循环中被训练。也就是说,一次循环涉及三个网络的训练:鉴别器、发生器和编码器。作为初始化步骤(即表i中的第0行),分别将鉴别器、编码器和发生器网络的权重θ
d
,θ
e
和θ
g
初始化为随机值。
80.含有l个步骤的第一次循环(由表i中的第2

5行组成)描述了鉴别器网络的训练。在一些实现中,l为1。在其他一些实现中,l可以大于1。这样,根据l的不同取值,鉴别器网络可以被优化1次或多次。
81.在每次循环中,在表i的第3行,可在噪声数据生成分布p
g
(z)中选择一小批m个噪声样本{z1,...,z
m
}。根据本文所述的监督学习,对应于每个输入样本有其对应的m个目标样本。也就是说,对于输入z
i
,有一个对应的预期输出y
i
。接下来,在表i的第4行,通过梯度递增来更新鉴别器权重θ
d
(因为如等式(8)所示,更新鉴别器权重就是最大化优化问题)。本文对梯度递增(和递减)的细节不作赘述,因为该细节对于本领域的技术人员而言都已熟知,并且对于理解本发明也不是必需的。通常我们知道,随机梯度的递增(或递减)(如本文的表i和其他地方所述)意味着递增(或递减)梯度的至少一部分。通常,梯度的一部分用于递增(或递减)。
82.在训练鉴别器的l个步骤之后,表i的算法开始更新生成器和编码器网络。在表i的第6行,使用有噪声的数据生成分布p
g
(z)采样的另一小批噪声样本{z1,

,z
m
}和相应的预期目标{y1,

,y
m
}被选择出来。同样,根据本文所述的监督学习,每个z
i
对应于一个y
i

83.在表i的第7行,使用等式(9)右侧更新发生器参数θ
g
。也就是说,可以通过降低等式(9)的右侧的随机梯度来获得更新的参数。与此同时或在此之后,在表i的第8行,通过降低其梯度来更新编码器参数θ
e
,该梯度是基于等式(10)的右侧计算出来的。
84.上述过程完成了更新鉴别器、生成器和编码器网络的相应参数的一次循环。该过程可以重复n次,其中n可以是足够大的数目,以便gan网络交会。n也可以凭经验设定。在一个示例中,可以不用执行n次算法,而是在算法中包括一个终止条件,该终止条件在确定gan网络的性能不会再有充分改善时将终止算法。在一个示例中,可以在编码器和发生器之后再训练鉴别器。因此,表i中的第2

5行可以在第6

9行之后。
85.图6是根据本发明实施例所绘制的训练生成对抗网络(gan)的方法的示例流程图。gan可以是图1中的gan 500。这样,发生器g可以是图5中的发生器502,并且gan可以包括鉴别器d(如图1中的鉴别器504)和编码器e(如图5中的编码器506)。方法600可以由计算设备(即装置)实现,如图1中的计算设备200。在完成方法600后,可以存储发生器g的参数。参数可以存储在存储器中,如存储在图2中的存储器204中。生成器g的参数可以包括生成器g的网络权重。参数还可以包括生成器网络架构,如层数、每层的配置等等。
86.方法600可以由一个或多个处理器(如图1中的cpu 202)部分或完全地执行。方法600可以作为可执行指令存储在一个或多个存储器中,如图2中的存储器204或辅助存储器214。一个或多个处理器可以被配置为执行存储在一个或多个存储器中的指令。
87.在一个示例中,可以在一个或多个计算设备(例如图1的计算设备200)上采用(如在其上运行)发生器g、编码器e和鉴别器d。在一个示例中,发生器g、编码器e和鉴别器d中的每一个都可以在单独的计算设备上实现,但这种实现也并非必须如此。
88.在602处,编码器e可以接收目标数据y。目标数据y可以是真实的数据样本。例如,目标数据y可以是真实图像。如上所述,编码器e可以生成y的第一潜在空间表示e(y)。
89.在604处,编码器e可以接收g的输出g(z)。如上所述,g(z)是由生成器g通过给定的具有数据生成分布p
g
(z)的噪声样本z而生成的合成数据。如上所述,目标数据y对应于输出g(z)。如上所述,编码器e可以生成g(z)的第二个潜在空间表示e(g(z))。同样如上所述,鉴别器d受到训练以区分g(z)和目标数据y中的哪一个是生成数据和/或真实数据。
90.在606处,方法600训练编码器e以最小化输出g(z)的第一潜在空间表示(即第一潜在空间特征)e(g(z))与目标数据y的第二潜在空间表示(即第二潜在空间特征)e(y),其中输出g(z)和目标数据y被输入到编码器e。
91.在608处,方法600使用第一潜在空间表示e(g(z))和第二潜在空间表示e(y)来约束发生器g的训练,如上所述。
92.如表i相关所述,方法600可以包括通过对m个样本递减一个梯度来更新编码器e。
93.如上所述,使用潜在空间e(g(z))和e(y)来约束发生器g的训练可以包括通过对m个样本递减一个梯度个样本递减一个梯度来更新发生器g。如上文所述,参数μ1和μ2是超参数。
94.当训练完成时,鉴别器d不再能够区分真实数据样本(真实图像)和生成的(如合成
的、生成的)样本。如果鉴别器仍然能够区分真假,则意味着训练没有被优化并且训练不能算作已经完成。如前所述,gan模型的原理是发生器试图迷惑鉴别器,而鉴别器则试图不要被迷惑。因此,该过程是“对抗性的”。然而,最终当生成器g的数据生成做得足够好时,鉴别器d将不再能够分辨哪个第一输入数据(如第一图像)是真实的而哪个第二输入数据(如第二图像)是伪造的。
95.在一个示例中,编码器e可以是或可以包括vgg网络。在一个示例中,vgg网络可以被适配或者可以包括一个或多个放大层。一个或多个放大层的目的是使得编码器e的输出可以具有与噪声样本z相同的维度。通俗地说,编码器e可以是或可以包括其他神经网络类型,如卷积神经网络。在其他示例中,编码器e可以是或可以实现其他机器学习模型或技术。
96.如上所述,例如在等式(5)

(7)和(9)中,可以通过应用利普希茨条件来训练生成器g,以使输出g(z)和目标数据y之间的第一差值不超过第一潜在空间表示e(g(z))和第二潜在空间表示e(y)之间的第二差值。
97.还应注意的是,通常在训练gan网络中,训练用的发生器就是随后用于生成数据和/或执行推断或执行任何其他任务的那个发生器。通常,编码器和鉴别器不用于训练发生器之外的其他用途。
98.如上所述,本文描述的技术可以用于监督训练。监督训练可以用于如图像超分辨率和图像修复等应用中。例如,在图像超分辨率的情况下,在训练期间,生成器的输入样本z可以是或可以被认为是低分辨率图像,而输出g(z)可以是或可以被认为是相应的高分辨率图像。这样,输入样本z可以与低分辨率图像具有相同的大小。在另一示例中,输入样本z可以对应于从低分辨率图像中提取的特征的特征向量。
99.本文所述的实施方案还包括一种用于生成超分辨率图像的方法。该方法可以包括由发生器g接收对应于低分辨率图像的输入,并从发生器g输出对应于低分辨率图像的超分辨率图像。在一个示例中,输入可以是低分辨率图像本身。在另一示例中,输入可以是从低分辨率图像中提取的特征的向量。
100.可以使用上述生成对抗网络(gan)来训练生成器。因此,gan可以包括发生器g、编码器e和鉴别器d。如上所述,编码器e的输出可以用于约束发生器g的训练。编码器的输出可以包括发生器g的输出g(z)的第一潜在空间表示e(g(z)),其中z对应于训练用低分辨率图像,而g(z)对应于生成的高分辨率图像,以及训练用高分辨率图像y的第二潜在空间表示e(y)。可以训练编码器以最小化第一潜在空间表示e(g(z))和第二潜在空间表示e(y)之间的差值。如上所述,对于m个样本可以通过递减一个梯度来训练编码器。可以通过应用利普舒茨条件来训练生成器g,以使所生成的高分辨率图像和训练用高分辨率图像y之间的第一差值不超过第一潜在空间表示e(g(z))和第二潜在空间表示e(y)之间的第二差值。在一个实现中,并且如上所述,编码器e可以是或可以包括vgg网络。但也可以是其他神经网络如卷积神经网络或其他机器学习模型。
101.为了便于解释,将图6的方法600描绘并描述为一系列步骤。但本发明所述的步骤可以以各种顺序实现,可同时和/或迭代地运行。另外,本发明所述步骤也可以与本文未呈现和描述的其他步骤一起运行。此外,实现本发明所述的方法可能并不需要所有示出的步骤。
102.本文所述的实施方案可通过功能块组件和各种处理步骤来描述。本文的流程和序列可以单独或以任何组合形式来执行。功能块可以通过执行任意数量的可运行特定功能的硬件和/或软件组件来实现。例如,所述的内容可以采用各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查找表等,在一个或多个微处理器或其他控制设备的控制下执行各种功能。类似地,实现所述内容各个功能时如需采用软件编程或软件元件,都可以采用诸如c、c++、java、汇编程序等的任何编程或脚本语言来实现本发明,且可以采用任何数据结构、对像、进程、例程或其他编程元素的任意组合来执行各种算法。各项功能可以在一个或多个处理器上通过执行算法来实现。此外,本发明所述各功能可以采用任意数量的常规技术来进行电子配置、信号处理和/或控制、数据处理等。
103.以上发明的实施方式或部分实施方式可以采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体设备等等。也可包含其他适用的介质。上述计算机可用或计算机可读介质可以被称为非暂时性存储器或介质,并且可以包括ram或其他易失性存储器或存储设备,它们可以随时间变化而发生改变。本文所述的设备存储器并非必须物理上配备于设备中,而是可以由设备远程访问,并且不必与设备中其他物理上配备的存储器相邻,特别说明除外。
104.本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的方式呈现概念。本文中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“x包括a或b”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则另当别论。换句话说,如果x包含a,x包含b,或x包含a和b,那么在任何前述实例下“x包含a或b”都成立。此外,在本申请以及所附权利要求书中,“一”、“一个”通常应该被解释为表示“一个或多个”,除非另有说明或从上下文中明确指出是单数形式。另外,本文通篇中的“一个功能”或“一项功能”这两个短语并不意味着同一个实施方式或同一项功能,除非另有特别说明。
105.本文示出和描述的具体实现是本发明的说明性示例,且无意于以任何方式限制本发明的范围。为简洁起见,可能对传统电子设备、控制系统、软件开发和系统的其他功能方面(以及系统的各个操作组件中的组件)未作详细描述。此外,各个图例中所示的连接线或连接器旨在表示各种元件之间的示例性功能关系和/或物理或逻辑耦合关系。在实际设备中可以存在许多其他替代或附加的功能关系、物理连接或逻辑连接。
106.本文中“包含”或“具有”及其同义词旨在表示包括其后列出的项目及其等同物以及附加项目。本文中“安装”、“连接”、“支持”和“耦合”及其同义词被广泛使用并且包括直接和间接安装、连接、支持和耦合。此外,“连接”和“耦合”不限于物理或机械连接或耦合。
107.在本发明所述内容(特别是下文的权利要求书)中,“一”、“一个”和“该”以及类似的指示代词应理解为包含一个和多个的单数和复数形式。此外,本文中对数值范围的描述只是一种简便的描述方式,旨在表示包含在该范围之内的每一个单独数值,并且每个单独值并入规格范围中,等效于在本文中单独列举。最后,本文所述的所有方法的步骤可以以任何合适的顺序执行,除非本文另有说明或者与上下文明显矛盾。本文提供的示例或示例性
语言(例如“诸如”)的使用旨在更好地说明本发明,并无意于限制本发明的范围,除非另有说明。
108.对于本文中实施方式的描述说明是为了便于理解本发明之用,而非限制本发明的内容。相反,本公开旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。
109.虽然已经结合某些实施例对本发明进行描述说明,但应理解为,本发明并不限于所公开的实施方式,与之相反,本公开旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1