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

作者: 段小辉


目录

  • [网络流量预测入门(二)之LSTM介绍]
  • [LSTM简介]
  • [Simple RNN的弊端]
  • [LSTM的结构]
    • [细胞状态(Cell State)]
    • [门(Gate)]
    • [遗忘门(Forget Gate)]
    • [输入门(Input Gate)]
    • [Cell State的更新]
    • [输出门(Output Gate)]
    • [输出$h_t$]
  • [总结]
    • [参考]


网络流量预测入门(二)之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 的梯度消失问题

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

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

LSTM的结构

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

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

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

​ 先对符号做解释:

  1. 代表的是神经网络,中间的\(\sigma\)或者\(tanh\)代表的是其激活函数。
  2. 表示逐点操作:
  3. 表示逐点相乘:\(\left[\begin{array}{c}0.9 \\ 0.2 \\ -0.5 \\ -0.1\end{array}\right] \circ\left[\begin{array}{c}0.5 \\ 0 \\ 1 \\ 0.8\end{array}\right]=\left[\begin{array}{c}0.45 \\ 0 \\ -0.5 \\ -0.08\end{array}\right]\)
  4. 表示逐点相加:\(\left[\begin{array}{c}0.9 \\ 0.2 \\ -0.5 \\ -0.1\end{array}\right] + \left[\begin{array}{c}0.5 \\ 0 \\ 1 \\ 0.8\end{array}\right]=\left[\begin{array}{c}1.4 \\ 0.2 \\ 0.5 \\ 0.7\end{array}\right]\)
  5. 表示如下将两个矩阵连接起来:

​ 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\) 中的每一个数都位于\(0\sim 1\)之间),\(f\)会对数据 \(c\) 进行选择,可以让它全部通过 (图中的\(-0.5*1=-0.5\)),也可以让它完全不通过 (图中的\(0.2*0=0\)),当然也可以让它部分的通过。

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

​ 遗忘门构成如下所示\(f{t}=\sigma\left(W{f} \cdot\left[h{t-1}, x{t}\right]+b_{f}\right)\),\(f_t\)中的每一个值都介于\(0\sim1\)之间,其中\(W_f\)和\(b_f\)是LSTM在训练的时候,通过反向传播进行学习的。

​ 遗忘门的作用很简单,那就是控制\(C_\)中哪一些数据应该被"遗忘”。

输入门(Input Gate)

​ 图中的 \(i_t\) 表示输入门,\(\tilde{C}{t}\)表示 加入Cell State的数据。\(i_t\)中的每一个值都介于\(0\sim1\)之间,而\(\tilde{C}{t}\)的值介于\(-1 \sim 1\)之间,其中\(W_i,W_c,b_i,b_c\)是通过反向传播进行学习更新的。

​ 输入门的作用就是控制\(\tilde_{t}\)中哪一些数据能够加入到Cell State中。

Cell State的更新

​ Cell State的更新需要遗忘门和输入门的同时作用,遗忘门作用于上一个状态\(C{t-1}\),输入门作用于当前输入\(\tilde{C}{t}=\tanh \left(W{C} \cdot\left[h{t-1}, x{t}\right]+b{c}\right)\)。这样,当被遗忘门处理后的\(C{t-1}\)加上新的输入\(\tilde{C}{t}\),就组成新的\(C_t\)了,完成了一次Cell State的更新。

输出门(Output Gate)

​ 输出门的结构如下说所示,\(O_t\)中的每一个值都介于\(0\sim1\)之间,其中\(W_o\)和\(b_o\)是LSTM在训练的时候,通过反向传播进行学习的。

​ 输出门的作用实际上就是通过控制\(C_t\)以达到控制\(h_t\)的目的。 输出\(h_t\)

​ 输出的示意图如下所示,\(tanh(C_t)\)中的每一个值都位于\(-1 \sim +1\)之间,输出门\(O_t\)通过控制\(C_t\)的information,来产生输出\(h_t\)。\(h_t\)会被赋值为两份,一份作为下个layer的\(h_t\),一份用于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 的梯度消失问题

    原文创作:段小辉

    原文链接:https://www.cnblogs.com/xiaohuiduan/p/14338917.html

