本文中的用于生成虚拟人脸图片的机器学习网络是 Generative Adversarial Networks(GAN)生成对抗网络中的一个应用,Deep Convolutional Generative Adversarial Networks (DCGAN)深度卷积生成式对抗网络。
首先来看一个问题,以下这些面孔中,有哪些是真实存在的?
他们是真的吗?
答案将在文末揭晓,首先先让我们看看如何利用对抗网络生成的虚拟人脸。
深度卷积生成式对抗网络(DCGANs)
作者另一篇文章,利用对抗网络完成卡通图片生成,包含了对抗网络 GAN 的一些基本知识,方便初学者查看。作者同时将这个研究项目分享到了GitHub,以及可以云端运行的Kaggle。
本文中提到的人脸图片生成与卡通图片生成技术都是依据 Redford 等人在 2015 年发布的论文《深度卷积生成网络的无监管学习》。具体模型大致如下
作为机器学习过程中重要的一环,原始数据集,作者选用了CelebA中真实明星照片,并进一步进行裁剪加工为 128x128 大小、仅留下人脸部分的照片。
这项实验研究的目的可以描述为,通过机器学习的不断训练,使生成器与判别器形成一种类似“竞争”的关系,两个网络互相抗衡损失,最终到达一个完美的平衡点。那么对于下列损失函数来说,这样的平衡点在哪里呢?
在理想的状态下,最终的均衡状态应满足:
生成的样本图像最够真实并且接近于真实图像分布。
判别器收敛到 0.5-50%的正确率使得判别器分辨不出样本是生成的还是真实的。
生成器收敛到 1.0-100%的正确率使得所有生成图片都足够真实,可以骗过判定器。
训练过程
根据最终状态可以得出以下的超参数:
经过 60 个训练周期后,最终损失情况如下:
训练结果并不完美,但是依然可以看出判别器的损失接近于 0.5,而生成器的损失平均接近于 1.0,并且,随着训练周期的增加,生成的样本图片质量也有显著的提高。这 60 个训练周期是在特斯拉 K80 GPU(Kaggle 云端)上进行的,总共运行时长约为 100 小时。
结论
最终生成的的高保真的样本图片如下,
大部分的人脸看起来拟真度都相当的高,只有一少部分显得有些畸形,在眼镜等一些细节上也有些瑕疵,但总体来说,在考虑训练过程中资源有限的情况下,它的表现还是非常令人满意的。
展望未来
通过这个人脸生成的研究项目,可以证明使用生成对抗网络生成逼真的人脸图片是绝对有可能的。即使是在这种训练资源有限的情况下,还是可以生成足以以假乱真的图片。那么在更大、更先进的研究实验室里,完全可以生成质量更高、分辨率更清晰的图片。
题外话,科技的发展让这些拟真度非常高的虚假人脸生成更加容易,在面对这些面孔的时候我们也应该抱有更高的警戒心。
回到文初的问题,这几张图片全部都是由尖端科技 StyleGAN 生成的虚假照片。
原文链接:
Face Generator - Generating Artificial Faces with Machine Learning
评论