您现在的位置是:首页 >其他 >TensorFlow详解4-RNN+LSTM(1)网站首页其他
TensorFlow详解4-RNN+LSTM(1)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
动手实现RNN-LSTM循环神经网络
(目标:预测句子中的单词;比如“我是中国人,我很爱我的祖国,我会说??”那么深度学习之后判断空出的地方填上中文)
(本练习所用的数据集:PTB数据集)
一、背景和知识点
深度学习三大模型:
1、CNN卷积神经网络;(灵感:人脑视觉皮层对外界事物的感知)
2、RNN循环神经网络;(Recurrent循环Neural Network,灵感:来自人类的记忆机制)
3、DBN深度信念网络;(略)
RNN的优势:
1、RNN每一个输出于前面的输出建立起来关联;
2、能够很好的处理序列化的数据(如音乐、文章等)
3、能以前面序列化对象为基础,“生成”新的序列化对象;
二、RNN的局限性
步数增多导致梯度消失/爆炸,即梯度的反向传播中假如有很多个神经元相连在反向传播偏导数的过程中,会采用链式法则来进行叠加相乘,假如这些偏导都是一些极小的数的时候就会产生梯度消失(Vanishing),假如这些偏导都比1大会产生梯度爆炸(Exploding)
梯度消失的原因也与激活函数有一定的关系
threshold阀值,这样保证g^不会超过阀值,但是梯度消失却没有那么容易解决。
三、LSTM
梯度消失类似于记忆的消散,
LSTM:一种特殊的RNN循环神经网络,
Long Short-Term Memory:长短期记忆(长的短期记忆)。
1997年首次提出,目前循环神经网络的主要成就是LSTM完成的,RNN的缺陷是层数不能太多,如果层数太多容易造成梯度消失,有了LSTM之后,隐藏层层数可以多一点,这样训练效果可以更好;
目前循环网络的主要成就都是LSTM来完成的。
LSTM三重门机制:
遗忘门、输入门、输出门(按重要性排序);详细学习可查understanding LSTM networks
完全关闭:0;完全开放:1
LSTM解决梯度消失的主要原理:
1、对需要的“记忆”保持久一些;
2、对不需要的“记忆”进行遗忘;
遗忘或保持多少都由门来控制;
LSTM也有很多变体比如GRU(门控的循环单元,简化了很多门的参数合并了一些门);
四、词向量/词嵌入word embedding技术
我们要用到的训练数据包含10000个不同单词;假如用cnn识别手写图片,0-9这10个数字,采用的是one-hot编码模式(有多少个不同的字就有多少种二进制编码来表示它,这样做没有效率):其问题是数据量很大时效率很低;而采用词向量/词嵌入技术对于数据量很大的时候效率很高;
one-hot编码模式
词向量/词嵌入word embedding
相似的有相关性的词相距很近
one-hot编码与word embedding编码的转换
词向量里面两种常用的模型:
CBOW模型(用上下文去预测一个词)和Skip-Gram模型(给出一个词去预测上下文)