1.6 语言模型和序列生成(Language model and sequence generation)

在语音识别中,某句语音有两种翻译:

  • the apple and pair salad

  • the apple and pear salad

语言模型会计算出这两句话各自的出现概率:

选择概率最大的语句作为正确的翻译

概率计算的表达式为:

如何使用RNN构建语言模型:

首先需要一个足够大的训练集,训练集由大量的单词语句语料库(corpus)构成。然后,对corpus的每句话进行切分词(tokenize),建立vocabulary,对每个单词进行one-hot编码。例如下面这句话:

The Egyptian Mau is a bread of cat.

每句话结束末尾,需要加上< EOS >作为语句结束符。若语句中有词汇表中没有的单词,用< UNK >表示。假设单词“Mau”不在词汇表中,则上面这句话可表示为:

The Egyptian < UNK > is a bread of cat. < EOS >

准备好训练集并对语料库进行切分词等处理之后,接下来构建相应的RNN模型:

单个元素的softmax loss function为:

这是softmax Loss Function ,注意与1.4 binary classification 的 Loss Function区别

该样本所有元素的Loss function为:

对语料库的每条语句进行RNN模型训练,最终得到的模型可以根据给出语句的前几个单词预测其余部分,将语句补充完整。例如给出“Cats average 15”,RNN模型可能预测完整的语句是“Cats average 15 hours of sleep a day.”

Last updated