吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Language model and sequence generation
什么是语言建模?
例如语音识别,识别说的到底是哪句话。
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相加