现代循环神经网络 - 双向循环神经网络

双向循环神经网络


1 - 隐马尔可夫模型中的动态规划



2 - 双向模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sW4PPAM8-1662903858314)(imaes/d6.png)]

定义

模型的计算代价及其应用

3 - 双向循环神经网络的错误应用

由于双向循环神经网络使用了过去和未来的数据,所以我们不能盲目地将这一语言模型应用于任何观察任务

尽管模型产生的困惑度是合理的,该模型预测未来词元的能力却可能存在严重缺陷。我们用下面的实例代码引以为鉴,以防止在错误的环境中使用它们

import torch
from torch import nn
from d2l import torch as d2l

# 加载数据
batch_size, num_steps, device = 32, 35, d2l.try_gpu()
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)

# 通过设置“bidirective=True”来定义双向LSTM模型
vocab_size, num_hiddens, num_layers = len(vocab), 256, 2
num_inputs = vocab_size
lstm_layer = nn.LSTM(num_inputs, num_hiddens, num_layers, bidirectional=True)
model = d2l.RNNModel(lstm_layer, len(vocab))
model = model.to(device)

# 训练模型
num_epochs, lr = 500, 1
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)
perplexity 1.1, 115267.0 tokens/sec on cuda:0
time travellerererererererererererererererererererererererererer
travellerererererererererererererererererererererererererer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EGcxvXIE-1662903858315)(https://yingziimage.oss-cn-beijing.aliyuncs.com/img/202209112131557.svg)]

上述结果显示不如人愿,关于如何更高效地使用双向循环神经网络,在以后会有更详细的讨论

4 - 小结

  • 在双向循环神经网络中,每个时间步的隐状态由当前时间步的前后数据同时决定
  • 双向循环神经网络与概率图模型中的“前向-后向”算法具有相似性
  • 双向循环神经网络主要用于序列编码和给定双向上下文的观测统计
  • 由于梯度链更长,因此双向循环神经网络的训练代价非常高
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值