文章列表

更多推荐

更多
  • .NET人工智能教程-四、使用自然语言理解 什么是 NLU?,自然语言理解的历史,为什么机器很难理解自然语言,语言理解智能服务(LUIS),为 LUIS 获取 Azure 订阅,演示:定义应用,概述,自然语言的复杂性,统计模型作为解决方案是不够的,充满希望的未来,基于 LUIS
    Apache CN

  • .NET人工智能教程-十、人工智能的未来 AI 为什么这么受欢迎?,改进的计算能力,人工智能算法的发明,数据是新的货币,云计算的出现,服务 vs 解决方案?,认知类别,NLU 的挑战和未来,演讲的挑战和未来,搜索的挑战和未来,挑战和建议的未来,AI 优先,智能边缘,将被淘汰的是
    Apache CN

  • .NET人工智能教程-七、与语音 API 交互 与语音互动的方式,入门指南,首先获取 JSON Web 令牌,消费者语音 API,语音合成,定制语音服务,说话人识别,摘要,认知搜索 API,语音识别,语音识别内部,定制声学模型,自定义语言模型,发音数据,自定义语音转文本端点,说话人验
    Apache CN

  • .NET人工智能教程-五、探索认知语言模式 iamfeanggoodgermanyvsargentinafootballliveepic fail,Bing 拼写检查 API,文本分析 API,Web 语言模型(WebLM) API,语言分析 API,概述,这是什么?
    Apache CN

  • .NET人工智能教程-一、人工智能基础入门 真实与虚构,历史和演变,微软和人工智能,基本概念,微软的认知服务,概述,当前的事态,人工智能的商品化,机器学习,语言,演讲,计算机视觉,视力,演讲,语言,知识,搜索, 想象一下,创建一个如此智能的软件,它不仅能理解人类语言,还能理解俚语
    Apache CN

  • .NET人工智能教程-三、使用微软技术构建对话式用户界面 什么是对话式用户界面?,简史,设计原则,微软机器人框架,使用 Bot 框架创建 CUI 应用,概述,一开始:命令行界面(CLI),然后是图形用户界面,UI 又一次进化了:对话式用户界面,艾在《崔》中的角色,崔的陷阱,混合用户界面(CUI
    Apache CN

  • .NET人工智能教程-二、在 Visual Studio 中创建基于人工智能的应用 使用认知服务的先决条件,设置开发环境,获取认知服务的 Azure 订阅密钥,测试 API,创建你的第一个基于人工智能的应用,让你的应用更有趣,概述,步骤 1:设置 Azure 帐户,步骤 2:创建一个新的认知服务帐户,步骤 3:获取订阅
    Apache CN

  • .NET人工智能教程-八、应用搜索产品 搜索无处不在,普及、预测、主动(搜索的三个 p),冰的历史,必应有什么独特之处?,搜索 API,Bing 图像搜索 API,Bing 新闻搜索 API,Bing 视频搜索 API,如何使用 Bing 视频搜索 API,Bing 网络搜索
    Apache CN

  • .NET人工智能教程-九、使用建议 了解基础知识,经常汇集(FBT)的建议,逐项,基于过去历史的建议,这些建议是如何起作用的?,模型和类型,建议构建,经常聚集在一起(FBT)建设,排名,SAR(智能自适应)构建,在构建中设置规则,离线评估,用户界面,摘要, 机器学习无处不
    Apache CN

  • .NET人工智能教程-六、消费和应用 LUIS 规划您的应用,创建 LUIS 应用,添加意图,添加/标记话语,发布您的应用,添加实体,添加短语列表,建议的后续步骤,LUIS 与 Bot 框架的集成,将您的机器人添加到 Skype,概述,机器人应该能做什么?,机器人需要用户提供什么信息
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多