RNN

递归神经网络(RNN)是一种能够处理序列信息的深度学习模型。通过权重共享,RNN解决了传统神经网络无法处理序列依赖的问题。然而,RNN存在梯度爆炸和梯度消失的问题,这在长序列处理中尤为显著。LSTM(长短期记忆网络)通过门控机制缓解了这些问题,允许长期依赖的保留。LSTM由遗忘门、输入门和输出门组成,分别负责遗忘旧信息、引入新信息和控制输出。
摘要由CSDN通过智能技术生成

RNN

sequence representation

出现原因

他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

文本信息的表达方式

【文字或者是单词的数量,数据编码的方式】

编码方式

one-hot编码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpADTVWp-1599999032853)(C:%5CUsers%5CJason%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200911105656472.png)]

但是当文字或者是单词数量变多的时候,该编码方式比较稀疏,维度较高,成本较大

semantic similarity语义相关性

根据一些单词语义的相关性以及相反性来进行连接

添加了batch的表达方式:

【word_num, b , word_vec】

【b , word_num, word_vec】

例子

表达 i hate this boring movie

每个单词的表示方法:【100】(假设一共有100个单词)

然后这个句子的表示方法:【5,100】

通过提取每个单词的语义特【2】之后汇总【5,2】来表示这个语义。

缺点:

  1. 在生活中的小说、一段文字中单词较多,w、b的参数较多

  2. 没有上下文的语义联系,通过一个单词一个单词进行分析是不高效、不智能的,所以需要存储一个语境信息

weight sharing

将w、b参数不分为若干个,而是使用一个统一的参数来对整个句子进行分析提取语义特征——weight sharing来解决过多的参数问题

Snipaste_2020-09-11_16-44-03

Snipaste_2020-09-11_16-44-23

consistent memory

在进行下一个单元的提取的时候,不但要输入这个单元的数据,还要输入上一个单元的语义信息,这样的话就相当于有一个单元一直提供之前的语义信息(在这样的传递下前面的语义信息是在积累的),通过这一次的输入以及上一次的语义信息来进行网络的更新。

image-20200912090453011

folded model

image-20200912091637247

(其中的 X t X_t Xt表示本次的数据特征, h 0 h_0 h0表示最开始的初始化特征,而 h t h_t ht表示前一次的语义信息)

unfolded model

image-20200912092157501

其中的 h t h_t ht可以只是上一次的语义信息,也可以是全部的语义信息的汇总,也可以是中间的语义信息,比较灵活。

image-20200912144734346

nn.RNN

input_size:是word embedding的维度

hidden_size:是memory的size

forward函数:是一步到位的,例如【5,3,100】5个单词不是将数据喂5次,而是一次到位

out,ht = forward(x,h0)

其中h0表示【layer层数,batch,feature数(hidden_size)】

ht表示最后的一个时间语义输出【layer层数,batch数,feature数】

out表示所有的语义输出【单词数,batch数,feature数】

例子:

import torch
rnn = torch.nn.RNN(input_size=100,hidden_size=20,num_layers=1)
print(rnn)

x = torch.randn(10,3,100)#可以理解为一句话10个单词,一共3句话
out,h = rnn(x,torch.zeros(1,3,20))
print(out.shape,h.shape)
RNN(100, 20)
torch.Size([10, 3, 20]) torch.Size(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值