什么是语言建模?

这里写图片描述

例如语音识别,识别说的到底是哪句话。

pair和pear听起来非常相似,神经网络会输出两句话的可能性,当然一个训练良好的神经网络会对后面那句输出更高的概率。语音模型输出的是“是这个sentence”的概率,y<t>代表某个单词

利用RNN来进行语言建模

这里写图片描述

训练集:英语语料库
将每个单词符号化。句子有几个单词就有几个y,每个y输出的是可能性,代表每个单词的可能性,后面会筛选出可能性最大的那个单词。
另外再加上两个token,一个是<UNK>来表示不在corpus中的单词,一个是<EOS>来表示句尾
在这里,x<t> = y<t-1>(即当前时刻输出会作为下个时刻输入)

RNN模型

这里写图片描述

如图,RNN模型的每个输出y都是通过一个softmax函数得到的,输出的是对于corpus中的单词的概率,比如,y<1>就会输出cats的概率大一点,其他单词的概率小一点,因此可以判定第一个单词是cats,在判定第二个单词时,会将y<1>作为输入,得到y<2>。因此y<2>是一个条件概型,P(corpus|cats),同理会判定P(average|cats)的概率最大,因此会将第二个单词判定为average。同理判定后面的每个单词。在判定每个单词时,都基于前面已经判定的单词来进行计算。

对每个输入(一个句子),用cross entropy来计算loss,每个句子的loss由其中的每个单词的loss来构成,总的loss由所有输出的Loss相加

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