概述
RNN学习
序列模型
马尔可夫条件
我们使用 xt−1,…,xt−τxt−1,…,xt−τ 而不是 xt−1,…,x1xt−1,…,x1 来估计 xtxt。只要这种近似是精确的,我们就说序列满足 马尔可夫条件(Markov condition)。
- 训练时始终要尊重其时间顺序,即永远不要基于未来的数据进行训练。
- 序列模型的估计需要专门的统计工具,两种较流行的选择是自回归模型和隐变量自回归模型。
- 对于直到时间步 tt 的观测序列,其在时间步 t+kt+k 的预测输出是“kk步预测”。随着我们对预测时间 kk 值的增加,会造成误差的快速累积和预测质量的极速下降。
文本处理
文本的常见预处理步骤。 这些步骤通常包括:
- 将文本作为字符串加载到内存中。
- 将字符串拆分为词元(如单词和字符)。
- 建立一个词汇表,将拆分的词元映射到数字索引。
- 将文本转换为数字索引序列,方便模型操作。
词元化
词元的类型是字符串,而模型需要的输入是数字,因此这种类型不方便模型使用。 现在,让我们构建一个字典,通常也叫做词汇表(vocabulary),用来将字符串类型的词元映射到从00开始的数字索引中。 我们先将训练集中的所有文档合并在一起,对它们的唯一词元进行统计,得到的统计结果称之为语料(corpus)。 然后根据每个唯一词元的出现频率,为其分配一个数字索引。 很少出现的词元通常被移除,这可以降低复杂性。 另外,语料库中不存在或已删除的任何词元都将映射到一个特定的未知词元 “” 。 我们可以选择增加一个列表,用于保存那些被保留的词元,例如:填充词元(“”);序列开始词元(“”);序列结束词元(“”)。现在,我们可以将每一条文本行转换成一个数字索引列表。
通过此图我们可以发现某些根本的东西:词频以一种明确的方式迅速衰减。将前几个单词作为例外消除后,剩余的所有单词大致遵循双对数坐标图上的一条直线。这意味着单词的频率满足 齐普夫定律(Zipf’s law),即第 ii 个最常用单词的频率 nini 为:
(8.3.7)
拉普拉斯平滑(Laplace smoothing),
具体方法是在所有计数中添加一个小常量。用 nn 表示训练集中的单词总数,用 mm 表示唯一单词的数量。此解决方案有助于处理单元素问题,例如通过:
循环神经网络
隐变量
讨论过的具有隐藏单元的隐藏层。值得注意的是,隐藏层和隐藏状态指的是两个截然不同的概念。如上所述,隐藏层是在输入到输出的路径上以观测角度来理解的隐藏的层,而隐藏状态则是在给定步骤所做的任何事情以技术角度来定义的 输入,并且这些状态只能通过先前时间步的数据来计算。
相关概念
循环神经网络(Recurrent neural networks, RNNs)是具有隐藏状态的神经网络。在介绍循环神经网络模型之前,我们首先回顾 4.1节 中介绍的多层感知机模型。
这些变量捕获并保留了序列直到其当前时间步的历史信息,就如当前时间步下神经网络的状态或记忆,因此这样的隐藏变量被称为 隐藏状态(hidden state)由于在当前时间步中隐藏状态使用的定义与前一个时间步中使用的定义相同,因此 (8.4.5) 的计算是 循环的(recurrent)。于是基于循环计算的隐状态神经网络被命名为 循环神经网络(recurrent neural networks)。在循环神经网络中执行 (8.4.5) 计算的层称为 循环层
循环神经网络的参数包括隐藏层的权重Wxh∈Rd×h,Whh∈Rh×hWxh∈Rd×h,Whh∈Rh×h和偏置bh∈R1×hbh∈R1×h,以及输出层的权重Whq∈Rh×qWhq∈Rh×q和偏置bq∈R1×qbq∈R1×q。
- 值得一提的是,即使在不同的时间步,循环神经网络也总是使用这些模型参数。因此,循环神经网络的参数开销不会随着时间步的增加而增加。
- 循环神经网络在实践中一个常见问题是数值不稳定性
矩阵连续乘积可以导致梯度消失或者梯度爆炸。在实践中的意义:
- 我们可能会遇到这样的情况——早期观测值对预测所有未来观测值具有非常重要的意义。考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们想有某些机制能够保证在一个记忆细胞里存储重要的早期信息。如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度,因为它会影响所有后续的观测值。
- 我们可能会遇到这样的情况——一些词元没有相关的观测值。例如,在解析网页时,可能有一些辅助HTML代码与评估网页上传达的情绪无关。我们希望有一些机制来 **跳过 **隐状态表示中的此类词元。
- 我们可能会遇到这样的情况——序列的各个部分之间存在逻辑中断。例如,书的章节之间可能会有过渡存在,或者证券的熊市和牛市之间可能会有过渡存在。在这种情况下,最好有一种方法来重置 我们的内部状态表示。
门控循环神经网络(GRU)Gate Recurrent Unit
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gu2aRTAh-1636274462453)(笔记资源GRU.png)]
普通的循环神经网络和门控循环单元之间的关键区别在于后者支持隐藏状态的门控(或者说选通)。这意味着有专门的机制来确定应该何时 更新 隐藏状态,以及应该何时 重置 隐藏状态
- 重置门(reset gate)
- 更新门(update gate)
总之,门控循环单元具有以下两个显著特征:
- 重置门有助于捕获序列中的短期依赖关系。
- 更新门有助于捕获序列中的长期依赖关系。
- 门控循环神经网络可以更好地捕获时间步距离很长的序列上的依赖关系。
- 重置门打开时,门控循环单元包含基本循环神经网络;更新门打开时,门控循环单元可以跳过子序列。
两个门采用sigmoid激活函数的全连接层给出, 每当重置门 RtRt 中的项接近 11 时,我们恢复一个如 (8.4.5) 中的普通的循环神经网络。对于重置门 RtRt 中所有接近 00 的项,候选隐藏状态是以 XtXt 作为输入的多层感知机的结果。因此,任何预先存在的隐藏状态都会被 重置 为默认值。
这些设计可以帮助我们处理循环神经网络中的梯度消失问题,并更好地捕获时间步距离很长的序列的依赖关系。例如,如果整个子序列的所有时间步的更新门都接近于 1,则无论序列的长度如何,在序列起始时间步的旧隐藏状态都将很容易保留并传递到序列结束。
tanh: 由于其图形在定义域0附近近似线性,并且在整个定义域有可导性,该函数广泛用于深度学习领域的神经网络中作为神经元的激活函数 [1] 使用。
长短时记忆网络(LSTM)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwTUeRp8-1636274462456)(笔记资源LSTM.png)]
隐变量模型存在着长期信息保存和短期输入跳跃的问题
-
长短期记忆网络引入了 存储单元(memory cell),或简称为 单元(cell)。我们需要许多门。其中一个门用来从单元中读出条目。我们将其称为 输出门(output gate)。 另外一个门用来决定何时将数据读入单元。我们将其称为 输入门(input gate)。最后,我们需要一种机制来重置单元的内容,由遗忘门(forget gate)来管理。
-
接下来,设计记忆单元。由于还没有指定各种门的操作,所以先介绍 候选记忆单元(candidate memory cell)Ct∈Rn×hCt∈Rn×h。它的计算与上面描述的三个门的计算类似,但是使用 tanhtanh 函数作为激活函数,函数的值范围为 (−1,1)。下面导出在时间步 tt 处的方程:
-
最后,我们需要定义如何计算隐藏状态 Ht∈Rn×hHt∈Rn×h。这就是输出门发挥作用的地方。在长短期记忆网络中,它仅仅是记忆单元的 tanhtanh 的门控版本。这就确保了 HtHt 的值始终在区间 (−1,1)(−1,1) 内。
深度循环神经网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1f65CBHv-1636274462458)(笔记资源深层RNN.png)]
在线性模型的情况下,我们通过添加更多的层来解决这个问题。而在循环神经网络中,因为我们首先需要决定如何添加以及在哪里添加额外的非线性,因此这个问题有点棘手。
编码器与解码器结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kw6Pwo0q-1636274462460)(笔记资源RNN编码器与解码器.png)]
- “编码器-解码器”结构可以将长度可变的序列作为输入和输出,因此适用于机器翻译等序列转换问题。
- 编码器将长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。
- 解码器将具有固定形状的编码状态映射为长度可变的序列
遵循“编码器-解码器”结构的设计原则,循环神经网络编码器可以使用长度可变的序列作为输入,将其转换为形状固定的隐藏状态。 换言之,输入(源)序列的信息被 编码 到循环神经网络编码器的隐藏状态中。 为了连续生成输出序列的词元,独立的循环神经网络解码器是基于输入序列的编码信息和输出序列已经看见的或者生成的词元来预测下一个词元。 图9.7.1 演示了如何在机器翻译中使用两个循环神经网络进行序列到序列学习。
应用
- 文本处理, NLP
信息论
dern/seq2seq.html#fig-seq2seq) 演示了如何在机器翻译中使用两个循环神经网络进行序列到序列学习。
应用
- 文本处理, NLP
信息论
最后
以上就是风中战斗机为你收集整理的RNN学习笔记序列模型文本处理拉普拉斯平滑(Laplace smoothing),循环神经网络深度循环神经网络编码器与解码器结构应用信息论应用信息论的全部内容,希望文章能够帮你解决RNN学习笔记序列模型文本处理拉普拉斯平滑(Laplace smoothing),循环神经网络深度循环神经网络编码器与解码器结构应用信息论应用信息论所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复