LSTM网络模型的原理和优缺点-lstm网络参数

2023-08-07 22:32:57

 

RNN的引入

1、感知机

包含有输入层、输出层和一个隐藏层。输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果。

问题:单层感知机可以解决很多线性可分的分类,而且非常方便,但是对线性不可分问题无能为力。

2、多层感知机

使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。这就是现在所说的神经网络NN。

问题:其一,随着神经网络层数的加深,优化函数越来越容易陷入局部最优解,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。

其二,随着网络层数增加,“梯度消失”现象更加严重。(具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。)

3、DNN

为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。

问题:全连接DNN(见下图)的结构里下层神经元和所有上层神经元都能够形成连接,从而导致参数数量膨胀。

4、RNN

DNN的两个问题:第一,无法对时间序列数据进行建模处理;第二,全连接的操作导致参数膨胀。因此引入了CNN和RNN分别来解决这两个问题。CNN的权值共享操作大大减少了网络的参数量,解决了DNN的参数膨胀问题。

DNN无法对时间序列上有变化的情况进行处理。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。因此出现了——循环神经网络RNN。

在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间段直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!(如下图)

LSTM结构

下面是对LSTM单元内各部分的理解:

LSTM的关键是单元状态(cell state),即图中LSTM单元上方从左贯穿到右的水平线,它像是传送带一样,将信息从上一个单元传递到下一个单元,和其他部分只有很少的线性的相互作用。

LSTM通过“门”(gate)来控制丢弃或者增加信息,从而实现遗忘或记忆的功能。“门”是一种使信息选择性通过的结构,由一个sigmoid函数和一个点乘操作组成。sigmoid函数的输出值在[0,1]区间,0代表完全丢弃,1代表完全通过。一个LSTM单元有三个这样的门,分别是遗忘门(forget gate)、输入门(input gate)、输出门(output gate)。

遗忘门(forget gate):遗忘门是以上一单元的输出 ht−1h_{t-1} 和本单元的输入 xtx_{t} 为输入的sigmoid函数,为 Ct−1C_{t-1} 中的每一项产生一个在[0,1]内的值(可看做概率值),来控制上一单元状态被遗忘的程度。

输入门(input gate):输入门和一个tanh函数配合控制有哪些新信息被加入。tanh函数产生一个新的候选向量 ,输入门为 Ct~\tilde{C_{t}} 中的每一项产生一个在[0,1]内的值,控制新信息被加入的多少。至此,我们已经有了遗忘门的输出 ftf_{t} ,用来控制上一单元被遗忘的程度,也有了输入门的输出iti_{t},用来控制新信息被加入的多少,我们就可以更新本记忆单元的单元状态了。

输出门(output gate):输出门用来控制当前的单元状态有多少被过滤掉。先将单元状态激活,输出门为其中每一项产生一个在[0,1]内的值,控制单元状态被过滤的程度。

通俗来说,LSTM的3个门就是通过3个[0,1]之间类似于概率的数值来有选择地过滤旧的信息Ct−1C_{t-1}、新加入的信息Ct~\tilde{C_{t}}和当前单元状态的全部信息 tanh(Ct)tanh(C_{t}) 的操作。

LSTM优缺点

优点:

1、CNN并不完全适用于学习时间序列,因此会需要各种辅助性处理,且效果也不一定好。面对对时间序列敏感的问题赫和任务,RNN(如LSTM)通常会比较合适。RNN用于序列数据,并且有了一定的记忆效应;

2、RNNs可以视为一个所有层共享同样权值的深度前馈神经网络。它很难学习并长期保存信息。为了解决这个问题,一个增大网络存储的想法随之产生。采用了特殊隐式单元的LSTM便是为了长期的保存输入。一种称作记忆细胞的特殊单元类似累加器和门控神经元:它在下一个时间步长将拥有一个权值并联接到自身,拷贝自身状态的真实值和累积的外部信号,但这种自联接是由另一个单元学习并决定何时清除记忆内容的乘法门控制的;

3、LSTM是RNN的一个优秀的变种模型,继承了大部分RNN模型的特性,同时解决了梯度反传过程由于逐步缩减而产生的Vanishing Gradient问题。

缺点:

1、并行处理上存在劣势。与一些最新的网络相对效果一般;

2、RNN的梯度问题在LSTM及其变种里面得到了一定程度的解决,但还是不够。它可以处理100个量级的序列,而对于1000个量级,或者更长的序列则依然会显得很棘手;

3、计算费时。每一个LSTM的cell里面都意味着有4个全连接层(MLP),如果LSTM的时间跨度很大,并且网络又很深,这个计算量会很大,很耗时。

总结:

LSTM与RNNs一样比CNN能更好地处理时间序列的任务;同时LSTM解决了RNN的长期依赖问题,并且缓解了RNN在训练时反向传播带来的“梯度消失”问题。

LSTM本身的模型结构就相对复杂,训练比起CNN来说更加耗时;此外,RNN网络的特性决定了它们不能很好的并行化处理数据;再者,LSTM虽然一定程度上缓解了RNN的长期依赖问题,但对于更长的序列数据,LSTM也是很棘手的。


以上就是关于《LSTM网络模型的原理和优缺点-lstm网络参数》的全部内容,本文网址:https://www.7ca.cn/baike/60124.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明