深度学习架构的对比分析(人工智能框架比较)

时间:2023-05-18 22:13:31来源:网络整理
导读那么,各种深度学习的系统架构之间有哪些差别呢?RNN是构建其他深度学习架构的基础网络体系结构之一。相比,其他深度学习架构只会一种技巧,而多模态学习需要在一个流畅

深度学习的概念始于人工神经网络的研究,富含多个隐藏层的多层感知器是一种深度学习结构。 深度学习通过组合低级特征来表示数据的类别或特征,从而生成越来越具体的高级表示。 它可以发现数据的分布式特征表示。 深度学习是机器学习的一种,机器学习是实现人工智能的必由之路。

那么,各种深度学习系统架构之间有哪些区别呢?

1. 全连接网络(FCN)

全连接网络 (FCN) 由一系列全连接层组成,其中每一层中的每个神经元都连接到另一层中的每个神经元。 它的主要优点是它是“结构无关的”,也就是说,不需要对输入进行特殊假设。 事实上,这些结构不可知论者使得完全连接的网络具有非常广泛的适用性,并且此类网络的性能往往比针对问题空间结构调整的自组织网络弱。

右图展示了一个具有多层深度的全连接网络:

深度学习架构的对比分析

2.频域神经网络(CNN)

频域神经网络 (CNN) 是一种多层神经网络架构,主要用于图像处理应用。 CNN 架构明确假设输入具有空间维度(以及可选的深度维度),例如图像,它允许将各个属性编码到模型架构中。 YannLeCun 创建了第一个 CNN,最初是用来识别手写字符的。

2.1 CNN的架构特点

使用 CNN 分解计算机视觉模型的技术细节:

图像在这里表示为像素网格,即正整数网格,每个数字都分配了一种颜色。

一个简单的频域神经网络由一系列层组成,每个层都通过可微函数将一个激活的体积块转换为另一个表达式。 频域神经网络的体系结构主要使用三种类型的层:频域层、池化层和全连接层。 右图显示了频域神经网络层的不同部分:

这三个操作的组合构成了一个完整的频域网络。

2.2 CNN用例

CNN(Frequency Domain Neural Network)是一种常用于解决空间数据相关问题的神经网络,一般应用于图像(2DCNN)和音频(1DCNN)领域。 CNN的广泛应用包括人脸识别、医学分析和分类等。通过CNN,可以在图像或音频数据中捕捉到更详细的特征,从而实现更准确的识别和分析。 据悉,CNN还可以应用于其他领域,比如自然语言处理和时间序列数据等。 事实上,CNN 可以帮助我们更好地理解和分析各种类型的数据。

2.3 CNN相对于FCN的优势

参数共享/估计可行性:

因为CNN使用参数共享,所以CNN和FCN架构的权重一般相差几个数量级。

对于一个全连接的神经网络,有一个形状为(Hin×Win×Cin)的输入和一个形状为(Hout×Wout×Cout)的输出。 这意味着输出特征的每个像素颜色都与输入特征的每个像素颜色相关联。 对于输入图像和输出图像的每个像素,都有一个独立的可学习参数。 因此,参数的数量是(Hin×Hout×Win×Wout×Cin×Cout)。

在频域层中,输入是形​​状为 (Hin,Win,Cin) 的图像,权重考虑给定像素的大小为 K×K 的邻域。 输出是给定像素及其邻居的加权和。 输入和输出通道的每个位对 (Cin,Cout) 都有一个单独的内核,但内核的权重是位置无关的形状张量 (K,K,Cin,Cout)。 事实上,该层可以接受任何码率的图像,而全连接层只能使用固定码率。 最后,这一层的参数是(K,K,Cin,Cout)。 对于内核大小 K 远大于输入比特率的情况,变量的数量将显着减少。

事实上,自 AlexNet 以来赢得 ImageNet 竞赛的每个神经网络都使用了 CNN 组件,这证明了 CNN 对图像数据更有效。 很可能找不到有意义的比较,因为仅使用 FC 层来处理图像数据是不可行的,而 CNN 可以处理这些数据。 为什么?

FC 层 1000 个神经元的权重数对于一张图像来说大约是 1.5 亿。 这只是一层的权重数。 而现代 CNN 架构有 50-100 层,总共有数十万个参数(例如,ResNet50 有 23M 个参数,InceptionV3 有 21M 个参数)。

从物理的角度来看,对于 500×500×3 的输入图像,比较 CNN 和 FCN(具有 100 个隐藏单元)的权重数:

