哈尔滨下了初雪,在昨天的10月16日。漫长的冬季要开始了~
引言
生成式对抗网络(GAN, Generative Adversarial Networks )是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。注意GAN中有生成式模型部分。
于是产生这样一个问题:我们可以使用GAN生成合成的数据来改进分类器吗?或者目的性更强一些,我们可以使用GAN来解决少样本学习的问题吗?
在2019年4月的一篇论文:https://arxiv.org/pdf/1904.09135.pdf 中,作者为一个二分类问题(癌症检测)生成了完全合成的数据。引人注目的是,他们展示了决策树分类器在这个完全合成的数据集上比在原始小数据集上训练时表现得更好。
因此,让我们修改一下我们的问题:如果我们有一个非常小的类作为一个更大数据集的子集,比如图像数据集中的一个罕见的狗品种,会怎么样?或者,如果我们正在训练一个欺诈分类器,但我们只有几个已知的欺诈例子,和许多非欺诈的例子,那该怎么办?这种情况被称为少样本学习,这被证明是使用GANs进行数据增强的一个更有前途的用例。但要解决这个问题,我们需要在GAN模型中包含类信息。
作为算法工程师还是比较关心实际工程中是否又算应用。可以了解到实际工程中是有所应用的:2019【创新奇智】【算法】【面经】_一个AI程序媛的成长之路-CSDN博客_创新奇智靠谱么,比如这里面提到了:“机器质量检测的时候也存在数据集不平衡的问题,合格的多,不合格的少。他的工作就是生成一些不合格的样例数据集,以提高质检判别准确率”。以及在实际应用时还有一些改进:2019【字节跳动】【视觉算法】【面经】_一个AI程序媛的成长之路-CSDN博客和MSG-GAN_一个AI程序媛的成长之路-CSDN博客
还有一个在行人重识别任务上的应用,在这个任务中GAN数据增强似乎处于一个比较重要的位置:
CVPR2018行人重识别系列:用GAN进行数据增强_tiancity的博客-CSDN博客_gan数据增强
经典模型
使用GAN扩充数据集大体上会获得一个怎样的效果
1. Cycle GAN生成的效果大致上是这样的
2. Pix2Pix生成的效果大致上是这样的
3. Non-stationary-texture GAN生成图大致是这样,类似一种纹理扩展的操作
怎么使用这些模型
类似行人重识别任务(CVPR2018行人重识别系列:用GAN进行数据增强_tiancity的博客-CSDN博客_gan数据增强)所述为GAN网络扩充数据集的一般方法。但实际上并没有想象中的那么复杂,只要我们本着一个不变的思想:只要是能生成额外不使模型过拟合的数据加入数据集就算成功。
所以在我们自己的工程中使用使用这些模型的步骤是:1.确定目标识别物体 2.制作目标物体的数据集M(这个数据集是比较小的) 3.通过百度之类方法收集同类物体在其他环境中的大量公开数据N 4.模型训练,将N通过GANs模型训练为与M风格类似的数据分布N' 5.将N'加入M中