其实在之前的博客朴素贝叶斯的理解一文中曾经提到过最大似然估计。
极大似然估计的核心思想是:我们已知\(x\)已发生,我们再根据实际情况写出\(x\)发生的概率\(p(x;θ)\)。目标函数是使得这个概率\(p(x;θ)\)最大,然后求得\(θ\):
\[\theta_{ML}=arg max_\theta p(X;\theta)=arg max_\theta ∏_{i=1}^mp(x^{i};\theta)\] 上公式中: \(p(X;\theta)\)是样本集\(X\)出现的概率; \(p(x^{i};\theta)\)是某个样本出现的概率; 左式等于右式原因是每个样本出现的概率独立;
多个数的连乘容易溢出,我们可以将它转化为log运算: \[\theta_{ML}=arg max_\theta \sum{i=1}^mlog p(x^{i};\theta)\] 将上式除以\(m\),得到一种期望: \[\theta_{ML}=arg max_\theta E_{x\text{~}p'_{data}}log p(x^{i};\theta) \tag{公式1}\] 这个式子的含义是:在经验分布\(x\text{~}p^`\)上,求得一个\(\theta\),使得模型分布的期望最大化。
此时我们暂时先不看上面这个公式。我们从另一个角度——误差来衡量。训练集上的经验分布\(p'_{data}\)和模型之间的分布差异可以用KL散度衡量:
\[D_{KL}(p'_{data}||p_{model}) = E_{x\text{~}p'_{data}}[logp'_{data}(x)-logp_{model}(x)]\]
我们的目标是使上式最小化。减号左边是在训练集上的,是一个常数;我们只关心右边:
\[\theta_{KL}=argmin_{\theta} -E_{x\text{~}p'_{data}}[logp_{model}(x)]\tag{公式2}\]
很明显我们可以看到,公式2与公式1其实是一样的。我们从这个角度证明了这种度量下的误差与极大似然是相同的。