生成式对抗网络(GAN, GenerativeAdversarial Networks )是一种深度学习模型,是近年来深度学习研究中最具前景的方法之一。模型通过构建两个模块:生成器(Generator)和判别器(Discriminator)的互相博弈学习产生高质量的图片输出,解决了图片生成的难题。本文将介绍生成对抗网络基本的工作原理,以及在工业设计领域的一些应用。
近年来,深度学习技术的发展有了长足的进步,相比于传统机器学习技术需要人为设定特征提取方法,而深度学习技术凭借更大的容量,可以自行学习特征提取而无需人工干预。 见图1。
图1. 深度学习和机器学习的区别
常见的深度学习算法所训练的模型对于给出标量等数据有很好的效果,但是在给出高维张量并使得该张量组成的数据有意义的情况下,却做的不是很好,例如输出高质量的图片、音频以及视频。在这个方面基于生成对抗网络(GAN)所训练的模型就能生成出非常逼真的照片,图像甚至视频。
下面将详细介绍生成对抗网络(GAN)的设计基本原理。
生成对抗网络(GAN)由2个重要的部分构成,结构见图2:
1. 生成器(Generator):通过生成器模型生成数据(大部分是图像),目的是“骗过”判别器;
2. 判别器(Discriminator):判断收到图像是真实的还是生成器生成的,目的是找出生成器做的“假数据”
图2. 生成对抗网络的结构
下面详细介绍一下过程:
第一阶段:固定「判别器D」,训练「生成器G」;让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。一开始,「生成器G」的能力很弱,所以很容易被判别器识别出来。但是随着不断的训练,「生成器G」的能力不断提升,最终可以骗过了当前的「判别器D」。到了这个时候,「判别器D」的能力不足以给出判断,断是否为假数据的概率为50%。
第二阶段:固定「生成器G」,训练「判别器D」,在这一阶段,继续训练「生成器G」已经没有意义。这时需要固定「生成器G」,然后开始训练「判别器D」。通过不断的给入真实的数据和「生成器G」生成的假数据,来训练「判别器D」提高了鉴别能力,最终可以准确的判断出所有的假图片。到这个时候,「生成器G」已经无法骗过「判别器D」。
循环阶段一和阶段二,通过反复的迭代,「生成器G」和「判别器D」的能力都越来越强。最终得到了一个效果非常好的「生成器G」,我们就可以用它来生成我们想要的图片或者其他数据了。
GAN结构的优势在能训练任何一种生成器网络,而其他的框架需要生成器网络有一些特定的函数形式。而GAN结构的问题在于训练困难,不稳定。生成器和判别器之间需要很好的同步,而在实际训练中很容易导致生成器的梯度消失,或者导致生成器只生成重复但“安全”的样本,使得多样性变差。
通过给数据样本增加噪声以及通过变更分布评价的方法可以一定程度改善训练的情况,但是总体来说使用GAN这一方法,还是很依赖于工程人员对于模型以及工程问题的理解。
下面介绍一些基于生成对抗网络结构的应用,通常来说,生成对抗网络虽然可以生成清晰的图片,但是图片输出的内容难以控制。这里为了输出期望的图片内容,需要在模型训练时加入控制的条件,这个结构叫做cGAN。图3为基于cGAN结构训练的模型用来做内燃机喷雾预测的案例,通过给定不同的输入条件,模型可以实时输出对应的喷雾形状分布。与实际的分布情况对比发现,趋势基本一致。
图3. 内燃机燃油喷雾预测案例
将训练好的模型打包并通过二次开发封装,可以把训练好的模型做成实际可用的工具。图4为基于上述模型开发而成的燃油喷雾预测工具互动界面,其中使用人员可以通过调整右侧的工具条来获得实时对应的喷雾输出情况,像这样类似的工具可以有效的协助设计人员提升效率。
图4. 内燃机燃油喷雾预测交互界面
上述应用案例的输入为给定的分布或数字,而在某些实际的应用中,希望通过研究不同的输入的图形而给出对应的输出的图形。在这种情况下,需要模型结构可以读取图片而给出相应的图片。实现这种条件需要用到一种结构叫做pix2pix,pix2pix结构是GAN模型的变形,可以把一张图片转换为类似的图片。非常适合用来计算不同结构形状所对应的输出参数分布。图5的案例为给定不同形状的电机转子,通过pix2pix模型训练后,用来预测对应形状磁通量分布的例子。如果训练的情况良好,生成的模型可以实时给出精度很高的预测结果,从而替代大量的CAE计算。
图5. 电机转子磁通量分布预测案例
上述的案例输出的图像为一个三维的张量,如果对于输出的图片增加一个时间维度,便可以输出一系列基于时间变化的图片组,从而生成一段视频。如图6所示。
图6. 电子转子磁通量分布预测
通过上述的案例可以发现,生成对抗网络的技术可以替代常规的CAE仿真计算,为工业设计人员提供快速的结果参考,从而帮助设计人员提高效率并节约时间。然而模型的训练过程却有一定难度,需要相应的经验和对理论的理解才能得到满意的结果。