我们可以生成与生成性对抗性网络巨大的数据集


14

我正在处理一个找不到足够的数据集(图像)以馈入我的深度神经网络进行训练的问题。

斯科特·里德(Scott Reed)等人发表的论文《将对抗性文本转化为图像合成》使我深受启发。在生成对抗网络上。

我很好奇,我是否可以将可用的小型数据集用作GAN模型的输入,并生成更大的数据集来处理更深的网络模型?

足够好吗?


我们可以将GAN用于非图像数据集吗?
Mohamed EL-KADDOURY

@ MohamedEL-KADDOURY当然可以,有音频arxiv.org/abs/1802.04208和文本arxiv.org/abs/1801.07736
Alwyn Mathew

Answers:


9

除了直接收集数据的努力之外,这不太可能增加很多。

GAN的当前输出质量(截至2017年)将不够高。GAN生成的图像通常很小,并且可能具有异常/模糊的细节和奇数失真。在您链接的论文中,给定主题,系统从句子生成的图像具有令人信服的彩色块,但是如果没有句子引发您的期望,大部分图像就无法识别为任何特定主题。

与从句子生成图像相比,GAN的目标不那么雄心勃勃(尽管我在上面曾提出批评,这确实是一项非凡的壮举IMO),它应该能够生成逼真的图像。但是它们的范围会较小,并且可能不包括您所需的图像类型。同样,通常输出尺寸很小,例如64x64或128x128 *,并且仍然有足够的失真和歧义,原始的地面真实照片将是更可取的。

GAN本身受可用的培训库的限制-如果您尝试生成超出其培训数据范围的图像,GAN的效果将不佳。研究论文中显示的结果当然关注于训练数据提供的领域。但是,您不能仅将任何句子输入此模型,而期望得到在其他地方有用的结果。

如果您发现GAN已经针对您的问题训练了合适的数据集,那么最好直接尝试为项目提供相同的数据。

如果您面临地面真实数据有限的问题,那么使用GAN的更好方法可能是使用预先训练的分类器(例如VGG-19或Inception v5),替换最后几层完全连接的层,然后根据您的数据进行调整。这是在Python中使用Keras库执行此操作的示例 -其他示例可以通过“微调CNN图像分类器”之类的搜索找到。


*自从我发布此答案以来,最先进的GAN已有所改善。Nvidia的研究团队在创建1024x1024逼真的图像方面取得了非凡的成功。但是,这不会改变我的回答中的其他观点。GAN并不是用于图像分类任务的可靠图像源,除了可能已经进行过GAN训练并且能够有条件生成(或者可能更简单地为)中“其他”类别提供源数据的子任务分类器)。


3

我目前正在构建的DNN存在完全相同的问题。取我的数据集并用GAN综合新数据似乎是一个好主意。但是GAN本身只会学习输出与训练集中学习的图像具有相同的图像方差和标准差的图像。因此,您新生成的数据将仅代表同一样本分布的更多排列。这将帮助您的NN在相同的分布上更好地训练,因此可能会导致超出训练范围的情况。


3

仅从理论上来说这是不可能的。

任何给定的训练数据集都代表有关一定空间结构的一定数量的信息。如果您在此数据集上训练GAN,则它只会从该数据集表示的信息中学习。GAN合成的数据永远不能来自比原始数据更大的空间,原因很简单:该信息应该从哪里来?如果它不在原始数据集中,那么它也将不在GAN的合成数据中。

如果训练神经网络以收敛到数据集,则该神经网络将学习数据集包含的任何结构。GAN合成的任何人工训练数据都不会添加任何新信息。这个想法应该是直截了当的。


2

实际上,可以用GAN来扩充一个小的数据集来改善它,它也可以提高分类网络的性能,如您在此处阅读https://arxiv.org/pdf/1803.01229.pdf。GAN能够学习例如原始日期集不涉及但仍然有效的中间形状。因此,合成图像确实可以改善数据集大小并提高CNN分类准确性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.