目录
摘要
本文阐述了双向循环神经网络(BRNN)的基本原理,并通过单向循环神经网络(RNN)来说明BRNN的优势。文章介绍了BRNN的计算流程,并探讨了如何构建深层RNN。此外,本文通过一个实例,介绍了在PyTorch框架中实现word2vec的基本步骤和方法。
Abstract
This article elucidates the fundamental principles of Bidirectional Recurrent Neural Networks (BRNNs) and demonstrates their advantages over Unidirectional Recurrent Neural Networks (RNNs). The article outlines the computational process of BRNNs and discusses the construction of deep RNNs. Furthermore, through a specific example, this article introduces the basic steps and methods for implementing word2vec within the PyTorch framework.
1. 双向RNN
1.1 单向RNN的局限性
在第六周已经学习过单向的RNN网络,但是单向RNN并不能同时考虑前文和后文,在处理需要同时考虑前文和后文的任务时,需要双向的神经网络,它能在预测序列某处的时候同时考虑序列中之前和之后的信息。比如之前提到的预测当前单词是否为人名的一部分的任务,如下:
要预测单词“Teddy”是否是人名的一部分,只看“Teddy”前面的单词并不能判断,还需要通过后面的信息来进行预测。如第一句话和第二句话的“Teddy”前面的信息完全一样,但两句中的“Teddy”是两个不同的类别,第一句中不是人名的一部分,而第二句是。
无论单向网络的隐藏层是GRU、LSTM还是普通的RNN,都只能考虑之前的信息,因为它们都是前向的。
1.2 双向RNN的原理
为了简单,以四个输入为例,输入为 到
。
先构建一个单向的RNN,网络中有四个输入,如上图中紫色部分,有四个前向的循环单元: