唐YD深度学习入门视频课程

学习网址:唐YD深度学习入门视频课程

章节6章最后一讲,和第七章
唐YD深度学习入门视频课程

一、LSTM

唐YD深度学习入门视频课程
RNN网络的缺点是,所有属性信息都会记下来,不会遗忘。
而LSTM比RNN多了个C:控制参数,保留有价值的信息
唐YD深度学习入门视频课程
那么是如何C控制参数是如何保留信息的呢?是通过下图中的门单元,让信息选择式通过
唐YD深度学习入门视频课程
门单元可以用sigmoid函数和一乘法操作来做到让信息选择式通过
唐YD深度学习入门视频课程

1.1 控制参数C 如何有选择地丢弃无用数据

唐YD深度学习入门视频课程


唐YD深度学习入门视频课程

1.2 如何保存信息

1.1介绍了如何丢弃信息,这一节介绍如何保存信息
唐YD深度学习入门视频课程

唐YD深度学习入门视频课程

1.3 丢弃数据+保留数据后更新控制参数C

唐YD深度学习入门视频课程

1.4 更新完控制参数C后,输出数据

唐YD深度学习入门视频课程
唐YD深度学习入门视频课程

1.5 总结

LSTM核心就是围绕着控制参数C的更新, 可能一个输入数据特别大特别长,同过控制参数可能会对离得近信息更多的保留,离得远的数据可能就舍弃。
下图:h是输出,x是输入
唐YD深度学习入门视频课程

二、LSTM情感分析

2.1介绍

唐YD深度学习入门视频课程
词向量:一个词通过计算机编码转换成计算机可识别的数值型特征
唐YD深度学习入门视频课程
唐YD深度学习入门视频课程
有了词向量作为输入数据后,看如何构建神经网络。
唐YD深度学习入门视频课程
一个句子看上去有种时序的感觉,一个词一个词的有先后顺序地排列组合成一个句子。
一个神经网络通常输入数据的参数有三个(batchsize,timestamp,vec)
batchsize:指每次训练的时候有多少个样本放进神经网络进行正负向迭代
timestamp:输入时每个样本里词的数量,因为每个句子地长短不一,要规定一个句子长度,才能计算。比如说短的句子,就需要通过添加数值是0的向量进行补长,过长的句子就需要截断。
vec:就是指定每个词的词向量大小是多少。

【64,100,300】:指定每次训练64个样本,每个句子长度为100,也就是100个词,每个词的词向量是300维的

唐YD深度学习入门视频课程
传输步骤如上图,第一个词向量x1传进神经网络后,经过神经元/**函数后输出一个特征h1,接着第二个词向量x2传进来,结合上一层得到的特征h2,经过神经元输出一个新特征h2以此类推,到最后一个词向量输进去后,输出的最后一个值h就是综合考虑了前面所有词向量特征的结果。用这最后一个值作为分类预测。

2.2 实际流程

1.制作词向量,可以使用gensim库,也可使用别人制作的word2vec
2.构建词和ID的映射,这样以后新的文本进来,分词后,每个词才能找到对应的词向量
在tensorflow中,要先构建两个映射:实际单词对应一个ID,以及每个ID再对应一个词向量。
例如:apple对应id:001, 001有对应词向量[0.12,0.213,0.112,…]
3.构建神经网络架构
4.训练模型
5.检验准确度

案例给的word2vec包含40万个词向量,每个词向量50维
构建词和ID的映射如果用for循环找每个句子中每个词对应的ID太慢了,tensorflow有内置的embedding函数能快速找到对应索引
唐YD深度学习入门视频课程
embedding_lookup函数的输入是:句子里的词转换为索引后的结果+embedding matrix(其中包含了40万个字,每个字50维)
embedding_lookup函数的输出是:这句话的向量,也就是10x50维向量

唐YD深度学习入门视频课程