循环神经网络-RNN
目录
二、LSTM(Long Short-Term Memory)
学习链接:
隐层连接着输入和输出层,它到底是什么?它就是特征空间,隐层节点的个数就是特征空间的维数,或者说这组数据有多少个特征。
输入层到隐层的连接权重则将输入的原始数据投影到特征空间,比如就表示这组数据在特征空间中第个特征方向的投影大小,或者说这组数据有多少份量的特征。
而隐层到输出层的连接权重表示这些特征是如何影响输出结果的,比如某一特征对某个输出影响比较大,那么连接它们的权重就会比较大。关于隐层的含义就解释这么多,至于多个隐层的,可以理解为特征的特征。
情感分类(正面,负面)
many-to-one,依次输入每条文本每个分词的词向量,最后用sigmoid进行分类;
将词转为词向量的方法有:
(1)one-hot representation,大量0值,数据稀疏,且易造成维度爆炸;
(2)tfidf向量化:输出的向量不包含次序信息,深度神经网络学不到什么东西,一般用ml的方法如贝叶斯,svn进行分类即可;
(3)word2vec:CBOW每次更新context(w)个词的词向量,skip-gram每次更新一个词(目标词)的词向量;haffman树在每个结点出更新参数,随机负采样是每次用一个样本去更新参数;
前向传播和反向传播
1、前向传播
更新方程:
,
,
,
2、反向传播
梯度更新:
GRU & LSTM
GRU和LSTM可以更好的捕捉深层连接,并改善梯度消失的问题;
一、GRU(Gated Recurrent Unit)
完整的GRU:
式一:记忆细胞的更新值;
式二:更新门,决定是否要用候选值更新决 t 时刻的**值,可选择更新一些细胞,一些不更新;
式三:相关门, 和 的相关性,定前面的序列对后面序列有多大影响;
式四:t 时刻的**值;
问题1:GRU 为什么可以解决长期依赖问题,为什么可以改善梯度消失问题?
答:由于记忆细胞以及更新门的选择更新;
例句:The cat which ... ,was sleeping; cat是单数,所以后面要用was,cat输入时,,中间的,直到was才会更新为;
根据sigmoid性质, ,括号里的值为大负数时, 会无限接近于0,可近似 ,此时,的值就被维持下来了,就不会发生梯度消失,并且非常有利于维持细胞的值,指导“was”出现的时候细胞的值才会被更新,才有;
二、LSTM(Long Short-Term Memory)
将GRU式三中的 和 分别用更新门和遗忘门代替,更强大、灵活;
式一:记忆细胞的候选值;
式二:更新门,是否更新,决定是否要用候选值更新决 t 时刻的**值,可选择更新一些细胞,一些不更新;
式三:遗忘门,选择性忘记,即保留多少,保留多少上一时刻的状态;
式四:输出门;输出门值不仅受输入、上一时刻的**值影响,也取决于上个记忆细胞的值;须知,若有一个100维的隐藏层记忆细胞单元,那第50个的值只能影响对应的那个门的第50个元素,关系是一对一的;的第一个元素只能影响门的第一个元素,以此类推;
式五:更新值,用单独的更新门和遗忘门去选择是维持旧的值还是加上新的值(候选值);
式六:t 时刻的**值;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深度学习-循环神经网络(RNN) - Python技术站