((shape of width of the filter * shape of height of the filter * number of filters in the previous layer+1)*number of filters)( +1 是为了偏置) = (Fw×Fh×D+1)×F=(5×5×3+1)∗2=152

登录后复制

平移不变性

不变性是指即使物体的位置发生变化,仍然可以正确识别物体。 这通常是一个积极的特征,因为它保留了对象的身份(或类别)。 这里的“翻译”指的是几何学中的具体意义。 右图是同一个物体在不同位置的表现,由于平移不变性,CNN可以正确识别出它们都是猫。

3.循环神经网络(RNN)

RNN 是构建其他深度学习框架的基本网络架构之一。 一个关键的区别是,与普通的卷积网络不同,RNN 可以连接回它们的前一层或同一层。 从某种意义上说,RNN 具有原始估计的“记忆”,并将此信息用于当前过程。

深度学习架构的对比分析

3.1 RNN的架构特点

术语“循环”适用于在每个序列实例上执行相同任务的网络,因此输出取决于原始估计和结果。

RNN 天然适用于许多 NLP 任务,例如语言建模。 它们还捕获了“狗”和“热狗”之间含义的差异,因此 RNN 是为在语言和类似序列建模任务中对这些上下文相关性进行建模而量身定制的,这使得在这些领域中使用 RNN 而不是 CNN 成为一个好主意主要触发器。 RNN 的另一个优点是模型大小不会随着输入大小而缩小,从而可以处理任意宽度的输入。

据悉,与CNN不同,RNN具有灵活的估计步骤,提供了更好的建模能力,并创造了捕获无限上下文的可能性,因为它考虑了历史信息,但其权重在时间上是共享的。 然而,递归神经网络存在梯度消失问题。 梯度看起来很小,因此驱动反向传播的更新权重非常小。 由于每个标记的顺序处理以及消失/爆燃梯度的存在,RNN 训练缓慢并且有时难以收敛。

右边的斯坦福学院是 RNN 架构的一个例子。

深度学习架构的对比分析

另外需要注意的是,CNN 和 RNN 的架构不同。 CNN 是一种使用过滤器和池化层的卷积神经网络,而 RNN 通过自回归方法将结果反馈回网络。

3.2 RNN的典型用例

人工智能框架比较_比较研究的论文框架_android快速开发框架比较

RNN 是一种专门用于分析时间序列数据的神经网络。 其中,时间序列数据是指按时间顺序排列的数据,如文本或视频。 RNN 在文本翻译、自然语言处理、情感分析、语音分析等领域有着广泛的应用。 例如,它可用于剖析录音以识别说话者的语音并将其转换为文本。 此外,RNN 还可用于文本生成,例如为电子邮件或社交媒体帖子创建文本。

3.3 RNN与CNN的比较优势

在 CNN 中,输入和输出的大小是固定的。 这意味着 CNN 接收固定大小的图像并以适当的级别输出它,连同其预测的置信度。 然而,在 RNN 中,输入和输出的大小可能会有所不同。 此功能适用于需要可变大小输入和输出的应用程序,例如生成文本。

门控循环单元 (GRU) 和长短期记忆单元 (LSTM) 都为循环神经网络 (RNN) 遇到的梯度消失问题提供了解决方案。

4. 长短记忆神经网络(LSTM)

长短记忆神经网络 (LSTM) 是一种特殊的 RNN。 通过学习常年依赖性,RNN 可以更轻松地保留多个时间戳上的信息。 右图是 LSTM 架构的可视化表示。

深度学习架构的对比分析

深度学习架构的对比分析

LSTM 无处不在,可以在许多应用程序或产品中找到,例如智能手机。 它的强大之处在于它摆脱了典型的基于神经元的架构,而是使用了记忆单元的概念。 该存储单元会在短时间或长时间内保留其值作为其输入的函数。 这允许设备记住重要的事情,而不仅仅是最后的估计值。

LSTM 记忆单元包含三个控制信息流入或流出其单元的门。

深度学习架构的对比分析

Forget Gate:负责跟踪哪些信息可以被“遗忘”,以便为处理单元腾出空间来记住新数据。

Output Gate:决定处理单元显示器存储的信息什么时候可以作为cell的输出。

深度学习架构的对比分析

LSTM与GRU、RNN的异同点

