— order: 2 —1 VAE (Variational Autoencoder)VAEVAE 学习概率分布,它先假设这个分布符合高斯分布(有点添加语义先验的意思),于是 VAE encoder 部分的学习目标简化成学习高斯分布的均值和方差具体方法如下:1.原始图片𝑥encode 之后经过 FC 层预测得到均值𝜇、方差𝜎2.从该高斯分布采样得到𝑧3.通过 decoder 生成𝑥,训练目标是𝑥逼近𝑥整个过程从数学上看比较优雅。第一步,从𝑥得到𝑧,可以写作𝑃(𝑧|𝑥),是(𝑧的)后验概率。中间的𝑃(𝑧)是先验概率 prior面一步可以写作𝑃(𝑥|𝑧),是 likelihoodVAE 提出之后,有很多基于它的工作,包括 VQ-VAEVQ-VAE2 等。DALLE-1 就是在 VQ-VAE 的基础上做的VQ-VAEVQ 的含义是 Vector Quantised就是把 VAE 做量化虽然现实世界的很多信号,例如语音、图像等都是连续信号,但是我们在计算机处理它们时大多已经把它们处理成离散信号,那不如干脆就做离散任务。VQ-VAE 把针对连续信号的回归任务转化成针对离散信号的分类任务,把高斯连续分布的先验转化成codebook 的离散分布先验 VQ-VAE 中,不是直接学习中间变量的分布,而是用一个 codebook 代替它。codebook 的大小是𝐾𝐷(e.g.8192512)codebook 存储的向量可以理解为聚类的中心,也可以看作是 embedding𝐾个长度为𝐷 embedding向量)𝑥encode 之后得到特征图𝑓𝑓中的每一维向量都从 codebook 中找一个离它最近的向量𝐷替换,这样得到量化之后的特征向量𝑓𝑐,和原始特征图𝑓维度一样,语义相似,只不过它的元素取值只能从 codebook 中来,相当于缩小了空间