写此文的初衷是总结一下这几天玩的东西
因为不是论文阅读笔记
目录
- 图片是如何被 AI 生成的
- 图片生成的几种方式
- AI 怎么用文字绘画
?
一.图片是如何被 AI 生成的
假设我们有十万张图片
如何用 AI 生成一张不存在的人脸呢
一个想法是
- 把一张 512x512 尺寸人脸图像 X 送入模型(Encoder)
得到一个 1x256 维的浮点数向量 z, 。 - 另一个模型(Decoder)负责将该向量 z 再还原成 512x512 的人脸图片
记做 X’, 。 - 模型训练的目的
是不断调整 Encoder 和 Decoder 各自参数, 以降低(X, X’)之间的偏差, 。
找了张 VAE 结构图作为近似说明
如果模型训练完毕
图中的每个点都是一张真实人脸图片经过 Encoder 编码后的结果
这种方法推广到非人脸生成也是类似的原理
二.图片生成的几种方式
除了上文中提到的 VAE
GAN
生成对抗网络(Generative adversarial networks, GANs)是近几年来最热门
假设你是永生者
即被砍头之后又可以带着之前的记忆复活 , 。 此刻你在 1980 年的中国
穷困潦倒 , 你动了心思 。 想凭借自己画画的手艺伪造假币财富自由 , 于是从村口买了几张白纸 。 把 100 元面值的形状和图案牢记于心 , 画完一百张 。 你成了万元户 , 拿着它们去找村口商店老头 , 菜市场的小贩买东西 、 他们都没法辨认真假 , 。 有一天小贩去银行存钱
被验钞机发现了破绽 , 你被捕了 , game over , 。 你重生了
吸取了上次的教训 , 从黑市买了台跟县银行一模一样的验钞机 , 每天捣鼓它鉴伪的原理 , 改进工艺 、 终于有一天 。 假钞放进去不滴滴了 , 你大喜 , 假币再次在县城泛滥 , 。 你的产业越做越大
终于引起了当地警方的注意 , 起因是有职员发现流通货币统计结果存在异常 , 有关部门意识到现有的验钞技术实在落伍 。 使用你的假币作为测试样本 , 很快更换了更先进的验钞机 , 全国推广 , 你再次因伪造假钞被击毙 , 。 …
无数的攻防战中
你经历数次生命轮回 , 造的假钞越来越难以用肉眼辨伪 , 除了最新的第 99 代以外 , 其他旧版验钞机在这些假钞面前溃不成军 , 它们成了某种无限接近真实的虚假 , 。
这便是 GAN 的核心思想
- 给定一个真实世界的数据集
图片尺寸均为 512x512, 以及一个生成器(Generator, 以下简称 G)和一个判别器(Discriminator, 以下简称 D), 生成器 G 负责生成假的图片(伪造假钞)。 判别器 D 负责鉴别一张图片是否为真, 并输出 0/1 二分类结果(验钞机), 。 - 随机初始化一个 1x128 维度的向量 z
G 以 z 作为输入生成一张 512x512 的图片 X’, 从真实数据集中随机一张图片 X, 将(X, X’)这两张图送进 D, 由它来判断哪张图是真的, 哪张是假的, 并把判断依据反馈给 G。 。 - G 的目的是不断生成更像真实数据集里的图片以企图骗过 D
而 D 学习如何判断送过来的两张图片哪张是真的, 哪张是假的、 。
在不断的攻防战中
这里其实有个很有趣的前提
Diffusion Model
和 GAN 基于对抗的思路不同
假设 x0 是一张真实图像
三.怎么用 AI 实现文字绘画
截止到目前位置
在当前节点它是 CLIP
CLIP
CLIP(Contrastive Language–Image Pre-training) 是 OpenAI 在 2021 年提出的一个模型
CLIP 模型使用分类器来提取图像的标签
终于可以开始画了
既然可以计算一张任意图片和一句任意文本间的 CLIP 表征相似度
- 给定一句文本
通过 CLIP 模型得到其表征 embT, 。 - 使用 GAN/diffusion 模型
随机生成一张图像(比如噪声), 并通过 CLIP 得到其表征 embI, 。 - 计算(embT, embI)二者的相似度
并不断迭代修改这张图片, 使(embT, embI)更接近, 。
整个过程不需要训练任何模型
结尾
附上一些我改装的disco diffusion(模型是 guided diffusion + CLIP)生成不错的效果图
躺在废墟中的玻璃鲸鱼
山随平野尽
五颜六色的立方体冰块漂浮在火山的湖泊中
奇异森林