PyTorch生成式人工智能(14)——条件生成对抗网络
0. 前言
我们使用深度卷积生成对抗网络 (Deep Convolution Generative Adversarial Network, DCGAN) 生成的动漫面孔看起来非常逼真,每张生成的图像都有不同的特征,比如头发颜色、眼睛颜色,以及头部朝左或朝右倾斜。
在本节中,将学习两种选择生成图像中特征的方法及其各自的优缺点。第一种方法是选择潜空间中的特定向量,不同的向量对应不同的特征——例如,一个向量可能生成男性面孔,而另一个则生成女性面孔。第二种方法使用条件生成对抗网络 (conditional GAN
, cGAN
),即在带有标签的数据上训练模型。这使得我们可以通过向模型传递标签生成具有特定标签的图像,每个标签代表一个独特的特征——比如有眼镜或无眼镜的面孔。
此外,还将学习如何将这两种方法结合使用,以便同时选择图像的两个独立属性。通过这种方式,可以生成四种不同的图像类型:戴眼镜的男性、未戴眼镜的男性、戴眼镜的女性和未戴眼镜的女性。还可以使用标签的加权平均或输入向量的加权平均,生成从一个属性到另一个属性过渡的图像。例如,可以生成一系列图像,使得同一个人脸上的眼镜逐渐消失(标签运算)。或者可以生成一系列图像,使得男性特征逐渐消失,男性面孔变为女性面孔(向量运算)。