双向循环神经网络

joker ... 2022-4-7 大约 1 分钟

# 双向循环神经网络

在序列学习中,我们以往假设的目标是: 在给定观测的情况下 (例如,在时间序列的上下文中或在语言模型的上下文中), 对下一个输出进行建模。 虽然这是一个典型情景,但不是唯一的。 还可能发生什么其它的情况呢? 我们考虑以下三个在文本序列中填空的任务:

  • ___
  • ___饿了。
  • ___饿了,我可以吃半头猪。

根据可获得的信息量,我们可以用不同的词填空, 如“很高兴”(”happy”)、“不”(”not”)和“非常”(”very”)。 很明显,每个短语的“下文”传达了重要信息(如果有的话), 而这些信息关乎到选择哪个词来填空, 所以无法利用这一点的序列模型将在相关任务上表现不佳。 例如,如果要做好命名实体识别 (例如,识别“Green”指的是“格林先生”还是绿色), 不同长度的上下文范围重要性是相同的。 为了获得一些解决问题的灵感,让我们先迂回到概率图模型。

img

与RNN的原理相同,不详细解释。

方程变为ht=tanh(W[S1;S2])ht = tanh(W*[S1;S2])

S1为前向的权重:S1=f(W1ht1+U1xt+b1)S1 = f(W1*ht-1+U1*xt+b1)

S2为后向的权重:S2=f(W2ht+1+U2xt+b2)S2 = f(W2*ht+1+U2*xt+b2)