负对数似然函数的推导

似然函数的理解

概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果。参数->结果

似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。结果->参数

举个例子:
关于硬币投掷两次,两次都正面朝上的概率。

假设单次正面朝上的概率是pH=0.5,那么两次都正面朝上的概率为0.25。

假设单次正面朝上的概率是0.6,那么两次都正面朝上的概率为0.36。

如果参数pH的取值变为0.6的话,结果观测到两次正面朝上的概率要比假设pH=0.5时更大。也就是说,参数pH取成0.6要比取成0.5更有说服力,更为“合理”。总之,似然函数的重要性不是它的具体取值,而是当参数变化时函数到底变小还是变大。对同一个似然函数,如果存在一个参数值,使得它的函数值达到最大的话,那么这个值就是最为“合理”的参数值。

用数学方法可以描述为:
假设X是离散随机变量,其概率函数p依赖于参数θ,则:
L ( θ ∣ x ) = P 0 ( x ) = P 0 ( X = x ) L(θ|x) = P_0(x)=P_0(X=x) L(θx)=P0(x)=P0(X=x)
其中 L ( θ ∣ x ) L(θ|x) L(θx)为参数θ的似然函数,x为随机变量X的某一取值,即样本集中的某一样本。

如果我们发现:
L ( θ 1 ∣ x ) = P θ 1 ( X = x ) > P θ 2 ( X = x ) = L ( θ 2 ∣ x ) L(θ_1|x) = P_{θ_1}(X=x) > P_{θ_2}(X=x)=L(θ_2|x) L(θ1x)=Pθ1(X=x)>Pθ2(X=x)=L(θ2x)

那么似然函数就可以反映出这样一个朴素推测:在参数 θ 1 θ_1 θ1随机变量X取到x的可能性大于在参数 θ 2 θ_2 θ2随机变量X取到x的可能性。换句话说,我们更有力有相信, θ 1 θ_1 θ1更有可能是该概率模型的参数。

最大似然估计(Maximum Likelihood Estimation, MLE)

假设我们有一个非常复杂的数据分布 P d a t a ( x ) P_{data}(x) Pdata(x),但是我们不知道该分布的数学表达形式,所以我们需要定义一个分布模型 P ( x : θ ) P(x:θ) P(x:θ),该分布由参数θ决定。我们的目标是求得参数θ使得定义的分布 P ( x : θ ) P(x:θ) P(x:θ)尽可能接近真实的分布 P d a t a ( x ) P_{data}(x) Pdata(x)

下面我们来看看最大似然估如何进行操作:

  1. P d a t a ( x ) P_{data}(x) Pdata(x)中采集m个样本 x 1 , x 2 , . . . , x m x_1, x_2,...,x_m x1,x2,...,xm
  2. 计算样本的似然函数 L = ∏ i = 1 m P G ( x i ; θ ) L=\prod_{i=1}^{m} P_{G}\left(x^{i} ; \theta\right) L=i=1mPG(xi;θ)
  3. 求使得似然函数 L L L最大的参数θ: θ = a r g m a x ( L ) θ=argmax(L) θ=argmax(L)

当来自 P d a t a ( x ) P_{data}(x) Pdata(x)的样本 x 1 , x 2 , . . . , x m x_1, x_2,...,x_m x1,x2,...,xm P G ( x : θ ) P_G(x:θ) PG(x:θ)分布模型出现的概率越高,也就是 ∏ i = 1 m P G ( x i ; θ ) \prod_{i=1}^{m} P_{G}\left(x^{i} ; \theta\right) i=1mPG(xi;θ)越大, P G ( x : θ ) P_G(x:θ) PG(x:θ) P d a t a ( x ) P_{data}(x) Pdata(x)越接近。

最大似然概率,就是在已知观测的数据的前提下,找到使得似然概率最大的参数值。

对数似然

似然函数是连乘的形式:
L = ∏ i = 1 m P ( x i ; θ ) L=\prod_{i=1}^{m} P\left(x^{i} ; \theta\right) L=i=1mP(xi;θ)

相对不容易计算,也不方便求导。如果我们对它去对数连乘就会变成连加,计算更加方便。
L ( θ ) = ∑ i = 1 m log ⁡ ( P ( x i ; θ ) ) L(\theta)=\sum_{i=1}^{m} \log \left(P\left(x^{i} ; \theta\right)\right) L(θ)=i=1mlog(P(xi;θ))

这样依赖就变成了我们非常熟悉的求极值过程,θ为自变量,我们需要找到一个θ,使得 L ( θ ) L(θ) L(θ)最大。只需对θ求导然后令导数等于0即可。

最大似然估计的一般步骤如下:

  1. 写出似然函数;
  2. 对似然函数取对数,得到对数似然函数;
  3. 求对数似然函数的关于参数组的偏导数,并令其为0,得到似然方程组;
  4. 解似然方程组,得到参数组的值。

负对数似然(Negative log-likelihood, NLL)

在对数似然前面取一个负号,求最大似然转变为求最小。
l ( θ ) = − ∑ i = 1 m log ⁡ ( P ( x i ; θ ) ) l(\theta)=-\sum_{i=1}^{m} \log \left(P\left(x^{i} ; \theta\right)\right) l(θ)=i=1mlog(P(xi;θ))

我们惊奇地发现,这个公式不就是交叉熵吗?只是少了一项 p ( x i ) p(x_i) p(xi),但是真实标签的概率为1,所以省略掉了。

你可能感兴趣的:(NLP/ML/DL,概率论,负对数似然函数)