当前位置:首页|资讯|AIGC|谷歌|GitHub

AIGC: MaskGIT (Masked Generative Image Transformer) 笔记

作者:刹那-Ksana-发布时间:2023-06-27

论文详情

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 工作机制

先简单介绍一下 ImageGPT (Generative Pretraining From Pixels) 的工作机制。ImageGPT 工作机制分为两步——

  1. 将图像转换为一系列的 Token

  2. 根据之前的 Token,迭代生成新的 Token (利用 Maximum Likelihood Estimation / Negative Log-likelihood Minimization)

工作机制的简单示意图

Autoregressive 时,目标为 

L_%7BAR%7D%3D%5Cmathbb%7BE%7D_%7Bx%20%5Csim%20X%7D%20%20%5B-%5Clog%20p(x)%5D%5C%5C%0Ap(x)%3D%5Cprod_%7Bi%3D1%7D%5E%7Bn%7Dp(x_i%7Cx_1%2C...%2Cx_%7Bi-1%7D%2C%20%5Ctheta%20)

Bert 时,目标为

L_%7BBERT%7D%3D%5Cmathbb%7BE%7D_%7Bx%20%5Csim%20X%7D%20%5Cmathbb%7BE%7D_%7BM%7D%20%5Csum_%7Bi%20%5Cin%20M%7D%5B-%5Clog%20p(x_i%7Cx_%7B%5B1%2Cn%5D%5Cbackslash%20M%7D)%5D

以上流程的弊端:

  1. 不符合人类绘图的逻辑

  2. 序列长度增长迅速,很容易形成一个特别长的序列

  3. 生成时间慢

  4. 长期的关联性弱

  5. 难以完成一些特定的任务(如 impainting)

MaskGIT 工作机制

%5Ctextbf%7BY%7D%20%3D%5By_i%5D_%7Bi%3D1%7D%5EN, N 代表了序列长度。

%5Ctextbf%7BM%7D%3D%5Bm_i%5D_%7Bi%3D1%7D%5E%7Bn%7D.

Y_%7B%5Cbar%20M%7D 表示。

目标依旧是 negative log-likelihood minimization,即:

L_%7Bmask%7D%3D-%5Cmathbb%7BE%7D_%7BY%5Cin%20D%7D%5B%5Csum_%7B%5Cforall%20i%5Cin%20%5B1%2CN%5D%2C%20m_i%3D1%7D%20%5Clog%20p(y_i%7CY_%7B%5Cbar%20M%7D)%5D

生成图像的步骤如下:

  1. Y_%7BM%7D%5E%7B(t)%7D, 模型输出一个概率 p%5E%7B(t)%7D%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%5Ctimes%20K%7D, K 为 codebook 的大小

  2. p_i%5E%7B(t)%7D%5Cin%20%5Cmathbb%7BR%7D%5E%7BK%7D, 从 codebook 中采样一个 token, 记录其 condifence score, 未被遮罩的地方分数为 1.0

  3. 根据一个 mask scheduling function γ,计算下一步的序列中要被遮罩的 token 的总数 n

  4. 根据第二步的 condifence score, 遮罩 n 个 token

  5. 迭代执行以上步骤

工作机制的简单示意图

一些细节性的东西省去不写了,效果图和更多细节参见原论文



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1