揭秘Deepfake换脸视频背后的技术细节

01 什么是GAN

今天聊GAN。这要从一个新闻说起,2020年圣诞流出一段诡异的视频,英国那位超长待机的老婆婆先是在视频里来了一段放飞自我的演讲,把以前绝对不适合在正式场合讲的话统统一吐为快,然后干脆彻底放飞自我,直接跳上桌子上来了一段TikTok热舞,场面一度十分混乱。

当然,听过新闻的同学应该已经知道了,这位放飞自我的老太太只是用深度伪造技术(DeepFake)山寨出来的Deepfake Queen,但是那段视频实在过于逼真,大家都不禁去想,视频中的老太太如果不是太反常理,恐怕会有不少人信以为真。再细想开去,没有不可怕,只有脑洞不够大。

深度伪造技术早已惹得满城风雨,连2021年1月1日才新鲜出炉的《民法典》都专门作出了规定,严禁利用深度伪造侵犯肖像权。不过,亦正亦邪的深度伪造我们下次再找机会细聊,今天只说它的核心技术。

深度伪造最早是以“换脸”(Face-Swap)的形象出现在世人面前,当然,现在深度伪造早已开枝散叶,远不止是换脸,但所使用的核心技术却始终如一,这就是我们今天的主角,GAN

GAN是三个英文单词的首字母简写,全称Generative Adversarial Network,中文叫作“生成(式)对抗 络”。这个名字神秘中带点厉害,又是生成又是对抗的,感觉像是个多人联机游戏,它到底是什么,我们后面细说。

GAN现在是深度学习中很重要的一个分支,说到这个还有一段小插曲。GAN最早2014年由 Ian Goodfellow在论文《Generative Adversarial Networks》中提出来的,现在提到“GAN之父”,说的就是这位“好家伙”。

论文提出之后,大家都乐了,原来都觉得深度学习的走位已经风骚到了极致,没想到这风骚还能翻倍。于是,大家纷纷直接一句好家伙,连Yann LeCun这样咖位的大神都一顿商业互吹,说GAN是“过去十年间机器学习领域最让人激动的点子”。

你要知道Yann LeCun是谁,他就是那位发明了CNN的大神,我们不好说是Yann LeCun已一己之力支棱起了深度学习,但深度学习称得上奠基人的一定得把他包含在内。

说实话,GAN刚出来的时候有点简陋,如果你看过那篇GAN的创始论文,也就是上文所说的《Generative Adversarial Networks》,你会觉得这个点子微妙中带着尴尬。

在机器学习中,有一种将模型一分为二的分法,一种称之为判别模型,也就是我们最常见的各种分类器,另一种则称之为生成模型,它会“创作”一点东西。GAN是一种生成模型,它名字中的“生成对抗 络”中的“生成”,指的就是这个。

那GAN之父好家伙在创始论文中用GAN生成了什么呢过深度学习的同学应该都熟悉MINST数据集,在论文里,好家伙正是用GAN生成了MINST数据集里的数字。

我很早就知道GAN了,这些年深度学习新奇的玩具发明了不少,善终的还真不多。现在GAN生成的这玩意不人不鬼,怎么想早晚也要销声匿迹吧。结果,大神就是大神,眼界远不是我等肉眼凡胎所能比拟。现在GAN果然大放异彩,而很多人都认为这还仅仅只是开始。

口说无凭,还是让我们看图说话,下面这位金发妹子并不是真人,而是 站thispersondoesnotexist.com使用StyleGAN2生成的高清图片。多说一句,StyleGAN2也是目前图片生成能力最强的GAN模型,英伟达荣誉出品,出手就是1024X1024的高清大图,连汗毛都根根可见,远不是创世论文里面那个只能生成32X32的弱鸡可比。

别怕!

这条式子是GAN理论中最经典的式子,我知道等 的右边看起来很可怕,不过,最精髓的部分在左边,而可怕的右边实际基本上只是一条交叉熵的表达式,交叉熵在机器学习中非常重要,用于度量两个概率分布的差异性,譬如经典的分类模型逻辑回归就使用了交叉熵作为损失函数。

不过,我不想作过多展开,而且这里也是GAN研究中更新换代最密集的地方,现在早已物是人非,你只需要简单掌握它的核心功能是评估模型D的判别准确性,输出值越高,表示模型D的判别结果越准确。

现在看左边。左边有一个奇怪的符 minmax,在GAN里叫Minmax Game,有人翻译成最大化最小化博弈,也有人翻译成最大化最小化游戏,我个人倾向第一种。

这个符 不常见,常见的是单个的max或者单个的min,意思是通过调整参数,使得函数取得最大/最小值。这里确实有个函数,是函数V,函数V就是交叉熵,前面我们说过,它的值越大,表示判别越准。

这里有意思的地方来了:max下面有个D,意思是通过训练模型D,也就是判别 络,使得函数V的取值变大。可是max旁边还有个min,min下边有个G,意思是通过训练模型G,也就是我们的生成模型,使得函数V取值变小。

好了,上面这一串对符 的解释也许有点拗口,其实很简单。首先我们要搞清楚,这里要判别的是什么样东西,真样本,以及由生成模型G生成的假样本。

接下来的是就好说了,一句话,判别模型D希望通过不断训练提升判别的准确性,最终目标是真样本假样本一看一个准,判别结果自然就Max了。

那模型G呢是个捣蛋鬼,尽想着让模型D的判别结果挂零蛋,最好一个也猜不中,也就是Min。一边想要Max,一边想要Min,判别结果是个此消彼长的过程,这就是所谓的“对抗”。在这个最大化最小化的博弈过程中,攻防双方肯定都将不断成长。

不妨举个现实的例子,烂片鉴定。而模型G和模型D的关系,有点像自恋导演和杠精观众。只导演一拍新片,观众就开始杠,不如那部经典的XXX。导演觉得自己这么优秀当然不接受,就照着XXX一顿临摹,又出了新片,观众也不是信男善女,当然要绞尽脑汁挖掘出新的黑点。

导演不断拍,观众不断杠,直到导演拍出的新片真的达到了XXX的水平,观众这样才终于杠不动了。这就是“对抗”带来的共同进步,学术一点的说法请见下图:

扫码关注【华章计算机】视频

每天来听华章哥讲书

揭秘Deepfake换脸视频背后的技术细节

点击阅读全文购买

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月1日
下一篇 2021年7月1日

相关推荐