与 GRU,尤其是 RNN 相比,LSTM 可以学习更多的常年依赖关系。 由于存在三个门(GRU 中有两个门,RNN 中有零个门),因此 LSTM 的参数比 RNN 和 GRU 多。 这个附加参数允许 LSTM 模型更好地处理复杂的序列数据,例如自然语言或时间序列数据。 据悉,LSTM 还可以处理可变长度的输入序列,因为它们的门结构允许它们忽略不必要的输入。 因此,LSTM 在许多应用中表现出色,包括语音识别、机器翻译和股市预测。

5. 门控循环单元 (GRU)

人工智能框架比较_android快速开发框架比较_比较研究的论文框架

GRU 有两个门:一个更新门和一个重置门(本质上是两个向量),用于决定应该将哪些信息传递给输出。

深度学习架构的对比分析

GRU与LSTM、RNN的异同点

与RNN类似,GRU也是一种递归神经网络,与RNN相比,可以有效地长时间保留信息,捕获更长的依赖关系。 但是,GRU 比 LSTM 训练起来更简单、速度更快。

虽然 GRU 比 RNN 实现起来更复杂,但由于它只包含两个门机制,参数较少,一般不能像 LSTM 那样捕获更远距离的依赖关系。 因此,GRU 在个别情况下可能需要更多的训练数据才能达到与 LSTM 相同的性能水平。

据悉,由于GRU比较简单,预估成本较低,在联通设备或嵌入式系统等资源有限的环境下使用GRU可能更合适。 另一方面,如果模型的准确性对应用程序至关重要,LSTM 可能是更好的选择。

6.变压器

关于 Transformers 的论文“AttentionisAllYouNeed”几乎是 Arxiv 上有史以来排名第一的论文。 Transformer 是小型编码器-解码器模型,可以使用复杂的注意力机制处理整个序列。

深度学习架构的对比分析

通常,在自然语言处理应用程序中,首先使用嵌入算法将每个输入短语转换为向量。 嵌入仅发生在最底部的编码器中。 所有编码器共享的表示是它们收到一个大小为 512 的向量列表,这将是词嵌入,但在其他编码器中,它将直接位于编码器输出的下方。

注意力为卡住的问题提供了解决方案。 对于那些类型的模型,上下文向量成为一个困境,这使得模型无法处理长句和短句。 Attention 允许模型根据需要关注输入序列的相关部分,并将每个短语的表示视为查询以访问和组合来自一组值的信息。

6.1 Transformer的架构特点

通常,在 Transformer 架构中,编码器可以将所有隐藏状态传递给解码器。 并且,解码器在生成输出之前将注意力用于额外的步骤。 解码器将每个隐藏状态除以其 softmax 得分,从而放大得分较高的隐藏状态并吞没其他隐藏状态。 这使模型还可以关注与输出相关的输入部分。

Self-attention 位于编码器中,第一步是从每个编码器输入向量(每个短语的嵌入)创建 3 个向量:Key、Query 和 Value 向量,它们是通过将嵌入除以从 3中训练的矩阵。 K、V、Q 维度为 64,而嵌入和编码器输入/输出向量的维度为 512。右边的图像来自 Jay Alammar 的 IllustratedTransformer,可能是网络上最好的视觉解剖图。

深度学习架构的对比分析

这个列表的大小是一个可以设置的超参数,基本上就是训练数据集中最长句子的粗细。

深度学习架构的对比分析

哪些是查询、键和值向量? 在估计和思考注意力时,它们是有用的具体概念。 decoder中的cross-attention不仅仅是输入,估计和self-attention估计一样。 Cross-attention 非对称地组合了两个相同维度的独立嵌入序列,而 self-attention 的输入是单个嵌入序列。

为了讨论Transformer,也有必要讨论一下BERT和GPT这两个预训练模型,正因为它们为Transformer的成功做出了贡献。

GPT 的预训练解码器有 12 层,包括 768 维隐藏状态,3072 维卷积隐藏层,用 40,000 个合并字节对编码。 它主要用于自然语言推理中,将短语对标记为蕴涵、矛盾或中性。

BERT 是一种预训练的编码器,它使用网络段语言建模将输入中的某些短语替换为特殊的 [MASK] 标签,然后尝试预测此类短语。 因此,损失只需要在预测的网段短语上进行估计。 两种 BERT 模型大小都有大量的编码器层(在论文中称为 Transformer 块)——Base 版本有 12 个,Large 版本有 24 个。 它们还具有更大的卷积网络(分别为 768 和 1024 个隐藏单元)和更多的多个注意力头(分别为 12 和 16 个)。 BERT 模型易于微调,通常可以在单个 GPU 上完成。 BERT 可用于 NLP 中的翻译,尤其是低资源语言翻译。

