LSTM(Long Short-Term Memory)和LSTM例子理解

What is LSTM

LSTM(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。
LSTM 已经在科技领域有了多种应用。基于 LSTM 的系统可以学习翻译语言、控制机器人、图像分析、文档摘要、语音识别图像识别、手写识别、控制聊天机器人、预测疾病、点击率和股票、合成音乐等等任务。

LSTM

这里写图片描述

LSTM是为了解决RNN在长期依赖方面的问题,以解决随着梯度下降产生的梯度消失(返回的数值在经过每一层神经网络的时候,乘以一个小于一的权重值,在一定次数之后,返回的数值消失【返回的数值接近于0】),或者是梯度爆炸(返回的数值在经过每一层神经网络的时候,乘以一个大于一的权重值,在一定次数之后,返回的数值爆炸【返回的数值接近于无穷大】)
LSTM实在传统的RNN的每一层的输入层,神经网络层,输出层上加入一个处理函数:
1.在输入层之后添加一个GET()函数用于判断是否要在只有的神经网络的Train中使用当前时刻的输入信息。
2.在神经网络层上添加一个FORGET()函数用于判断是否需要之前时刻神经网络Train产生的结果,来作为当前时刻的神经网络Train的输入信息。或者将其暂时忘记。
3.在输出层之后添加一个GET()函数用于判断是否要读取当前M中产生的信息。
由于加入了以上三个函数,LSTM能够较好的完成RNN在长期依赖方面的问题。获取更好的Train结果。

LSTM例子——论如何快速通关仙剑奇侠传一

正如我们所知道的经典单机游戏仙剑奇侠传一是一个主线剧情+支线剧情的单机扮演类游戏,我们可以通过不断的与剧情任务(主线剧情或支线剧情)的互动来推动游戏向前发展。

对比于LSTM,RNN就是一般玩家。我们可以这样理解整个从一般的RNN推进的顺序可以看做是仙剑的主线剧情(标准结局,Stand End or Sad End),毫无疑问,如果我们只是和RNN一样玩了个Stand End,是难以让我们满足的。

所以,LSTM就登场啦。在骨灰级玩家LSTM的操作之下,我们学会了开发支线剧情,存档操作等等一系列的操作,就使得我们有了更好的(月如版隐藏结局与灵儿版隐藏结局,Happy End)。
在这里的LSTM开发支线剧情,存档操作等等一系列的操作就是我们上面所讲述输入层GET()函数、神经网络层FORGET()函数、输出层GET()函数的作用。我们可以这样理解这三个函数:
输入层GET()函数就是要不要将分线剧情考虑到主线剧情之中(要不要做支线任务,以重不重要,会对结果产生怎么样影响来决定进行还是忽略)。
神经网络层FORGET()函数(分线剧情是否十分重要,需不需要我们暂时忘记主线剧情)。
输出层GET()函数(这一个分线剧情会对我们产生什么影响,是保留还是消除它的作用)。

这里写图片描述

PS:好吧,我承认我是标题党,我也承认图片不是仙一。

猜你喜欢

转载自blog.csdn.net/danerer/article/details/79102119
今日推荐