【pytorch】现代循环神经网络-2

1 双向循环神经网络(Bi-RNN)

具有单个隐藏层的双向循环神经网络的架构如图所示:

对于任意时间步t,给定一个小批量的输入数据 Xt ∈ Rn×d (样本数n,每个示例中的输入数d),并且令隐藏层激活函数为ϕ。在双向架构中,我们设该时间步的前向和反向隐状态分别为 →Ht ∈ Rn×h和←Ht ∈ Rn×h,其中h是隐藏单元的数目。前向和反向隐状态的更新如下:

将前向隐状态→Ht 和反向隐状态←Ht连接起来,获得需要送入输出层的隐状态Ht ∈ Rn×2h。在具有多个隐藏层的深度双向循环神经网络中,该信息作为输入传递到下一个双向层。最后,输出层计算得到的输出为 Ot ∈ Rn×q(q是输出单元的数目):

双向循环神经网络的一个关键特性是:使用来自序列两端的信息来估计输出。也就是说,我们使用来自过去和未来的观测信息来预测当前的观测。存在问题如下:

(1)在训练期间,我们能够利用过去和未来的数据来估计现在空缺的词;而在测试期间,我们只有过去的数据,因此精度将会很差。

(2)双向循环神经网络的计算速度非常慢。其主要原因是网络的前向传播需要在双向层中进行前向和后向递归,并且网络的反向传播还依赖于前向传播的结果。因此,梯度求解将有一个非常长的链。

**双向层的使用在实践中非常少,并且仅仅应用于部分场合。**例如,填充缺失的单词、词元注释(例如,用于命名实体识别)以及作为序列处理流水线中的一个步骤对序列进行编码(例如,用于机器翻译)。

相关推荐
我有满天星辰3 分钟前
第一次使用 Milvus:给我的 AI 知识库装上“记忆”
人工智能·milvus
YOLO数据集集合10 分钟前
天空反无人机检测数据集 | 无人机检测 多旋翼识别 固定翼识别 低空安防 目标检测9063期
人工智能·yolo·目标检测·计算机视觉·无人机·反无人机
一木 之林15 分钟前
插件、MCP、Skill 的区别?
java·c++·人工智能
JiMoKuangXiangQu24 分钟前
在 AllWinner T507 上部署 Qwen2.5-0.5B 大语言模型
人工智能·llama.cpp·推理引擎
szarron35 分钟前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
IT·陈寒38 分钟前
JavaScript性能优化完全指南
人工智能·大模型·api·创业·变现·简历优化
tedcloud12339 分钟前
Wand-Enhancer:如何搭建一套远程开发与测试环境
前端·人工智能·macos·开源·流程图
薛定谔的猫-菜鸟程序员44 分钟前
端侧免费大模型实测:MiniCPM5-2B-Q4_K_M 架构拆解与 4GB 显卡实测
人工智能·大模型·agent·hermes·minicpm5-2b
小海豚儿44 分钟前
没有反馈的 Loop,只是更贵的重试
人工智能·ai编程
用户302822530681 小时前
Agent Skill工程:如何把一次成功运行提炼成可测试的方法
人工智能