使用生成对抗模型基于预训练的模型生成数据
文献发布时间:2024-01-17 01:21:27
背景技术
本公开涉及机器学习,并且更具体地,涉及使用生成对抗模型来分析被用于训练预训练模型的数据。
近年来,已经训练了诸如深度学习神经网络之类的各种机器学习模型,并将其用于各种任务。通常,这样的模型需要大量的训练数据来有效地操作。在许多典型的开发中,可以在训练数据集上训练模型,并且随后在训练之后部署模型以用于服务。通常,训练数据与模型分离,并且对于使用训练模型的那些人不可用。
在许多情况下,希望恢复最初训练模型的数据。例如,人们可能希望恢复意外删除的数据。此外,可能期望恢复这样的训练数据用于评估以便确定模型的质量(例如,是否使用了足够的训练数据)。不存在从经训练的模型中提取训练数据的现有技术。
在生成对抗网络(GAN)的领域中,GAN已经被用于生成遵循所提供的训练数据的分布的数据。然而,这样的模型不能生成不包括在所提供的训练数据的原始分布中的数据。因此,典型的GAN网络不能恢复或生成与它已经看到的数据不同的数据。
发明内容
根据本发明的一个实施例,提供了一种方法。该方法包括接收使用目标类别中的一个或多个数据样本训练的分类器模型;训练生成对抗网络(GAN),以生成针对所述目标类别的模拟数据样本,包括:使用生成器模型生成第一模拟数据样本;通过使用判别器模型处理所述第一模拟数据样本来计算第一判别器损失;通过使用所述分类器模型处理所述第一模拟数据样本来计算分类器损失;以及基于第一判别器损失和分类器损失来细化生成器模型。有利地,这训练生成器以生成模拟、近似或匹配目标类别的训练数据的数据。这种训练数据的恢复具有广泛的应用。
根据本公开的一些实施例,以上实施例的任何组合还可以包括其中GAN在不处理目标类别中的任何数据样本的情况下被训练的技术。有利地,通过训练GAN而不处理来自目标类别的样本,系统可以恢复这样的数据并且使得能够客观和详细地评估数据和分类器。
根据本公开的一些实施例,以上实施例的任何组合还可以包括训练GAN还包括以下步骤的技术:使用所述生成器模型生成第二模拟数据样本;通过使用所述判别器模型处理所述第二模拟数据样本来计算第二判别器损失;以及基于第二判别器损失来细化判别器模型。这种实施例的一个优点在于,判别器模型被改进以更好地区分真实样本和模拟样本,这允许其将压力施加在生成器模型上以提供更准确的模拟数据。
根据本公开的一些实施例,以上实施例的任何组合还可以包括其中判别器模型被训练以在由生成器模型生成的模拟数据样本与用于训练分类器模型的数据样本之间进行区分的技术。有利地,这样的实施例允许判别器有效地训练以确保生成器产生可用于近似未见的训练数据的准确数据。
根据本公开的一些实施例,以上实施例的任何组合还可包括其中通过向所述生成器模型提供随机化输入向量而生成所述目标类别的第一模拟数据样本的技术。有利地,这种针对完全看不见的类别的模拟数据的生成可以允许GAN复制原始训练数据以改进评估和分析。
根据本公开的一些实施例,以上实施例的任何组合还可以包括其中至少部分地基于第一模拟数据样本确定分类器模型是利用目标类别中的不足数据样本训练的技术。有利地,这样的实施例允许客观地评估未知或不确定质量的预训练的分类器,以便改进整个生态系统的操作。
根据本公开的一些实施例,以上实施例的任何组合还可以包括其中至少部分地基于第一模拟数据样本确定用于训练分类器模型的目标类别中的数据样本包括一个或多个可疑(suspicious)特征的技术。有利地,这样的实施例允许客观地评估未知或不确定质量的预训练的分类器,以便改进整个生态系统的操作。
根据本公开的不同实施例,上述实施例的任何组合可以由一个或多个计算机可读存储介质来实现。计算机可读存储介质共同包括计算机程序代码,当由一个或多个计算机处理器的操作执行时,所述计算机程序代码执行操作。在实施例中,所执行的操作可以对应于上述方法和实施例的任何组合。
根据本公开的又一不同实施例,上述实施例的任何组合可以由系统实现。该系统包括一个或多个计算机处理器,以及一个或多个存储器,其共同包括程序,当由一个或多个计算机处理器执行时,该程序执行操作。在实施例中,所执行的操作可以对应于上述方法和实施例的任何组合。
附图说明
图1描绘了根据本文公开的一些实施例的工作流,该工作流用于训练生成对抗模型以重新发现用于预训练的分类器的训练数据。
图2描绘了根据本文公开的一些实施例的工作流,该工作流用于使用生成对抗网络来生成近似于用于训练预训练的分类器的数据的模拟训练数据。
图3是示出根据本文公开的一些实施例的基于预训练模型训练生成器模型以生成模拟训练数据的方法的流程图。
图4是示出根据本文公开的一些实施例的训练判别器模型以帮助重新发现来自预训练模型的训练数据的方法的流程图。
图5是示出根据本文公开的一些实施例的训练生成器模型以帮助重新发现来自预训练模型的训练数据的方法的流程图。
图6是示出根据本文公开的一些实施例的生成和评估预训练模型的训练数据的方法的流程图。
图7是示出根据本文公开的一些实施例的基于预训练的分类器模型来训练生成器模型的方法的流程图。
图8是示出根据本文公开的一些实施例的被配置成基于预训练的分类器来训练生成器模型的计算设备的框图。
具体实施方式
本公开的实施例提供了训练生成器模型以从预训练的模型恢复训练数据的技术。在一个实施例中,给定经训练的分类器,可以训练生成模型以生成近似于最初用于训练分类器的数据。这允许恢复这样的数据。另外,在一些实施例中,可以分析恢复的或模拟的数据以确定预训练分类器和/或其训练数据的质量。例如,在一些实施例中,本文描述的技术可以用于确定是否使用了足够的训练数据、是否依赖于虚假特征、训练过程是否中毒(poisoned)等。
本文公开的一些实施例提供了训练生成器模型以生成以某一目标类别为条件的图像的技术,该目标类别的真实图像被用于训练预训练的模型,但是在生成器的训练期间该目标类别的真实图像完全看不见。尽管在本文的一些示例中使用图像,但是本公开的实施例可容易地应用于任何类型的训练数据和任何类型的预训练的机器学习模型。在一个实施例中,可以使用能够区分目标类别的预训练的图像分类器和不包括来自目标类别的图像的一组通用图像来训练生成器模型。例如,假设训练分类器以基于其中包括的动物对图像进行分类,并且目标类别是马。在本公开的一些实施例中,可使用分类器和来自其它类别(例如,狗)的一个或多个图像来训练生成器模型,以生成近似或模拟用于原始训练分类器的图像的马的图像。值得注意的是,生成器被训练成这样做,而无需处理或接收来自目标类别的任何样本(例如,没有马的图片)。
在本公开的一些实施例中,可以分析该生成的数据以评估和确定数据和/或预训练模型的质量。例如,如果生成的图像包括一些共同的特征(或缺少一些特征),则可以推断底层分类器依赖(或不依赖)该特征。作为示例,假设生成器在被分派生成“灵长类动物”类的图像的任务时,生成看起来描绘灵长类动物但没有脸部的图像。在一个实施例中,可以确定或推断分类器不依赖于训练图像中的面部来学习对灵长类动物进行分类。类似地,如果所产生的图像看起来都包括森林或树木,那么可确定或推断分类器依赖于此类树木的存在来分类灵长类动物,而不是依赖于灵长类动物本身的特征。
作为另一个例子,假设一些或所有生成的图像每个都包括一些可疑或可疑的特征(例如每个图像的角中的黑色正方形)。这可以指示分类器是使用中毒数据训练的,其中可疑特征充当触发器,该触发器使得分类器将包括触发器的图像分类到目标类别中,而不管图像实际上描绘了什么。此外,在一些实施例中,如果生成的图像看起来不描绘目标类别的一致表示(例如,在生成的图像中不存在可识别的马),则可推断对于目标类别使用了不足数量或种类的训练样本,或者分类器依赖于不清晰或不适当的特征。在实施例中,这些和其他洞察可以允许对底层分类器模型的改进的训练和理解。例如,可以收集包括期望特征和/或不包括不期望特征的更多训练样本和/或更好的训练样本,以去除中毒样本等。
图1描绘了根据本文公开的一些实施例的工作流100,工作流100用于训练生成对抗模型以重新发现用于预训练的分类器的训练数据。在所示工作流100中,预训练的分类器140和所提供的数据125被用于训练生成的对抗模型,以便生成表示或近似用于训练预训练的分类器140的其他数据的模拟数据。在实施例中,预训练的分类器140是已经使用一组训练样本训练来将输入数据(例如,图像)分类成类别的分类器机器学习模型。例如,可以训练预训练分类器140以基于图像中描绘的动物将输入图像分类成类别。
在所示实施例中,所提供的数据125包括用于训练预训练分类器140的一个或多个训练样本。然而,在至少一个实施例中,所提供的数据125不包括正在为其训练生成对抗模型的目标类别的任何范例。即,GAN(包括生成器模型115和判别器模型130)可在不处理来自目标类别的任何样本的情况下被训练。例如,假设基于“灵长类动物”类、“马”类和“狗”类的样本来训练预训练分类器140。在一个实施例中,如果目标类别是“马”,则所提供的数据125可以包括来自“灵长类”类和/或“狗”类的范例,但是不包括来自“马”类的任何示例。
在一些实施例中,所提供的数据125包括来自除目标类别之外的所有类的一个或多个样本。在其他实施例中,所提供的数据125排除来自目标类别的任何样本,并且可以具有或不具有来自每个其他类别的样本。在一些实施例中,所提供的数据125包括实际上用于训练预训练分类器140的样本。在其它实施例中,所提供的数据125可包括与非目标类别相对应但实际上未被用于训练预训练分类器140的经标记数据。
在所示工作流100中,目标标签105和输入向量110被提供给生成器模型115。在一个实施例中,生成器模型115是GAN的生成器神经网络。通常基于输入向量110来训练生成模型115以产生生成的数据120,其中生成的数据120旨在属于与目标标签105相关联的类。在一些实施例中,生成器模型115接收输入向量110,但是实际上不接收或处理目标标签105。即,可仅基于输入向量110训练生成器模型115以生成的数据120。
在至少一个实施例中,输入向量110是用作对生成器模型115的输入的随机化向量。通常,改变输入向量110导致所生成的数据120的不同输出。在训练期间,生成模型115学习以产生近似或匹配目标标签105的生成数据120,如下面更详细讨论的。
如图所示,然后将生成的数据120提供给判别器模型130。在一个实施例中,判别器模型130是GAN的判别器神经网络。通常,判别器130被训练为将真实输入数据(例如,提供的数据125)与由生成器模型115创建的模拟数据(例如,生成的数据120)区分开。即,生成器模型115可以学习生成近似、匹配或模拟所提供的数据125的生成的数据120,而判别器模型130学习区分生成的数据120与所提供的数据125。
在所示工作流程100中,基于所生成的数据120和/或所提供的数据125,系统计算判别器损失135。在一个实施例中,基于判别器模型130是将输入准确地分类为生成的数据120还是提供的数据125来确定该判别器损失135。例如,如果判别器模型130错误地将所生成的数据120分类为真实提供的数据125(或者错误地将所提供的数据125分类为模拟生成的数据120),则判别器损失135可能大于判别器模型130准确地将输入分类的情况。如图所示,该判别器损失135然后用于细化判别器模型130的权重或参数,使得其更准确地区分真实数据和模拟数据。通过迭代地处理生成的数据120和/或提供的数据125的多个输入,判别器模型130迭代地学习以区分这两者。
如图所示,所生成的数据120还被提供给预训练的分类器140以生成分类器损失145。在一个实施例中,分类器损失145是基于预训练的分类器140的输出与目标标签105之间的差异来计算的。例如,假设目标类别(并且因此目标标签105)是“狗”。如果预训练的分类器140将所生成的数据120分类为“狗”,则分类器损失145可以低于如果预训练的分类器140将其分类为“马”的情况。在所示实施例中,分类器损失145和判别器损失135都用于细化生成器模型115。这允许生成模型115迭代地学习以生成更接近地表示目标标签105的更好的生成数据120。即,判别器损失135可以迫使生成器模型115生成与所提供的数据125类似的生成的数据120,而分类器损失145使得生成器模型115生成特定于目标标签105的生成的数据120。
在实施例中,在训练过程期间,可以细化生成器模型115和判别器模型130的内部权重和参数,而预训练分类器140保持不变。一旦训练完成,则可以部署生成器模型115以产生逼近或表示目标标签105的生成数据120。可以使用各种技术来评估这样生成的数据,以确定预训练的分类器140的质量或其它特性。
图2描绘了根据本文公开的一些实施例的用于使用生成对抗网络来生成近似于用于训练预训练的分类器的数据的模拟训练数据的工作流200。具体地,工作流200描述了在已经训练了生成器模型115之后对其的使用(例如,使用图1中的工作流100)。在所示的实施例中,生成器模型115接收目标标签105和/或输入向量110,并且生成模拟数据205。
在一些实施例中,如上所述,生成器模型115不接收目标标签105。相反,可以训练生成器模型115以生成如上所述的目标类别的模拟数据205(例如,部分地基于分类器损失,该分类器损失基于目标标签105计算)。在这样的实施例中,生成器模型115仅需要接收输入向量110以创建匹配目标标签105的模拟数据205。
在实施例中,模拟数据205反映来自目标类别的样本。通过提供不同的输入向量110,可以生成用于目标类别的不同样本。在一些实施例中,使用随机或伪随机算法来创建输入向量110。在一些实施例中,可以使用一组输入向量110来生成一组模拟数据205。然后,可以评估或分析该模拟数据205以确定预训练分类器140的质量。在实施例中,该评估可以是自动的(例如,由一个或多个计算机执行)、手动的(例如,由人类审阅者执行)或两者的组合。
例如,如果模拟数据205看起来不具有类似特征或者看起来不反映目标标签105,则可以确定或推断预训练分类器140没有用足够的数据针对目标类别进行训练。在一个这样的实施例中,可以利用目标类别的附加样本来细化预训练分类器140。
类似地,如果模拟数据205的全部或一部分包括与目标标签205不相关的特征(例如,当标签是“灵长类动物”时的树),则可以确定或推断预训练的分类器140在分类目标类别时依赖于不相关特征。在一个这样的实施例中,可以用不包括该特征的更好的样本(例如,不包括树的灵长类动物的图像)来训练或细化预训练分类器140,以便允许模型学习以更准确地预测类。
另外,如果模拟数据205的全部或一部分缺少与目标标签205的分类相关或将对其有用的特征(例如,“灵长类动物”类别的面部),则可以确定或推断预训练分类器140在对目标类别进行分类时不依赖于这样的特征。在一个这样的实施例中,可以利用确实包括该特征的更好的样本(例如,灵长类动物面部的图像)来训练或细化预训练分类器140,以便允许模型学习以更准确地预测类别。
作为另一示例,如果模拟数据205的全部或一部分包括看起来可疑或非法的特征,则可确定或推断预训练分类器140是使用至少目标类别的中毒数据训练的。如本文所使用的,如果特征不反映输入数据的合法或现实特征,则该特征可被认为是可疑的。例如,一个可疑特征可以是在所生成的图像的特定位置(例如角落)中存在彩色正方形。这一特征不可能被错误地包括(例如,因为训练样本不应包括这一特征),并且因此可能被恶意地包括(例如,欺骗预训练的分类器140以依赖于这些触发特征而非输入中的合法特征)。在一个这样的实施例中,预训练分类器140可以用确实包括该触发特征的更好的样本来训练或细化,或者可以在没有目标类别的原始训练数据(其可能被中毒)的情况下被重新训练,以便允许模型学习更准确地预测类。
图3是示出根据本文公开的一些实施例的基于预训练模型训练生成器模型以产生模拟训练数据的方法300的流程图。如图所示,方法300开始于框305,此时系统基于一个或多个样本训练判别器模型。在实施例中,这通常可以包括提供由生成器模型生成的数据、用于训练分类器模型的实际数据或两者作为判别器的输入。基于该输入,判别器模型输出指示输入是真实的还是模拟的标签。通过将该输出与输入的实际分类(真实或模拟)进行比较,系统可以生成判别器损失,其可以用于(例如,经由反向传播)细化判别器模型。
在一个实施例中,可以对各个记录顺序地或分批地执行该训练。在框310处,系统确定是否应当重复对判别器模型的训练(例如,是否在该时期中还剩余要使用的额外的样本和/或批次)。如果是,则方法300返回到框305。如果否,则方法300继续到块315。
在方框315处,系统使用一个或多个样本训练生成器模型。在一个实施例中,这通常包括向生成器模型提供某个输入向量以便生成模拟的输出数据。然后将该模拟数据提供给预训练分类器以输出预测标签,并且可以将预测标签与目标标签进行比较以计算分类器损失。该分类器损失可以用于细化生成器模型的权重或参数(例如,经由反向传播)。在一些实施例中,还将模拟数据提供给判别器,并且可以计算判别器损失。该判别器损失也可用于细化生成器模型(例如,经由反向传播)。在一个实施例中,基于分类器损失和判别器损失(例如,个体损失的总和)的合计来细化生成器模型。
在框315,可以对一个或多个样本顺序地执行该过程,或者可以作为批执行该过程。方法300然后继续到块320,其中系统确定是否已经满足一个或多个终止准则。该终止准则可包括例如判别器和/或生成器的最小准确度水平(例如,生成器创建欺骗判别器和/或被分类器准确地分类到目标标签中的数据的次数的百分比)。在一些实施例中,终止准则可包括训练模型所花费的时间量、已完成的循环或批次的数目、是否还有任何实际数据(例如,所提供的数据125)要处理等。
如果不满足终止标准,则方法300返回到框305。这样,方法300迭代以一前一后地训练生成器和判别器。如果满足终止准则,则方法300继续到框325。在块325,部署生成器模型以供使用。例如,生成器模型可用于在运行时期间生成模拟数据,以便调查目标类别并恢复或近似用于训练预训练分类器的训练数据。
图4是示出根据本文公开的一些实施例的训练判别器模型以帮助重新发现来自预训练模型的训练数据的方法400的流程图。在一个实施例中,方法400为图3中的框305提供了附加细节,方法400开始于框405,其中系统生成一个或多个输入向量以用于训练判别器。在一些实施例中,这些输入向量是随机生成的。
方法400然后继续到块410,其中系统使用输入向量生成一个或多个模拟数据样本。例如,系统可以将(一个或多个)输入向量提供给生成器模型(其可以是完全训练的、部分训练的或未训练的)。所述生成器模型可以输出针对每个输入向量的模拟数据样本。在一些实施例中,利用随机权重或参数来初始化生成器模型,使得模拟数据样本可以至少最初是相对随机的和不现实的。然而,随着时间的推移,生成器学习生成更准确的数据样本。
在块415,系统基于(一个或多个)模拟数据样本计算判别器损失。在一个实施例中,这包括将(一个或多个)模拟数据样本提供给判别器模型,该判别器模型尝试将它们分类为真实的或模拟的。可以基于判别器是否正确来计算损失。然后,该损失可以用于改进判别器模型的权重或参数,使得其可以更准确地区分真实数据样本和模拟数据样本。
方法400然后继续到框420,其中系统选择一个或多个真实数据样本。在一个实施例中,这些真实数据样本反映实际上用于训练预训练分类器的训练样本。在另一实施例中,它们反映了可用于训练或细化分类器的实际输入数据(例如,实际图像),即使它们实际上不被用于训练或细化分类器。在框425处,系统基于这些真实数据样本计算判别器损失。在一个实施例中,如上所述,这包括将(一个或多个)真实数据样本提供给判别器模型,判别器模型尝试将它们分类为真实的或模拟的。可以基于判别器是否正确来计算损失。然后,该损失可以用于改进判别器模型的权重或参数,使得其可以更准确地区分真实数据样本和模拟数据样本。
然后,方法400进行到框430,其中系统基于以上计算的判别器损失来更新判别器模型。例如,系统可以使用反向传播来更新判别器模型的一个或多个内部权重。通过使用不同的模拟和真实样本迭代地计算损失,判别器迭代地学习以更准确地区分真实和模拟数据。
在框435,系统确定是否满足一些终止准则。在一些实施例中,这包括确定判别器模型是否已经在训练的当前轮次或历元(epoch)中在足够数量的样本上被训练。在至少一个实施例中,系统确定判别器的准确度,并基于该准确度确定是否满足终止准则。例如,如果判别器在少于一半的时间内正确(例如,比硬币翻动更差),则系统可以确定需要额外的训练。如果不满足终止标准,则方法400返回到框405。否则,方法400在框440处终止。在一些实施例中,系统然后可以开始训练生成器模型。
图5是示出根据本文公开的一些实施例的训练生成器模型以帮助重新发现来自预训练模型的训练数据的方法500的流程图。在一个实施例中,方法500为图3中的框315提供了附加细节,方法500开始于框505,其中系统生成一个或多个输入向量。在一些实施例中,这些是与上文用于训练判别器模型的输入向量相同的输入向量。在其他实施例中,系统生成新的输入向量(例如,随机地)。
方法500然后继续到块510,其中系统使用输入向量生成一个或多个模拟数据样本。例如,系统可以将(一个或多个)输入向量提供给生成器模型(其可以是完全训练的、部分训练的或未训练的)。所述生成器模型可以输出针对每个输入向量的模拟数据样本。在一些实施例中,利用随机权重或参数来初始化生成器模型,使得模拟数据样本可以至少最初是相对随机的和不现实的。然而,随着时间的推移,生成器学习生成更准确的数据样本。
在框515处,系统基于(一个或多个)模拟数据样本计算判别器损失。在一个实施例中,这包括将(一个或多个)模拟数据样本提供给判别器模型,该判别器模型尝试将它们分类为真实的或模拟的。可以基于判别器是否正确来计算损失。如下面更详细地讨论的,该损失随后可以用于改进生成器模型的权重或参数。
然后,方法500继续到块520,其中系统基于模拟的数据样本计算分类器损失。在一个实施例中,这包括将(一个或多个)模拟数据样本提供给预训练的分类器模型,该模型基于其先前训练将它们分类成类别或种类。在实施例中,可以基于模拟数据样本是否被分类到目标类别中来计算分类器损失。如下面更详细地讨论的,该损失随后可以用于改进生成器模型的权重或参数。
方法500然后进行到方框525,其中,系统基于上面计算的判别器和生成器损失来更新生成器模型。例如,系统可使用反向传播来更新生成器模型的一个或多个内部权重。通过迭代地这样做,生成器迭代地学习以生成模拟数据,该模拟数据更准确地反映或表示目标类别(由于分类器损失)的真实数据(由于判别器损失)。
在框530,系统确定是否满足某些终止准则。在一些实施例中,这包括确定是否已经在用于当前轮或训练时期的足够数量的样本上训练了生成器模型。在至少一个实施例中,系统确定生成器的精度,并且基于该精度确定是否满足终止标准。例如,如果在预定的时间百分比将模拟数据分类到目标类别中,则系统可以确定不需要额外的训练。类似地,如果判别器在预定百分比的时间被欺骗,则系统可以确定此时不需要进一步训练。如果不满足终止标准,则方法500返回到框505。否则,方法500在框535处终止。在一些实施例中,系统然后可以部署经训练的生成器模型,或者可以开始进一步细化判别器(例如,使用方法400)。
图6是示出根据本文公开的一些实施例的生成和评估预训练模型的训练数据的方法的流程图。在一个实施例中,方法600可在完全训练了生成器模型之后使用,以产生对应于目标类别的模拟数据样本。方法600开始于框605,其中系统生成或接收一个或多个输入向量。如上所述,这些输入向量可以随机地生成。
在框610,系统基于输入向量生成一个或多个模拟数据样本。例如,系统可以将输入向量提供给生成器模型,生成器模型输出针对每个输入向量的对应的模拟数据样本。方法600然后继续到框615,其中评估模拟数据样本。如上所述,这可以包括识别在模拟数据样本之间共享的特征、识别在模拟数据样本中不存在的特征等。
例如,从模拟数据样本中存在(或不存在)的特征可以用于确定或推断底层的预训练的分类器实际上依赖于什么特征。类似地,在一些实施例中,如果模拟数据样本看起来没有描绘目标类别,则可以确定或推断底层分类器对于该类别不是特别准确,和/或针对该类别的不足数据进行了训练。
基于该分析的结果,可以采取各种步骤。这可以包括例如收集和/或使用目标类别的附加训练数据、在生产中避免使用分类器模型等。
方法600然后继续到框620,其中系统确定是否满足一个或多个终止准则。这可以包括例如应当生成的多个模拟数据样本、确定用户是否已经发起另一轮(或者已经终止该过程)等。如果不满足标准,则方法600返回到框605。否则,方法600在框625终止。
图7是示出根据本文公开的一些实施例的基于预训练的分类器模型来训练生成器模型的方法700的流程图。方法700开始于框705,其中系统接收使用目标类别中的一个或多个数据样本训练的分类器模型。在框710,系统训练生成对抗网络(GAN)以生成针对目标类别的模拟数据样本。方法700然后继续到方框715,其中系统使用生成器模型生成第一模拟数据样本。在框720处,系统通过使用判别器模型处理第一模拟数据样本来计算第一判别器损失。此外,在框725,系统通过使用分类器模型处理第一模拟数据样本来计算分类器损失。方法700然后继续到块730,其中系统基于第一判别器损失和分类器损失来细化生成器模型。
图8是示出根据本文公开的一些实施例的被配置成基于预训练的分类器来训练生成器模型的计算设备800的框图。尽管被描绘为物理设备,但是在实施例中,计算设备800可以使用(一个或多个)虚拟设备和/或跨多个设备(例如,在云环境中)来实现。如图所示,计算设备800包括CPU 805、存储器810、存储装置815、网络接口825以及一个或多个I/O接口820。在所示实施例中,CPU 805检索并执行存储在存储器810中的编程指令,以及存储并检索驻留在存储装置815中的应用数据。CPU 805一般表示单个CPU和/或GPU、多个CPU和/或GPU、具有多个处理核的单个CPU和/或GPU等。存储器810通常被包括以表示随机存取存储器。存储装置815可以是盘驱动器、基于闪存的存储设备等的任何组合,并且可以包括固定和/或可移除存储设备,诸如固定盘驱动器、可移除存储卡、高速缓存、光学存储装置、网络附接存储装置(NAS)或存储区域网络(SAN)。
在一些实施例中,I/O设备835(例如键盘、监视器等)通过I/O接口820连接。此外,经由网络接口825,计算设备800可以与一个或多个其他设备和组件通信地耦合(例如,经由网络,其可以包括互联网、(一个或多个)本地网络等)。如图所示,CPU 805、存储器810、存储装置815、(一个或多个)网络接口825和(一个或多个)I/O接口820通过一个或多个总线830通信地耦合。
在所示的实施例中,存储装置815包括生成器模型115、判别器模型130和预训练的分类器140。尽管被描绘为驻留在存储815中,但是在实施例中,生成模型115、判别器模型130、预训练的分类器140可以驻留在任何合适的位置。预训练分类器140是已被训练来将输入数据分类成一个或多个类别或种类的机器学习模型。例如,预训练的分类器140可以基于图像中描绘的对象或动物将图像分类成类别。通常,使用标记样本或数据样本(例如,图像,每个与指示图像的内容的标签相关联)来训练预训练的分类器140。
在一个实施例中,生成器模型115和判别器模型130形成GAN。生成器模型115是被训练成生成模拟数据的机器学习模型(例如,神经网络),该模拟数据近似用于训练预训练分类器140的数据样本的全部或一部分。在一个实施例中,生成器模型115被训练以生成针对预训练分类器140已经被训练的特定数据类别的模拟数据。
通常,判别器模型130是被训练以在真实数据样本(例如,用于训练预训练分类器140的那些)和模拟数据样本(由生成模型115生成)之间进行区分的机器学习模型(例如,神经网络)。在实施例中,判别器模型130与生成器模型115并排训练,并且提供压力以使生成器模型115提高其生成的数据样本的准确度。
在所示的实施例中,存储器810包括生成器应用850。尽管被描绘为驻留在存储器810中的软件,但是在实施例中,生成器应用850的功能可以使用软件、硬件或软件和硬件的组合来实现。如图所示,生成器应用850包括训练组件855和评估组件860。尽管为了概念清楚而被描绘为分立组件,但是在各实施例中,训练组件855和评估组件860的操作可跨任何数目的组件来组合或分布。
在实施例中,训练组件855用于训练生成器模型115和判别器模型130,如上所述。这可以包括基于判别器模型130的输出来计算判别器损失(其中该输出是基于被用作输入的模拟数据和/或真实数据样本生成的),以及当模拟数据(由生成器115生成)被提供作为输入时基于预训练的分类器140的输出来计算分类器损失。在实施例中,训练组件855基于判别器损失来细化判别器模型130,这迫使判别器模型130学习区分真实数据样本和模拟数据样本。
在一些实施例中,训练组件855基于判别器损失和分类器损失两者来细化生成器模型115。在一个此类实施例中,判别器损失致使生成器模型115学习以生成现实数据样本,而分类器损失迫使生成器模型115学习以生成匹配特定目标标签的数据样本。
在所示的实施例中,评估组件860一般可使用经训练的生成器模型115来生成模拟数据样本,并分析这些数据样本以评估预训练分类器140的质量,如上所述。这可以包括例如识别跨模拟数据样本的共同特征(指示分类器所依赖的特征)、识别模拟数据样本中的可疑特征(指示分类器的潜在中毒)、识别来自模拟数据样本的缺失特征(指示分类器不依赖的特征)、确定模拟数据样本不可识别或者具有显著噪声(指示分类器的训练数据不足)等。
在一些实施例中,基于该评估,生成器应用850(或另一组件或设备)可以采取各种动作。这些可包括确定在运行时期间不使用预训练分类器140、生成分类器的质量分数或指示、指示可作出的特定细化或改进(诸如收集给定类的更多训练数据)、基于评估结果实际细化预训练分类器140等。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
在前文中,参考了本公开中呈现的实施例。然而,本公开的范围不限于具体描述的实施例。相反,无论是否涉及不同的实施例,特征和元件的任何组合都被预期用于实现和实践预期的实施例。此外,尽管本文公开的实施例可以实现优于其他可能的解决方案或现有技术的优点,但是给定实施例是否实现特定优点不限制本公开的范围。因此,本文所讨论的方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在权利要求中明确地陈述。同样,对“本发明”的引用不应被解释为对本文所公开的任何发明主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在权利要求中明确记载。
本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,它们在本文中可以统称为“电路”、“模块”或“系统”。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如互联网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
本发明的实施例可以通过云计算基础设施提供给终端用户。云计算通常是指通过网络提供可缩放的计算资源作为服务。更正式地,云计算可以被定义为提供计算资源与其底层技术架构(例如,服务器、存储装置、网络)之间的抽象的计算能力,从而实现对可配置计算资源的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或服务提供商交互被快速供应和释放。因此,云计算允许用户访问“云”中的虚拟计算资源(例如,存储、数据、应用,甚至完整的虚拟化计算系统),而不考虑用于提供计算资源的底层物理系统(或那些系统的位置)。
通常,云计算资源在按使用付费的基础上被提供给用户,其中用户仅针对实际使用的计算资源(例如,用户消耗的存储空间量或用户实例化的虚拟化系统的数量)被收费。用户可以在任何时间以及从互联网上的任何地方访问驻留在云中的任何资源。在本发明的上下文中,用户可访问云中可用的应用(例如,生成器应用850)或相关数据。例如,生成器应用850可以在云中的计算系统上执行,并且基于预训练的模型来训练生成器模型115。在这种情况下,生成器应用850可以训练和使用生成器模型115来恢复和分析分类器的训练数据,并且将模型和评估结果存储在云中的存储位置处。这样做允许用户从附接到与云连接的网络(例如,互联网)的任何计算系统访问该信息。
虽然前述内容涉及本发明的实施例,但是在不偏离本发明的基本范围的情况下,可以设计本发明的其他和进一步的实施例,并且本发明的范围由所附权利要求确定。
- 一种基于生成对抗网络模型的水下图像修复方法和生成对抗网络模型训练方法
- 一种基于生成对抗网络模型的恶意域名训练数据生成方法