此次博客的内容为对task01和task02的学习内容进行一次复习总结,方便以后复习学习。
线性回归
给定数据集D = { ( x 1 ; y 1 ) , ( x 2 ; y 2 ) , ⋯ } D=\{(x_1; y_1), (x_2; y_2),\cdots \} D = { ( x 1 ; y 1 ) , ( x 2 ; y 2 ) , ⋯ }
试图学习此数据集,得到一个线性模型y ^ = b + w x \hat{y} = b + wx y ^ = b + w x
使该模型尽可能准确的反映 x i x_i x i 和 y i y_i y i 的关系
线性回归问题归结为求参数 b , w b, w b , w ,使得损失函数JJ = ∑ i = 1 n [ y i − y ^ i ] 2 = ∑ i = 1 n [ y i − ( b + w x i ) ] 2 J=\sum_{i=1} ^n{\left[y_i-\hat{y}_i\right]^2}=\sum_{i=1}^n{\left[y_i-(b+wx_i)\right]^2} J = i = 1 ∑ n [ y i − y ^ i ] 2 = i = 1 ∑ n [ y i − ( b + w x i ) ] 2
取最小值
回归后的系数可通过回归器的如下参数属性获得
其中损失函数最小值的优化过程就是训练的过程,其中用到的方法就是梯度下降法,即让参数沿梯度逆方向变化,最终求得最优解的过程。
softmax与分类模型
机器学习中的预测问题通常分为2类:回归与分类,其中分类又称逻辑回归
交叉熵损失函数
作为初学者,我开始学习的时候对于其中的交叉熵函数还不是很清楚,经过学习后,其实发现只不过是另一种损失函数,而且在数据服从高斯分布时候,交叉熵损失函数其实是与线性回归中用到的均方差损失函数是等价的
多层感知机
多层感知机(MLP)也叫人工神经网络(ANN),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构
Sigmoid型激活函数的作用
不使用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。使用激活函数,能够给神经元引入非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以利用到更多的非线性模型中。
文本预处理
该章主要内容就是对文本内容处理达到读入文本,分词,建立字典,将词转为索引等,以便接下来学习训练使用
语言模型
一段自然语言文本可以看作是一个离散时间序列,给定一个长度为T T T 的词的序列w 1 , w 2 , … , w T w_1, w_2, \ldots, w_T w 1 , w 2 , … , w T ,语言模型的目标就是评估该序列是否合理,即计算该序列的概率:
此次学习采用了n-元语法统计模型
语言模型
假设序列w 1 , w 2 , … , w T w_1, w_2, \ldots, w_T w 1 , w 2 , … , w T 中的每个词是依次生成的,我们有
P ( w 1 , w 2 , … , w T ) = ∏ t = 1 T P ( w t ∣ w 1 , … , w t − 1 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) ⋯ P ( w T ∣ w 1 w 2 ⋯ w T − 1 ) \begin{aligned}P(w_1, w_2, \ldots, w_T)&= \prod_{t=1}^T P(w_t \mid w_1, \ldots, w_{t-1})\\&= P(w_1)P(w_2 \mid w_1)\cdots P(w_T \mid w_1w_2\cdots w_{T-1})\end{aligned} P ( w 1 , w 2 , … , w T ) = t = 1 ∏ T P ( w t ∣ w 1 , … , w t − 1 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) ⋯ P ( w T ∣ w 1 w 2 ⋯ w T − 1 )
P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) .
P(w_1, w_2, w_3, w_4) = P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_1, w_2, w_3).
P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) .
语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如,w 1 w_1 w 1 的概率可以计算为:
P ^ ( w 1 ) = n ( w 1 ) n
\hat P(w_1) = \frac{n(w_1)}{n}
P ^ ( w 1 ) = n n ( w 1 )
其中n ( w 1 ) n(w_1) n ( w 1 ) 为语料库中以w 1 w_1 w 1 作为第一个词的文本的数量,n n n 为语料库中文本的总数量。
类似的,给定w 1 w_1 w 1 情况下,w 2 w_2 w 2 的条件概率可以计算为:
P ^ ( w 2 ∣ w 1 ) = n ( w 1 , w 2 ) n ( w 1 )
\hat P(w_2 \mid w_1) = \frac{n(w_1, w_2)}{n(w_1)}
P ^ ( w 2 ∣ w 1 ) = n ( w 1 ) n ( w 1 , w 2 )
序列长度增加,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。n n n 元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n n n 个词相关,即n n n 阶马尔可夫链(Markov chain of order n n n ),如果n = 1 n=1 n = 1 ,那么有P ( w 3 ∣ w 1 , w 2 ) = P ( w 3 ∣ w 2 ) P(w_3 \mid w_1, w_2) = P(w_3 \mid w_2) P ( w 3 ∣ w 1 , w 2 ) = P ( w 3 ∣ w 2 ) 。基于n − 1 n-1 n − 1 阶马尔可夫链,我们可以将语言模型改写为
P ( w 1 , w 2 , … , w T ) = ∏ t = 1 T P ( w t ∣ w t − ( n − 1 ) , … , w t − 1 ) .
P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^T P(w_t \mid w_{t-(n-1)}, \ldots, w_{t-1}) .
P ( w 1 , w 2 , … , w T ) = t = 1 ∏ T P ( w t ∣ w t − ( n − 1 ) , … , w t − 1 ) .
以上也叫n n n 元语法(n n n -grams),它是基于n − 1 n - 1 n − 1 阶马尔可夫链的概率语言模型。例如,当n = 2 n=2 n = 2 时,含有4个词的文本序列的概率就可以改写为:
P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) P ( w 4 ∣ w 3 )
\begin{aligned}
P(w_1, w_2, w_3, w_4)
&= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_1, w_2, w_3)\\
&= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_2) P(w_4 \mid w_3)
\end{aligned}
P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) P ( w 4 ∣ w 3 )
当n n n 分别为1、2和3时,我们将其分别称作一元语法(unigram)、二元语法(bigram)和三元语法(trigram)。例如,长度为4的序列w 1 , w 2 , w 3 , w 4 w_1, w_2, w_3, w_4 w 1 , w 2 , w 3 , w 4 在一元语法、二元语法和三元语法中的概率分别为
P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ) P ( w 3 ) P ( w 4 ) , P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) P ( w 4 ∣ w 3 ) , P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 2 , w 3 ) .
\begin{aligned}
P(w_1, w_2, w_3, w_4) &= P(w_1) P(w_2) P(w_3) P(w_4) ,\\
P(w_1, w_2, w_3, w_4) &= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_2) P(w_4 \mid w_3) ,\\
P(w_1, w_2, w_3, w_4) &= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_2, w_3) .
\end{aligned}
P ( w 1 , w 2 , w 3 , w 4 ) P ( w 1 , w 2 , w 3 , w 4 ) P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ) P ( w 3 ) P ( w 4 ) , = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) P ( w 4 ∣ w 3 ) , = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 2 , w 3 ) .
当n n n 较小时,n n n 元语法往往并不准确。例如,在一元语法中,由三个词组成的句子“你走先”和“你先走”的概率是一样的。然而,当n n n 较大时,n n n 元语法需要计算并存储大量的词频和多词相邻频率。
循环神经网络基础