一、DALL-E 2
不知道大家是否有想要进行艺术创作却没有灵感的时候?有了一丝灵感却无法想象出画面的时候?DALL-E 2就能解决这个问题。
DALL-E 2于今年4月发布,是OpenAI的DALL-E模型的升级版。只需给到几个词或一句话的文本提示,DALL-E 2就能按照文本生成新的图像,甚至能将毫不相关的语义以合理的方式结合在一起,形成有逻辑的图像。
DALL-E 2生成的图像
输入“骑摩托车穿过外太空章鱼的3D渲染”
输入“梵高风格的星系碰撞”
输入“一群红色企鹅玩扑克”
让我们自己来试试吧!
由于DALL-E 2目前并没有向所有人开放使用权限,所以我们在这里用DALL·E mini来生成图像。虽然这两者背后的技术有些不同,但我也可以通过使用DALL·E mini来感受人工智能生成图像的趣味和魅力。大家也可以通过这个网址来自己尝试画自己喜欢的图像:https://www.craiyon.com
当输入“宇宙里的摩天大楼”时,会生成这样的图像:
当输入“一座沙漠里的城市”时,会生成这样的图像:
这些图像好像都不错,很符合我们输入的文字提示,图像看起来也很合理,然而有时DALL·E mini也会生成不完全符合文字提示或看起来比较“怪异”的图像。
当输入“微笑的热带鱼”时,会生成这样的图像:
当输入“一只搞笑的猫”时,会生成这样的图像:
这两次生成的图像中可以发现热带鱼和猫咪的五官有些扭曲,所以模型还是有很大提升空间的。不过由于我们这里使用的craiyon生成器使用的是DALL·E mini,而本篇文章意在探讨的DALL-E 2是DALL·E的改进版本,所以用DALL-E 2生成的图像理论上会更真实、更合逻辑。
那如果我们输入的是非英文会是怎样的呢?
当输入“一览众山小”时,生成图像:
当输入“飞流直下三千尺,疑是银河落九天”时,生成图像:
当输入“举杯邀明月,对影成三人”时,生成图像:
从这些生成图像中可以看出,craiyon对中文输入基本上是无法理解其语义的,输出的图像基本上和输入本文毫无关联,但像个别中文词语如“三人”、“山”、“河”,craiyon还是能够理解。不过craiyon虽然无法理解中文,但对图像的风格还是比较敏感的,因为上面这些图像都能从中发现或多或少的中国元素。
接下来再来试试输入其他语言呢
当输入“Nessun dorma! Nessun dorma!”时(这是意大利歌剧《今夜无人入睡》中的一句歌词,意为无人入睡!无人入睡!),生成图像:
从上图可以看出craiyon也无法理解输入的意大利语,所以输出的图像和输入文本毫无关联,不过输出的图像也有意大利的元素,很像南意大利的海边沙滩。
所以可以猜测用英文外的其他语言输入时,craiyon不太能理解文本的意思,所以也很难输出相关联的图像,但它能识别出输入的语言而生成包含特定国家或语言元素的图像。
那么如此强大的模型的原理是什么?又是如何实现的呢?让我们一起来看看吧!
DALL-E 2的原理
1. DALL-E 2的工作流程
在讨论DALL-E 2的原理之前先解释两个概念:文本嵌入(text embedding)和图像嵌入(image embedding)。文本嵌入就是以数学的方式来表示文本信息(如下图),而图像嵌入就是以数学的方式来表示图像信息。
DALL-E 2的工作流程主要可以分为四个部分:
- 首先,输入的文字提示(Image Caption)被文本编码器转换为文本嵌入(CLIP Text embedding);
- 接下来,文本嵌入被输入一个先验模型(Prior)中,而这个模型的输出则是一个图像嵌入(CLIP Image embedding);
- 最后,图像嵌入通过解码器(Decoder)生成对应的图像。
这样看起来DALL-E 2的工作流程好像很简单,但看到这里你是否产生了这样的疑问:文本编码器是什么?先验模型和解码器又是什么?接下来就让我们一起来看下它们到底是什么以及它们是如何被训练的吧!
2. CLIP
CLIP可以说是实现DALL-E 2最重要的一个结构,因为它能把文本信息和图像信息的相互对应联系起来。为了完成DALL-E 2中图像和文本的匹配,CLIP要训练两个编码器,一个文本编码器(text encoder)把文本转换为文本嵌入和一个图像编码器(image encoder)把图像转换为图像嵌入。
训练过程如下图所示。把n个图像和它们对应的n条文本说明输入图像编码器和文本编码器中,然后就得到了n个图像嵌入和n个文本嵌入。I1为第一张图的图像嵌入,T1为第一张图对应的说明文本的文本嵌入,矩阵中的值为对应文本嵌入和图像嵌入的COS值相似度。我们训练的目的就是要让对角线上蓝色格子中的值是最大的,并且让灰色格子中的值最小,这样才能让文本和图像的编码能反映出文本和图像的联系。
3. 先验模型(Prior)
训练好CLIP文本编码器和CLIP图像编码器后就可以对文本和图像进行编码,转换为文本嵌入和图像嵌入了。之后就需要一个先验模型把输入的文本嵌入映射到对应的图像嵌入中。
DALL-E 2采用的先验模型是一个扩散模型(diffusion model)。它在输入数据上逐渐加入噪声,直到输入的数据完全无法识别,变为纯的高斯噪声。噪声处理过程被视为一个参数化的马尔可夫链。然后再一步步重构这个有很多噪生的数据,直到还原为最初的输入数据。通过这个逆转噪声逐渐生成的过程,扩散模型能够学习如何生成数据,这也就是DALL-E 2先验模型的训练过程。
4. 解码器(Decoder)
在先验模型把文本嵌入映射为图像嵌入后,就需要解码器来解码图像嵌入并生成图像。
在图像生成方面,OpenAI有一个模型叫GLIDE,这是一个调整过的扩散模型。与普通扩散模型不同的是,在图像生成的过程中它不只包含图像嵌入,它还包含图像的说明文本来支持图像生成的过程,使其能够生成有文本条件的特定特征的图像。
而DALL-E 2的解码器部分采用的是一个改进过的GLIDE模型,它与普通GLIDE模型不同的是,在图像生成过程中它不仅包含图像嵌入和文本,它还包含CLIP文本嵌入。
虽然DALL-E 2还有一些不足之处——在生成复杂场景时,细节的处理有缺陷、将文本放入图像中的能力不足等,但是和DALL-E 2强大的图像生成和图像二次创作的能力相比,这只是九牛一毛。而且DALL-E 2不只本身作为一个强大的创造力工具,它还再次证明了AI的创造力,以及AI所产生的对创意行业的影响。
就像OpenAI的首席执行官Sam Altman所说:“十年前,传统观点认为人工智能会首先影响体力劳动,然后是脑力劳动,然后也许有一天它可以做创造性工作。现在看起来它会以相反的顺序发展。”
二、 利用宇宙的能力处理数据
目前的很多人工智能应用像人脸识别、自动翻译、自动驾驶都是基于深度神经网络、计算机代码和各种数学运算研发的。那这就是唯一实现人工智能的途径吗?
McMahon和合作学者们给出了否定的答案:实现人工智能还可以使用物理神经网络。这种网络与深度神经网络最大的区别就是这个网络在“思考”的过程中采用的是物理系统而不是计算机代码和数学运算。
深度神经网络
深度神经网络是许多人工智能应用的基础,由一层一层的神经元组成。这种网络的工作过程就是在第一层神经元中输入数据,然后逐层进行数学运算,最后一层的神经元就是神经网络的输出答案。而为了让网络做出更聪明的猜测,学习算法会反向工作。在每次尝试后,它会计算猜测结果和正确答案之间的差值,然后算法通过网络一层一层地往回走,调整权值来改变最终神经元的值,这个过程被称为反向传播。
深度神经网络学习效率高吗?
然而这种深度神经网络获得出众准确率的代价是高计算成本,且与大脑的思考相比,人工神经网络的学习看起来效率非常低。在每天摄入不到2000卡路里热量的情况下,一个人类儿童在几年内就能学会说话、阅读以及更多的东西,但在同样的能量条件下,能够流畅对话的GPT-3神经网络可能需要一千年才能学会聊天。因此物理学家认为,大型神经网络只是去做过多的数学运算,而我们目前的挑战是建立一个能自然完成人工智能所需过程的物理系统,利用宇宙的能力来处理数据。
物理神经网络
今年1月,康奈尔大学的研究小组在《Nature》杂志上发表了一篇论文,标题是“反向传播训练的深度物理神经网络(Deep physical neural networks trained with backpropagation)”。这篇论文介绍了McMahon和合作学者们在物理神经网络方向的进展。
康奈尔大学的研究小组训练了三种不同的物理系统来“读取”手写数字:分别是一个振动的钛板、一个晶体和一个电子电路(如下图所示)。
在机械系统中,输入数据和权重被编码成随时间变化的力施加在钛板上,然后钛板振荡所产生的声音就是输出,用麦克风进行收集和输出结果评估。类似地,在电子系统中,输入数据和权重被编码成随时间变化的电压输进整个非线性电路中,电路产生的瞬时电压就是这个物理神经网络的输出,由示波器进行检测和观察。该小组还在一个光学系统中实现了他们的方案,输入图像和权重被编码在两束由晶体混合在一起的光束中。
对这些物理系统的训练还是要回到数字世界,因为反向传播涉及到反向运行神经网络,但底片和晶体不能轻易地分解声音和光。因此,该团队为每个物理系统构建了一个数字模型。在笔记本电脑上反转这些模型,并用反向传播算法来训练如何调整权重以给出准确的答案。通过这一训练,这三个物理系统学会了对手写数字进行分类,其中机械系统正确率为87%,而电子系统和光学系统的精度分别达到93%和97%。
未来畅想
该研究小组的振动钛板还没有使计算的效率接近大脑的惊人效率,这个设备甚至不及数字神经网络的速度。但这种设备证明了不只有大脑或电脑芯片可以思考。“任何物理系统都可以是神经网络。”McMahon说。与物理模拟网络相比,尽管数字神经网络如今看起来很强大,但随着神经元的增加最终也会显得缓慢和不足。数字神经网络只能扩大到一定程度,否则就会陷入过度的计算,但更大的物理网络只需要做自己就可以了。
参考文献:
- Playing with DALL·E 2
https://www.lesswrong.com/posts/r99tazGiLgzqFX7ka/playing-with-dall-e-2 - DALL·E mini图像生成网站
https://www.craiyon.com - How DALL-E 2 Actually Works
https://www.assemblyai.com/blog/how-dall-e-2-actually-works/ - DALL-E 2原理解释视频
https://www.youtube.com/watch?v=F1X4fHzF4mQ - 结合预训练CLIP和扩散模型实现文本-图像生成
https://zhuanlan.zhihu.com/p/526438544 - DALL-E 2 and the Future of Design
https://www.marketingaiinstitute.com/blog/dall-e-2 - 利用宇宙的能力来处理数据!「物理网络」远胜深度神经网络
https://www.leiphone.com/category/academic/aHCQXaBbt2cviDdz.html - Deep physical neural networks trained with backpropagation论文
https://www.nature.com/articles/s41586-021-04223-6 - 封面图片
https://openai.com/dall-e-2/