墨汁的扩散,随机却有规律

L:别着急,咱们也来参透参透。大家都知道墨汁晕开就是一种扩散过程,墨汁最终会和水融为一体。现在我问大家一个问题,谁可以让这杯黑水回到一开始刚刚扩散的样子?

众人纷纷摇头,说不可能。
L:是的,但是我们还是可以找到一点规律的。 墨汁 滴入水中是一种随机的扩散过程,为了寻找扩散的规律,我们可以把扩散的过程拍摄下来,然后分成一帧一帧的图片,仔细观查这些图片,我们会发现 每一张图片与上一张图片比起来,墨水的微粒都会更散开一点点 。其实这里是有 数学规律的,即扩散满足 高斯分布 。
A:L老师,什么叫高斯分布?
L:举个例子,如果你把全世界人的身高做一个统计,以横轴代表每一个身高区间,纵轴代表身高处于这一身高区间的人数,就构成了一个直方图,大致的形状如下。

大部分人都处于虚线所示的中间区域,越靠近两边人数就越少,但是下降的速度也会变得平缓,这就是 高斯分布 ,又称之为 正态分布 或 钟型分布 。
C:为啥会有这么多叫法?
L:叫高斯分布是因为这是德国数学家高斯发现的数据分布规律; 而正态英文"normal",原意是"正规的、常规的、正常的", 表示这种分布在数据分析中频繁出现,太常见了,很多大数据量大分布都符合这个规律 ,比如身高、体重、收入等等;至于为啥叫“钟型分布”,大家注意看这个图,两端逐渐向下延伸,中间高两端低,看起来像不像寺庙里的大钟?
C:看起来确实挺像大钟的。
L:这一滴 墨汁的微粒,在下一个时间点出现的位置,在概率上是遵循高斯分布的。 如果时间间隔足够小,它在上一个时间点曾经所在的位置,也是近似高斯分布的,这可不得了, 意味着这从计算上是可逆的 。 如果我们知道在某一个时间点微粒在水中的位置,是有可能反推出上一个时间点微粒点位置的。
A:哦,原来扩散是有规律的啊。
L:现在大家知道了,虽然我们不能反演墨汁的扩散过程,但是反推大量的微粒运动过程是可能的。接下来重点来了,AI的训练和作画过程也是如此,这种方案是有一个专业的术语,称之为 扩散模型(Diffusion Models) 。
A爸:哦。




小朋友都能懂的人工智能⑪一滴墨汁成就一代画师

墨汁即原图,扩散即噪点

L:假设我们有一张猫的原图。然后我们逐渐的在图中添加噪点,其实就是像素上的色值,根据高斯分布逐渐扩展的过程。 每次散开一些,我们就保留一张当前的图片。直到最后,完全变成一片看不出来的噪点,如下图所示。 这个时候我们告诉AI,这片什么也看不出来的噪点原来是什么,让它把原来的样子画出来,大家觉得AI可以做到吗?

C妈:这一团模糊的,AI不可能画出来吧?
L:是的,如果是让AI一步到位,直接从这张完全看不清的照片中得到猫的原图,确实不行。

不过, 有了墨汁扩散的经验后,AI就有办法解决了,它不需要一次生成出最初的图片,它只需要生成出最后一张图片之前的那张图片就可以了。
A爸:哦,我明白了!您之前说过 一滴 墨汁的微粒,在下一个时间点出现的位置,在概率上是遵循高斯分布的。如果时间间隔足够小,它在上一个时间点曾经所在的位置,也是近似高斯分布的。如此说来,在足够小的连续时间间隔内,最后一张超级模糊的图片是可以根据高斯分布,往前反推出略微清晰的图片的,就这样一步一步直到最后完全清晰。
L:A爸说的太好了!AI调整噪点的分布,将它调整后的分布跟我们给它的图片进行比对,经过不断的反复尝试,直到收敛成正确的分布,下图用 钟型曲线 来给大家做一个示意,比如 紫色的高斯分布曲线为AI的尝试 , 黄色的高斯分布曲线为实际曲线 ,经过多次尝试匹配, 一次比一次更靠谱 ,直 至紫色和黄色的完全重叠,收敛成功 !请大家仔细看下图的过程。

正确收敛后 顺利过关!你们看,略微清晰的图片出来了吧, 如下图所示。

接着继续这样类似的操作一张一张图片进行下去,最终,来到最初的图片。

AI在经过无数张类似的图片训练后,AI终于学会了如何省时省力的画画了,从一堆噪点中反向扩散出一张画了,变成画猫高手了,如下图所示。
A爸:真想不到,这画猫和墨汁的扩散过程真是有异曲同工之妙啊。

