文章目录
1、Deep Learning Review
1.1 Dense layer
- 在深度学习,特别是在处理序列数据的循环神经网络(RNN)中,Dense 层(或称为全连接层、密集连接层)扮演着将RNN的输出转换为最终所需输出形式的重要角色。尽管RNN(如LSTM或GRU)单元本身已经能够处理序列数据并捕捉其中的时间依赖性,但通常这些单元的输出并不直接对应于我们想要预测或分类的最终结果。因此,我们会在RNN之后添加一个或多个Dense层来进行这种转换。
1.2 Self-Attention Mechanism
自注意力机制
- 作用:自注意力机制是Transformer的核心,它允许模型在处理序列中的每个元素时,都能够关注到序列中的其他所有元素。
- 计算过程:
通过查询(Query)、键(Key)和值(Value)
三个向量来计算注意力权重,进而对值向量进行加权求和,得到每个元素的最终表示。 - 多头注意力机制: 多头注意力机制是对自注意力机制的扩展,它将输入序列分成多个头(Head),每个头独立地计算自注意力,然后将多个头的输出拼接起来,再通过一个线性变换得到最终的输出。优势:多头注意力机制允许模型在不同的表示子空间中捕捉信息,从而增强模型的表达能力。
1.3 seq2seq introduce
-
一种用于处理序列数据的深度学习模型,其核心思想是将一个输入序列转换成一个输出序列。这种模型因其灵活性和有效性,已被广泛应用于自然语言处理(NLP)、语音识别、图像描述生成、对话系统、文本摘要等众多领域
-
Seq2Seq模型由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。编码器负责读取并理解输入序列,将其转换成一个称为上下文向量的固定长度表示;解码器则根据这个上下文向量生成目标序列。整个过程无需人工设计复杂的语言规则或中间表示,而是让神经网络自行学习如何进行有效的序列转换。
Seq2Seq模型依赖于单一上下文向量来传递输入序列的信息,但在许多实际应用中,尤其是处理长序列或需要精细信息捕捉的任务时,会引入Attention机制以增强模型性能。Attention允许解码器在生成每个输出元素时,动态地关注输入序列的不同位置,并根据这些位置的重要性分配权重。这样,解码器不仅可以利用全局上下文,还能直接获取输入序列中与当前生成任务最相关的部分
具体的运用如下:
- 机器翻译:将源语言句子翻译成目标语言句子。
- 文本摘要:将长篇文章压缩为简短的摘要。
- 对话系统:根据用户输入生成合适的回应。
- 语音识别转文字:将连续的语音信号转化为文字序列。
- 图像描述生成:为给定图像生成相应的自然语言描述。
1.4 RNN LSTM and GRU
GRU概述:
基本结构:
- RNN由输入层、隐藏层和输出层组成,但与传统的神经网络不同,RNN的隐藏层节点之间是相互连接的,这种结构使得RNN能够处理任意长度的序列数据。
- 在RNN中,每个时间步的隐藏状态不仅取决于当前时间步的输入,还取决于上一个时间步的隐藏状态,从而实现了对序列数据的历史信息的记忆。
- 能关注的机制(更新门):
Zt
顾名思义,是否需要根据我的输入,更新隐藏状态 - 能遗忘的机制(重置门):
Rt
更新候选项时,是否要考虑前一隐藏状态。
存在的问题:
尽管RNN能够处理序列数据,但在处理长序列时容易出现梯度消失或梯度爆炸的问题,导致模型难以捕捉到长距离依赖关系。
LSTM概述:
-
LSTM和GRU都是循环神经网络(RNN)的变种,它们主要用于处理序列数据,特别是那些需要捕捉长期依赖关系的数据。
-
LSTM是一种特殊的RNN,它通过引入记忆单元和三个门(输入门、遗忘门、输出门)来解决传统RNN在处理长序列时容易出现的梯度消失或梯度爆炸问题。LSTM能够有效地捕捉和利用长时间跨度的依赖关系。
结构:
- 记忆单元(Cell State):LSTM的核心部分,通过门的操作控制信息在不同时间步长中的流动。
- 输入门(Input Gate):决定哪些新的信息将被存储到记忆单元中。
- 遗忘门(Forget Gate):决定哪些以前的记忆单元状态将被遗忘。
- 输出门(Output Gate):控制从记忆单元中读取的信息,决定下一时间步的隐藏状态。
Neural Network中的concatenate一般就是用来将特征联合,多个卷积特征提取框架提取的特征融合或者是讲输出层的信息进行融合,这个联合其实就是维度的一个联合
优点:
- 能够更好地处理长序列和长期依赖关系。
- 通过记忆单元和门机制,有效地保存和使用长时间跨度的依赖关系。
缺点:
- 结构相对复杂,参数量较大,训练速度可能较慢。
GRU概述:
GRU是另一种RNN的变种,旨在解决长期依赖和梯度消失问题。与LSTM相比,GRU具有更简单的结构,但仍然能够有效地捕捉序列数据中的长期依赖关系。
结构:
- 更新门(Update Gate):控制前一时刻的隐藏状态如何流入当前时刻的隐藏状态。
- 重置门(Reset Gate):确定前一时刻的隐藏状态如何影响当前时刻的候选隐藏状态。
优点:
- 结构相对简单,参数量较少,训练速度更快。
- 在一些任务上,如自然语言处理和时间序列分析,表现与LSTM相当甚至更好。
缺点:
- 由于结构简化,可能在处理非常长的序列时,其性能略逊于LSTM。
LSTM与GRU的比较
LSTM | GRU | |
---|---|---|
结构复杂度 | 较高,包含三个门和一个记忆单元 | 较低,仅包含两个门 |
参数量 | 较多 | 较少 |
训练速度 | 可能较慢 | 较快 |
长期依赖处理 | 优秀,特别适用于长序列 | 良好,适用于多数序列任务 |
适用场景 | 需要捕捉长时间跨度的依赖关系的任务 | 大多数序列数据处理任务,特别是参数敏感或训练时间受限的情况 |
1.5 Candidate Hidden State
- 候选隐状态 是门控循环单元中的一个重要概念。在GRU中,候选隐状态主要用于描述当前时刻的输入状态和更新门的状态,它相当于“记忆了当前时刻的状态”。
-
定义:候选隐状态是GRU在每个时间步计算得到的一个中间状态,它结合了当前输入和前一个时间步的隐藏状态(经过重置门调整后的),并通过非线性激活函数(如tanh)进行变换。
-
计算方式:候选隐状态的计算公式通常表示为:
H ~ t = tanh ( X t W x h + ( R t ⊙ H t − 1 ) W h h + b h ) \tilde{H}_t = \tanh(X_tW_{xh} + (R_t \odot H_{t-1})W_{hh} + b_h) H~t=tanh(XtWxh+(Rt⊙H