《白话深度学习与Tensorflow》学习笔记(3)HMM RNN LSTM
来源:互联网 发布:辽宁北方频道网络直播 编辑:程序博客网 时间:2024/05/22 23:59
RNN:循环神经网络
与CNN最大的不同是记忆暂存功能,可以把过去输入的内容所产生的远期影响量化后与当前时间输入内容一起反应到网络中参与训练。尤其是对时间序列、自然语言(上下文关系)的处理,具有优势。
马尔科夫链:在给定当前的知识或信息下,观测对象过去的历史状态对于将来的预测是无关的,只需要观测当前状态即可得出。
HMM:隐马尔可夫模型,隐马尔可夫链的模型相对简化,是贝叶斯信念的一个特例。
假如三个骰子,分别是正方体D6、四面体D4和八面体D8。
无序的扔这三个骰子,可能出现了一串序列,2,1,8。这就叫做可见状态链,而其中还存在隐含状态链,如D4,D6,D8。HMM中的马尔科夫链一般是指隐含状态链,实际是隐含状态之间的转化概率。隐含状态和可见状态直接的概率叫做输出概率。
HMM隐马尔可夫模型,即通过统计的方法可以去观察和认知一个事件序列上邻近事件发生的概率转换问题。
如何训练HMM模型:输入Xi序列和Oi序列,全部通过统计学模型完成,得到的模型结果就是一个转移矩阵。一个输出概率矩阵和一个隐含状态转移矩阵。这样可以对下一个输出状态进行基于概率的预测。
RNN为如下的结构:
输入向量是Xt,得到Wx与Xt的乘积之后会有一个Ht,这个Ht会和下一次进入网络的Xt一起再次输入网络进行计算,调整权值,这样就可以使得前一次输入的向量所产生的结果对于本次输出的结果有一定影响,计算公式:
最终得到WH和Wx的矩阵。
RNN的模型在时间上可以进行展开(仅仅在时间上展开即随着时间的推移更新网络权值):
【图片来自:http://blog.csdn.net/heyongluoyao8/article/details/48636251】
误差传播:
由于误差的计算其中的
涉及很长的连乘,计算量颇大,所以会造成灾难,因此传统的RNN理论上虽然说得通,但是训练效果不理想。
改进的RNN:LSTM
LSTM:长短期记忆网络(long stort-term memory)由LSTM算法对标准RNN进行改进。规避了标准RNN中的梯度爆炸和梯度消失的问题。
忘记门(forget gate)某个X值可能会影响一个在时间上或者空间上比较远的hj输出,训练的过程就是学习到这个影响被量化的过程。LSTM可以是一个很大的方阵,中间部分是一个个LSTM单元,如下图所示:
http://www.jianshu.com/p/9dc9f41f0b29这篇文章中有详细的解释。
首先是从左到右的向量传输过去(输入的C(t-1)先进行乘法运算再叠加一个向量)。乘法器乘的系数可以考到左侧的h(t-1)和下面的Xt经过连接操作,再通过Sigmoid函数生成0-1之间的数。
忘记门:忘记就是这个相乘的过程,如果Sigmoid输出为1就完全记住,0就完全忘记,中间的值就是记忆的比例。
3、Tanh也是神经网络的一个层,可以把一个值映射到一个-1,1之间的数。
到这里其实决定本次输出的Ct究竟有多少采纳本次输入的信息,多少采纳上次遗留的信息。在语言模型中,表示前一个主语到当前是否应该被遗忘,而新的主语是否应该代替原先的主语出现。
最后的输出:2个,一个输出到同层下一个单元,一个输出到下一层的单元上。
应用:分类器、翻译器、有限状态机、聊天机器人等。
RNN+CNN 实现图片特征标注:
CNN用于提取特征,RNN用这些特征的Feature向量和描述向量来做训练。
- 《白话深度学习与Tensorflow》学习笔记(3)HMM RNN LSTM
- RNN LSTM与GRU深度学习模型学习笔记
- 深度学习基础:RNN与LSTM
- 深度学习---情感分析(Rnn,LSTM)
- 深度学习笔记——RNN(LSTM、GRU、双向RNN)学习总结
- 《白话深度学习与Tensorflow》学习笔记(1)深度学习框架、CNN、VC维
- RNN与LSTM学习
- 深度学习(BOT方向) 学习笔记(2) RNN Encoder-Decoder 及 LSTM 学习
- 《白话深度学习与Tensorflow》学习笔记(2)梯度下降、梯度消失、参数、归一化
- 《白话深度学习与Tensorflow》学习笔记(4)Deep Residual Networks
- 《白话深度学习与Tensorflow》学习笔记(6)生成式对抗网络(GAN)
- 《白话深度学习与Tensorflow》学习笔记(7)RBM限制玻尔兹曼机
- RNN、LSTM、GRU学习笔记
- RNN,LSTM深度学习模型原理与应用
- 深度学习_循环神经网络RNN与LSTM
- 机器学习-->深度学习-->RNN,LSTM
- 学习Tensorflow的LSTM的RNN例子
- tensorflow RNN初探(30)---《深度学习》
- Python曲线拟合
- JavaScript从原型到原型链
- 机器学习基石-09-2-Linear Regression Algorithm
- 编译mariadbconn-c-src
- Android MUPDF阅读器放大模糊优化
- 《白话深度学习与Tensorflow》学习笔记(3)HMM RNN LSTM
- [渡一] 171106 函数、对象
- Spring bean初始化和销毁/bean作用域
- shader总结六
- OpenGL-纹理
- 读后感 《人工智能狂潮-机器人会超越人类吗?》
- Diary III
- 标题有两边线的用法
- QT Qimage转Iplimage