深度学习中的序列建模与模型训练
1. 序列建模概述
在众多应用场景中,如机器翻译、文本分类、语音识别和时间序列预测等,序列数据极为常见。为了处理这类数据,人们设计了不同的神经网络,其中包括循环神经网络(RNNs)和最新的Transformer网络。
2. 循环神经网络及其变体
2.1 循环神经网络原理
处理序列数据的主要挑战在于序列长度的多变性,前馈神经网络难以处理这类数据。而RNN通过参数共享,利用同一组参数处理序列不同位置的输入。以句子分类为例,对于包含n个单词的句子 $(x(1), x(2), \cdots, x(n))$,其中 $x(t)$ 是句子中第t个位置的单词,RNN在每个位置t通过递归函数基于当前单词 $x(t)$ 和前一个隐藏状态 $h(t - 1)$ 计算隐藏状态 $h(t)$:
$h(t) = f (h(t−1), x(t); θ)$
其中,$\theta$ 是RNN的参数,它与位置t无关,在句子的所有位置共享。展开这个方程可得:
$h(t) = f (f (f (h(t−3), x(t−2); θ), x(t−1); θ), x(t); θ) = f (f (f (\cdots f (f (f (h(0), x(1); θ), x(2); θ), x(3); θ), \cdots, x(t−1); θ), x(t); θ)$
这表明 $h(t)$ 编码了直到位置t的单词信息,$h(n)$ 则编码了整个句子的信息。
一个简单的递归函数实现为:
$h(t) = f (h(t−1), x(t); θ) = \sigma(W_{hh}h(t−1) + W_{xh}x(
超级会员免费看
订阅专栏 解锁全文

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



