提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
提示:这里可以添加本文要记录的大概内容:
许多使⽤循环⽹络的例⼦都是基于⽂本数据的,因此我们将在本章中重点介绍语⾔模型。在对序列数据进⾏ 更详细的回顾之后,我们将介绍⽂本预处理的实⽤技术。然后,我们将讨论语⾔模型的基本概念,并将此讨 论作为循环神经⽹络设计的灵感。最后,我们描述了循环神经⽹络的梯度计算⽅法,以探讨训练此类⽹络时 可能遇到的问题。
提示:以下是本篇文章正文内容,下面案例可供参考
1. 序列模型
输入或者输出中包含有序列数据的模型叫做序列模型。 以循环神经网络RNN为基础建立的序列模型在自然语言处理,语音识别等领域中引起了巨大的变革。
1.1统计工具
处理序列数据需要统计工具和新的神经网络架构
例:预测股票
其中xt(时间t时的价格)表示价格,即通过前t-1个时间的股票预测t时间的股票
1.2自回归模型
用自己的预测的数据再次预测。
2. 文本预处理
2.1 读取数据集
定义函数:read_time_machine() 将整篇文章按照行进行读取。
2.2词元化
定义函数:tokenize() 可以将每一行句子组成的单词逐个拆分,放入列表中
2.3词表
语料(corpus):将整篇文章词元化并进行唯一统计,其统计结果称为语料。
词表:基于语料的统计结果,赋予索引(将出现频率最多的依次赋为0、1...)得到词表。
2.4整合函数
将之前定义的函数进行整合得到:load_corpus_time_machine()
该函数最终返回corpus和vocab
3. 语言模型和数据集
长度为T的文本序列X;
①将序列X词元化
==>得到词元依次为(其中可以认为是在时间步t处的观测或者标签)
③语言模型
估计序列的联合概率分布
3.1学习语言模型
例如包含四个单词的文本序列的概率:
其中:
3.2马尔科夫模型与n元语法
3.3读取长序列数据
序列过长而无法被模型一次性全部处理时,为了方便起见将模型拆分成较短的序列进行读取。
3.3.1随机采样
每次采样时,起始位置不同所以每次的采样结果均不相同,随机采样是将上图中分割的每一行数据顺序打乱。例如:每个小批量是两个序列,则第一个小批量为1,5行序列;第二个小批量为3,4行序列。
3.3.2顺序采样
例如:每个小批量是两个序列,则第一个小批量为1,4行序列;第二个小批量为2,5行序列。
4. 循环神经网络
参数初始化时
Xt-1输入的大小为三,即每个小序列是一个长度为3的向量;
纵向有三个神经网络,即时间步长为3;
4.1循环神经网络的参数更新
假设开始隐藏层之前的记忆初始化为0;初始化权重均为1
①当输入向量[1 1]时,模型的更新如下所示:
②再次输入向量[1 1]时,模型的更新如下所示:
持续更新...
引入RNN: 其中 是经过独热编码的向量,也为向量
对比当目标词汇前一个时间的记忆不同时候会导致输出也不同:
5. 循环神经网络的从零开始实现
6. 循环神经网络的简介实现
7.代码解释说明
通过时间反向进行传播
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。