专业书籍精读 · Generative AI System Design Interview · 第 7 章

真实人脸生成:你以为在训练一个画家,其实是在训练一把尺子

Generative AI System Design Interview · Ch 7 · Ali Aminian, Hao Sheng & Alex Xu · 2024

EN →

这一章讲什么?

网上流传过一类照片:一个笑得很自然的人,头发丝、毛孔、耳垂的光都对——而这个人从来没有存在过。这一章讲的就是机器怎么凭空画出一张真脸,以及一个更难的问题:画完了,谁来说它画得好不好。

先说个怪事

教机器做别的事,都有标准答案:这张是猫还是狗,对就是对。可「画一张脸」没有标准答案——你没法指着任何一张照片说「你本该画成这样」。没有答案,就没法打分;没法打分,就没法告诉机器下一步往哪改。

旧世界为什么难

早年的办法是让它「照着大家的平均去画」。结果很荒唐:把一万张脸的每个位置取个平均,得到的是一团灰蒙蒙、五官糊在一起的东西——平均一万张脸,不会得到一张好看的脸,只会得到一张谁都不是的脸。要清晰,就不能求平均;不求平均,就又回到没法打分。

它是怎么做到的

真正的解法很反常:既然没人能当裁判,那就再训练一个裁判。

安排两个人对练。一个是仿画者,闭着眼睛瞎涂起步;一个是鉴定师,桌上摆着一摞真照片和仿画者刚交的作品,任务只有一个:指出哪张是假的。仿画者的目标是骗过鉴定师,鉴定师的目标是别被骗。妙处在于鉴定师也在长进——今天靠一团模糊就能蒙混,明天鉴定师学会看眼神了,后天开始挑耳朵和头发的破绽。尺子自己越来越严,仿画者就被一路逼到能乱真。

后来还给仿画者加了一套分层的调色盘:先定大处(脸的朝向、脸型),再定中间(五官、表情),最后才定细处(肤色、发丝、毛孔)。想改发型而不动脸型,就只拧中间那层的旋钮——这才有了「可控」。还有一个很好用的窍门:让它画得离大众脸近一点,出错就少,看上去更真;代价是画出来的人全都有点像亲戚。

那怎么知道练好了

还是不看单张。把五万张真照片和五万张画出来的照片各摆一堆,比较两堆的整体气质——真照片里有老人有小孩、有侧脸有戴帽子的,画出来那堆如果也铺得一样开、一样细,就算过关。这是对付「没有标准答案」的通用招数:单张评不了,一群可以。

带来了什么 / 该怎么选

好处是画得快——学成之后出一张脸只要一眨眼,所以实时头像、素材生成、拿合成脸替真人脸做测试都用得上。代价只有一句,但很硬:这场对练随时可能崩——最常见的崩法是仿画者发现某一张脸屡试不爽,从此只画这一张。

一句话记住

你以为难的是画得像,其实难的是没人能说清「像」是什么。这一章的全部聪明之处,是把「说不清的标准」变成「另一个也在学习的对手」。

想进到具体机制、记号和示意图? → 切到精读版