1、前言
最近,AIGC(AI-Generated Content,人工智能生成内容)发展迅速,不仅被消费者追捧,而且备受技术和产业界关注。2022年9月23日,红杉美国发表文章《生成式AI:一个创造性的新世界》,认为 AIGC会代表新一轮范式转移的开始。2022年10月,Stability AI发布开源模型Stable Diffusion,可以根据用户输入的文字描述(称为提示词,prompts)自动生成图像,即文生图(Text-to-Image). Stable Diffusion、DALL-E 2、Midjourney、文心一格等可以生成图片的AIGC模型引爆了AI作画领域,AI作画风行一时,标志人工智能向艺术领域渗透。下图展示了由百度“文心一格”平台创作的“未来机甲”主题作品。
图1 由百度“文心一格”平台创作的AI画作
AIGC领域的迅猛发展,离不开深度神经网络的进步。具体地说,是Transform模型的出现,赋予了神经网络更加强大的全局计算能力,减少了网络训练耗时,提高了网络模型的表现能力。当前表现较为优秀的AIGC领域模型,其技术底层架构中均包含Attention和 Transform技术。
2、发展历史
2.1 深度神经网络
以深度神经网络为代表的信息技术的发展,推动了人工智能领域的进步与拓展。2006年,Hinton等人利用单层的RBM自编码预训练使得深层的神经网络训练得以实现;2012年,Hinton和Alex Krizhevsky设计的AlexNet神经网络模型在ImageNet竞赛中实现图像识别分类,成为新一轮人工智能发展的起点。当前流行的深度神经网络是仿照生物神经网络所提出的概念。在生物神经网络中,生物神经元层层传递接收到的信息,多个神经元信息汇总得到最终的结果。使用类比生物神经单元设计的逻辑神经单元构建的数学模型被称为人工神经网络。在人工神经网络中,逻辑神经单元被用来探索输入数据和输出数据间的隐藏关系,当数据量较小时,浅层的神经网络就可以满足一些任务的要求,然而,随着数据规模的不断扩大,深度神经网络开始显示出其得天独厚的优势。
2.2 注意力机制
注意力机制(Attention Mechanism)由Bengio团队于2014年提出并在近年广泛的应用在深度学习中的各个领域,例如在计算机视觉方向用于捕捉图像上的感受野,或者NLP中用于定位关键token或者特征。大量实验证明,添加了注意力机制的模型在图像分类、分割、追踪、增强以及自然语言识别、理解、问答、翻译中均取得显著的效果提升。
注意力机制仿照视觉注意力机制而来。视觉注意力机制是人类大脑的一种天生的能力。当我们看到一幅图片时,先是快速扫过图片,然后锁定需要重点关注的目标区域。比如当我们观察下述图片时,注意力很容易就集中在了婴儿脸部、文章标题和文章首句等位置。试想,如果每个局部信息都不放过,那么必然耗费很多精力,不利于人类的生存进化。同样地,在深度学习网络中引入类似的机制,可以简化模型,加速计算。从本质上理解,Attention是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多不重要的信息。
图2 人类注意力机制示意图
3、技术详解
智能Transformer模型抛弃了传统的CNN和RNN单元,整个网络结构完全是由注意力机制组成。在本章节中,我们会首先介绍 Transformer模型的总体流程,之后详细介绍其中涉及的位置编码信息和Self-Attention计算。
3.1 流程总述
图3 注意力机制流程图
如上图所示,Transformer由Encoder模块和Decoder模块两个部分组成,Encoder和Decoder都包含N个block。以执行翻译任务为例,Transformer的工作流程大体如下:
第一步:获取输入句子的每一个单词的表示向量X,X由单词自身Embedding和单词位置的Embedding相加得到。
第二步:将得到的单词表示向量矩阵传入Encoder模块中,Encoder模块对于输入数据采用Attention方法进行计算。经过N个Encoder模块后可以得到句子所有单词的编码信息矩阵,每一个Encoder模块输出的矩阵维度与输入完全一致。
第三步:将Encoder模块输出的编码信息矩阵传递到Decoder模块中,Decoder会依次根据当前翻译过的单词i翻译下一个单词i+1。与Encoder结构相同,Decoder结构也使用Attention方法进行计算。在使用的过程中,翻译到单词i+1的时候需要通过Mask操作遮盖住i+1之后的单词。
3.2 Self-Attention计算
Transform模型的核心是注意力计算,其可以通过公式表示为
其中,Q,K,V分别表示Query,Key,Value,这三个概念取自于信息检索系统,举个简单的搜索的例子来说。当你在某电商平台搜索某件商品时,你在搜索引擎上输入的内容便是Query,然后搜索引擎根据Query为你匹配Key(例如商品的种类,颜色,描述等),然后根据Query和Key的相似度得到匹配的内容(Value)。
self-attention中的Q,K,V也是起着类似的作用,在矩阵计算中,点积是计算两个矩阵相似度的方法之一,因此上述公式中使用了Q矩阵乘以K矩阵的转置进行相似度的计算。为了防止内积过大,需要除以d的平方根,最后对结果施以softmax激活函数。
3.3 位置编码
Transformer中除了单词自身的Embedding,还需要使用位置Embedding表示单词出现在句子中的位置。因为Transformer不采用RNN的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于NLP或CV而言均非常重要。所以Transformer中使用位置Embedding保存单词在序列中的相对或绝对位置。
位置Embedding用PE表示,PE的维度与单词Embedding是一样的。PE可以通过训练得到,也可以使用某种公式计算得到。在Transformer中采用了后者,计算公式如下:
其中,pos表示单词在句子中的位置,d表示PE的维度,其大小与单词自身Embedding相同,2i表示偶数的维度,2i+1表示奇数维度。
4、总结
Transformer的重点是Self-Attention结构,通过多维的Attention结构,网络可以捕获单词之间多种维度上的隐藏关系,然而Transformer本身是不能利用单词的顺序信息的,因此需要在输入中添加位置Embedding,用以存储单词的位置信息。与循环神经网络相比,Transformer网络可以比较好地并行训练,与卷积神经网络相比,Transformer网络计算两个位置之间的关联所需的操作次数不随距离增长,可以突破卷积神经网络受限于感受野大小的计算距离。同时,Transformer网络可以产生更具可解释性的模型。我们可以从模型中检查注意力分布,各个注意头(attention head)可以学会执行不同的任务。
以上是Transformer技术原理综述的详细内容。更多信息请关注PHP中文网其他相关文章!

