循环神经网络(RNN)与序列模型详解
1. 序列模型简介
在处理输入数据相互依赖的问题时,卷积神经网络(ConvNets)往往表现不佳。因为ConvNets中,前后输入之间没有关联,所有输出都是相互独立的。然而,在诸如句子生成或文本翻译等任务中,生成的每个单词都依赖于之前生成的单词(有时也依赖于后续的单词)。因此,我们需要一种能够基于先前输出产生偏差的模型,这就是序列模型发挥作用的地方。
序列模型具有记忆功能,能够记住数据序列中先前发生的信息,从而帮助系统获取上下文。它利用顺序信息,与之前输入和输出相互独立的神经网络模型不同,在处理一些实际问题时,序列模型能更好地发挥作用。例如,在预测句子中的下一个单词时,了解之前的单词序列会使预测更加准确。
序列模型是循环的,因为它们对序列中的每个元素执行相同的任务,并且具有“记忆”功能,能够捕获到某个时间步之前的计算信息。与前馈神经网络不同,序列模型可以利用其内部状态(记忆)来处理输入序列。
我们使用以下符号来描述RNN对象:
- 上标 [l] 表示与第 l 层相关的对象。
- 上标 (i) 表示与第 i 个观察值相关的对象。
- 上标 ⟨t⟩ 表示在第 t 个时间步的对象。
- 下标 i 表示向量的第 i 个元素。
所有序列模型都具有神经网络重复模块链的形式。在标准序列模型中,这个重复模块的结构非常简单,例如一个单一的tanh层。一个典型的序列模型链如下图所示:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,
超级会员免费看
订阅专栏 解锁全文
4716

被折叠的 条评论
为什么被折叠?



