目录
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~
0. 前言
循环神经网络 RNN(Recurrent Neural Network)是一类专门用于处理序列数据的神经网络。
标准的神经网络无法适应不同长度的输入和输出, 没有共享参数,无法泛化文本不同位置的同个词。
RNN 在几个时间步内共享参数,使得模型可以扩展到不同长度的序列样本进行泛化,不需要分别学习句子每个位置的规则。
RNN 减少参数付出的代价是优化参数困难。
用一个识别是否是人名的例子,初始定义符号如下:
- 输入 :“Harry Potter and Hermione Granger invented a new spell.”
- 输出 :“110110000”
- 表示 中第 个输入,例如 表示 Harry
- 表示 中第 个输出,例如 表示 1
- 表示 的长度
- 表示 的长度
- 当 时, 也表示序列长度
对于自然语言处理(Natural Language Processing),构建一个词汇表,对于一个输入 , 中的每一个单词都构建一个 one-hot 向量,向量长度是词汇表的长度,单词的对应位置为 1 ,其余位置为 0 。
1. RNN 计算图
对于一个输入 ,从左至右将每一个单词依次输入到神经网络中(相当于第 个时刻)。
每次计算不仅输入