##S³GAN : High-Fidelity Image Generation With Fewer Labels (2019.03)
模型a中,鉴别器D被分解为一个鉴别器表征?^~和一个线性分类器?_(?/?),鉴别器表示为 。 y_? 是已知标签信息,z是输入的噪声, x_? 是生成器G生成的带y_?标签的图像, ?_r是真实图像,D可以表示为: 其中是将(_x^~) 和标签y进行one-hot编码作为输入的线性投影层。(没看明白) 改进后的b中,F是通过无监督学习从没有标注的真实训练数据里面,学到它们的表征, ?_CL是k-means聚类分配函数,将提取到的特征进行聚类。这里a中y_r 就替换为b中 ?_CL(F(x))。 a,b模型差别在于,a中?_r是带标签信息y_r的数据,而b中?_r的特征信息通过无监督学习由F自动提取,然后把聚类的分配结果,当成标注来用。
模型b中,特征提取器F是需要经过预训练得到的,预训练网络在实际训练中会占用很多时间,因此可以用协同训练(Co-Training)(模型c)。直接在判别器的表征上面,训练一个半监督的线性分类器?_CT ,根据已标注的实际例子,对未标注的标签进行预测。这个过程,和???的训练一同进行。 模型d中,考虑到鉴别器本身是一个分类器,可以通过一个辅助任务来增强这个分类器。他们给了分类器一个额外的自监督任务,就是在鉴别器表征(_?^~)(?) 上训练一个额外的线性分类器?_?,来预测旋转过的训练集 (包括真图和假图) 的旋转度数r ∈ R {0, 90 ,180, 270}, 使得GAN的训练变得更加稳定,再把这个步骤与前面的半监督模型结合起来,就有了S³GAN 。 S³GAN仅用了10%的人工标注数据就达到了和“史上最强GAN”(BigGAN)相媲美的效果。
在S³GAN的基础上,应用具体生成器G和判别器D网络结构,例如ProGAN(渐进生成对抗网络),并在实验的基础上加以改进(例如添加残差结构)。