传统绘画将迎来陌路?来自于 AI 艺术模型的冲击!

百家 作者:AI100 2022-06-16 19:07:54

作者 | 德民     责编 | 禾木木
出品 | AI科技大本营(ID:rgznai100)
近几年,各种新的网络概念在不断地被提出。其中就包括 AI 绘画艺术,并且由计算机自动生成的数字艺术也层出不穷。这种 AI 艺术被称为「生成」艺术,目前已经产生了很多生成方式,包括基于随机选择算法的生成方式。
人工智能技术的发展使计算机能够自动生成高质量的艺术作品,并且开始对传统的绘画行业产生了冲击和影响。在本篇文章中,我们将介绍一种名为 VQGAN+CLIP 的方法,该方法于 2021 年提出,VQGAN+CLIP 是一个用来将文本自动生成艺术作品的机械学习模型。
例如,如果你在程序中输入 “A painting of an apple in a fruit bowl ”,它将自动生成下面这样的图像。
或者,如果你在程序中输入“a fantasy world vray unreal engine hyperrealistic”它将输出一个像下面这样的图像。
仅仅用文本就能呈现出如此精妙的画作,背后的原理也一定是很巧妙,那么这种绘画是如何生成的呢?

VQGAN+CLIP 模型

人工智能模型 VQGAN+CLIP 是一个结合了理解文本的系统 CLIP(对比性语言-图像预训练)和生成图像的系统 VQGAN(矢量量化生成对抗网络)的模型。
其中的 CLIP 的意思是对比性语言-图像预训练,它是一个由 OpenAI 研究小组在 2021 年时提出的模型,这个模型在开发出来之后便吸引了很多人的关注。该模型可以简单地理解为一个预训练模型,能够用于支持图像分类,然而与以往的模型不同的是,CLIP 模型是具有自然语言处理能力的,因此它在通用性方面是非常优秀的。
一般的图像分类是基于许多图像的标签,如苹果或猫,然后将其作为学习的教师数据。然而,这种方法是存在以下这些问题的。
  • 贴标签既费时又费力。
  • 对于不包括在教师数据中并且是第一次看到的图像,其分类准确率很低。 (例如,学习狗、猫的标签并对水果进行分类)。
对于这两个问题,CLIP 进行了解决,并提供了预训练这一方案。
以往存在着 GPT-3 这样一种通过自然语言处理各种问题(人工智能文章生成、人工智能文章分类、人工智能问答等)的著名预训练模型,而 CLIP 是它的文字+图像版本。CLIP 的目标是即使是在 zero-shot 的情况下也能够对图像进行很好的分类。
为了运行这项功能,开发者使用的并不是添加标签的图像,而是从网上检索大量的图像和文本数据(图像标签和文本描述)。并且在这项研究中开发者一共匹配了4亿对数据。
了解完 CLIP 的运作基础之后,让我们来了解一下CLIP是如何实际工作的。

对比性预训练


CLIP使用一种叫做对比性预训练的机制来结合图像和文本中的大量信息。该程序的运行过程具体如下: 

  • 只预测整个文本与哪些图像相配。

  • 给定一批N个(图像,文本)配对,批量将能够匹配的内容进行配对(图像,文本),并且对该系统对于配对预测能力的强化。

  • 将图像编码器和文本编码器进行联合训练,以最大化批次中N个真实对的图像和文本。

嵌入的余弦相似性,同时最小化不正确对的嵌入的余弦相似性。

将标签设置为从0到n-1的数字序列,其中loss_i是图像的余弦相似度损失,loss_t是文本的余弦相似度损失。
也就是说,由于上图中蓝色部分的对角线成分是正确的组合(正例)。
例如,对于第一幅图像,正确的标签是0,所以我们用它作为正确的标签计算行方向上的交叉熵误差。
同样,对于第二个文本,第二行,即标签 "1 "是正确的,所以交叉熵误差是以该标签为正确标签在列方向计算的。
伪代码如下:
# image_encoder - ResNet or Vision Transformer# text_encoder  - CBOW or Text Transformer# I[n, h, w, c] - minibatch of aligned images# T[n, l]       - minibatch of aligned texts# W_i[d_i, d_e] - learned proj of image to embed# W_t[d_t, d_e] - learned proj of text to embed# t             - learned temperature parameter
# extract feature representations of each modalityI_f = image_encoder(I) #[n, d_i]T_f = text_encoder(T) #[n, d_t]
# joint multimodal embedding [n, d_e]I_e = l2_normalize(np.dot(I_f, W_i), axis=1)T_e = l2_normalize(np.dot(T_f, W_t), axis=1)
# scaled pairwise cosine similarities [n, n]logits = np.dot(I_e, T_e.T) * np.exp(t)
# symmetric loss functionlabels = np.arange(n)loss_i = cross_entropy_loss(logits, labels, axis=0)loss_t = cross_entropy_loss(logits, labels, axis=1)loss = (loss_i + loss_t)/2

文本编码器


出现在上述预训练模型中的文本编码器,是使用一个基于Transformer的模型来获取文本的嵌入表示的模型。

注:Transformer是一种机器学习机制,经常在自然语言处理的背景下使用。 它不执行任何递归或卷积,但以其压倒性的性能而闻名。


图像编码器


现在上述预训练模型中的图像编码器,是一个用于获取图像的嵌入式表征的模型。

图像编码器是已与视觉变换模型来获取图像的嵌入表示的模型。它将上面介绍的Transformer机制应用于图像数据。 该模型将Transformer之前的批次和位置嵌入与额外的层级规范化相结合。


简单来说 CLIP 系统是这样一个运作流程,接下来看一下 CLIP 的应用性。
CLIP 可以使用上述步骤中获得的预训练模型进行 zero-shot 图像分类。 它的过程具体如下:
  1. 将下游任务的类标签转换成句子。
  2. 对给定的图像进行编码。
  3. 对候选句子标签进行编码。
  4. 计算图像嵌入和每个句子嵌入的内积。 并且以此为依据计算出相似度。 
  5. 选择具有最高相似度的句子标签。
这里再详细解释一下,CLIP 不是用 "飞机 "或 "汽车 "作为预测的正确标签,而是用 "一张飞机的照片 "或 "一张汽车的照片 "作为正确标签。这种标签的形式与使用网络数据的预训练相比,更接近推理中使用的标签,并且能够清楚地看到它的精度在提高。这就是所谓的即时工程。


性能评估

对各种数据集上的图像分类任务的性能评估表明,应用CLIP作为预训练模型的CLIP-ViT和CLIP-ResNet模型在性能上都是压倒性的。

文章介绍了 VQGAN+CLIP 这一个高性能的 AI 艺术模型。并且针对这个模型的导入和学习自然语言的嵌入式 CLIP 进行了说明。在接下来系列的文章也会进一步介绍 VQGAN 这一模型。

德民,庆应理工博士,bayes deep learning达人。


往期回顾

谷歌 AI 被爆已自我觉醒?


一文搞定Python读取文件的全部知识!


趣味十足的Python可视化技巧!


低代码走出半生,归来仍是"毒瘤"!


分享

点收藏

点点赞

点在看

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数