没有合适的资源?快使用搜索试试~ 我知道了~
tensorflw循环神经网络详解
需积分: 5 1 下载量 52 浏览量
2023-05-04
17:01:11
上传
评论
收藏 3.38MB DOCX 举报
温馨提示
试读
37页
尽管CNNs能很好的分类图像,其中平移和旋转能关注到,但是它们不能识别时间模式。根本上,我们可以认为 CNNs只能认别静态模式。Recurrent neural networks (RNNs) 是设计来解决认别时间模式的。 RNNs与CNNs很不同,特别是用来处理序列数据。
资源推荐
资源详情
资源评论
循环神经网络
尽管 CNNs 能很好的分类图像,其中平移和旋转能关注到,但是它们不能识别时
间模式。根本上,我们可以认为 CNNs 只能认别静态模式。Recurrent neural networks
(RNNs) 是设计来解决认别时间模式的。
RNNs 与 CNNs 很不同,特别是用来处理序列数据。典型的例子是句子里的词。
你知道句子里的词有很大的不同。例如,“the man ate the
rabbit”与“the rabbit ate the man,”词的顺序不同意思不同,你可以用 RNNs 来
预测句子的下一个词。 例如, “Paris is the capital of ——” 很容易用“
France,”填充,这意味着上一个词可以包含下一个词的信息,这个信息是 RNNs 用
来预测的。名称 recurrent 来自网络是如何工作的:它们对顺列的每一个元素进行
操作,累加前一项的信息。概括一下:
• RNNs 使用顺列数据并使用序列中各项顺序所编码的信息。
• RNNs 对序列中的所有项进行一些操作并记住前一项来预测下一项。
在更好的理解 RNNs 如何工作之前,我们考虑它们使用的一些重要的情形。
•产生文本:给定一系列的词,预测词的概率。你可以用 RNNs 莎士比亚的文本,
如 A. Karpathy 在他的博客所示,见 https://goo.gl/FodLp5。
•翻译:给出一种语言的一系列词,你可以得到不同的语言。
• 语音识别:给出一系列的音频信号,你可以预测词中的字母。
• 产生图像标签:使用 CNNs, RNNs 可以用来产生图像标签。见 A. Karpathy 关
于 “Deep Visual-Semantic Alignments for Generating Image Descriptions,”
的论文,见 https://goo.gl/8Ja3n2。注意,这是很深的论文,需要大量的数学背
景。
• 聊天机器人:以一系列的词作为输入, RNNs 试图回答输入。
如你想像的,要实现上面这些,你要复杂的架构,这不是简单的几句话可以描
述的,且你需要深入的理解 RNNs 是如何工作的。这不是本章和本书的范围。
这一章,我们学习:
• RNN 工作细节
• 在 RNN 里使用 embeddings
• 用 RNN 产生文本
• 使用 RNN 进行语义分类
• 从 RNN 转向 LSTM
RNN 可以有多种方法构建。可能的方法如下:
图 10-1. RNN 例子
在图 10-1 标记如下:
• 底部的框是输入
• 中间的框是隐藏层
• 上部的框是输出
一对一的架构是典型的神经网络,在输入与输出之间有隐藏层。一对多的架构
的例子是输入一张图像输出图像的标题。多对多的例子是电影评论作为输入,输出
电影评判(正性、负性、中性评论)。最后,多对多的 RNN 架构的例子是机器翻译,
从一种语言到另一种语言。
理解架构
我们看个例子,并仔细的看一下 RNN 的架构。我们的任务是“给出一串词,预
测下一个词”。 我们尝试预测“This is an _____”之后的词。假如真实的句子是 “
This is an example.”
传统的文本挖掘技术用下面的方法解决这个问题:
1. 编码每一个词,留出空间给额外的词,如果有必要:
This: {1,0,0,0}
is: {0,1,0,0}
an: {0,0,1,0}
2. 编码句子:
"This is an": {1,1,1,0}
3. 创建训练数据集:
Input --> {1,1,1,0}
Output --> {0,0,0,1}
4. 用输入和输出构建模型.
这里的主要问题是输入呈现不能改变。如果输入是 “this is an” 或 “an
is this” 或 “this an is”。我们知道这些是不同的,不能在数学上用相同的结构
体现。这种现实需要不同的架构,看来像图 10-2.
图 10-2. 改变的结构
在图 10-2 的结构里,句子里不同的词放在不同的框里。而且,保留了句子的结
构,因为 “this” 放在第一个框, “is” 放在第二个框,“an” 放在第三个框。
输出“example” 期望放在最顶上的框。
解释 RNN
我们可以把 RNN 看作存贮记忆的机理,这里记忆放在隐藏层里。见图 10-3 所示
说明。
图 10-3. 隐藏层的记忆
图 10-3 右边的网络是左边的展开版本。左边的网络是传统网络,这个标记是指
示性的,它只是简单的指示网络的不同的元素。X 指输入, h 是内部记忆, W 是一系
列权重, U 是另一系列权重。实际上这只是简单的呈现网络的结构。有一个改变:隐
藏层连接它自己并被输入连接(图上隐藏层是圆)。
注意,隐藏层连接它自己和输入时,它连接到“先前版本”的隐藏层和当前输
入层。我们可以把隐藏层连接回它自已的现像作为 RNN 产生记忆的机制。U 表示输
入到隐藏层的权重,W 表示隐藏层到隐藏层的权重。权重 V 表示隐藏层到输出层的
连接。
图 8-3 右边要从左到右读。图中的第一个神经元在时间 t 评估,得到输出 O
t
, 并
产生内部状态 S
t
。第二个神经元,在时间 t + 1 评估,在第一个神经元之后,前面的
记忆状态 h
t
以及下一个元素 X
t + 1
作为输入。第二个神经元产生输出 O
t + 1
, 新的内
部记忆状态 h
t + 1
。第三个神经元 (图 8-15 最右的)以 X
t + 2
和 h
t + 1
为输入,过程这
样处理直到有限的神经元。从图 8-3 看到有两系列的权重: W 和 U。其中一系列 (记
为 W) 用作内部记忆,另一系列用于序列元素。通常每一个神经元产生新的内部记忆
状态使用下面的公式:
这里 f() 表示激活函数,我们已经看到过 ReLU 或 tanh。另外,前面的公式有
多个维。h
t
可以理解为网络在 t 时刻的记忆。神经元的数量是个新的超参数,必须
依据问题微调。研究表明,当数量过大时,网络在训练时会出现大问题。有些重要
的注意事项是在每一个时间步,权重不改变。相同的操作在每一步进行,只是在评
估时改变输入。另外,图 8-3 里,每一步都有输出 (O
t
,O
t + 1
和 O
t + 2
) ,但是这通
常不是必须的。在我们的例子里,我们想要预测最后的一个词,所以我们只需要最
后的输出。
标记
我们考虑一下句子 “Paris is the capital of France.” 这个句子将一个词一
个词的输入到 RNN: 首先是 “Paris,” 然后是 “is”, 然后是 “the,” 等等。在我
们的例子里,
•“Paris”是句子的第一个词: w1 = 'Paris'
• “is”是句子的第二个词: w2 = 'is'
• “the”是句子的第三个词: w3 = 'the'
• “capital”是句子的第四个词: w4 = 'capital'
• “of”是句子的第五个词: w5 = 'of'
• “France”是句子的第六个词: w6 = 'France'
这些词以以下顺序输入到 RNN: w1, w2, w3, w4, w5, 和 w6。不同的词被网络一
个一个的处理,或者别人说的不同的时间点。通常,人们说,如果 w1 在时间 t 处理
,则 w2 在时间 t + 1, w3 在时间 t + 2,等等。时间 t 与真实的时间没有关系,只是意
味着不同的元素顺序的处理而不是平行的处理。时间 t 也与计算时间或相关的东西
无关。在 t + 1 中加 1 没什么意思。它只是说我们说的是序列里的下一个元素。你
可以按下面的标记读论文或博客。
• X
t
: 时间 t 的输入。例如,w1 是时间 1 的输入 X
1
,
w2 是时间 2 的输入 X
2
,等等。
• h
t
: 这标记 t 时刻的内部记忆,我们还没定义。量 h
t
包含前面项的累加信息。
直观的理解一下就好。因为有很多的数学定义需要太多的细节和解释。
• O
t
是 t 时刻的输出,换句话,直到 t 的所有的元素包括元素 X
t
,输入到网络。
为什么要存贮记忆?
有必要存贮记忆,因为上面的例子和通常产生文本时,下一个词不一定取决于
前一个词而是要预测的词前面的几个词的上下文的。如果我们看前面的几个词,则
剩余36页未读,继续阅读
资源评论
lishaoan77
- 粉丝: 154
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功