MaskGIT: Masked Generative Image Transformer
Huiwen Chang, Han Zhang, Lu Jiang, Ce Liu, William T. Freeman
官方的 Colab Demo: https://colab.research.google.com/github/google-research/maskgit/blob/main/MaskGIT_demo.ipynb
先简单介绍一下 ImageGPT (Generative Pretraining From Pixels) 的工作机制。ImageGPT 工作机制分为两步——
将图像转换为一系列的 Token
根据之前的 Token,迭代生成新的 Token (利用 Maximum Likelihood Estimation / Negative Log-likelihood Minimization)
Autoregressive 时,目标为
Bert 时,目标为
以上流程的弊端:
不符合人类绘图的逻辑
序列长度增长迅速,很容易形成一个特别长的序列
生成时间慢
长期的关联性弱
难以完成一些特定的任务(如 impainting)
, N 代表了序列长度。
.
表示。
目标依旧是 negative log-likelihood minimization,即:
生成图像的步骤如下:
, 模型输出一个概率 , K 为 codebook 的大小
, 从 codebook 中采样一个 token, 记录其 condifence score, 未被遮罩的地方分数为 1.0
根据一个 mask scheduling function γ,计算下一步的序列中要被遮罩的 token 的总数 n
根据第二步的 condifence score, 遮罩 n 个 token
迭代执行以上步骤
一些细节性的东西省去不写了,效果图和更多细节参见原论文
井蛙不语天 2023-07-06