在人工智能的浩瀚星空中,深度学习以其卓越的能力照亮了无数领域,而长短期记忆网络(LSTM, Long Short-Term Memory)作为深度学习中一颗璀璨的明星,尤为引人注目。LSTM是循环神经网络(RNN)的一种特殊形式,它以其独特的结构设计,成功克服了传统RNN在处理长序列数据时容易出现的梯度消失或梯度爆炸问题,从而成为处理时间序列数据、自然语言处理(NLP)等任务的首选工具。本文将深入探讨LSTM的基本原理、结构特点、lstm 的门、训练技巧以及其在各个领域的广泛应用。

1、什么是lstm

LSTM:LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN)架构,用于处理和预测时间序列数据中间隔和延迟非常长的重要事件。LSTM通过引入“门”机制(遗忘门、输入门、输出门)来解决传统RNN在处理长序列时容易出现的梯度消失或梯度爆炸问题,使得LSTM能够更有效地捕捉长期依赖关系。RNN的问题:存在梯度爆炸和消失的问题,对于长距离的句子的学习效果不好。

梯度消失:RNN梯度消失是因为激活函数tanh函数的倒数在0到1之间,反向传播时更新前面时刻的参数时,当参数W初始化为小于1的数,则多个(tanh函数’ * W)相乘,将导致求得的偏导极小(小于1的数连乘),从而导致梯度消失。

梯度爆炸:当参数初始化为足够大,使得tanh函数的倒数乘以W大于1,则将导致偏导极大(大于1的数连乘),从而导致梯度爆炸。

总之就是 当 参数大于 1 的时候,1 的n次方 就会出现梯度爆炸,趋近正无穷,当参数小于1 的时候,1的N次方 就会出现梯度消失,趋近于0。

2、lstm 的网络结构

主要思想是:将信息存储在一个个记忆细胞中,不同隐藏层的记忆细胞之间通过少量线性交互形成一条传送带(图中红线),实现信息的流动。同时引入一种“门”的结构,用来新增或删除记忆细胞中的信息,控制信息的流动。

结构图:

1721648504177.jpg

x 也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的

+号 则代表进行矩阵加法。

Ct-1 是 当前神经元的输出

从架构图上可以看到主要是三个门单元,遗忘门,输入门 和 输出门。

遗忘门和输入门的输入都是 当前时间的输入Xt 和 上一个隐层的数据

输出门的输入是当前的输出

3、lstm 的门

上面的是理解下LSTM的结构,下面就要细节介绍了,尽量用通俗的语言帮你理解,也会附上数学公式,如果能理解就理解,不能理解也不影响。先附上经典的LSTM架构

1721648841824.jpg

3.1 输入数据的说明

这里重点说明下输入的数据

比如输入是:我爱北京天安门

对输入进行编码【1,2,3,4,5,6,7】(一般不会这么编码,一般是编码为词向量,这里只是为了说明问题)

输入 Xt-1 = 2 则 Xt = 3 ,整个一个句子就是一个序列。

3.2 lstm 的核心就是三个门函数

再来个简单的图,可以一下看到当前细胞使用的函数,只有两个sigmod 和tanh神经网络层

1721649260425.jpgtanh神经网络层

输入的数值会被保留在[-1,1]的区间内,

1721649562278.jpg

sigmod神经网络层

输入的数据都会被转换为(0,1)的区间内

1721655844615.jpg

3.3 遗忘门

遗忘门是负责遗忘记忆单元Ht-1 中多少记忆得以保存。

1721655941252.jpg

如图:下面具体解析下其中的数学操作

Ht-1 = [0.1,0.2,0.3] 是一个一行三列的一个矩阵

Xt = [0.6,0.7,0.8] 也是一个一行三列的一个矩阵

则[Ht-1,Xt] = [0.1,0.2,0.3,0.6,0.7,0.8] ,即

6 代表一个神经单元,整个函数的模型就是 f = wx +b

Wf 是当前神经单元的参数

bf 是偏置参数

整个神经元的输出通过sigmoid 函数输出全是(0,1)之间的数值,比如[0.4,0.8,0.9]

3.4 输入门

输入门的作用就是往状态信息中添加新东西

输入门包含两部分,同时使用了两个神经元函数。

1721655992016.jpg

It 的函数操作何上面的输入门的解释差不多,用以控制新状态信息的更新程度

Ct 用以控制输入的数据

1721656222436.jpg

最终的输出结果是上面两步的结果的一个函数。

Ct 就是当前时刻的输出

Ct-1 是上一个时刻的输出

It 是输入门的更新程度

C"t 是控制输入的数据

 

3.5 输出门

我们需要确定输出什么值。输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。

输出门是输出的记忆,也就是前面的积累输出门也是两个神经单元Ot是要sigmod神经单元

Ht 是Ct 作为输入的tanh单元

1721656383152.jpg

点赞(1) 打赏

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部