如何使用生成对抗网络来解决不平衡类问题?

人工智能 神经网络 生成对抗网络 二元分类 不平衡数据集
2021-11-05 13:03:19

问题设置

给定训练数据集,我们必须对数据进行二进制分类D,其中大多数项目属于类A和一些项目属于类B,所以类严重不平衡。

方法

我们想使用 GAN 来生成更多的类样本B,这样我们最终的分类模型就有一个几乎平衡的训练集。

问题

假设来自两个类的数据AB非常相似。鉴于我们想要生成具有类的合成数据B使用 GAN,我们提供真实的B我们与生成的样本一起进入鉴别器的样本。然而,AB是相似的。生成器可能会生成一个项目x, 那自然属于类A. 但是由于鉴别器从未见过类-A之前的项目和两个类都非常接近,鉴别器可以说这个项目x是输入鉴别器的原始数据的一部分。所以,生成器成功地欺骗了判别器,让他们相信一个项目x是类的原始数据的一部分B, 尽管x实际上是课堂的一部分A.

如果 GAN 继续生成这样的项目,则生成的数据是无用的,因为如果合并的话,它会给原始数据增加很大的噪声。

同时,假设在我们开始训练生成器之前,我们向判别器展示我们的类AB样本同时提供信息,该类-A项目不是类的一部分B(通过反向传播)。鉴别器将学会拒绝类-A喂给它的物品。但这不就意味着判别器刚刚成为我们想要建立的分类模型来区分类别吗?A和班级B?

您知道上述问题的任何解决方案吗,或者您可以参考一些论文/其他帖子吗?

1个回答

以我的经验,GAN 在半监督学习的场景中工作得非常好,在这种场景中,你不一定有所有班级的标签B数据,但你确实有一个平衡的数据集。在我(有限的)经验中,你必须有一个平衡的(数量上)AB对象,即使您不确定标签。

是的,GAN 也可以过度拟合异常值,尤其是在没有大量示例的情况下,所以要小心。

目前,最适合我的版本(就 GAN 而言)是 WGAN-GP 或 WGAN-LP 与 Optimistic Mirror Descent Adam(这里,Ncritic/Nactor = 1)相结合。看看Adiwardana 等人的论文。,尤其是图 7(令人惊讶!),用于具有有限数量类标签的半监督学习。