构成
比之前多了一个圈
这个圈包含t时刻之前的数据特征,主要用在NLP自然语言处理中。
只用最后一个结果ht,前面的当做中间结果
特点
会把之前看到的都记下来,但第n句话和第一句话之间联系不太大,没必要
LSTM
自然语言处理
考虑词的 前后顺序和相关性
构建词向量,不断向后滑动学习
cbow 和skip-gram方法
- cbow输入上下文,输出预测最中间的位置的词
- skip-gram 输入中间的词,输出预测的上下文
改进方法
加入一些负样本(负采样模型) 顺序的词太多了,需要加乱序的词,作为负样本
skipgram的正负样本模型
实战
词嵌入:将词转化为向量
每个词用300维的向量表示,词大小为32
(batch,maxlen,featrue)
(同时处理多少标题或者文章,序列的最大长度,feature大小(300维))
基于字做的,在此数据集中有4000+个可能,而词更多,运算量大
LSTM
self.lstm = nn.LSTM(config.embed(300维的输入特征), config.hidden_size(128个隐藏神经元), config.num_layers(两层的LSTM),
bidirectional=True(是单向的还是双向的,双向的效果好), batch_first=True, dropout=config.dropout)
双向的LSTM
特征最后会拼接起来,维度更多了
上图是3层LSTM(淡蓝色部分),一般用最后一层最后一个输出作为最终输出,因为它包含并计算了前面神经元的特征信息
例子中的模型
Model(
(embedding): Embedding(4762, 300)
(lstm): LSTM(300, 128, num_layers=2, batch_first=True, dropout=0.5, bidirectional=True)
(fc): Linear(in_features=256, out_features=10, bias=True)
)文章来源:https://www.toymoban.com/news/detail-814449.html
NLP任务大部分是分类任务文章来源地址https://www.toymoban.com/news/detail-814449.html
到了这里,关于rnn相关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!