深度学习-循环神经网络(RNN)

循环神经网络-RNN

目录

情感分类(正面,负面)

前向传播和反向传播

1、前向传播

2、反向传播

GRU & LSTM

一、GRU(Gated Recurrent Unit)

二、LSTM(Long  Short-Term Memory)


学习链接:

零基础入门深度学习(6) - 长短时记忆网络(LSTM)

Word2Vec数学原理详解

       隐层连接着输入和输出层,它到底是什么?它就是特征空间,隐层节点的个数就是特征空间的维数,或者说这组数据有多少个特征。

       输入层到隐层的连接权重则将输入的原始数据投影到特征空间,比如就表示这组数据在特征空间中第个特征方向的投影大小,或者说这组数据有多少份量的特征。

       而隐层到输出层的连接权重表示这些特征是如何影响输出结果的,比如某一特征对某个输出影响比较大,那么连接它们的权重就会比较大。关于隐层的含义就解释这么多,至于多个隐层的,可以理解为特征的特征。 

 

情感分类(正面,负面)

        many-to-one,依次输入每条文本每个分词的词向量,最后用sigmoid进行分类;

将词转为词向量的方法有:

(1)one-hot representation,大量0值,数据稀疏,且易造成维度爆炸;

(2)tfidf向量化:输出的向量不包含次序信息,深度神经网络学不到什么东西,一般用ml的方法如贝叶斯,svn进行分类即可;

(3)word2vec:CBOW每次更新context(w)个词的词向量,skip-gram每次更新一个词(目标词)的词向量;haffman树在每个结点出更新参数,随机负采样是每次用一个样本去更新参数;

前向传播和反向传播

1、前向传播

更新方程:

a^{\left ( t \right )}=b+Wh^{t-1}+Ux^{t},

h^{\left ( t \right )}=tanh\left ( a^{\left ( t \right )} \right ),

o^{\left ( t \right )}=c +Vh^{^{\left ( t )}},

{\hat{y}}^{\left ( t \right )}=softmax\left ( o^{\left ( t \right )} \right )

2、反向传播

梯度更新:

GRU & LSTM

GRU和LSTM可以更好的捕捉深层连接,并改善梯度消失的问题;

一、GRU(Gated Recurrent Unit)

完整的GRU:

 

式一:记忆细胞的更新值;

式二:更新门,决定是否要用候选值更新决 t 时刻的激活值,可选择更新一些细胞,一些不更新;

式三:相关门,C^{^{t-1}} 和 C^{^{t}} 的相关性,定前面的序列对后面序列有多大影响;

式四:t 时刻的激活值;

 

问题1:GRU 为什么可以解决长期依赖问题,为什么可以改善梯度消失问题?

答:由于记忆细胞以及更新门的选择更新;

        例句:The cat which ... ,was sleeping;   cat是单数,所以后面要用was,cat输入时,\Gamma _{u}= 1,中间的\Gamma _{u}= 0,直到was才会更新为\Gamma _{u}= 1

        根据sigmoid性质,\Gamma _{u} = sigmoid\left ( ... \right ) ,括号里的值为大负数时,\Gamma _{u} 会无限接近于0,可近似\Gamma _{u}\approx 0 ,此时C^{^{t}} = C^{^{t-1}}C^{^{t}}的值就被维持下来了,就不会发生梯度消失,并且非常有利于维持细胞的值,指导“was”出现的时候细胞的值才会被更新,才有\Gamma _{u}= 1;

二、LSTM(Long  Short-Term Memory)

        将GRU式三中的 \Gamma _{u} 和 1-\Gamma _{u} 分别用更新门和遗忘门代替,更强大、灵活;

式一:记忆细胞的候选值;

式二:更新门,是否更新,决定是否要用候选值更新决 t 时刻的激活值,可选择更新一些细胞,一些不更新;

式三:遗忘门,选择性忘记,即保留多少,保留多少上一时刻的状态C^{^{t-1}}

式四:输出门;输出门值不仅受输入x^{^{t}}、上一时刻的激活值a^{^{t-1}}影响,也取决于上个记忆细胞的值C^{^{t-1}};须知,若有一个100维的隐藏层记忆细胞单元,那第50个C^{^{t-1}}的值只能影响对应的那个门的第50个元素,关系是一对一的;C^{^{t-1}}的第一个元素只能影响门的第一个元素,以此类推;

式五:更新值,用单独的更新门和遗忘门去选择是维持旧的值C^{^{t-1}}还是加上新的值(候选值);

式六:t 时刻的激活值;

 

RNN循环神经网络)是一种常用于处理序列数据的神经网络模型。它的主要特点是能够通过时间上的循环连接来传递信息,使得网络可以对任意长度的序列进行建模和预测。 RNN的原理可以通过以下几个关键点来介绍: 1. 时间循环RNN中的每个神经元都会接收来自上一个时间步的输出,并将其作为当前时间步的输入。这种时间上的循环连接使得网络能够保持对序列中先前信息的记忆。 2. 参数共享:在RNN中,每个时间步使用的参数是相同的,这意味着网络在处理不同时间步的输入时使用相同的权重和偏置。这种参数共享使得网络可以对不同时间步之间的模式进行学习。 3. 隐藏状态:RNN中的隐藏状态是网络在处理序列时内部保存的信息。隐藏状态可以看作是网络对过去输入的编码表示,它在每个时间步都会被更新和传递给下一个时间步。 4. 反向传播:RNN可以使用反向传播算法进行训练,通过最小化预测输出与真实标签之间的误差来调整网络参数。在反向传播过程中,梯度会通过时间步展开,从而实现对整个序列的梯度计算和参数更新。 RNN的应用非常广泛,包括自然语言处理、语音识别、机器翻译等领域。然而,传统的RNN在处理长序列时容易出现梯度消失或梯度爆炸的问题,为了解决这个问题,后续出现了一些改进的RNN结构,如长短期记忆网络(LSTM)和门控循环单元(GRU)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值