关于深度学习下的神经网络总结( 五 )


4.GRU
GRU全称为门控循环单元(GatedUnit),是一种深度学习中的循环神经网络(RNN)模型,由 Cho等人于2014年提出 。GRU在处理时间序列数据方面表现出色,在机器翻译、语音识别、文本生成等任务上具有广泛的应用 。
相对于传统的RNN模型,GRU模型引入了更新门和重置门两个机制来控制信息的流动和遗忘 。这两个门分别决定了当前输入是否可以通过当前时间步的状态信息被传递到下一个时间步或被遗忘掉 。因此,GRU不仅可以捕捉数据中的长期依赖关系,同时还能够防止梯度消失和爆炸问题的发生 。
具体来说,GRU模型包含一个隐层状态向量h_t和一个门控向量z_t、r_t 。其中,z_t控制当前状态和前一状态的加权系数,r_t控制当前状态和前一状态的更新系数 。
在GRU模型中,t时刻的隐藏状态h_t的计算方式如下:
计算重置门 r_t 和更新门 z_t:
rt=σ(Wrxt+Urht?1)zt=σ(Wzxt+Uzht?1)rt?=σ(Wr?xt?+Ur?ht?1?)zt?=σ(Wz?xt?+Uz?ht?1?)
其中,W和U是权重参数,x_t是当前时刻的输入数据,σσ 是函数 。
计算候选隐藏状态 ht~ht?~?:
ht~=tanh(Wht?1+U(rt?xt))ht?~?=tanh(Wht?1?+U(rt??xt?))
其中,*为矩阵乘法 。
更新当前时刻的隐藏状态 h_t:
ht=(1?zt)?ht?1+zt?ht~ht?=(1?zt?)?ht?1?+zt??ht?~?
通过这样的机制,GRU模型可以更有效地捕捉到时间序列数据中的规律性,从而实现更准确的预测和分类 。
四.模型及其变体
什么?是位置编码的博客-CSDN博客
1.注意力机制
注意力机制( )是一种广泛应用于深度学习的技术,主要用于在处理序列或图像等数据时,将不同部分的信息赋予不同的权重 。这种机制模拟了人类注意力的过程,能够通过自适应选择与当前任务相关的“重点”信息,提高模型的准确性和鲁棒性 。
注意力机制最初被引入机器翻译领域,用于在对句子进行翻译时关注输入文本中与当前输出单词最相关的部分 。之后,该技术被成功应用于语音识别、图像识别、自然语言处理、推荐系统等领域,取得了显著的效果 。
下面我们来介绍一下常用的几种注意力机制:
Dot-
Dot-是注意力机制中最简单也是最常用的一种方法 。它基于输入的Query、Key和Value三个部分,计算得到一个的权重向量,再将权重向量和Value进行加权求和得到输出 。
具体来说,在输入Q、K、V和尺度系数$ \sqrt{d_k}$的情况下, dot-的计算公式如下:
(Q,K,V)=(QKTdk)(Q,K,V)=(dk?QKT?)V
其中,Q、K、V均为矩阵,字母“T”表示矩阵的转置操作,“”表示对行进行操作,dkdk?
?用于缩放点积的值 。
Multi-Head
Multi-Head 是 Dot- 的一种进化形式,它通过采用多个注意力头来计算,从而增加了模型对不同特征的表达能力 。
具体来说,Multi-Head 通过将输入的Query、Key和Value矩阵进行线性变换,生成多个Query、Key和Value矩阵,再对每个矩阵进行 Dot- 操作,最后将每个矩阵合并起来得到输出结果 。
Self-
Self- 是一种特殊的注意力机制,它在计算时不仅考虑了输入序列的其他部分,还同时考虑了当前位置的上下文信息,有助于更好地捕捉到序列中的长距离依赖关系 。
具体来说,Self-机制包含三个部分:输入矩阵X,Wq、Wk、Wv三个线性变换矩阵,以及输出矩阵Y 。首先,通过对输入矩阵X进行三个线性变换,生成Q,K,V三个矩阵,然后对它们进行 Dot- 操作,得到注意力权重矩阵 。最后,通过将矩阵和V矩阵相乘,得到输出矩阵Y 。
总的来说,注意力机制作为一种有效的建模方式,为深度学习模型带来了极大的提升 。它不仅能够提高模型的准确性和鲁棒性,还有助于解决长序列的建模问题,成为深度学习的重要工具之一 。