关于最大似然估计法的基本原理请参考《概率论与数理统计》P152或参考《深度学习》chpt 5.5
1、最大似然估计的一般理论
我们希望可以有些准则可以让我们从不同的模型中得到特定函数作为好的估计。
最常用的准则是最大似然估计。
我们考虑一组含有m个样本的数据集 X = { x ( 1 ) , . . . , x ( m ) } X=\{x^{(1)},...,x^{(m)}\} X={ x(1),...,x(m)},独立的由真正但未知的数据生成分布 p d a t a ( x ) p_{data}(x) pdata(x)生成。
令 p m o d e l ( x ; θ ) p_{model}(x; \theta) pmodel(x;θ) 是一族由 θ \theta θ确定在相同空间上的概率分布。换言之, p m o d e l ( x ; θ ) pmodel(x; \theta) pmodel(x;θ)$
将任意输入x 映射到实数来估计真实概率 p d a t a ( x ) p_{data}(x) pdata(x)。
对 θ \theta θ 的最大似然估计被定义为:
θ M L = arg max θ p m o d e l ( X ; θ ) = arg max θ Π i = 1 m p m o d e l ( x ( i ) ; θ ) \begin{aligned} \theta_{ML} &= \arg \max_\theta p_{model}(X; \theta) \\ &= \arg \max_\theta Π_{i=1}^m p_{model}(x^{(i)}; \theta) \end{aligned} θML=argθmaxpmodel(X;θ)=argθmaxΠi=1mpmodel(x(i);θ)
多个概率的乘积会因很多原因不便于计算。例如,计算中很可能会出现数值
下溢。为了得到一个便于计算的等价优化问题,我们观察到似然对数不会改变其
arg max \arg \max argmax 但是将乘积转化成了便于计算的求和形式:
θ M L = arg max θ ∑ i = 1 m log p m o d e l ( x ( i ) ; θ ) \theta_{ML} = \arg \max_\theta \sum_{i=1}^m \log p_{model}(x^{(i)}; \theta) θML=argθmaxi=1∑mlogpmodel(x(i);θ)
因为当我们重新缩放代价函数时 arg max \arg \max argmax 不会改变,我们可以除以m 得到和训练数
据经验分布 p ∗ d a t a p*_{data} p∗data 相关的期望作为准则:
θ M L = arg max θ E x − p ∗ d a t a log p m o d e l ( x ; θ ) : \theta_{ML} = \arg \max_\theta E_{x-p*_{data}} \log p_{model}(x; \theta ): θML=argθmaxEx−p∗datalogpmodel(x;θ):
注意,虽然期望值的形式是根据各个值出现的概率加权平均,但事实上就等于将所有样本都直接求平均的效果是一样的。
也就是说,最大似然估计的最后推导结果可以用期望值表示。所以很多时候我们说某个算法的损失函数是其条件概率分布的期望值,也就是等价与其最大似然估计。
另一种解释最大似然估计的观点是将它看作最小化训练集上的经验分布 p ∗ d a t a p*_{data} p∗data 和模型分布之间的差异,两者之间的差异程度可以通过KL 散度度量。KL 散度被定义为
D K L ( p ∗ d a t a ∣ ∣ p m o d e l ) = E x − p ∗ d a t a [ log p ∗ d a t a ( x ) − log p m o d e l ( x ) ] D_{KL}(p*_{data}||p_{model}) = E_{x-p*_{data}}[\log p*_{data}(x) - \log p_{model}(x)] DKL(p∗data∣∣pmodel)=Ex−p∗data[logp∗da