使用Gemma范围探索语言模型的内部工作 了解AI语言模型的复杂性是一个重大挑战。 Google发布的Gemma Scope是一种综合工具包,为研究人员提供了一种强大的探索方式

解锁业务成功:成为商业智能分析师的指南 想象一下,将原始数据转换为驱动组织增长的可行见解。 这是商业智能(BI)分析师的力量 - 在GU中的关键作用

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

介绍 想象一个繁华的办公室,两名专业人员在一个关键项目中合作。 业务分析师专注于公司的目标,确定改进领域,并确保与市场趋势保持战略一致。 simu

Excel 数据计数与分析:COUNT 和 COUNTA 函数详解 精确的数据计数和分析在 Excel 中至关重要,尤其是在处理大型数据集时。Excel 提供了多种函数来实现此目的,其中 COUNT 和 COUNTA 函数是用于在不同条件下统计单元格数量的关键工具。虽然这两个函数都用于计数单元格,但它们的设计目标却针对不同的数据类型。让我们深入了解 COUNT 和 COUNTA 函数的具体细节,突出它们独特的特性和区别,并学习如何在数据分析中应用它们。 要点概述 理解 COUNT 和 COU

Google Chrome的AI Revolution:个性化和高效的浏览体验 人工智能(AI)正在迅速改变我们的日常生活,而Google Chrome正在领导网络浏览领域的负责人。 本文探讨了兴奋

重新构想影响:四倍的底线 长期以来,对话一直以狭义的AI影响来控制,主要集中在利润的最低点上。但是,更全面的方法认识到BU的相互联系

事情正稳步发展。投资投入量子服务提供商和初创企业表明,行业了解其意义。而且,越来越多的现实用例正在出现以证明其价值超出


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器