深度学习Task2

文本预处理

  1. 读入文本
  2. 分词
  3. 建立字典,将每个词映射到一个唯一的索引(index)
  4. 将文本从词的序列转换为索引的序列,方便输入模型

课后练习
深度学习Task2

语言模型与数据集

语言模型
假设序列w1、w2……wt中的每个词是依次生成的,我们有
深度学习Task2
语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如*的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如,w1的概率可以计算为:
深度学习Task2

n元语法

序列长度增加,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链(Markov chain of order n)

当n分别为1、2和3时,我们将其分别称作一元语法(unigram)、二元语法(bigram)和三元语法(trigram)。例如,长度为4的序列n在一元语法、二元语法和三元语法中的概率分别为
深度学习Task2
n元语法可能的缺陷:
参数空间过大
数据稀疏

课后练习
深度学习Task2
深度学习Task2

循环神经网络

基于当前的输入与过去的输入序列,预测序列的下一个字符。深度学习Task2

困惑度

困惑度是对交叉熵损失函数做指数运算后得到的值。特别地,

最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;
最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;
基线情况下,模型总是预测所有类别的概率都相同,此时困惑度为类别个数。
显然,任何一个有效模型的困惑度必须小于类别个数。在本例中,困惑度必须小于词典大小vocab_size。

课后练习
深度学习Task2
深度学习Task2