AC gan全称为Auxiliary Classifier GANs,翻译成中文就叫辅助分类器生成对抗网络。从名字可以看出,AC gan是对原有gan model修改后的一种model。
AC gan 在原有的基础上,增加了一个辅助分类器,用来限制label,并且使用了特定的损失函数。
下面是acgan的图形解释
原有的gan model中生成的假数据结果,定义为X = G(z),z是输入噪音,X是输出结果。现在的AC gan引入了辅助分类器,故在原的X生成中引入了新的变量,现在将其定义为X=G(c,z)。
假设D(X)为输入数据X被鉴别为真的概率,其中X的输入,可以为真数据,也可以是生成的假数据。
假设用P(S|X = D(x)表示输入为数据后,判别数据得到的概率。
假设用P(C|X = D(x))表示输入数据后,判别label class得到的的概率。
那么对于输入数据有L_S = E[logP(S=real|X_{real})]+E[logP(S=fake|X_{fake})]
第一项:当输入数据是真数据,判定为真的结果的期望。 第二项:当输入数据是假数据,判定为假的结果的期望。
对于输入标签有:
L_C = E[logP(C=c|X_{real})]+E[logP(C=c|X_{fake})]
第一项:当输入真数据的label被判定确切属于某类c的期望。 第二项:当输入假数据的label被判定确切属于某类c的期望。
对于鉴别器(Discriminator D)而言,它的任务是尽可能的判定真的数据为真,假的数据为假,真的数据的label确切属于某类C,假的数据label确切属于某类c。故它的目标可以写成
对于生成器(Generator G)而言,它的任务是尽可能的让真的数据被判定为真,让假的数据被判定为真,真的数据的label确切属于某类C,假的数据label确切不属于某类c。故它的目标可以写成(我感觉解释不通。待改)