什么是循环神经网络?
RNN的思想是利用序列化的信息。传统的神经网络假设所有输入和输出都是相互独立的。 然而,对于许多任务来说,这种假设是有问题的。例如,如果您想预测句子中的下一个单词,您需要知道哪个单词出现在该单词之前。 RNN 被称为循环网络,因为它们对序列的每个元素执行相同的任务,并根据先前的计算生成输出。 RNN 的另一个优点是它们具有收集先前计算的信息的“记忆”能力。 理论上,RNN 可以使用任意长度序列中的信息,但在实际使用中它们只能记录回退几步。典型的RNN 如下所示:
该图显示了循环神经网络前向计算过程中循环按时间顺序展开的情况。这里展开意味着查看网络的完整序列。例如,如果感兴趣的序列是一个5 个单词的句子,则网络将扩展为5 层神经网络,每个单词一层。 “在路上”一词解释如下:
这里有几点需要注意。
RNN 你能做什么?
RNN 在许多NLP 任务中取得了巨大成功。 该领域最常用的RNN 类型是LSTM。这在捕获长期依赖性方面比常规RNN 好得多。但不用担心。 LSTM 和RNN 基本相同,只是计算隐藏状态的方式不同。以下是RNP 在NLP 中应用的一些示例。
语言模型和生成文本
给定一个单词序列,我们希望根据前一个单词来预测下一个单词的概率。基于语言模型,你可以计算一个句子的概率,这是机器翻译的重要输入(因为概率高的句子通常是正确的)。能够预测下一个单词的副作用是,我们现在有了一个生成模型,可以从输出概率中进行采样并生成新文本。您可以根据训练数据生成各种内容。在语言模型中,输入通常是单词序列(编码为one-hot),输出是预测单词序列。训练网络时,将当前输出设置为下一个输入。
机器翻译
机器翻译与语言模型类似,输入是源语言(例如德语)中的单词序列。我想以目标语言(例如英语)输出一组单词。主要区别在于,待翻译句子的第一个单词可能需要从完整的输入序列中获取信息,因此输出仅在输入完成后发生。
用于机器翻译的RNN
语音识别给定来自声波的声学信号的输入序列,可以预测一组语音片段及其概率。生成图像描述RNN 作为模型的一部分,与卷积神经网络一起生成未标记图像的描述。
这个组合模型相当惊人,效果也非常好。 组合模型还可以将生成的单词映射到图像中的特征。
LSTM 网络目前非常流行。我在这里简单解释一下。 LSTM 与RNN 具有相同的基本架构,只是它使用不同的函数来计算隐藏状态。 LSTM 的记忆单元称为,可以将其视为一个以先前状态和当前输入作为输入的黑匣子。该单位内部决定保留什么。 然后它结合先前的状态、当前的记忆和输入。事实证明,这些单元在获得长期依赖性方面非常有效。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。