一文快速预览经典深度学习模型(一)——CNN、RNN、LSTM、Transformer、ViT
Hi,大家好,我是半亩花海。本文主要简要并通俗地介绍了几种经典的深度学习模型,如CNN、RNN、LSTM、Transformer、ViT(Vision Transformer)等,便于大家初探深度学习的相关知识,并更好地理解深度学习的基础内容,为后续科研开展建立一定的基础,欢迎大家一起交流学习。
目录
一、CNN(卷积神经网络)
1. 网络结构
- 输入层:输入图像等信息
- 卷积层:用来提取图像的底层特征
- 池化层:下采样(降采样层),防止过拟合,将数据维度减小(降维);最大(Max-Pooling)/平均(Ave-Pooling)
- 全连接层:分类器,汇总卷积层和池化层得到的图像的底层特征和信息;通过激活函数(如 等)进行非线性变换
- 输出层:根据全连接层的信息得到概率最大的结果
2. 模型细节
- 卷积运算:
- 若步长 :卷积大小结果为
- 若步长 :卷积大小结果为 (N:初始图片大小;P:padding,零填充的层数大小;F:卷积核大小;s:stride,步长)
- 零填充两种方式:
- valid:不填充,结果变小
- same:输出图像与原图大小相同(如:若 ,则当 即 时成立)
3. 模型结构图
- 在手写体数字识别的任务中,CNN模型结构如下所示:
二、CNN变形
1. 具体模型
LeNet-5、AlexNet、NIN、VGG、GoogLeNet、ResNet、DenseNet、MobileNets等。
2. 网络结构
- LeNet:两个layer(conv+pool)+两层网络+FC(Fully Connected Layer,全连接层)
- AlexNet:8层CNN(前5层卷积层,剩下3层全连接层);6000万参数量,首次使用Relu激活函数,dropout+BN(Batch Normalization,批标准化层)
- NIN:Network In Network,1×1卷积,使得输入任意的特征图大小,输出为1×1×?,相当于一种全连接层/卷积化(全连接的输入是固定的,而卷积层可以处理任意大小输入,故相当于把全连接层变成卷积层,即卷积化);对多个通道进行信息整合,通道进行线性回归运算;达到通道数的变化,升维/降维/通道数不变,参数数量较少
- VGG:参数量巨大,140M=140亿,19layers,VGG版本16/19
- GoogLeNet:参数较少,引入Inception V1, V2, V3, V4模块(通过并行的卷积操作来提取多尺度特征),造成参数变少
- ResNet:残差网络、深度卷积神经网络架构
- 残差学习:学习输入和输出之间的残差(即差异),而不是直接映射关系。
- 残差块(Residual Blocks):ResNet由多个残差块组成,每个残差块包含两条路径:一条是卷积层的堆叠,另一条是恒等连接(Identity Connection)。
- 恒等连接:允许输入直接跳过一些层的输出,然后与这些层的输出相加。这有助于解决深层网络训练中的梯度消失问题。
3. Inception细节
- 目的:代替人手工区确定到底使用1×1,3×3,5×5还是是否需要max_pooling层,由网络自动取寻找适合的结构,并且节省计算。
- 特点:使用多种卷积核进行运算,合并结果通道数。
- 最终结果:28×28×256
- 使用更少参数,达到和AlexNet或VGG同样类似的输出结果。
- 计算量还是太大?参数还是太多?
- 网络缩小之后再扩展,在5×5之前加一个1×1卷积结构
4. AlexNet和ResNet模型讲解
- AlexNet:
- ResNet:
三、RNN(循环神经网络)
1. 模型简介
- 循环神经网络、序列模型、反馈神经网络
- 用于处理序列数据
- 隐状态h可以对序列形的数据提取特征,接着再转换为输出
2. 模型结构
- 输入单元(input units):
- 隐藏单元(hidden units):
- 输出单元(output units):
- 输入层: 表示时刻 的输入。
- 第t次的中间的隐含层状态为:, 是非线性激活函数,比如
- 输出层:
3. 模型细节
- 类型:
- 一对一:固定的输入到输出,如图像分类
- 一对多:固定的输入到序列输出,如图像的文字描述
- 多对一:序列输入到输出,如情感分析,分类正面负面情绪
- 多对多:序列输入到序列的输出,如机器翻译(称之为编解码网络)
- 同步多对多:同步序列输入到同步输出,如文本生成,视频每一帧的分类(也称之为序列生成)
- 参数共享: 是不变的,这种参数共享的机制降低了网络的参数量
- 问题:长期依赖;梯度消失、梯度爆炸问题;并行度较低,计算性能较差;信息容易丢掉,内存得大才行
4. RNN模型讲解
5. 模型结构图
四、LSTM(长短期记忆神经网络)
1. 模型结构
(1)概述:LSTM对神经元单元状态的控制是通过一种叫“门”的结构实现的(有效筛选信息),在隐藏层里增加了记忆单元状态
(2)门的组成: 函数(0全被遗忘、1全被保留、0-1部分信息保留)、一个执行点乘操作的计算元件
(3)门的种类:输入门、遗忘门(前两者决定记忆单元 的内容)和输出门
- 输入门:控制当前时刻的输入 保存到了当前时刻的记忆单元状态 的比例大小
- 遗忘门:控制上一时刻的记忆单元状态 保留到当前时刻的记忆单元状态 的比例大小
- 输出门:控制单元状态 输出到当前的输出 的比例大小
(4)LSTM训练过程:
- 前向传播具体计算过程:
- 遗忘门计算:控制历史信息的保留(利用 激活函数,获取上一时刻的隐藏层输出 和这一时刻的模型输入 )
- 输入门计算:控制当前时刻的输入中有多少信息要被添加到单元状态中
- 通过 函数确定需要添加的信息
- 通过 函数创建一个候选记忆单元信息状态
- 状态更新:通过处理要遗忘和要保留的信息,完成上一时刻的记忆单元状态 到当前时刻 的更新(矩阵乘积)
- 输出门计算:控制从记忆单元到输出的过程(输入为上一时刻得到的记忆单元状态 、上一时刻的隐藏层输出 和这一时刻的模型输入 ,输出这一时刻隐藏层的输出 和模型的输出 )
(5)计算误差:将输出值与实际值对比,建立损失函数,得到模型计算误差
(6)反向传播、更新参数:根据计算误差,多轮反向传播计算,更新模型参数(遗忘门、输入门、输出门、候选记忆单元中的权重参数及偏置、隐藏层与输出之间的权重参数),直至模型达到理想估计效果,用此时的可用模型对电池SOH进行估计
2. 模型细节
- 对比RNN:
- 将RNN中的隐藏层单元换成了一种具有特殊记忆功能的循环体结构
- 在隐藏层状态h的基础上增加了记忆单元状态c(选择性地保留或删除历史信息,保证了长时间数据学习之后的梯度依然存在)
- GRU:门控循环单元
- 重置门
- 更新门
3. 模型结构图
五、Transformer
1. 模型简介
- 基于自注意力机制(self-attention)的深度学习模型;
- 主要用于处理序列到序列的任务,如机器翻译、文本摘要等
2. 模型结构
- 核心:采用了全连接的自注意力层替代了传统的RNN或CNN
- 模型结构的关键部分:
- 编码器-解码器架构:Transformer模型由编码器(Encoder)和解码器(Decoder)两部分组成。编码器处理输入序列,而解码器生成输出序列。
- 多头自注意力机制:编码器和解码器内部都包含多头自注意力机制(Multi-Head Attention),这种机制允许模型在处理序列中的每个元素时,同时考虑序列中的其他元素,从而捕捉序列内部的依赖关系。
- 层级归一化(Layer Normalization):在每个子层(自注意力子层和前馈网络子层)之后,都会进行层归一化操作,这有助于模型的训练稳定性。
- 残差连接(Residual Connection):每个子层的输出会与输入相加,形成残差连接,这有助于解决深层网络中的梯度消失问题。
- 前馈网络(Feed Forward Network):在自注意力层之后,每个编码器和解码器的子层都会通过一个前馈网络,这个网络对每个位置的向量进行独立相同的操作。
- 位置编码:由于Transformer模型本身不具备处理序列顺序的能力,因此需要引入位置编码来捕捉序列中词汇的位置信息。位置编码可以是学习得到的,也可以是通过正余弦函数(sin/cos)生成的。
- 词嵌入:模型的输入首先通过一个词嵌入层,将词汇映射到高维空间中的向量表示。
- 位置编码:为了保留序列信息,添加了一个位置编码到词向量中,使得模型能够理解单词之间的相对顺序。
- 模块堆叠:编码器和解码器都由多个相同的层堆叠而成(通常是6个),每个层都包含自注意力机制和前馈网络,这样的结构使得模型能够捕获不同尺度的依赖关系。
3. 多头自注意力机制
多头自注意力机制(Multi-Head Attention)是Transformer模型中的核心组成部分,它允许模型在不同的表示子空间中并行地捕捉信息。
(1)基础步骤:
自注意力机制的核心思想:对于输入的每个位置,计算该位置与其他所有位置之间的相关性或相似性,并据此调整每个位置的表示。
- 输入表示:假设输入是一个矩阵 ,其中 是序列的长度, 是每个位置的表示维度。
- 线性变换:输入矩阵 被映射到三个不同的向量:查询(Query)、键(Key)和值(Value)。这通过三个不同的权重矩阵 实现,如下。【这里, 是查询矩阵, 是键矩阵, 是值矩阵。】
- 计算注意力权重:通过计算查询与键的点积来衡量各个位置之间的相关性,然后通过软max(Softmax)函数得到注意力权重。计算公式如下。【其中, 是键向量的维度,通常是 的一部分, 是缩放因子,用于防止点积值过大。】
(2)结构细节:
- 线性映射:在多头自注意力中,输入序列首先被映射到查询(Query)、键(Key)和值(Value)三个矩阵。这些映射是通过与权重矩阵相乘来实现的,通常这些权重矩阵是可学习的参数。
- 多头结构:多头自注意力机制包含多个“头”,每个头都独立地执行自注意力操作。每个头都有自己的一套权重矩阵,用于Q、K和V的线性映射。
- 缩放点积注意力:每个头计算Q和K的点积,然后通过除以一个缩放因子(通常是向量维度的平方根,如 )来防止梯度消失或爆炸。
- 掩码操作:如果存在,掩码(Mask)会被应用到点积的结果上,通常是将某些位置的值设置为一个非常大的负数(如负无穷),这样在应用softmax时,这些位置的权重会接近于零,从而实现对某些位置的忽略。
- softmax归一化:对缩放后的点积结果应用softmax函数,得到每个头的注意力权重矩阵。
- 加权求和:使用softmax得到的注意力权重矩阵与V矩阵相乘,得到每个头的输出,即加权求和的上下文向量。
- 头的组合:所有头的输出会被拼接在一起,然后通过一个线性层进行处理,这个线性层可以学习如何最好地组合来自不同头的信息。
- 前向传播:在前向传播过程中,每个自注意力头独立地处理输入,然后将结果沿着最后一个维度进行拼接,形成最终的多头自注意力输出。
(3)图示化的结构:
假设输入序列长度为 ,每个位置的维度为 ,则多头自注意力的结构可以简要描述为:
- 输入
- 映射到多个头:通过 映射到查询、键和值(每个头的维度为 )
- 对每个头计算注意力:
- 拼接所有头的输出:
- 线性变换输出:
(4)好处:捕捉到序列中不同位置之间的复杂关系;通过并行处理提高了模型的计算效率;使得模型能够从不同的角度学习数据的表示,增强了模型的表达能力。
4. 模型结构图(含具体结构解释)
六、ViT(Vision Transformer)
1. 模型简介
- 将 Transformer 架构应用于计算机视觉(cv)任务的模型
- 将图像视为序列数据,利用Transformer在自然语言处理(nlp)中的成功
- ViT的关键思想:通过自注意力机制,ViT能够充分利用图像的全局上下文信息,而不仅仅依赖于局部特征,这使得它能够在较大的图像数据集上表现出色。
2. 模型结构
总结:输入图像 → 分割成patches → 线性嵌入与位置编码 → Transformer编码器(自注意力机制) → [CLS] token输出 → 分类结果。
(1)输入处理
- 图像分块(Patch Embedding): ViT将输入图像划分为固定大小的图像块(patch),例如16×16像素的块。每个块被展平并映射到一个高维嵌入空间中,这通常通过一个线性层来实现。
- 位置编码(Position Encoding): 由于 Transformer 本身不具备处理序列中元素位置的能力,ViT为每个图像块添加位置编码,以保留空间信息。位置编码可以是固定的或可学习的。
(2)Transformer 编码器
ViT的核心是标准的Transformer编码器,由多个自注意力层和前馈神经网络组成。
- 自注意力机制(Self-Attention): 在每个自注意力层中,每个图像块通过自注意力机制与其他块进行交互。这使得模型能够捕捉不同区域之间的依赖关系。
- 多头注意力(Multi-Head Attention): 通过多头机制,模型可以在多个子空间中并行学习特征,增强了特征表示能力。
- 前馈神经网络(Feed-Forward Network, FFN): 每个自注意力层后面接一个前馈神经网络,通常由两个线性层和一个非线性激活函数(如GELU)组成。
- 层归一化和残差连接: 在每个子层之后,ViT应用层归一化和残差连接,以稳定训练并提高模型的表达能力。
(3)输出处理
- 分类头(Classification Head): ViT通常在处理完所有层之后,将第一个图像块(通常称为[CLS] token)用作分类结果的表示。这个token的输出通过一个线性层映射到类别空间,得到最终的分类结果。
3. 模型结构图
(1)vit_figure:
Transformer的编码器(Transformer_Encoder)
- 多层自注意力机制(Self-Attention)
- 前馈神经网络(Feedforward Neural Network,FNN)
(2)mixer_figure:MLP-Mixer,基于多层感知机(MLP)的视觉模型
4. ViT模型资源
GitHub - google-research/vision_transformer
原文地址:https://blog.csdn.net/ttrr27/article/details/143502692
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!