找人做仿网站,联想北京有限公司,自己开发小程序多少钱,装修公司logo设计图片生成式人工智能笔记-AIGC笔记
十多年前#xff0c;人工智能还只是一个不被人看好的小众领域#xff0c;但是现在#xff0c;它却已经成了街头巷尾的热点谈资#xff0c;几乎任何事情都可以和人工智能联系在一起。
人工智能包括基础层、技术层和应用层。
基础层是人工智能…生成式人工智能笔记-AIGC笔记
十多年前人工智能还只是一个不被人看好的小众领域但是现在它却已经成了街头巷尾的热点谈资几乎任何事情都可以和人工智能联系在一起。
人工智能包括基础层、技术层和应用层。
基础层是人工智能产业的基础为人工智能提供数据及算力支撑
技术层是人工智能产业的核心主要包括各类模型和算法的研发和升级
应用层则是人工智能面向特定场景需求而形成的软硬件产品或解决方案。
决策式 AI 和 生成式 AI
人工智能可从不同的维度进行划分。如果按其模型来划分人工智能是由模型支撑的可以分为决策式AI和生成式AI。
决策式AI
决策式AI也被称作判别式AI学习数据中的条件概率分布即一个样本归属于特定类别的概率再对新的场景进行判断、分析和预测。决策式AI有几个主要的应用领域人脸识别、推荐系统、风控系统、其他智能决策系统、机器人、自动驾驶。
生成式AI
生成式AI则学习数据中的联合概率分布即数据中多个变量组成的向量的概率分布对已有的数据进行总结归纳并在此基础上使用深度学习技术等创作模仿式、缝合式的内容相当于自动生成全新的内容。
不管是哪种类型的模型它的基础逻辑是一致的AI模型从本质上来说是一个函数要想找到函数准确的表达式只靠逻辑是难以推导的这个函数其实是被训练出来的。
从宏观角度来看决策式AI是一种用于决策的技术它利用机器学习、深度学习和计算机视觉等技术来处理专业领域的问题并帮助企业和组织优化决策。
而生成式AI则是一种用于自动生成新内容的AI技术它可以使用语言模型、图像模型和深度学习等技术自动生成新的文本、图片、音频和视频内容。
因此决策式AI可以说是在对人类的决策过程进行模仿但生成式AI就聚焦在创作新内容上。 从大数据到大模型
大数据指的是海量的数据。
在人工智能领域通过大量的数据来训练模型。拥有海量参数的模型都被称为“大模型
大模型能分析处理海量的数据在解决问题上取得更好的效果。
生成式AI就是大模型的产物。
目前“内容”生产经历了四次迭代
PGC(professional generated content)
PGC(professional generated content)即“专业生产内容”主要指具备专业背景的内容生产者所创造的内容
UGC(user generated content)
UGC(user generated content)“用户生产内容”其内容的源头更偏大众化人人都可作为用户进行内容生产
AIUGC(artificially intelligent UGC)
AIUGC则为人工智能与UGC的结合人工智能参与到了用户创作内容的过程中
AIGC
与PGC、UGC和AIUGC不同的是在AIGC的概念中“无生命的”人工智能成了完全的内容源头“无生命主体”成了为人类创作内容的生产者。
AIGC就是利用人工智能自动生成内容的生产方式它可以在生成式AI模型、训练数据等的基础上生成文本、图片、音频、视频、代码等多样化内容这种快速的内容生产方式给市场注入了令人兴奋的新鲜血液。 生成式 AI 和 决策式 AI 聚焦于不同的认知层面 生成式AI还渗透到了3D领域Magic3D就是GPU图形处理器制造商英伟达推出的一款应用它会先用低分辨率粗略地对事物进行3D建模然后进阶优化为更高分辨率。OpenAI的Dream Fields更是不需要照片就能生成3D模型把“无中生有”玩得透彻。
生成式AI通过学习数据中的联合概率分布对已有的数据进行总结归纳再创作出新的内容。
ChatGPT的“前世”与Transformer变换器模型关系紧密而Transformer模型诞生于2017年。
2017年谷歌大脑团队在神经信息处理系统大会发表了一篇名为《注意力是你所需要的全部》(Attention Is All You Need)的论文。这篇论文的作者在文章中第一次提出了一个基于注意力机制的Transformer模型并且把这个模型首次用在理解人类的语言上这就是自然语言处理。谷歌大脑团队利用非常多已经公开的语言数据集来训练这个最初的Transformer模型而这个Transformer模型包括6500万个可调参数。
经过大量的训练后这个Transformer模型在英语成分句法分析、翻译准确度等多项评分上都在业内达到了第一的水准世界领先成为当时最为先进的大型语言模型。
仅几年内这个模型的影响力就已经渗透到人工智能的各个领域包括多种形式的自然语言模型以及预测蛋白质结构的AlphaFold 2模型等。也就是说它就是后续许多功能强大的AI模型的源头。
在Transformer模型被推出还不足一年的2018年OpenAI公司有了自己的技术突破他们发表了论文《用生成式预训练提高模型的语言理解力》(Improving Language Understanding by Generative Pre training)还推出了具备1.17亿个参数的GPT-1模型。GPT-1模型是一个基于Transformer结构的模型但训练它的数据集更为庞大。
最终训练出的模型GPT-1在文本分类、问答、文本相似性评估、蕴含语义判定这四个评价维度上都取得了比基础Transformer模型更好的结果因此也取代Transformer模型摇身一变成为新的业内龙头。
接着GPT-2GPT-3GPT-… 不断推出。
在2022年神经信息处理系统大会中OpenAI公司再次向大家宣布了它的新突破它又推出了全新的大型语言预训练模型ChatGPT。GPT-3.5是ChatGPT的前身也是OpenAI对GPT-3模型进行微调后开发出来的模型在GPT-3.5诞生后ChatGPT才横空出世。
AIGC 的底层逻辑
人工智能的发展技术上最大的功臣就是深度学习。
深度学习的爆发式增长则得益于海量的数据、图形处理器带来的强大算力以及模型的持续改进。
2006年计算机科学家、认知心理学家杰弗里·辛顿(Geoffrey Hinton)首次提出了“深度信念网络”。与传统的训练方式不同深度信念网络有一个“预训练”(pre-training)的过程可以方便地让神经网络中的权值找到一个接近最优解的值之后再使用“微调”(fine-tuning)来对整个网络进行优化训练。这种分阶段的训练方法大幅度减少了训练深度学习模型的时间。
深度学习的前世今生
机器学习是人工智能的分支它专门研究计算机如何模拟和实现人类的学习行为。
深度学习是机器学习的一种。 深度学习的概念最初起源于人工神经网络(artificial neural networks)。
人工神经网络
人工神经网络是一种模仿人类神经网络来进行信息处理的模型它具有自主学习和自适应的能力。
1943年数学家皮茨(Pitts)和麦卡洛克(McCulloch)建立了第一个神经网络模型M-P模型能够进行逻辑运算为神经网络的发展奠定了基础。
生物神经元一共由四个部分组成细胞体、树突、轴突和轴突末梢。M-P模型其实是对生物神经元结构的模仿。 神经元及M-P模型示意图 20世纪80年代人工智能科学家拉姆梅尔哈特(Rumelhart)、威廉斯(Williams)、辛顿、杨立昆(Yann LeCun)等人发明的多层感知机解决了【对复杂函数的预测】的难题推动了人工神经网络的进一步发展。
20世纪90年代诺贝尔奖获得者埃德尔曼(Edelman)提出Darwinism模型并建立了一种神经网络系统理论。他从达尔文的自然选择理论中获得启发将其与大脑的思维方式联系在了一起认为“面对未知的未来成功适应的基本要求是预先存在的多样性”这与我们现在谈论较多的模型训练和预测方式相契合对90年代神经网络的发展产生了重大意义。
深度学习
直到2006年被称为“人工智能教父”的辛顿正式提出了深度学习的概念认为通过无监督学习和有监督学习相结合的方式可以对现有的模型进行优化。这一观点的提出在人工智能领域引起了很大反响许多像斯坦福大学这样的著名高校的学者纷纷开始研究深度学习。2006年被称为“深度学习元年”。
2009年深度学习应用于语音识别领域。
2012年深度学习模型AlexNet在ImageNet图像识别大赛中拔得头筹深度学习开始被视为神经网络的代名词。
同样是在这一年人工智能领域权威学者吴恩达教授开发的深度神经网络将图像识别的错误率从26%降低到了15%这是人工智能在图像识别领域的一大进步。
2014年脸书开发的深度学习项目DeepFace在识别人脸方面的准确率达到了97%以上。
2016年基于深度学习的AlphaGo在围棋比赛中战胜了韩国顶尖棋手李世石在世界范围内引起轰动这一事件不但使深度学习受到了认可人工智能也因此被社会大众熟知。
2017年深度学习开始在各个领域展开应用如城市安防、医学影像、金融风控、课堂教学等。
一直到最近的现象级产品ChatGPT它在不知不觉中已经渗透到我们的生活中。
深度学习的经典模型
深度学习是建立在计算机神经网络理论和机器学习理论上的科学它使用建立在复杂网络结构上的多处理层结合非线性转换方法对复杂数据模型进行抽象能够很好地识别图像、声音和文本。
深度学习的两种经典模型CNN 和 RNN
CNN 卷积神经网络
CNN的全称是convolutional neural network也就是卷积神经网络。
卷积神经网络共分为以下几个层级部分输入层(input layer)、卷积层(convolution layer)、池化层(pooling layer)、全连接层(fully connected layer)。 卷积神经网络工作过程示意图 输入层
对图像进行简单处理如降低图像维度便于图像识别
卷积层
卷积层的神经元对图像进行各个维度的特征提取。
针对的是图像的局部进行特征提取如需要识别图像中的小狗神经元只负责处理狗的耳朵、眼睛等。
卷积层对图像进行不同尺度的特征提取大大丰富了获取特征的维度有助于提升最终识别的准确度。
池化
对图像进行压缩降维减少图像识别需要处理的数据量。
全连接
将前面提取出来的所有图像特征连接组合起来如将提取到的小狗的头部、身体、腿部等局部特征组合起来形成完整的包含小狗的特征向量然后识别出类别。
卷积神经网络的三个特点
1、每个神经元只需要聚焦图像的一小部分而不是图像的全部识别难度降低
2、卷积层的神经元可以应用于不同的图像识别任务如训练好的可以识别小狗的神经元也可以继续识别其他相似物体
3、图像特征维度降低但保留了图像主要特征减少了数据量。
所以卷积神经网络特别适合于图像识别。 卷积神经网络图像识别过程示意图 RNN 循环神经网络
RNN的全称是recurrent neural network也就是循环神经网络。对循环神经网络的研究最早出现于20世纪80年代末由几位神经网络专家提出该模型经常用于时序信号如语音的识别和理解。
循环就是重复的意思循环神经网络模型在运行时会对同一个序列进行循环重复的操作。序列是被排成一列的对象序列中的元素相互依赖排列顺序非常重要比如时序数据、对话等一旦顺序错乱含义和作用都会发生巨大改变。循环神经网络解决了卷积神经网络不能很好地识别连续性事件一段连续的话、一个语言故事“小明每次去超市都会买很多苹果因为他喜欢吃”这个问题的答案是很容易推测出“苹果”但人工神经网络和卷积神经网络却很难联系上下文给出答案循环神经网络就是对它们不足之处的弥补的问题在深度学习领域发挥着不可替代的作用。
循环神经网络之所以能对连续性事件进行识别是因为它不仅将当前的输入数据作为网络输入还将之前感知到的数据一并作为输入。根据记忆的长短从第一层开始将激活传递到下一层以此类推最后得到输出结果。
一个循环神经网络由输入层、隐藏层和输出层三部分组成。
循环就发生在隐藏层。
隐藏层里一般会设置一个特定的预测函数当我们向循环神经网络模型输入一个连续性事件后在隐藏层的这个函数就会进行运算这个运算结果又可以作为输入进入隐藏层再一次进行运算。如此这般就形成了一个不断循环的预测这个预测既与新输入的数据有关也取决于每一次循环的输入。 循环神经网络原理示意图 GAN 生成式对抗网络
GAN的全称是generative adversarial networks即生成式对抗网络由伊恩·古德费洛(Ian Goodfellow)等人在2014年提出此后各种花式变体如CycleGAN、StyleGAN等层出不穷在“换脸”“换衣”等场景下生成的图片和视频足以以假乱真。2020年PaddleGAN实现的表情迁移模型能用一张照片生成一段唱歌视频使“蚂蚁呀嘿”等各种搞笑视频火遍全网。
生成式对抗网络是基于无监督学习方法的一种模型即通过两个神经网络相互博弈的方式进行学习这两个神经网络一个是生成网络另一个是判别网络。
生成网络从潜在空间中随机取样作为输入生成网络接收噪声向量再将这个噪声向量转换为虚拟数据其输出结果需要尽量模仿训练集中的真实样本然后将虚拟数据发送到判别网络进行分类。
而判别网络的输入则为真实样本和生成网络的输出结果其工作是将生成网络的输出与真实样本区别开来。两个网络相互对抗、不断调整参数最终达到生成网络的输出结果与真实样本无二。 GAN 网络架构示意图 噪声向量
何为噪声
简单说如下图我们要识别图片中的“水”那么“沙漠”就是噪声。 再比如一张图片里有猫和狗我们要识别猫那么图片中的狗就是噪声。
在深度学习中训练时往往会在输入数据中加入噪声以提高模型的鲁棒性和泛化能力。 这称为数据扩充。 通过向输入数据添加噪声模型被迫学习对输入中的微小变化具有鲁棒性的特征这可以帮助它在新的、看不见的数据上表现更好。
鲁棒性也称为健壮性指控制系统在一定结构大小的参数摄动下维持其它某些性能的特性。
GAN生成器Generator的输入是随机噪声目的是每次生成不同的图片。但如果完全随机就不知道生成的图像有什么特征结果就会不可控因此通常从一个先验的随机分布产生噪声。常用的随机分布
高斯分布连续变量中最广泛使用的概率分布均匀分布连续变量x的一种简单分布。
引入随机噪声使得生成的图片具有多样性比如下图不同的噪声z可以产生不同的数字 所以噪声的作用就是保证生成的图片不同但又在合适区间内不是完全随机。即保证结果不同且可控、可靠。
生成式对抗网络的通俗原理
通俗来说GAN的工作原理类似于这样的场景 一个男生试图拍出摄影师级别的照片而一个女生要找出照片的瑕疵。 这个过程是男生先拍出一些照片然后由女生分辨出男生拍的照片与摄影师级别的照片的区别。 男生再根据反馈改进自己的拍摄技术和方法拍出一些新的照片女生再对这些新照片继续提出修改意见。 直到达到均衡状态——女生无法再分辨男生拍的照片与摄影师级别的照片有什么区别。
通过这种方式GAN能够从多个维度学习到大量无标注数据的特性。以往的模型训练过程要标注员将输入数据打上标签之后模型才开始进行学习
而利用生成网络和判别网络之间的相互对抗GAN可自发学习输入数据的规律确保生成结果接近训练集中的真实样本从而实现无标注数据的学习。
其实GAN和所有的生成式模型都一样目标就是拟合训练数据的分布对于图片生成任务来说就是拟合训练集图片的像素概率分布。 GAN模型实现图片的风格迁移 Transformer从序列到序列 seq2seq
Transformer是“转换器”的意思。这也正是Transformer的核心也就是它能实现的功能——从序列到序列。但这个从序列到序列可不是简单地从一个词跳到另一个词中间要经过很多道“工序”才能实现想要的效果。
序列翻译自英文 sequence指的是文本数据、语音数据、视频数据等一系列具有连续关系的数据。不同于图片数据不同图片之间往往不具有什么关系文本、语音和视频这种数据具有连续关系。这些数据在这一时刻的内容往往与前几个时刻的内容相关同样也会影响着后续时刻的内容。 序列到序列的问题示例 序列到序列模型一般是由编码器(encoder)和解码器(decoder)组成的。其工作流程可以简单描述为在编码器侧对输入序列进行编码生成一个中间的语义编码向量然后在解码器侧对这个中间向量进行解码得到目标输出序列。
以中译英场景为例编码器侧对应的输入是一段中文序列解码器侧对应的输出就是翻译出来的英文序列。 编解码机制结构图 在实际应用过程中序列到序列模型的输入输出数据可以是不同形式的数据对应的编码器侧和解码器侧采用的模型结构可以是不同的。
序列到序列模型看似非常完美但是在实际使用的过程中仍然会遇到一些问题。比如在翻译场景下如果句子过长会产生梯度消失的问题。由于解码时使用的是最后一个隐藏层输出的定长向量那么越靠近末端的单词会被“记忆”得越深刻而远离末端的单词则会被逐渐稀释掉最终模型输出的结果也因此不尽如人意。面对这些问题研究人员也提出了对应的解决方案比如加入注意力(attention)机制。
Transformer注意力机制
传统的编码器—解码器架构对序列长度有限制本质原因是它无法体现对一个句子序列中不同词语的关注程度。在不同的自然语言处理任务中一个句子中的不同部分是有不同含义和重要性的比如“我喜欢这本书因为它讲了很多关于养花的知识”这句话如果对这句话做情感分析训练的时候明显应该对“喜欢”这个词语进行更多的关注而如果基于书的内容进行分类我们应该更关注“养花”这个词。这就涉及我们接下来要谈的注意力机制这其实是借鉴了人类的注意力思维方式人类从直觉出发能利用有限的注意力从大量信息中快速获取最有价值的信息。
注意力机制通过计算编码器端的输出结果中每个向量与解码器端的输出结果中每个向量的相关性得出若干相关性分数再进行归一化处理将其转化为相关性权重用来表征输入序列与输出序列各元素之间的相关性。注意力机制训练的过程中不断调整、优化这个权重向量最终目标就是要帮助解码器在生成结果时对于输入序列中每个元素都能有一个合理的相关性权重参考。
自注意力机制是注意力机制的一种变体。它减少了对外部信息的依赖更擅长捕捉数据或特征的内部相关性。例如这样一句英文“He thought it was light before he lifted the backpack.”在举起这个背包之前他觉得它是轻的。这里“light”的意思是“灯”还是“轻的”呢这就需要我们联系上下文来理解。我们在看到“backpack”之后就应该知道这里的“light”很大概率指的是“轻的”。自注意力机制会计算每个单词与其他所有单词之间的关联在这句话里当翻译“light”一词时“backpack”一词就有较高的相关性权重。
Transformer 模型
Transformer模型在普通的编码器—解码器结构基础上做了升级它的编码端是由多个编码器串联构成的而解码端同样由多个解码器构成。
它同时也在输入编码和自注意力方面做了优化例如采用多头注意力机制、引入位置编码机制等等能够识别更复杂的语言情况从而能够处理更为复杂的任务。 Transformer 网络结构图 Transformer 编解码器内部结构图 多头注意力(multi-head attention)。简单点说不同标记相互之间的注意力通过多个注意力头来实现而多个注意力头针对标记之间的相关性来计算注意力权重。
如在一个句子中某个注意力头主要关注上一个单词和下一个单词的关系而另一个注意力头就会把关注点放在句子中动词和其对应宾语的关系上。
而在实际操作中这些注意力头的计算都是同步进行的这样整体反应速度就会加快。这些注意力头的计算完成以后会被拼接在一起由最终的前馈神经网络层进行处理后输出。
“The monkey ate the banana quickly and it looks hungry.”猴子快速地吃了香蕉它看起来很饿。这句话中的“it”指的是什么是“banana”还是“monkey”
在多头注意力机制中其中一个编码器对单词“it”进行编码时可能更专注于“monkey”而另一个编码器的结果可能认为“it”和“banana”之间的关联性更强这种情况下模型最后输出的结果较大可能会出现偏差。这时候多头注意力机制就发挥了作用有其他更多编码器注意到“hungry”通过多个编码结果的加权组合最终单词“hungry”的出现将导致“it”与“monkey”之间产生更大的关联性也就最大限度上消除了语义理解上的偏差。
位置编码(positional encoding)机制也是Transformer特有的。在输入的时候加上位置编码的作用在于计算时不但要知道注意力聚焦在哪个单词上面还需要知道单词之间的相对位置关系。例如“She bought a book and a pen.”她买了书和笔。这句话中的两个“a”修饰的是什么是“book”还是“pen”意思是“一本”还是“一支”
如果只使用自注意力机制可能会忽略两个“a”和它们后面名词之间的关系而只关注“a”和其他单词之间的相关性。引入位置编码就能很好地解决这个问题。通过加入位置编码信息每个单词都会被加上一个表示它在序列中位置的向量。这样在计算相关性时模型不仅能够考虑单词之间的语义相关性还能够考虑单词之间的位置相关性也就能够更准确地理解句子中每个单词所指代或修饰的对象。
多头注意力机制关注的是语义相关性位置编码机制关注的是位置相关性。
通过引入多头注意力机制、位置编码等方式Transformer有了最大限度理解语义并输出相应回答的能力这也为后续GPT模型这种大规模预训练模型的出现奠定了基础。
GPT 系列模型
一般的神经网络在进行训练时先对网络中的参数进行随机初始化再利用算法不断优化模型参数。
GPT属于典型的“预训练微调”两阶段模型。
GPT的训练方式是模型参数不再是随机初始化的而是使用大量通用数据进行“预训练”得到一套模型参数
然后用这套参数对模型进行初始化再利用少量特定领域的数据进行训练这个过程即为“微调”。
预训练属于迁移学习的一种。预训练语言模型把自然语言处理带入了一个新的阶段——通过大数据预训练加小数据微调自然语言处理任务的解决无须再依赖大量的人工调参。
GPT系列的模型结构秉承了不断堆叠Transformer的思想将Transformer作为特征抽取器使用超大的训练语料库、超多的模型参数以及超强的计算资源来进行训练并通过不断提升训练语料的规模和质量提升网络的参数数量完成迭代更新。GPT模型的更新迭代也证明了通过不断提升模型
ChatGPT的训练分为三个步骤。
第一步通过人工标注的方式生成微调模型。标注团队首先准备一定数量的提示词样本一部分由标注团队自行准备另一部分来自OpenAI现有的数据积累。
然后他们对这些样本进行了标注其实就是人工对这些提示词输出了对应的答复从而构成了“提示词—答复对”这样的数据集。最后用这些数据集来微调GPT-3.5得到一个微调模型。 ChatGPT 模型训练步骤 第二步训练一个可以评价答复满意度的奖励模型。同样准备一个提示词样本集让第一步得到的模型来对其进行答复。对于每个提示词要求模型输出多个答复。标注团队需要做的工作就是将每个提示词的答复进行排序这其中隐含了人类对模型输出效果的预期以此形成了新的标注数据集最终用来训练奖励模型。通过这个奖励模型可以对模型的答复进行打分也就为模型的答复提供了评价标准。
第三步利用第二步训练好的奖励模型通过强化学习算法来优化答复策略。这里采用的是一种策略优化模型它会根据正在采取的行动和收到的奖励不断调整当前策略。具体来说首先准备一个提示词样本集对其中的提示词进行答复然后利用第二步训练好的奖励模型去对该答复进行打分根据打分结果调整答复策略。在此过程中人工已经不再参与而是利用“AI训练AI”的方式进行策略的更新。最终重复这个过程多次之后就能得到一个答复质量更好的策略。
Diffusion 模型
促进AIGC领域快速发展的另一大功臣当然要数AI绘画技术的进步。尤其是2022年4月OpenAI发布的一款强大的AI绘画工具——DALL·E2。运用该工具只需输入简短的文字就可以生成全新的图像。
而它背后的技术核心就是——Diffusion模型。
生成对抗网络模型的缺点
在Diffusion模型出现之前以GAN生成对抗网络模型为基础的图像生成模型还一直是研究的主流但是GAN存在一些已知的缺陷。它可能不能学习完整的概率分布比如用各种动物的图像训练GAN它可能仅生成狗的图像另外还存在难训练等阻碍其广泛使用的一些技术问题。
Diffusion 模型的优点
而Diffusion模型利用最新的训练技术跨越了GAN模型调优的阶段可以直接用来做特定领域的任务能实现令人震惊的生成效果这也使得Diffusion模型领域的研究呈现出百花齐放的状态。
Diffusion 模型的本质与原理
Diffusion在中文中被译为“扩散”。扩散是一种物理学现象指的是一种基于分子热运动的输运现象是分子通过布朗运动从高浓度区域向低浓度区域转移的过程。它是趋向于热平衡态的过程也是熵驱动的过程。
比如
一滴墨水扩散到整个盛水的容器中。在这个扩散过程中尝试计算容器的某个小体积内墨水分子的分布情况是非常困难的因为这种分布很复杂也很难取样。但是墨水最终会完全扩散到水中这时候就可以直接用数学表达式来描述这种均匀且简单的分子概率分布。
统计热力学可以描述扩散过程中每一时刻的概率分布而且每一时刻都是可逆的只要步间距足够小就可以从简单分布重新回到复杂分布。
Diffusion模型亦即扩散模型最早是2015年在《基于非平衡热力学的深度无监督学习》(Deep Unsupervised Learning using Nonequilibrium Thermodynamics)论文中提出的。作者受统计热力学的启发开发了一种新的生成模型。想法其实很简单首先向训练数据集中的图像不断加入噪声使之最终变成一张模糊的图像这个过程就类似于向水中加入一滴墨水墨水扩散水变成淡蓝色然后教模型学习如何逆转这一过程将噪声转化为图像。
扩散模型的算法实现分为两个过程正向扩散过程和逆向扩散过程。正向扩散过程可以描述为逐渐将高斯噪声应用于图像直到图像变得完全无法识别。
比如 通过正向扩散过程图中的风景变得模糊起来直到最后一整张图变成马赛克。这个过程看上去充满随机性但实际上是存在特定意义的整个过程可以表述为正向扩散过程的马尔可夫链——描述从一个状态到另一个状态的转换的随机过程。而这个随机过程中的每一个状态概率分布只能由其前一个状态决定与其他状态无关。对应地我们可以把整个正向扩散过程的每一张图片定义为一个状态那每一张图片是什么样子只跟它的上一张图片有关并且遵循一定的概率分布。如此我们首先得到了一个定义明确的正向过程。 扩散模型的扩散过程 那如何应用这一过程将马赛克图像恢复到原始图像其中的问题在于从正向过程推导出明确的逆向过程是非常困难的。这一点根据实际情况也可以想象得到一张多次加入随机噪声的非常模糊的图像几乎是不可能完全恢复成原始图像的。
于是扩散模型采用的是一种近似的方式即通过神经网络学习的方式近似计算逆向扩散过程的概率分布。
应用这种方法之后即便是一张多次加入噪声后变得完全模糊的图像也能被恢复成一张接近原始模样的图像而且随着模型的迭代学习最终生成的结果也将更符合要求。
通过正向扩散和逆向扩散两个过程扩散模型就能实现以一张原始图像为基础生成一张全新的图像。这大大降低了模型训练过程中数据处理的难度相当于用一个新的数学范式从另一个角度定义“生成”过程。和GAN模型相比扩散模型只需要训练“生成器”训练目标函数简单而且不需要训练别的网络实现了易用性的极大增强。
扩散模型在提出之初并没有受到很大的关注。
这一方面是因为当时GAN模型大行其道研究人员的研究重心依然围绕在GAN基础上的优化
另一方面是因为最开始的扩散模型生成的结果不是很理想而且由于扩散过程是一个马尔可夫链其缺点就是需要比较多的扩散步数才可以获得比较好的效果这导致了样本生成很慢。
正如前述论文作者回忆时称的“当时这个模型并不令人惊喜”。
殊不知更现代化的图像生成技术已悄悄萌芽这一新的生成模型迸发出了令人意想不到的生命力真正地登上了历史舞台生成式图像应用也进入了“文本到图像”的摩登时代。
Stable Diffusion
Stable Diffusion是由Stability AI主导开发的文本生成图像模型其交互简单生成速度快在极大地降低了使用门槛的同时还保持了令人惊讶的生成效果从而掀起了另一股AI绘画的创作热潮。 Stable Diffusion的工作原理就是通过文本编码器将语义转化为计算机可以处理的语言也就是将文本编码成计算机能理解的数学表示之后将这些编码后的结果通过图像生成器转换为符合语义要求的图像。
首先来看文本编码器部分。计算机本身无法理解人类语言需要使用一种文本编码的技术即CLIP模型。CLIP模型是由OpenAI开源的深度学习领域的一个多模态模型。CLIP全称为contrastive language-image pre-training即基于对比学习的大规模图文预训练模型。CLIP模型不仅有着语义理解的功能还有将文本信息和图像信息结合并通过注意力机制进行耦合的功能。CLIP模型在Stable Diffusion是怎么被训练并在文图转换中发挥作用的呢
要训练一个能够处理人类语言并将其转化成计算机视觉语言的CLIP模型必须先有一个结合人类语言和计算机视觉的数据集。实际上CLIP模型就是在从网上收集到的4亿张图片和它们对应的文字描述基础上训练出来的。
CLIP模型由一个图像编码器和一个文本编码器构成。CLIP模型的训练过程如下图所示。首先从积累的数据集中随机抽取出一张图片和一段文字在这里文字和图片不一定是匹配的。抽取出的图片和文字会通过图像编码器和文本编码器被编码成两个向量。CLIP模型的任务就是确保图文匹配并在此基础上进行训练最终得到两个编码器各自最优的参数。 CLIP 训练图片及相关描述示例 CLIP 模型训练过程 比如一张狗的图片和“一只狗”的文字训练好的CLIP模型就会将这两个内容通过图像编码器和文本编码器生成相似的编码结果确保文字和图片是匹配的这两者之间也就有了可以相互转化的基础。同时通过CLIP模型人类语言和计算机视觉就有了统一的数学表示这也就是文字生成图像的秘密所在。可以说CLIP模型在Stable Diffusion的文本编码器部分发挥了最核心的作用。
图像生成器部分由两个阶段构成一个是图像信息生成阶段一个是图像解码阶段。
在图像信息生成阶段扩散模型首先利用随机数生成函数生成一个随机噪声之后与文本编码器部分利用CLIP模型生成的编码信息结合生成一个包含噪声的语义编码信息。
然后这个语义编码信息又生成较低维度的图像信息也就是所谓的隐空间信息(information of latent space)代表着这个图像存在着隐变量。这也是Stable Diffusion较之前扩散模型在处理速度和资源利用上更胜一筹的原因。
一般的扩散模型在这个阶段都是直接生成图像所以生成的信息更多处理难度也更大。但是Stable Diffusion先生成隐变量所以需要处理的信息更少负荷也更小。
从技术上来说Stable Diffusion是怎么做到的呢其实是由一个深度学习分割网络(Unet)和一个调度算法共同完成的。调度算法控制生成的进度Unet就具体去一步一步地执行生成的过程。在这个过程中整个Unet的生成迭代过程要重复50~100次隐变量的质量也在这个迭代的过程中变得更好。
图像信息生成之后就到了图像解码阶段。图像解码过程实际就是接过图像信息的隐变量将其升维放大还原成一张完整的图片。图像解码过程也是我们真正能获得一张图片的最终过程。由于扩散过程是一步一步迭代去噪的每一步都向隐变量中注入语义信息不断重复直到去噪完成。在图像解码过程中通过Unet的生成迭代图片一步一步地成为我们想要的样子。 总结下就是
Stable Diffusion首先通过CLIP模型对输入提示词进行语义理解将其转换成与图像编码接近的编码信息在后续模块看来一段文字已经变成一张相似语义的图片了然后在图像生成器模块中完成完整的扩散、去噪、图像生成过程生成一张符合提示词要求的图片。最终通过文本编码器和图像生成器的共同作用“字”变成“画”、“文字变图片”这种看似神奇的事就发生了。
AGI
近年来人工智能解决方案在自然语言处理、视觉识别文本、图片和视频生成等关键领域取得了令人难以置信的进步。而现在人工智能正试图在匹配人类智能方面取得巨大飞跃从只能适配特定领域的“弱人工智能”向着更具通用性也可以说更强大的人工智能——AGIartificial general intelligence通用人工智能前进。AGI无疑会成为下一个迅速发展的方向。
AGI也可称为“强人工智能”(strong AI)指的是具备与人类同等智慧或超越人类智慧的人工智能能表现出正常人类的所有智能行为。相较而言我们现在和过去的所有人工智能都还属于“弱人工智能”或“窄人工智能”虽然针对某一特定问题的解决能力可以很强甚至超越人类但很难解决其他问题。比如我们教会机器识别人脸但这一能力以及习得这一能力的过程和基本方法对帮助它控制身体平衡和导航没什么帮助。
未来人工智能若要达到AGI的水平还需具备更加强大的能力例如存在不确定性因素时进行推理和制定决策的能力知识表示的能力包括常识性知识的表示能力规划、学习以及使用自然语言进行沟通的能力将上述能力整合起来实现既定目标的能力。
AGI将会是人工智能研究领域的下一个重要飞跃。
AGI 未来的研究方向
第一跨模态感知。
我们将平时接触到的每一个信息来源域称为一个模态这些来源可以是文字、声音、图像、味觉、触觉等等。
而当前绝大部分的人工智能系统只能单独运用其中的一项作为传感器来感知世界对于不同的模态需要设计不同的专有模型。
各种模型之间无法真正打通是走向AGI的一大痛点。因此研究如何让人工智能系统实现跨模态感知非常关键。
第二多任务协作。
人类能够同时处理多个任务并在不同任务之间进行协调和转换。当人们面对机器人时一句简单的吩咐比如“请帮我热一下午餐”“请帮我把遥控器拿过来”等等这些指令听上去简单执行时却包含了理解指令、分解任务、规划路线、识别物体等一系列动作针对每一个细分的动作都有专门的系统或者模型的设计。这就要求机器人有多任务协作的能力。因此多任务协作是AGI最重要的研究方向之一。让“通用性”体现为不仅能够同时完成多种任务还能够快速适应与其训练情况不同的新任务。
第三自我学习和适应。
人类具有学习和适应能力能够通过不断的学习和经验积累来提高自己的能力。因此研究如何让人工智能系统具有自我学习和适应能力也是实现AGI的必要步骤。
其中主要包括增量学习、迁移学习和领域自适应三个方向。
增量学习就像人每天不断学习和接收新的知识并且对已经学习到的知识不会遗忘增量学习是指一个学习系统能不断地从新样本中学习新的知识并能保存大部分以前已经学习到的知识它解决的是深度学习中“灾难性遗忘”的问题。
迁移学习是人类的一种很常见的能力例如我们可能会发现学习识别苹果可能有助于识别梨或者学习弹奏电子琴可能有助于学习弹钢琴。在机器学习中我们可以把为任务A开发的模型作为初始点重新使用在为任务B开发模型的过程中即通过从已学习的相关任务中转移知识来改进学习的新任务。迁移学习的核心是找到并合理利用源领域和目标领域之间的相似性。
领域自适应可以看成迁移学习的一种旨在利用源领域中标注好的数据学习一个精确的模型运用到无标注或只有少量标注的目标领域中。它要解决的核心问题是源领域和目标领域数据的联合概率分布不匹配。
第四情感理解。
能够理解并表达情感是人类最重要的特征它在交流协作中甚至常常影响事件的下一步走向。让人工智能系统理解情感包括情感表达、情感分析和情感生成等是实现AGI的一个关键方向。
第五超级计算能力。
实现AGI需要庞大的计算资源和超级计算能力。
AIGC 的优势与瓶颈
优势
以ChatGPT为代表的AIGC应用目前已深度参与到企业的业务流程改造工作中将文本、图片、视频、代码等内容的自动化生成能力与原有的企业管理系统集成与融合能够精简和优化原本复杂的业务流程大幅提升组织的业务运行效率。
AIGC对业务流程的影响无疑是积极的无论将AIGC用于内容撰写、智能客服、日程管理还是用于市场营销、销售、财务、人力等业务领域它都能够不同程度地精简或优化业务流程缩短业务流程周期提高业务流程效率最终对企业和组织起到降本增效的作用。
瓶颈
1、内容准确率不高、可信性不强、文本直接拼凑、没有逻辑性等
2、AIGC的运行需要庞大的算力支持技术的发展也加剧着对算力的需求这势必产生巨大的成本甚至需要探索计算方式的变革。
3、AIGC的发展和应用也可能会造成人员失业问题取代部分蓝领和白领的工作由此带来社会大范围的焦虑和恐慌。数据安全与隐私保护、著作权争议等问题也是AIGC进一步发展的瓶颈。
4、AIGC的生成能力来自数据和模型而数据来源本身就会引起隐忧。AIGC的发展同样需要面对和解决数据问题数据传输的安全、数据保护的安全等。