RNN
循环神经网络主要适合处理有连续特征的数据(序列数据),比如语音、文本等
对于自然语言处理来讲,通常我们会首先对一段话进行分词,将分好后的词$X_0,X_1,X_2...X_t$依次输入其中,前面的每个词经过rnn中的A(类似于bp神经网络结构)后,都会对A产生影响,从而对后面词的输出产生影响,来完成对一整段连续数据的处理,例如机器翻译,输出这段文本的分类等。
rnn在A向后传播的时候,后面词对输出的影响会逐渐减弱,这样就会导致只有前面的词对结果的影响比较大,针对这种缺陷,大神们又推出了rnn的变种LSTM(长短时记忆网络)
LSTM
上图左边是lstm的基本神经元结构,信号从图的下方输入,从图的上方输出,关键的是 他的三个门,输入门(Input Gate)、遗忘门(Forget Gate)、输出门(Output Gate),这三个门的参数初始值都是随机初始化的,通过带标签的数据进行训练,最终得到相应的值,比如lstm模型中某个神经元的输入门是0.133221,遗忘门是0.233345,输出门是0.89893。
在看上图右边,输入数据与各门相乘再向后传播,说实话我没有很清晰的理顺数据传输的过程,然后我又去看了下吴恩达老师的lstm的讲解,很遗憾我还是不能很清晰的理顺,这个之后还需再找些其他的详细资料看一下。
上图是lstm的整体数据处理的过程,通过各种门可以非常好的控制什么信号可以输入、什么信号不能输入、什么时候能输出(序列数据时序很重要,如机器翻译)还有在隐藏层里的数据在向后传的时候忘记还是不忘记。
目录:
- tensorflow简介、目录
- tensorflow中的图(02-1)
- tensorflow变量的使用(02-2)
- tensorflow中的Fetch、Feed(02-3)
- tensorflow版helloworld---拟合线性函数的k和b(02-4)
- tensorflow非线性回归(03-1)
- MNIST手写数字分类simple版(03-2)
- 二次代价函数、交叉熵(cross-entropy)、对数似然代价函数(log-likelihood cost)(04-1)
- 多层网络通过防止过拟合,增加模型的准确率(04-2)
- 修改优化器进一步提升准确率(04-3)
- 手写数字识别-卷积神经网络cnn(06-2)
- 循环神经网络rnn与长短时记忆神经网络简述(07-2)
- 循环神经网络lstm代码实现(07-3)
- tensorflow模型保存和使用08
- 下载inception v3 google训练好的模型并解压08-3
- 使用inception v3做各种图像分类识别08-4
- word2vec模型训练简单案例
- word2vec+textcnn文本分类简述及代码