网络流量预测入门(二)之LSTM介绍

网络流量预测入门(二)之LSTM介绍

​ 这篇blog大家就随便看一下吧,基本上是参照RNN模型与NLP应用(4/9):LSTM模型这个是video和Understanding LSTM Networks这篇博客写出来的。实际上大家只需要看上述两个内容就🆗了,他们的教程深入浅出,形象生动。

​ 在网络流量预测入门(一)之RNN 介绍中,对RNN的原理进行了介绍,然后,在简单明朗的 RNN 写诗教程中详细的介绍了如何使用keras构建RNN模型来写诗。

​ 而在这篇blog中将对LSTM进行介绍。

LSTM简介

​ LSTM全称Long Short-Term Memory,中文名:长短期记忆,是一种循环网络。值得注意的是,Long Short-Term Memory中的-是放在Short与Term中间的。相比较于Simple RNN,LSTM在长的时间序列中有着更好的表现。

​ Simple RNN网络会因为梯度消失问题,导致无法回忆起长久的记忆,也就是说Simple RNN是一个Short-Term Memory的模型。但是,LSTM通过某一些操作,使得其能够回忆起长久的记忆,也就是说它是一个长的短期记忆,因此被称之为 Long Short-Term Memory。——李宏毅

Simple RNN的弊端

​ RNN会面临两个问题:梯度消失问题梯度爆炸问题,关于具体的公式推导,可以参考RNN 的梯度消失问题

​ 简单点来说,就是下图中的WU会随着时间序列的加长,也就是layer层数的增多而产生梯度消失和梯度爆炸问题。而LSTM通过门的机制解决了整个问题。

​ 下面将对LSTM的结构进行介绍。

LSTM的结构

​ 下面是一张LSTM的结构示意图,来自Understanding LSTM Networks,看起来很复杂,确实相比较于RNN,它确实要复杂很多,但是却也没那么难理解。与Simple RNN很类似,input 一个xt,output一个状态ht。(只不过在其内部多了一个叫做Cell State的东西)

​ 下图中,被重复的单元称之为细胞(Cell),也就是图中绿色的框框。

​ 下图是结构图中所出现的符号:

​ 先对符号做解释:

  1. 代表的是神经网络,中间的σ或者tanh代表的是其激活函数。
  2. 表示逐点操作:
    • 表示逐点相乘:[0.90.20.50.1][0.5010.8]=[0.4500.50.08]
    • 表示逐点相加:[0.90.20.50.1]+[0.5010.8]=[1.40.20.50.7]
    • 表示逐点用tanh函数:tanh([0.90.20.50.1])=[0.7170.1980.4620.100]
  3. 表示如下将两个矩阵连接起来:

​ LSTM发挥作用,离不开以下几个概念:Cell State ,Forget Gate,Input Gate ,Output Gate。下面将详细对其进行介绍。

细胞状态(Cell State)

​ Celle State是LSTM最关键的部分,它类似一条传输带,贯穿LSTM整个部分(可以形象地理解为主要矛盾)。举个例子:

​ 当我们分析一部小说主题的时候,肯定不会一个字一个字地分析,我们会抓住主要矛盾,分析小说中的主要情节矛盾,然后判断一部小说的主题。

  1. 有些小说写的比较隐晦,主题可能会在后段部分才显现出来,因此我们在读小说的时候,会不断更新脑海中对主要矛盾的印象,往里面添加新的东西,同时删除某些次要的东西。
  2. 有的小说开门见山,在文章的开始就会告诉你主题是什么,因此,你在后面阅读的过程中,你就不会再向你脑海中的主要矛盾添加内容了,因为你知道后面的内容不会影响主要矛盾。

​ 接下来将讨论三种门,不过在讨论三种门之前,我们应该先弄清楚什么是门。

内容参考于RNN模型与NLP应用(4/9):LSTM模型

门(Gate)

​ 在LSTM中有三种门,那么门到底是什么呢?门的作用很简单,就是让information选择性通过。门的结构如下图左边所示:

​ 在这种情况下,当一个数据c通过一个门f🚪的时候(f 中的每一个数都位于01之间),f会对数据 c 进行选择,可以让它全部通过(图中的0.51=0.5),也可以让它完全不通过(图中的0.20=0),当然也可以让它部分的通过。

​ 而在LSTM分别有着以下三种门:Forget Gate,Input Gate,Output Gate。

遗忘门(Forget Gate)

​ 遗忘门构成如下所示ft=σ(Wf[ht1,xt]+bf)ft中的每一个值都介于01之间,其中Wfbf是LSTM在训练的时候,通过反向传播进行学习的。

​ 遗忘门的作用很简单,那就是控制Ct1中哪一些数据应该被“遗忘”。

输入门(Input Gate)

​ 图中的 it 表示输入门,C~t表示加入Cell State的数据。it中的每一个值都介于01之间,而C~t的值介于11之间,其中Wi,Wc,bi,bc是通过反向传播进行学习更新的。

​ 输入门的作用就是控制C~t中哪一些数据能够加入到Cell State中。

Cell State的更新

​ Cell State的更新需要遗忘门和输入门的同时作用,遗忘门作用于上一个状态Ct1,输入门作用于当前输入C~t=tanh(WC[ht1,xt]+bc)。这样,当被遗忘门处理后的Ct1加上新的输入C~t,就组成新的Ct了,完成了一次Cell State的更新。

输出门(Output Gate)

​ 输出门的结构如下说所示,Ot中的每一个值都介于01之间,其中Wobo是LSTM在训练的时候,通过反向传播进行学习的。

​ 输出门的作用实际上就是通过控制Ct以达到控制ht的目的。

输出ht

​ 输出的示意图如下所示,tanh(Ct)中的每一个值都位于1+1之间,输出门Ot通过控制Ct的information,来产生输出htht会被赋值为两份,一份作为下个layer的ht,一份用于LSTM在时序t时刻的输出。

总结

​ 以上,便是对LSTM结构的介绍,如果已经能够很好的理解上面的内容,让我们再回过头来看下面这张图,是不是就感觉简单起来了呢?

​ 在下篇博客,将介绍如何使用LSTM来生成音乐。嘿嘿嘿~~

参考

  1. RNN模型与NLP应用(4/9):LSTM模型
  2. Understanding LSTM Networks
  3. 什么是 LSTM 循环神经网络
  4. ML Lecture 21-1: Recurrent Neural Network (Part I)
  5. RNN 的梯度消失问题
posted @   渣渣辉啊  阅读(4956)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示