L: 是的, 黑色的水就是全都是噪点的图 ,每次迭代反向扩散就是根据当前墨水的状态,推测前一个阶段水的状态,最后得到 墨水没有散开前的样子就是图像最原始的那只可爱的猫 。

两者从本质上是一样的, 只要是随机扩散,就遵循高斯分布 。有规律,机器就能通过无数次的训练去学习和加以应用。


A爸:还真是挺有趣的!不过,我还是有一个疑问,AI绘画为啥要采用这种扩散模型,正常的一笔一笔画出来的方式不好吗?





AI为何要采取扩散模型来绘画

L老师 :A爸这个问题问的好!我给大家讲个小故事吧。有甲乙两位画师展开山水画决赛比试,画师甲来到赛场,撸起袖子拿起画笔,一笔一画一点一滴在画纸上勾勒出山谷、树木、飞鸟、河流、船只、行人....逐渐填满了整张巨幅画纸。而画家乙迟到了,到赛场时作画时间已所剩无几,怎么办?
只见画师乙不慌不忙将一桶颜料往画纸上泼去,颜料在画纸上四处晕开,瞬间布满了整张画纸。然后 画师乙开始因地制宜修修补补,像山的地方就修成山,并擦拭出树木花草;像水的地方就画成水,并补上船只、飞鸟....就这样,画师乙不仅没有超时,居然比画师甲还更早提交了作品。
故事说到这里,大家想到AI采用扩散模型绘画的原因了吗?
A爸:画师甲是常规作画,而画师乙就是采用扩散模型作画,我是不是可以理解为扩散模型的作画效率更高,所以AI选择了扩散模型。
L老师:扩散模式作画的效率更高,A爸说出了一个关键点,非常好!大家还有什么补充的吗?
A:L老师,我觉得画师乙画的虽快却意义不大,这么粗暴的画法肯定作品很丑,一定比不过画师甲的。
L:哦,故事还没结束,我继续往下说吧。两位画师提交作品后,评委们进行了现场打分,最终画师乙获胜,拿到了全国画王的荣誉称号。
A:这怎么可能?
L:其实画师乙的这种作画模式并非情急之下的应对之策,他每日都在 不断的泼墨擦拭作画,已经坚持了数十年,并完成了成千上万幅作品。经过长时间的训练, 画师乙对这种作画方式的分寸已经拿捏 地 恰到好处,已经到了一种炉火纯青的境界。
C:L老师,我忽然想到, 泼洒四处的颜料需要逐步完善,一点一点形成最终作品,而无法一步到位就搞定了 。而您前面提的猫的图片也是如此,从模糊逐步走向清晰,而非一步到位直接生成清晰原始图。
L:是的,小C同学的总结很到位!
A:L老师,如果说画师乙通过刻苦训练,掌握这种神奇的作画模式,我是可以理解的,也相信画师乙的这种看起来很随意的作画模式,能击败 一笔一划精雕细琢作画的普通人。不过画师甲可是能进决赛的大画家,不至于落败吧。
L:小A啊,其实你的话中已经蕴藏了答案,就是“ 随意 ”这两个字,正是这种随意导致作品更具有多样性,评委们见惯了各种循规蹈矩的作品,当看到画师乙的作品时,会有不一样的感觉。
假设让画师甲继续再画几张山水画,他输出的每一张依然精美,却大同小异。 而画师乙则由于泼墨的随机性,导致每一张会有较大差异, 也就是说画师乙的绘画天然能创造出给人觉得不一样的、没见过的、耳目一新的作品。 这就是画师乙获胜的主要原因。
A:原来是这样啊!
L:关于效率我做一个补充,如果画师甲和画师乙是两个团队的话,画师乙的成员们就可以并行操作了,大家在整张画纸上共同调整优化,如果平时团队就这么一起训练的,那配合起来更是天衣无缝了。而画师甲的画图方式需要按顺序一笔一划地绘制,实现并行就困难了,画师甲的助手估计 只能帮忙端端水,递递笔来打打下手了。
A爸:听起来很有道理啊,看来扩散模型还真是好处多多啊!
L:实际上扩散模型的好处 远不止效率高和多样性 这两点。
A爸:啊,还有什么好处?
L:今天时候不早了, 关于扩散模型的其他好处我们下次再说 。其实AI绘画是非常复杂的,比如让AI画“ 一只戴眼镜,喝着咖啡的,正在读书的小猫”。那AI得识别我们的这个指令, 那怎么才能让AI听懂呢 ?AI能通过扩散模型最终形成这样一只可爱的猫咪, 可是 猫、眼镜、咖啡、书到底长什么样 ,AI是否是保存了一个巨大的图片库吗?

大家细品一下,是不是觉得还有很多的疑问,没关系,都会整明白的,今天就到这里,咱们下回分解。




公众号:收获不止数据库

系列回顾