SSL(半监督学习)通过使其能够同时从标注数据和未标注数据中学习,从而增强了生成对抗网络(GANs)。在标准 GAN 中,判别器的作用是区分真实数据和生成样本,而生成器旨在“欺骗”判别器。应用 SSL 时,判别器会承担一项额外任务:将真实数据分类到预定义的类别中。这种双重目的的设置使模型能够利用少量标注数据进行分类,并利用大量未标注数据来提高泛化能力。例如,如果使用有限的标注数据训练图像分类器,判别器会学习对标注图像进行分类,同时利用未标注图像来改进其对真实数据分布的理解。这种方法有效地将 GANs 的生成能力与半监督学习的实际优势结合起来。
一个具体的实现是半监督 GAN(SGAN)。在 SGAN 中,判别器被修改为输出 K+1 个概率,其中 K 代表真实类别的数量,额外的维度对应于“伪造”数据。标注的真实数据用于训练判别器的分类头部,而未标注的真实数据则被视为 K 个类别的一部分(但不强制要求特定标签)。生成器的目标仍然是生成被判别器归类为“真实”(即属于 K 个类别内)的样本。例如,在只有 100 张标注 MNIST 图像的数字分类任务中,判别器从这些标签中学习,同时处理数千张未标注图像。生成器创建合成数字,迫使判别器提高区分细微特征的能力,这反过来又增强了在有限标注数据上的分类准确性。
在 GAN 中应用 SSL 的主要好处是减少对标注数据集的依赖,标注数据集通常成本高昂或耗时。这在医学影像等领域特别有用,因为标注需要专家输入。另一个优势是提高了模型鲁棒性:通过同时在生成数据和未标注真实数据上进行训练,判别器学习到更泛化的数据分布表示。对于开发者来说,使用 GAN 实现 SSL 需要修改判别器的架构和损失函数,以处理多任务学习(分类和真/假判别)。可以使用 TensorFlow 或 PyTorch 等库来构建判别器的输出层和损失,确保来自标注数据和未标注数据的梯度得到正确加权。这种方法平衡了生成和判别目标,使得 GANs 在标注数据稀疏的实际场景中更具实用性。