L:别着急,咱们也来参透参透。大家都知道墨汁晕开就是一种扩散过程,墨汁最终会和水融为一体。现在我问大家一个问题,谁可以让这杯黑水回到一开始刚刚扩散的样子?
L:是的,但是我们还是可以找到一点规律的。
墨汁
滴入水中是一种随机的扩散过程,为了寻找扩散的规律,我们可以把扩散的过程拍摄下来,然后分成一帧一帧的图片,仔细观查这些图片,我们会发现
每一张图片与上一张图片比起来,墨水的微粒都会更散开一点点
。其实这里是有
数学规律的,即扩散满足
高斯分布
。
L:举个例子,如果你把全世界人的身高做一个统计,以横轴代表每一个身高区间,纵轴代表身高处于这一身高区间的人数,就构成了一个直方图,大致的形状如下。
大部分人都处于虚线所示的中间区域,越靠近两边人数就越少,但是下降的速度也会变得平缓,这就是
高斯分布
,又称之为
正态分布
或
钟型分布
。
L:叫高斯分布是因为这是德国数学家高斯发现的数据分布规律;
而正态英文"normal",原意是"正规的、常规的、正常的",
表示这种分布在数据分析中频繁出现,太常见了,很多大数据量大分布都符合这个规律
,比如身高、体重、收入等等;至于为啥叫“钟型分布”,大家注意看这个图,两端逐渐向下延伸,中间高两端低,看起来像不像寺庙里的大钟?
L:这一滴
墨汁的微粒,在下一个时间点出现的位置,在概率上是遵循高斯分布的。
如果时间间隔足够小,它在上一个时间点曾经所在的位置,也是近似高斯分布的,这可不得了,
意味着这从计算上是可逆的
。
如果我们知道在某一个时间点微粒在水中的位置,是有可能反推出上一个时间点微粒点位置的。
L:现在大家知道了,虽然我们不能反演墨汁的扩散过程,但是反推大量的微粒运动过程是可能的。接下来重点来了,AI的训练和作画过程也是如此,这种方案是有一个专业的术语,称之为
扩散模型(Diffusion Models)
。
墨汁即原图,扩散即噪点
L:假设我们有一张猫的原图。然后我们逐渐的在图中添加噪点,其实就是像素上的色值,根据高斯分布逐渐扩展的过程。
每次散开一些,我们就保留一张当前的图片。直到最后,完全变成一片看不出来的噪点,如下图所示。
这个时候我们告诉AI,这片什么也看不出来的噪点原来是什么,让它把原来的样子画出来,大家觉得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:哦,故事还没结束,我继续往下说吧。两位画师提交作品后,评委们进行了现场打分,最终画师乙获胜,拿到了全国画王的荣誉称号。
L:其实画师乙的这种作画模式并非情急之下的应对之策,他每日都在
不断的泼墨擦拭作画,已经坚持了数十年,并完成了成千上万幅作品。经过长时间的训练,
画师乙对这种作画方式的分寸已经拿捏
地
恰到好处,已经到了一种炉火纯青的境界。
C:L老师,我忽然想到,
泼洒四处的颜料需要逐步完善,一点一点形成最终作品,而无法一步到位就搞定了
。而您前面提的猫的图片也是如此,从模糊逐步走向清晰,而非一步到位直接生成清晰原始图。
A:L老师,如果说画师乙通过刻苦训练,掌握这种神奇的作画模式,我是可以理解的,也相信画师乙的这种看起来很随意的作画模式,能击败
一笔一划精雕细琢作画的普通人。不过画师甲可是能进决赛的大画家,不至于落败吧。
L:小A啊,其实你的话中已经蕴藏了答案,就是“
随意
”这两个字,正是这种随意导致作品更具有多样性,评委们见惯了各种循规蹈矩的作品,当看到画师乙的作品时,会有不一样的感觉。
假设让画师甲继续再画几张山水画,他输出的每一张依然精美,却大同小异。
而画师乙则由于泼墨的随机性,导致每一张会有较大差异,
也就是说画师乙的绘画天然能创造出给人觉得不一样的、没见过的、耳目一新的作品。
这就是画师乙获胜的主要原因。
L:关于效率我做一个补充,如果画师甲和画师乙是两个团队的话,画师乙的成员们就可以并行操作了,大家在整张画纸上共同调整优化,如果平时团队就这么一起训练的,那配合起来更是天衣无缝了。而画师甲的画图方式需要按顺序一笔一划地绘制,实现并行就困难了,画师甲的助手估计
只能帮忙端端水,递递笔来打打下手了。
A爸:听起来很有道理啊,看来扩散模型还真是好处多多啊!
L:实际上扩散模型的好处
远不止效率高和多样性
这两点。
L:今天时候不早了,
关于扩散模型的其他好处我们下次再说
。其实AI绘画是非常复杂的,比如让AI画“
一只戴眼镜,喝着咖啡的,正在读书的小猫”。那AI得识别我们的这个指令,
那怎么才能让AI听懂呢
?AI能通过扩散模型最终形成这样一只可爱的猫咪,
可是
猫、眼镜、咖啡、书到底长什么样
,AI是否是保存了一个巨大的图片库吗?
大家细品一下,是不是觉得还有很多的疑问,没关系,都会整明白的,今天就到这里,咱们下回分解。
公众号:收获不止数据库