事后概率最大化(MAP)是一种估计参数的方法, 它结合了观测数据 (似然函数 ) 和先验分布来估计参数. 与最大似然估计 (MLE) 不同, MAP 考虑了先验信息.
在 MAP 中, 我们试图最大化事后概率分布:
p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ ) p(\theta | \text{data}) \propto p(\text{data} | \theta) p(\theta) p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ )
其中 θ \theta θ 是参数, p ( data ∣ θ ) p(\text{data} | \theta) p ( data ∣ θ ) 是尤度函数, p ( θ ) p(\theta) p ( θ ) 是先验分布.
为了计算 MAP 估计, 我们最大化对数事后概率:
log p ( θ ∣ data ) ∝ log p ( data ∣ θ ) + log p ( θ ) \log p(\theta | \text{data}) \propto \log p(\text{data} | \theta) + \log p(\theta) log p ( θ ∣ data ) ∝ log p ( data ∣ θ ) + log p ( θ )
在贝叶斯统计学中,“最大后验概率估计”是后验概率分布的众数。利用最大后验概率估计可以获得对实验数据中无法直接观察到的量的点估计。它与最大似然估计中的经典方法有密切关系,但是它使用了一个增广的优化目标,进一步考虑了被估计量的先验概率分布。所以最大后验概率估计可以看作是规则化(regularization)的最大似然估计。
假设我们需要根据观察数据 x x x 估计未观察到的总体参数 θ \theta θ ,让 f f f 作为 x x x 的采样分布,这样 f ( x ∣ θ ) f(x|\theta) f ( x ∣ θ ) 就是总体参数为 θ \theta θ 时 x x x 的概率。函数
θ ↦ f ( x ∣ θ ) \theta \mapsto f(x|\theta) θ ↦ f ( x ∣ θ )
即为似然函数,其估计
θ ^ ML ( x ) = arg max θ f ( x ∣ θ ) \hat{\theta}_{\text{ML}}(x) = \arg \max_{\theta} f(x|\theta) θ ^ ML ( x ) = arg θ max f ( x ∣ θ )
就是 θ \theta θ 的最大似然估计。
假设 θ \theta θ 存在一个先验分布 g g g ,这就允许我们将 θ \theta θ 作为贝叶斯统计中的随机变量,这样 θ \theta θ 的后验分布就是:
θ ↦ f ( x ∣ θ ) g ( θ ) ∫ Θ f ( x ∣ θ ′ ) g ( θ ′ ) d θ ′ \theta \mapsto \frac{f(x|\theta) g(\theta)}{\int_{\Theta} f(x|\theta') g(\theta') d\theta'} θ ↦ ∫ Θ f ( x ∣ θ ′ ) g ( θ ′ ) d θ ′ f ( x ∣ θ ) g ( θ )
其中 Θ \Theta Θ 是 g g g 的定义域,这是贝叶斯定理的直接应用。
于是估计 θ \theta θ 为这个随机变量的后验分布的众数:
θ ^ MAP ( x ) = arg max θ f ( x ∣ θ ) g ( θ ) ∫ Θ f ( x ∣ θ ′ ) g ( θ ′ ) d θ ′ = arg max θ f ( x ∣ θ ) g ( θ ) \hat{\theta}_{\text{MAP}}(x) = \arg \max_{\theta} \frac{f(x|\theta) g(\theta)}{\int_{\Theta} f(x|\theta') g(\theta') d\theta'} = \arg \max_{\theta} f(x|\theta) g(\theta) θ ^ MAP ( x ) = arg θ max ∫ Θ f ( x ∣ θ ′ ) g ( θ ′ ) d θ ′ f ( x ∣ θ ) g ( θ ) = arg θ max f ( x ∣ θ ) g ( θ )
后验分布的分母与 θ \theta θ 无关,所以在优化过程中不起作用。注意当先验 g g g 是常数函数时,最大后验估计与最大似然估计重合。
解析方法 :当后验分布的模能够用解析解方式表示时使用这种方法。当使用共轭先验时就是这种情况。数值优化方法 :如共轭梯度法或者牛顿法,这通常需要一阶或二阶导数,导数需要通过解析或数值方法得到。期望最大化算法的修改 :这种方法不需要后验密度的导数。尽管最大后验估计与贝叶斯统计共享先验分布的使用,通常并不认为它是一种贝叶斯方法,这是因为最大后验估计是点估计。然而,贝叶斯方法的特点是使用这些分布来总结数据、得到推论。贝叶斯方法试图算出后验均值或者中值以及后验区间,而不是后验模。尤其是当后验分布没有一个简单的解析形式时更是如此。在这种情况下,后验分布可以使用马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)技术来模拟,但是找到它的众数的优化是很困难或者是不可能的。
假设我们有观测数据 y y y ,模型为 y = a 1 x 1 + a 2 x 2 + e y = a_1 x_1 + a_2 x_2 + e y = a 1 x 1 + a 2 x 2 + e ,其中 e e e 是服从标准正态分布 N ( 0 , 1 ) N(0, 1) N ( 0 , 1 ) 的误差项。
观测数据为:
{ a 1 = 1 , a 2 = 0 , y = − 5 a 1 = 0 , a 2 = 1 , y = 7 a 1 = 1 , a 2 = 1 , y = 1 \begin{cases} a_1 = 1, a_2 = 0, y = -5 \\ a_1 = 0, a_2 = 1, y = 7 \\ a_1 = 1, a_2 = 1, y = 1 \\ \end{cases} ⎩ ⎨ ⎧ a 1 = 1 , a 2 = 0 , y = − 5 a 1 = 0 , a 2 = 1 , y = 7 a 1 = 1 , a 2 = 1 , y = 1
假设 x 1 x_1 x 1 和 x 2 x_2 x 2 的先验分布为 x 1 − x 2 x_1 - x_2 x 1 − x 2 服从均值为 1,方差为 2 的正态分布:
p ( x 1 , x 2 ) ∝ exp ( − ( x 1 − x 2 − 1 ) 2 4 ) p(x_1, x_2) \propto \exp\left(-\frac{(x_1 - x_2 - 1)^2}{4}\right) p ( x 1 , x 2 ) ∝ exp ( − 4 ( x 1 − x 2 − 1 ) 2 )
观测数据的尤度函数为:
L ( x 1 , x 2 ) ∝ exp ( − 1 2 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] ) L(x_1, x_2) \propto \exp\left(-\frac{1}{2}\left[(-5 - x_1)^2 + (7 - x_2)^2 + (1 - (x_1 + x_2))^2\right]\right) L ( x 1 , x 2 ) ∝ exp ( − 2 1 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] )
结合先验分布和尤度函数得到事后分布:
p ( x 1 , x 2 ∣ y ) ∝ exp ( − 1 2 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] ) ⋅ exp ( − ( x 1 − x 2 − 1 ) 2 4 ) p(x_1, x_2 | y) \propto \exp\left(-\frac{1}{2}\left[(-5 - x_1)^2 + (7 - x_2)^2 + (1 - (x_1 + x_2))^2\right]\right) \cdot \exp\left(-\frac{(x_1 - x_2 - 1)^2}{4}\right) p ( x 1 , x 2 ∣ y ) ∝ exp ( − 2 1 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] ) ⋅ exp ( − 4 ( x 1 − x 2 − 1 ) 2 )
取对数以简化计算:
log p ( x 1 , x 2 ∣ y ) ∝ − 1 2 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] − ( x 1 − x 2 − 1 ) 2 4 \log p(x_1, x_2 | y) \propto -\frac{1}{2}\left[(-5 - x_1)^2 + (7 - x_2)^2 + (1 - (x_1 + x_2))^2\right] - \frac{(x_1 - x_2 - 1)^2}{4} log p ( x 1 , x 2 ∣ y ) ∝ − 2 1 [ ( − 5 − x 1 ) 2 + ( 7 − x 2 ) 2 + ( 1 − ( x 1 + x 2 ) ) 2 ] − 4 ( x 1 − x 2 − 1 ) 2
对 x 1 x_1 x 1 和 x 2 x_2 x 2 求偏导数并设为零可以找到最大后验概率估计:
∂ log p ( x 1 , x 2 ∣ y ) ∂ x 1 = ( x 1 + 5 ) + ( x 1 + x 2 − 1 ) − 1 2 ( x 1 − x 2 − 1 ) = 0 \frac{\partial \log p(x_1, x_2 | y)}{\partial x_1} = (x_1 + 5) + (x_1 + x_2 - 1) - \frac{1}{2}(x_1 - x_2 - 1) = 0 ∂ x 1 ∂ log p ( x 1 , x 2 ∣ y ) = ( x 1 + 5 ) + ( x 1 + x 2 − 1 ) − 2 1 ( x 1 − x 2 − 1 ) = 0
∂ log p ( x 1 , x 2 ∣ y ) ∂ x 2 = ( x 2 − 7 ) + ( x 1 + x 2 − 1 ) + 1 2 ( x 1 − x 2 − 1 ) = 0 \frac{\partial \log p(x_1, x_2 | y)}{\partial x_2} = (x_2 - 7) + (x_1 + x_2 - 1) + \frac{1}{2}(x_1 - x_2 - 1) = 0 ∂ x 2 ∂ log p ( x 1 , x 2 ∣ y ) = ( x 2 − 7 ) + ( x 1 + x 2 − 1 ) + 2 1 ( x 1 − x 2 − 1 ) = 0
求解这两个方程可以得到 x 1 x_1 x 1 和 x 2 x_2 x 2 的最大后验估计。
在最大后验概率估计中,我们感兴趣的是寻找参数 θ \theta θ 使得后验概率 p ( θ ∣ data ) p(\theta | \text{data}) p ( θ ∣ data ) 最大化。贝叶斯定理告诉我们:
p ( θ ∣ data ) = p ( data ∣ θ ) p ( θ ) p ( data ) p(\theta | \text{data}) = \frac{p(\text{data} | \theta) p(\theta)}{p(\text{data})} p ( θ ∣ data ) = p ( data ) p ( data ∣ θ ) p ( θ )
其中:
p ( θ ∣ data ) p(\theta | \text{data}) p ( θ ∣ data ) 是在给定数据的情况下参数 θ \theta θ 的后验概率。p ( data ∣ θ ) p(\text{data} | \theta) p ( data ∣ θ ) 是在参数 θ \theta θ 给定的情况下观测数据的似然(Likelihood)。p ( θ ) p(\theta) p ( θ ) 是参数 θ \theta θ 的先验概率(Prior)。p ( data ) p(\text{data}) p ( data ) 是观测数据的边缘似然(Marginal Likelihood),也是一个归一化常数。在最大化后验概率时,p ( data ) p(\text{data}) p ( data ) 是一个常数,与 θ \theta θ 无关。由于 p ( data ) p(\text{data}) p ( data ) 对于每一个可能的 θ \theta θ 都是相同的,所以它不会影响最大化过程。因此,我们可以忽略分母 p ( data ) p(\text{data}) p ( data ) ,直接最大化分子的部分:
p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ ) p(\theta | \text{data}) \propto p(\text{data} | \theta) p(\theta) p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ )
常数因子不影响最大化过程 :在最大化后验概率时,p ( data ) p(\text{data}) p ( data ) 作为一个常数,只影响概率的绝对值,不影响概率分布的形状。因此,我们可以忽略它,仅仅最大化 p ( data ∣ θ ) p ( θ ) p(\text{data} | \theta) p(\theta) p ( data ∣ θ ) p ( θ ) 。
简化计算 :计算 p ( data ) p(\text{data}) p ( data ) 往往比较复杂,因为它是对所有可能的参数 θ \theta θ 进行积分或求和。通过忽略它,我们可以简化计算过程,只需要考虑相对容易计算的部分。
在 MAP 估计中,我们寻找 θ \theta θ 使得后验概率最大化:
θ M A P = arg max θ p ( θ ∣ data ) \theta_{MAP} = \arg\max_{\theta} p(\theta | \text{data}) θ M A P = arg θ max p ( θ ∣ data )
由于
p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ ) p(\theta | \text{data}) \propto p(\text{data} | \theta) p(\theta) p ( θ ∣ data ) ∝ p ( data ∣ θ ) p ( θ )
我们可以简化为:
θ M A P = arg max θ p ( data ∣ θ ) p ( θ ) \theta_{MAP} = \arg\max_{\theta} p(\text{data} | \theta) p(\theta) θ M A P = arg θ max p ( data ∣ θ ) p ( θ )
这个过程分为两个部分:
似然(Likelihood) :p ( data ∣ θ ) p(\text{data} | \theta) p ( data ∣ θ ) 表示在参数 θ \theta θ 给定的情况下,观测数据出现的概率。它反映了数据与参数 θ \theta θ 的一致性。先验(Prior) :p ( θ ) p(\theta) p ( θ ) 表示我们在没有看到数据之前对参数 θ \theta θ 的先验信念。它反映了我们对参数 θ \theta θ 的先验知识或假设。通过最大化 p ( data ∣ θ ) p ( θ ) p(\text{data} | \theta) p(\theta) p ( data ∣ θ ) p ( θ ) ,我们同时考虑了数据和先验知识,从而得到更合理的参数估计。
假设我们有一个正态分布的观测数据集,我们希望估计其均值 μ \mu μ ,且假设我们对 μ \mu μ 的先验分布也是正态分布。
似然函数 :假设观测数据为 x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x 1 , x 2 , … , x n ,每个数据点独立同分布于均值为 μ \mu μ 、方差为 σ 2 \sigma^2 σ 2 的正态分布,则似然函数为:p ( data ∣ μ ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) p(\text{data} | \mu) = \prod_{i=1}^n \frac{1}{\sqrt{2 \pi \sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2 \sigma^2}\right) p ( data ∣ μ ) = i = 1 ∏ n 2 π σ 2 1 exp ( − 2 σ 2 ( x i − μ ) 2 )
先验分布 :假设 μ \mu μ 的先验分布为均值为 μ 0 \mu_0 μ 0 、方差为 τ 2 \tau^2 τ 2 的正态分布,则先验分布为:p ( μ ) = 1 2 π τ 2 exp ( − ( μ − μ 0 ) 2 2 τ 2 ) p(\mu) = \frac{1}{\sqrt{2 \pi \tau^2}} \exp\left(-\frac{(\mu - \mu_0)^2}{2 \tau^2}\right) p ( μ ) = 2 π τ 2 1 exp ( − 2 τ 2 ( μ − μ 0 ) 2 )
后验分布 :根据贝叶斯定理,后验分布为:p ( μ ∣ data ) ∝ p ( data ∣ μ ) p ( μ ) p(\mu | \text{data}) \propto p(\text{data} | \mu) p(\mu) p ( μ ∣ data ) ∝ p ( data ∣ μ ) p ( μ )
我们可以忽略归一化常数,直接最大化后验分布的分子部分:
p ( μ ∣ data ) ∝ ( ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) ) ⋅ 1 2 π τ 2 exp ( − ( μ − μ 0 ) 2 2 τ 2 ) p(\mu | \text{data}) \propto \left(\prod_{i=1}^n \frac{1}{\sqrt{2 \pi \sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2 \sigma^2}\right)\right) \cdot \frac{1}{\sqrt{2 \pi \tau^2}} \exp\left(-\frac{(\mu - \mu_0)^2}{2 \tau^2}\right) p ( μ ∣ data ) ∝ ( i = 1 ∏ n 2 π σ 2 1 exp ( − 2 σ 2 ( x i − μ ) 2 ) ) ⋅ 2 π τ 2 1 exp ( − 2 τ 2 ( μ − μ 0 ) 2 )
通过取对数并简化,我们可以得到 μ \mu μ 的最大后验估计 μ M A P \mu_{MAP} μ M A P 。
总之,忽略 p ( data ) p(\text{data}) p ( data ) 使得计算更加简便,而不会影响最大化过程的结果。这是 MAP 估计中的常见做法。