Transformers 的一个性能缺陷是它们在自注意力方面的估计时间是二次方的,而 RNN 仅线性下降。

6.2 Transformer 的用例 6.2.1 语言领域

在传统的语言模型中,相邻的短语首先被组合在一起,Transformer 也可以并行处理,使得输入数据中的每个元素也与其他每个元素相连或相关。 这称为“自我关注”。 这意味着 Transformer 在开始训练时可以看到整个数据集的内容。

在 Transformer 之前,AI 语言任务的进展很大程度上落后于其他领域的发展。 事实上,在过去10多年的深度学习革命中,自然语言处理是后来者,NLP在一定程度上落后于计算机视觉。 但是,随着Transformers的出现,大大推动了NLP领域的发展,推出了一系列在各种NLP任务中获奖的模型。

例如,为了理解传统语言模型(基于递归架构,如 RNN、LSTM 或 GRU)与 Transformer 之间的区别,我们可以举一个反例:“Theowlspiedasquirrel. Ittriedtograbitwithitstalonsbutonlygottheendofitstail”。 第二个短语的结构非常令人不安:“它”指的是什么? 只关注“它”周围的短语的传统语言模型会遇到麻烦,而将每个短语连接到每个其他短语的 Transformer 可以判断一只猫头鹰抓住了一只松鼠,而松鼠已经失去了它的一部分尾巴。

6.2.2 视野

在 CNN 中,我们从局部开始,逐渐获得全局视图。 CNN 通过构建从局部到全局的特征来逐个像素地识别图像,以识别拐角或腰线等特征。 然而,在transformer中,通过self-attention,虽然在信息处理的第一层人工智能框架比较,也构建了远程图像位置之间的链接(如语言)。 如果说 CNN 的方式就像是从单个像素开始缩放,那么 transformer 会逐渐聚焦整个模糊图像。

CNN 通过对输入数据的局部块重复应用过滤器来生成局部特征表示,逐渐减少它们的经验范围并构建全局特征表示。 正是由于频域,照片应用程序能够区分梨和云。 在 transformer 架构之前,CNN 被认为是视觉任务不可或缺的。

VisionTransformer 模型的架构与 2017 年提出的第一个转换器几乎相同,只有微小的变化允许它剖析图像而不是短语。 由于语言通常是离散的,因此需要将输入图像离散化,以便转换器可以处理视觉输入。 完全模拟语言技能并对每个像素执行自注意力会使估计时间非常昂贵。 因此,ViT 将较大的图像划分为圆形单元或块(类似于 NLP 中的标记)。 大小是任意的,因为令牌可以根据原始图像的帧速率(默认为 16x16 像素)变大或变小。 通过分组处理像素并对每个像素应用自注意力,ViT 可以快速处理庞大的训练数据集,输出越来越准确的分类。

6.2.3 多模态任务

与Transformer相比,其他深度学习框架只有一种方法,而多模态学习需要在一个流畅的框架中处理不同模式的模态,具有相当高的关系归纳误差,可以达到人类智能水平。 换句话说,需要一个单一的多用途框架,可以在阅读/观看、口语和听觉之间无缝切换。

对于多模态任务,需要同时处理多种类型的数据,例如原始图像、视频和语言,而 Transformer 提供了通用框架的潜力。

深度学习架构的对比分析

这是一项不可能完成的任务,因为在初始架构中使用了分散的方法,每种类型的数据都有自己特定的模型。 但是,Transformer 提供了一种组合多个输入源的简单方法。 例如,多模式网络可以为读取人们的眼球运动并使用丰富的语言和图像信息来窃听他们的声音的系统提供动力。 通过交叉注意力,Transformer 可以从不同来源推导出查询、键和值向量,成为多模态学习的强大工具。

为此,Transformer 是朝着神经网络架构“融合”迈出的一大步,从而能够对来自多种模式的数据进行通用处理。

6.3 Transformer与RNN/GRU/LSTM的异同

与RNN/GRU/LSTM相比,Transformer可以学习到比RNN及其变体如GRU和LSTM更长的依赖关系。

然而,最大的用处来自于 Transformer 如何适合并行化。 与在每个时间步处理一个短语的 RNN 不同,Transformer 的一个关键属性是每个位置的短语在其自己的路径上流经编码器。 在自注意力层中,这些路径之间存在依赖关系,因为自注意力层估计输入序列中每个其他短语对该短语的重要性。 此外,一旦生成自注意力输出,卷积层就没有这种依赖性,因此各个路径在通过卷积层时可以并行执行。 对于 Transformer 编码器来说,这是一个非常有用的特性,它在自注意力层之后并行处理每个输入短语和其他短语。 然而,这个特性对于解码器来说并不是很重要,因为它一次只生成一个短语并且不使用并行短语路径。

