从隐空间理解编码器(Encoder)

 行业动态     |      2023-06-25 10:04:59    |      作者

当我们在阅读关于AIGC 的文章时,常常会看到Encoder和Decoder名词。它们是AI( 即ML) 的核心模型,如果能深入理解它们的涵意和功能,就能更流畅地理解相关文章的内容,以及图示。

1687448711624451.png

说明诸如Stable Diff usion 里,就含有文本编码器(text encoder)、图像编码器(img decoder)、以及解码器(decoder)。这些都是AI 里的基本名词,处处可见。再如,关于DeepFake( 换脸) 的文章里,也常看到这两个名词。

1687495490596687.png

这图里就说明了,一般的DeepFake 模型里常含有一个图像编码器(Eecoder)、以及两个图像解码器( 即Decoder_A 和Decoder_B)。

诸如上述图片,其中的”Encoder”、”Decoder 名词是处处常见的。所以把它弄清楚是有必要的。于是,本文就先来解说第1 个名词:编码器(Encoder)。当您深入理解编码器了,就能轻易继续理解第2 个名词:解码器(Decoder)。

2 从欧式空间出发

为了充分掌握它,就必需从欧式(Euclidean) 空间来入手。所谓空间就是大家熟悉的坐标空间(Coordinate space)。例如,一维空间就是数线( 图3)。

1687495562196625.png

这图里有两个一维空间。人们随着阅历增多,逐渐学习,就会连连看,把两个空间对映起来( 图4)。

1687495631448652.png

人们把它记忆于脑海里。看到池塘里有黑色家禽,就会联想的< 鸭>。看到池塘里有白色家禽,可能就会联想的< 鹅> 或< 鸡>。接下来,请您先思考:AI 如何学会上述的连连看呢? 也就是,人们如何当老师,把上述的连连看智能,传授( 教导) 给AI 模型,让它也能记忆上述的连连看关系。

其实,它是依赖一个简单的数学公式:Y=X*W+B。有时候会再添加激活函数,如:Z = Sigmoid(Y)。于是,拿来X = 0,放入公式计算出Y=4.6 的值( 图5)。

1687495711637175.png

AI 就依赖这些参数( 即W 和B 值) 来记忆这项连连看的智慧。于是,再拿来X = 255,放入公式计算出Y = 0.5 的值。

1687495756625069.png

当AI 计算出Y=4.6,很接近于4,就连结到< 鸭> 了,也就凭过去的学习经验和智慧,拿起画笔画出一只黑色鸭了。同样地,AI 计算出Y = 0.5,很接近于0,就连结到< 鸡> 了,也就凭过去的学习经验和智慧,拿起画笔画出一只白色鸡了。这就是AI 绘图创作的源点。

在上述的例子里,白色灰阶值为0,只有1 个特征值(Feature),可以是使用1 维空间表示。同理,当x = [255,100] 时,它即是2 维欧式空间里的一个点。

依此类推,当x = [255, 255, 255] 时,它即是3 维欧式空间里的一个点。在AI 里,就拿欧式空间来表达宇宙中的一切事物或现象。例如,拿欧式空间来表达RGB色彩,就成为大家熟知的RGB 色彩空间( 图7)。

1687495832444797.png

3 范例演练

此范例里,包含4 张图像,各章都由4 个像素(Pixel)所组成( 图8)。

1687495880751830.png

请您练习想想看,在AI 里如何使用欧式空间来表达这4 件事物( 即4 张图) 呢? 答案是:每一张图像有4*3 = 12 个值( 即12 个特征),每一个特征值各在一维度轴上。于是,上述每一张图在12 维欧式空间里,就是一个点。以此类推,这是1 张512 x512 的JPG 图像( 图9)。

image.png

请您练习想想看,在AI 里如何使用欧式空间来表达这张图像呢? 答案是: 每一张图像有512*512*3 个值( 即特征),每一个特征值各在一维度轴上。于是,上述这张图在512*512*3维欧式空间里,就是1 个点。

基于上述的基础,接下来,就可来理解一个常见的名词:Embedded 及Embedding 。刚才提到,在这12 维空间里,存放( 记载) 这4张图( 只含4 个点)。似乎有些浪费空间,计算也常比较费时。那么,我们能否把它降维呢?例如,利用5 维空间的4 个点来代表这4 张图,会更省空间。

答案是:可以的。但是,请想一想:5 维空间的每一个点只能含有5 个值( 特征),而上述每一张图有12 个值,该怎么办呢?这个降维过程,就称为:嵌入(Embedding )。即是:高维空间里的点,对应到低维空间里的点。于是,可将两个不同的高维空间里的点,嵌入到同一个低维( 如3 维) 空间里( 图10)。

1687496007592060.png

这表达了,仙剑奇侠传里的“赵灵儿”喜欢“图像-B”,而“李逍遥”喜欢“图像-A”。负责嵌入的模型叫:编码器(Encoder)。

人们想象可观察空间里事物,然后由Encoder 来进行编码,即嵌入到隐空间里,而AI 则对隐空间里的嵌入数据( 通称为:Embedding code) 进行操作,来组合、生成创新的东西( 仍在隐空间里),然后交给Decoder来还原出可观察空间的事物( 如新图像、或新文句等)。例如,更多创新组合( 图11)。

1687496059357532.png

上图里的灰色部分就是隐空间,而Diffusion 就是在这隐空间里,进行图像的组合创新。

4 结束语

深刻领会Encoder 和Decoder 的功能,非常有助于理解AIGC 的涵意。例如,理解Encoder 在进行嵌入到低维空间时,会过滤掉一些讯息。然后Decoder 必需( 依据其所学习的智慧) 把被过滤掉的细节部分弭补起来。

此时,像Diffusion 在隐空间里的创新组合,以及其Decoder 所添加弭补的部分,就是Diffusion 生成的内容。

(本文来源于《电子产品世界》杂志2023年6月期)