深度学习(一)|从RNN开始谈起_关于RNN和LSTM哪些事儿

  这篇文章是我们的第一篇学习性质的博客。由于对于之前学习的内容没有一个很好的归纳和整理😰,会出现概念遗忘或者模糊的问题,再加上Lily同学即将面临招聘笔试面试的腥风血雨,我们商量决定从今天开始,尽可能抽出时间复习以前学习过的知识的整理和归纳,一方面是一个很好的回顾,另一方面也是对以前知识的记录(万一之后遗忘可以回来翻一下哈哈哈哈😜)。我们不会长篇大论的去讲解,而是尽可能将干货摆出来(当然自己夹带的私货也会有),进行知识的精简展示——毕竟把书读薄也是一种能力😉

  总而言之,我们选择从深度学习开始系统性的回顾之前学习过或看过的概念,今天我们从RNN开始来回顾这一块儿的诸多知识点。

      1.关于RNN的前世今生

  循环神经网络(recurrent nerual network,RNN)

  这种想法最初源自1982Saratha Sathasivam提出的霍普菲尔德神经网络(Hopefield Networks)

  很遗憾的是,该文2009年才发表,更不幸的是,由于其实现非常的困难,很快就被全连接神经网络抢了风头🙄,一些传统的机器学习方法也获得了不错的效果,于是被打入了冷宫😞

  但是金子终究是会发光的,传统机器学习依赖人工提取特征的缺陷,以及全连接神经网络对于时间序列信息的不适应,也展示了这种复杂的结构并非一无是处——随着更有效的循环结构的提出(RNN,LSTM,GRU.etc),这种结构对于时序信息和语义信息的表达能力被充分挖掘,并在如语音识别语言模型机器翻译时序分析等方面获得应用。

      2.典型的RNN结构

  

 

  上图展示了一个典型的RNN网络,可以看到其展开的样子是一种具有前后关系的结构,这种“前后关系”将刻画时序中的“先后”

  对于一个典型的RNN循环体网络内部的具体结构如下

 

 

  可以看到,一个标准的RNN循环体内部是怎么计算的,对于输出的Ot我们一般会连接一个全连接神经网络 

      3.RNN的长期依赖以及LSTM粉墨登场

  在文本处理(特别是翻译)中,我们往往会面临长期依赖问题,标准的RNN循环体在解决短期依赖时还马马虎虎,但在面临长期依赖时就力不从心了

  长短时记忆神经网络(Long short-term memory,LSTM)就粉墨登场了

  对于LSTM,要记住有三个门:

  输入门,遗忘门,输出门

  

  三个门都把ht-1和xt作为输入,唯一不同的是遗忘门还将ct-1作为输入

  具体的计算如下图

  

 

输入门:决定将那些输入写入到当前状态Ct的中(1:写入,0:不写入);输入门有两个部分相乘:it和候选值~Ct

遗忘门:决定上一个状态Ct-1是否在当前状态Ct的计算中被遗忘(1:不遗忘,0:遗忘);

输出门:决定当前状态Ct的哪些部分被输出

 

以上就简介的说了一下标准RNN和LSTM,下一讲,我将会介绍标准RNN当中的BPTT算法的推导(这个推导还是很重要的,也挺难,之前手推就很花了一点时间),我们下期再见😉

 

posted on 2020-03-30 19:14  Lily_Acstream  阅读(318)  评论(0)    收藏  举报