Transformer 架构的运行时间与输入序列的宽度呈二次方关系,这意味着在处理长文档或字符作为输入时,处理速度可能会很慢。 换句话说,在自注意力生成期间,需要估计所有交互对,这意味着估计随序列宽度呈二次方下降,即 O(T^2d),其中 T 是序列宽度,D 是维度。 比如对应一个简单的句子d=1000,T≤30⇒T^2≤900⇒T^2d≈900K。 而对于循环神经,它只会以线性方式下降。

如果 Transformer 不需要估计句子中每对短语之间的成对交互,那不是很好吗? 已经表明,无需估计所有短语对之间的交互(例如,通过近似成对注意)就可以实现相当高的性能水平。

与CNN相比,Transformer对数据的要求极高。 CNN 一直是样本高效的,这使它们成为低资源任务的绝佳选择。 对于图像/视频生成任务尤其如此,尽管对于 CNN 架构,需要大量数据(因此暗示 Transformer 架构需要极高的数据要求)。 例如,最近由 Radford 等人提出的 CLIP 架构。 使用基于 CNN 的 ResNets 作为视觉主干(而不是类似 ViT 的 Transformer 架构)进行训练。 事实上,Transformer 在满足其数据要求后提供了精度提升,但 CNN 提供了一种形式,可以在可用数据量不是异常高的任务中提供良好的精度性能。 因此人工智能框架比较,这两个框架都有其用途。

因为 Transformer 架构的运行时间与输入序列的宽度呈二次关系。 换句话说,估计对所有短语对的注意力需要图中的边数随节点数呈二次方减少,即在一首有n个短语的诗中,Transformer需要估计n^2个短语对。 这意味着参数数量巨大(即内存占用高),因此估计复杂度高。 高预算要求会对电源和电池寿命产生负面影响,尤其是对于连接的设备。 总的来说,为了提供更好的性能(例如准确性),Transformers 需要更高的计算能力、更多的数据、电源/电池寿命和内存占用。

七、推理错误

实践中使用的每一种机器学习算法,从最近的邻居到梯度提升,都有自己关于哪些类更容易学习的归纳错误。 几乎所有的学习算法在学习相似的项目(在个体特征空间中彼此“接近”)更有可能属于同一类时都会出错。 线性模型,如逻辑回归,也假设类别可以被线性边界分开,这是一个“硬”偏见,因为模型很难学习其他东西。 而对于几乎是机器学习中经常使用的类型的正则化回归,也存在倾向于学习涉及具有低特征权重的少量特征的边界的偏差,这就是“软”偏差,因为模型可以学习涉及许多具有高权重特征的类边界,但这更困难/需要更多数据。

尽管深度学习模型也存在推理错误,例如,LSTM 神经网络对于自然语言处理任务非常有效,因为它们倾向于保留长序列上的上下文信息。

深度学习架构的对比分析

了解领域知识和问题难度可以帮助我们选择合适的算法应用。 例如,从临床记录中提取相关术语以确定患者是否已被诊断出患有肺癌。 在这些情况下,逻辑回归表现良好,因为有许多独立的信息项。 对于其他问题,比如从复杂的 PDF 报告中提取基因检测结果,使用 LSTM 可以更好地处理每个短语的长程上下文,从而获得更好的性能。 一旦选择了基本算法,了解其错误也可以帮助我们执行特征工程,即选择信息以输入学习算法的过程。

每个模型结构都有一个固有的推理错误,有助于理解数据中的模式,从而实现学习。 例如,CNN 表现出空间参数共享、平移/空间不变性,而 RNN 表现出时间参数共享。

8.总结

老coder尝试对比分析了深度学习框架中的Transformer、CNN、RNN/GRU/LSTM,了解到Transformer可以学习更长的依赖关系,但对数据要求和估计能力要求更高; Transformer 适用于阅读/观看、口语、听力等感官之间无缝切换的多模态任务; 每个模型结构都有一个固有的推理错误,有助于理解数据中的模式,从而实现学习。

【参考】

以上就是深度学习框架对比分析的详细内容。 更多请关注php英文网其他相关文章!

声明:本文转载于:51CTO.COM,如有侵权请联系admin@php.cn删除

最新文章