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输出层表示出现该语句第一个单词的概率,softmax输出层表示在第一个单词基础上出现第二个单词的概率,即条件概率,以此类推,最后是出现< EOS >的条件概率
单个元素的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