机器学习基础:极大似然估计与交叉熵

时间:2024-12-19 20:38:02

极大似然法

考虑我们在训练一个参数为 ϕ \boldsymbol\phi ϕ、输入为 x \mathbf{x} x的模型 f [ x , ϕ ] \mathbf{f}[\mathbf{x},\boldsymbol{\phi}] f[x,ϕ]。如果转换一下视角,计算模型在给定输入 x \mathbf{x} x时对可能的输出 y \mathbf{y} y计算条件概率分布 P r ( y ∣ x ) Pr(\mathbf{y}|\mathbf{x}) Pr(yx)。对每一个样本 ( x i , y i ) (\mathbf{x_i},\mathbf{y_i}) (xi,yi),损失函数鼓励在分布 P r ( y i ∣ x i ) Pr(\mathbf{y_i}|\mathbf{x_i}) Pr(yixi) 下输出 y i \mathbf{y_i} yi时有高的概率。

但是如何适配模型 f [ x , ϕ ] \mathbf{f}[\mathbf{x},\boldsymbol{\phi}] f[x,ϕ]去计算概率分布呢?我们首先选择一个定义在输出 y \mathbf{y} y的值域内的参数化概率分布 P r ( y ∣ θ ) Pr(\mathbf{y}|\boldsymbol{\theta}) Pr(yθ), 再基于训练样本让模型对概率分布的参数进行估计。于是模型对每一个训练输入 x i \mathbf{x_i} xi计算得到不同的分布参数 θ i = f [ x i , ϕ ] \boldsymbol{\theta_i} = \mathbf{f}[\mathbf{x_i}, \boldsymbol{\phi}] θi=f[xi,ϕ],其训练输出 y i \mathbf{y_i} yi在其相应的概率分布 P r ( y i ∣ θ i ) Pr(\mathbf{y_i}|\boldsymbol{\theta_i}) Pr(yiθi)下应该有较高的概率。所以,我们会选择使所有的 I I I个样本的组合概率最大的模型参数:
ϕ ^ = argmax ⁡ ϕ [ ∏ i = 1 I Pr ⁡ ( y i ∣ x i ) ] = argmax ⁡ ϕ [ ∏ i = 1 I Pr ⁡ ( y i ∣ θ i ) ] = argmax ⁡ ϕ [ ∏ i = 1 I Pr ⁡ ( y i ∣ f [ x i , ϕ ] ) ] ( 1 ) \begin{aligned} \hat{\boldsymbol{\phi}} & =\underset{\phi}{\operatorname{argmax}}\left[\prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{x}_i\right)\right] \\ & =\underset{\phi}{\operatorname{argmax}}\left[\prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \boldsymbol{\theta}_i\right)\right] \\ & =\underset{\phi}{\operatorname{argmax}}\left[\prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{f}\left[\mathbf{x}_i, \boldsymbol{\phi}\right]\right)\right] \qquad (1) \end{aligned} ϕ^=ϕargmax[i=1IPr(yixi)]=ϕargmax[i=1IPr(yiθi)]=ϕargmax[i=1IPr(yif[xi,ϕ])](1)
上式中的组合概率项被称为参数的似然(likelihood),上式即极大似然法(Maximum likelihood criterion),也被称为极大似然估计(Maximum likelihood estimation, MLE)。

极大似然法有两个假设,即通常所说的假设数据是独立同分布的(independent and identically distributed (i.i.d.))。即首先假设数据来自相同的数据分布,其次假设在给定输入时条件概率 P r ( y i ∣ x i ) Pr(\mathbf{y_i}|\mathbf{x_i}) Pr(yixi) 是独立的,所以训练数据的总似然满足下式的分解:
P r ( y 1 , y 2 , … , y I ∣ x 1 , x 2 , … , x I ) = ∏ i = 1 I Pr ⁡ ( y i ∣ x i ) ( 2 ) Pr(\mathbf{y_1}, \mathbf{y_2}, \ldots, \mathbf{y_I}|\mathbf{x_1}, \mathbf{x_2},\ldots,\mathbf{x_I}) = \prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{x}_i\right) \qquad (2) Pr(y1,y2,,yIx1,x2,,xI)=i=1IPr(yixi)(2)
但公式(1)的最大似然法不是很实用,因为每一项 P r ( y i ∣ f [ x i , ϕ ] ) Pr(\mathbf{y_i}|\mathbf{f}\left[\mathbf{x}_i, \boldsymbol{\phi}\right]) Pr(yif[xi,ϕ])可能会很小,这样许多项的乘积会非常非常小,在实际计算的精度很难去量化它,所以一般会使用最大对数似然:
ϕ ^ = argmax ⁡ ϕ [ ∏ i = 1 I Pr ⁡ ( y i ∣ f [ x i , ϕ ] ) ] = argmax ⁡ ϕ [ log ⁡ [ ∏ i = 1 I Pr ⁡ ( y i ∣ f [ x i , ϕ ] ) ] ] = argmax ⁡ ϕ [ ∑ i = 1 I log ⁡ [ Pr ⁡ ( y i ∣ f [ x i , ϕ ] ) ] ] ( 3 ) \begin{aligned} \hat{\boldsymbol{\phi}} & =\underset{\phi}{\operatorname{argmax}}\left[\prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{f}\left[\mathbf{x}_i, \boldsymbol{\phi}\right]\right)\right] \\ & =\underset{\phi}{\operatorname{argmax}}\left[\log \left[ \prod_{i=1}^I \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{f}\left[\mathbf{x}_i, \boldsymbol{\phi}\right]\right) \right]\right] \\ & =\underset{\phi}{\operatorname{argmax}}\left[\sum_{i=1}^I \log \left[ \operatorname{Pr}\left(\mathbf{y}_i \mid \mathbf{f}\left[\mathbf{x}_i, \boldsymbol{\phi}\right]\right) \right]\right] \qquad (3) \end{aligned} ϕ^=ϕargmax[i=1IPr(yi