赞
踩
长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络(Recurrent Neural Network, RNN),设计用于解决长期依赖问题,特别是在处理时间序列数据时。
循环神经网络(RNN)是一种能够处理序列数据的神经网络架构,其特点是网络内部存在反馈循环,使得当前时刻的输出不仅取决于当前输入,还受到先前时刻隐藏状态的影响。RNN通常通过一个隐藏状态(hidden state)来传递过去的信息,使得网络具有记忆功能。
然而,RNN在处理长序列时面临长期依赖问题:当需要考虑较远过去的输入信息时,由于反向传播过程中梯度的逐层累乘(乘法运算可能导致数值极小或极大),可能会导致梯度要么消失(vanishing gradients),要么爆炸(exploding gradients),从而使得网络无法有效地学习到长时间跨度的依赖关系。
LSTM是一种巧妙应对RNN固有挑战的架构创新,它并未直接对RNN的权重矩阵进行特征值调整以解决梯度消失/爆炸问题,而是通过引入参数化的门控单元以及细胞状态这一特殊结构,构建了一条非权重依赖的线性信息传播路径,从而绕开了传统RNN中导致长期依赖学习困难的权重参数W。
RNN中对于不同时间步上的数据序列使用了同样的网络结构,只是将某个或者几个层存储起来用作下一时间步的输入,这个存储的结构就是记忆单元。LSTM取消权重参数W,并对这个memory单元做重参数化:
输入门(Input Gate):这一门控组件负责决定何时将当前时间步的输入信息写入记忆单元(memory cell)。其工作原理如下:当输入门开启时,即其激活值接近于1,允许新接收到的数据被整合到记忆单元中;反之,若门关闭(激活值接近0),则阻止新的信息进入。输入门通过参数化方式赋予模型选择性地接纳外部输入的能力,确保仅与当前处理任务相关且有价值的信号得以存储,有效地过滤掉可能干扰记忆单元稳定性的无关信息。
输出门(Output Gate):该门控单元扮演着控制记忆单元内容何时及如何向后续时间步输出的角色。当输出门开启时,记忆单元中存储的信息得以部分或全部传递至模型的下一层或下一时间步,供进一步处理或用于预测。相反,如果输出门关闭,则记忆单元的内容将被暂时屏蔽,不会影响后续计算。输出门的参数化特性使得模型能够在不同时间点灵活地调整记忆单元内容的可见度,确保下游组件接收到的是经过筛选、与当前任务最为相关的记忆信息。
此时得到了一个较为复杂的神经元,输入门控制了信息的流入,输出门控制了信息的流出,那么看起来的memory单元是不必要的,但是在RNN中,必然采用权重W来控制流通的信息,在LSTM中,并没有使用权重,而只是采用简单的相加:
c t = c ( t − 1 ) + f ( x t ) F i c_t = c_(t-1) + f(x_t)F_i ct=c(t−1)+f(xt)Fi
随着序列越来越长,时间步越来越大,前一步的memory会流入到下一步的memory,会使得后面的memory单元存储的数值越来越大。此时,有两种可能的后果:
如果函数g也是一个带有挤压性质的激活函数,那么过大的值将会使得这个激活函数永远处于激活状态,失去了学习能力。
如果函数g是ReLU类型的函数,值变得非常巨大时,会使得输出门失效,因为输出门的值再小,当它乘以一个庞大的值时,也会变的非常大。
无论是哪种情况,都在表明需要在memory单元中丢弃一些信息,LSTM的解决办法是在原本的单元中加入一个遗忘门(forget gate),它的作用是重参数化记忆单元,将记忆单元输入的信息乘以遗忘门的结果Ff,存入到记忆单元中作为信息。
整个流程就是,将当前时间步的数据乘以输入门的结果,同时前一步的记忆单元乘以遗忘门的结果,两者相加,一起乘以输出门的结果,得到下一层的输出,同时此时的记忆单元参与到下一时间步的运算。
LSTM通过以下原理克服了传统RNN在处理长期依赖时的局限性:
这些原理共同作用,使得LSTM在处理时间序列数据时能有效地捕捉和利用长距离依赖关系,适用于自然语言处理、语音识别、音乐生成、时间序列预测等多种应用场景。
细胞状态是LSTM的核心记忆组件,它沿着时间轴线性传递信息,类似于一条持续流动的信息传送带。细胞状态在每个时间步仅通过特定的线性变换(由门控机制控制)进行更新,这有助于防止梯度消失或爆炸问题,使得信息能在长时间跨度内得以有效保存。
LSTM引入了门控机制来精确控制细胞状态的读取、写入和遗忘过程。这些门通过sigmoid激活函数(输出范围为(0, 1),表示概率值)来决定信息流的通过程度:
f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft=σ(Wf⋅[ht−1,xt]+bf)
其中,(f_t)是遗忘门输出,(\sigma)是sigmoid函数,(W_f)和(b_f)是权重和偏置,[h_{t-1}, x_t]是上一时刻隐藏状态和当前时刻输入的拼接。
输入门(Input Gate):决定当前时刻新输入信息哪些部分应被添加到细胞状态中。输入门包括两个子组件:
输出门(Output Gate):决定当前时刻细胞状态中哪些信息应作为隐藏状态输出给后续层或用于最终预测。输出门的计算公式为:
o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ot=σ(Wo⋅[ht−1,xt]+bo)
基于上述门控机制,LSTM更新细胞状态并计算当前时刻的隐藏状态:
C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ft⊙Ct−1+it⊙C~t
其中,(\odot)表示元素-wise乘法,即对应位置的值相乘。遗忘门决定旧信息的留存比例,输入门决定新信息的添加比例。
h t = o t ⊙ tanh ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)
输出门控制细胞状态中哪些信息应被暴露给模型的其余部分,(\tanh)函数将细胞状态压缩到(-1, 1)范围内,便于后续计算。
LSTM广泛应用于各种时间序列数据处理任务,如:
LSTM还有多种变体和扩展,如:
LSTM相对于传统RNN的优势主要体现在:
长期依赖处理:通过细胞状态和门控机制,LSTM能够在长序列中有效地捕获和利用远距离的依赖关系,解决了RNN的长期依赖问题。
可控的记忆管理:遗忘门、输入门和输出门提供了对记忆内容的精细控制,允许模型根据任务需求选择性地保留、添加或忽略信息。
稳定的学习过程:由于门控机制的存在,LSTM在训练时能够保持较为稳定的梯度流动,避免了梯度消失或爆炸问题,提高了训练效率和模型性能。
当然LSTM也有它的局限性:
计算复杂度与资源消耗高:
并行化效率低:
过拟合风险:
解释性不足:
初始化与超参数调整挑战:
针对上述缺陷,研究者不断探索改进LSTM的设计、提出新的变种(如GRU)或采用其他序列建模技术(如Transformer),以期在保持或增强建模能力的同时,减轻上述问题的影响。
总结来说,LSTM通过创新的细胞状态和门控机制,有效解决了RNN在处理长期依赖时遇到的问题,成为处理时间序列数据的强有力工具,在众多领域取得了显著效果,并启发了一系列变体和扩展模型的发展。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。