Advertisement

12.深度学习之循环神经网络(RNN)

阅读量:

12.1 语言模型概述

  • 语言模型(LM)作为自然语言处理的核心技术,在诸多应用领域发挥着关键作用。

  • 在自然语言处理领域中,最常见的数据类型即为文本数据。

  • 我们可以把一段自然语言文本视为一个离散的时间序列。

  • 假设有一段长度为T的文字序列\{w_1,w_2,\dots,w_T\}其中t=1,\dots,T分别对应于该段文字的不同位置,则我们可以将其视为作为一个离散的时间序列模型中各时间步t处的状态输出或标记目标。

  • 在具体的学习过程中,则需要根据给定的一个长度为T的文字序列\{w_1,w_2,\dots,w_T\}来计算其出现的概率值P(w_1,w_2,\dots,w_T)这一概率值反映了该特定文字排列的可能性大小。

  • 该语言模型有助于提升语音识别系统与机器翻译系统的性能。

  • 例如,在语音识别任务中, 当输入一段"厨房里食油用完了"的声音时, 可能会输出两个文本序列:"厨房里食油用完了"与"厨房里石油用完了"。

  • 如果该语言模型能够判断出前者出现的概率高于后者, 则可以选择性地输出与前者的读音一致的文本序列。

  • 在机器翻译过程中, 若对英文短语"you go first"进行逐词翻译处理时, 可能会生成多种排列组合的结果: 如"你走先"、"你先走"等。

  • 如果该语言模型能够确定其中以'你先走'形式出现的概率比其他排列组合更高, 则可以选择将其译文确定为'你先走'。

12.1.1 语言模型的计算

既然语言模型很有用,那怎么估算它的价值呢?
P(\mathbf{w}) represents the probability of generating a sequence of words \mathbf{w} = (w_1, w_2,\dots,w_T) being generated sequentially. For cases that have appeared in the training data, we can estimate its probability based on the frequency of occurrence. However, for those cases that have never appeared in the training data, we assume their probabilities to be zero.

  • 例如,一段含有4个词的文本序列的概率:

为实现语言模型的构建过程,请统计每个单词的出现频率以及该单词基于前面几个词语的条件概率值。

12.2 n元语法

随着序列长度的增长, 计算量和存储量将按指数速度上升.
马尔科夫假设基于这样的理念: 一个单词仅取决于前n个单词的状态; 这被称为n阶马尔科夫链 (Markov\ chain\ of\ order\ n).
n=1时, 则有P(w_3 | w_1, w_2) = P(w_3 | w_2); 在这种情况下, 则可将语言模型重新表述为:

n元语法它基于n - 1阶马尔可夫链的概率语言模型。
对于n=1n=2n=3时,则分别称为一元语法(unigram)、二元语法(bigram)与三元语法(trigram)。
例如,在长度为4的序列w_1, w_2, w_3, w_4中,在一元语法、二元语法与三元语法下的概率分别为

P(w_i | w_{i-1},...,w_{i-n+1}) = \prod_{k=i-n+1}^{i} P(w_k | w_{i-1},...,w_{i-k+2})

  • 当n较小时,n元语法往往并不准确。

12.3 为什么需要RNN

  • 时间序列数据涉及在不同时间段收集到的数据样本集合。
    这类数据系统地记录了研究对象随时间演变的趋势及其强度特征。
  • 基于充足的数据量和先进的算法架构设计,
    大多数神经网络能够准确映射给定输入空间至目标输出空间。
  • 该模型主要处理单一独立的输入样本,
    其假设前后两个相邻的时间段的信息不相关,
    但在实际应用场景中存在一些任务需要充分利用序列信息,
    即前后两个相邻的时间段的信息是存在关联性的。

RNN并非严格按照固定模式记忆所有固定的长度序列,而是通过隐藏状态来存储前一个时间步的信息.

12.4 RNNs

  • 典型的RNNs:

12.4.1 RNNs典型特点

  • 输入单元(Input units):输入集 ,
  • 输出单元(Output units):输出集 ,
  • 隐藏单元(Hidden units):输出集 。

12.4.2 标准RNN前向输出流程

  • 以下图为例进行说明标准RNN的前向传播算法:
  • 对于t时刻:
  • t时刻的输出为:
  • 模型的预测输出为:

12.4.3 应用:基于字符级循环神经网络的语言模型

  • 设小批量中样本数为1,文本序列为“想”“要”“有”“直”“升”“机”。

12.5 vector-to-sequence结构

  • 输入是一个单独的值,输出是一个序列(1 vs N)

12.6 sequence-to-vector结构

  • 输入是一个序列,输出是一个单独的值(N vs 1)

全部评论 (0)

还没有任何评论哟~