首页 > 人工智能(Artificial Intelligence) > 循环神经网络

序列模型概述

有很多这样的情况,序列的信息决定事件本身。如果我们试图使用这类数据得到有用的输出,就需要一个这样的网络:能够访问一些关于数据的先前知识(prior knowledge),以便完全理解这些数据。这就是循环神经网络(RNN)。

循环神经网络的应用

循环神经网络的优点在于其应用的多样性。当我们使用RNN时,它有强大的处理各种输入和输出类型的能力。RNN是一种可以预测未来(在某种程度上)的神经网络,可以用来分析时间序列数据(比如分析股价,预测买入点和卖出点)。在自动驾驶中,可以预测路线。更一般的,它可以任意序列长度作为输入,而不是我们之前模型使用的固定序列长度。例如RNN可以将句子、文档、语音作为输入,进行自动翻译、情感分析、语音转文字。此外,RNN还用于作曲(谷歌Magenta项目作出的the one)、作文、图片自动生成标题。

看下面的例子。

情感分析(Sentiment Classification) – 这可以是简单的把一条推文分为正负两种情绪的任务。所以输入是任意长度的推文, 而输出是固定的长度和类型.

图像标注(Image Captioning) – 假设我们有一个图片,我们需要一个对该图片的文本描述。所以,我们的输入是单一的图像,输出是一系列或序列单词。这里的图像可能是固定大小的,但输出是不同长度的文字描述。

语言翻译(Language Translation) – 这里假设我们想将英文翻译为法语. 每种语言都有自己的语义,对同一句话有不同的长度。因此,这里的输入和输出是不同长度的。

因此,RNNs可用于将输入映射到不同类型、长度的输出,并根据实际应用泛化。

这些问题都可以被称作使用标签数据 $(X,Y)$ 作为训练集的监督学习。但从这一系列例子中你可以看出序列问题有很多不同类型。有些问题里,输入数据X 和输出数据Y都是序列,但就算在那种情况下,X和Y有时也会不一样长。在另一些问题里,只有 X或者只有Y是序列。

数学符号(Notation)

例如输入数据是9个单词组成的序列,所以最终我们会有9个特征集和来表示这9个单词,并按序列中的位置进行索引,$x^{<1>}$、$x^{<2>}$、$x^{<3>}$等等一直到 $x^{<9>}$ 来索引不同的位置,我将用 $x^{<t>}$ 来索引这个序列的中间位置。t 意味着它们是时序序列,但不论是否是时序序列,我们都将用 t 来索引序列中的位置。

输出数据也是一样,我们还是用$y^{<1>}$、$y^{<2>}$、$y^{<3>}$等等一直到 $y^{<t>}$ 来表示输出数据。同时我们用 $T_{x}$ 来表示输入序列的长度,这个例子中输入是9个单词,所以 $T_{x}= 9$。我们用 $T_{y}$ 来表示输出序列的长度。在这个例子里 $T_{x} =T_{y}$,$T_{x} , T_{y}$可以有不同的值。

我们之前用 $x^{(i)}$ 来表示第 i 个训练样本,所以为了指代第 t 个元素,或者说是训练样本 i 的序列中第 t 个元素用 $x^{\left(i \right) <t>}$ 这个符号来表示。如果 $T_{x}$ 是序列长度,那么你的训练集里不同的训练样本就会有不同的长度,所以 $T_{x}^{(i)}$ 就代表第 i 个训练样本的输入序列长度。同样 $y^{\left( i \right) < t>}$ 代表第 i 个训练样本中第 t 个元素,$T_{y}^{(i)}$ 就是第 i 个训练样本的输出序列的长度。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。