概率密度函数的参数估计:最大似然估计、贝叶斯估计与贝叶斯学习

概率密度函数的参数估计:最大似然估计、贝叶斯估计与贝叶斯学习

问题描述

\qquad 在模式分类问题中,贝叶斯判决的核心是通过贝叶斯公式计算后验概率:

p ( ω i ∣ x ) = p ( x ∣ ω i ) p ( ω i ) ∑ j = 1 c p ( x ∣ ω j ) p ( ω j ) \qquad\qquad p(\omega_i|\boldsymbol x)=\dfrac{p(\boldsymbol x|\omega_i)p(\omega_i)}{\sum\limits_{j=1}^cp(\boldsymbol x|\omega_j)p(\omega_j)} p(ωix)=j=1cp(xωj)p(ωj)p(xωi)p(ωi)

\qquad 其中, p ( ω i ) p(\omega_i) p(ωi) 为先验概率, p ( x ∣ ω i ) p(\boldsymbol x|\omega_i) p(xωi) 为类条件概率密度。

例: 假设单位某个人数较多部门的“男性职工( ω 1 \omega_1 ω1类)”人数为 n 1 n_1 n1,“女性职工( ω 2 \omega_2 ω2类)”人数为 n 2 n_2 n2,用身高 x 1 x_1 x1 和体重 x 2 x_2 x2 作为特征向量 x = [ x 1 , x 2 ] T \boldsymbol x=[x_1,x_2]^T x=[x1,x2]T
 
先验概率:     p ( ω 1 ) = n 1 n 1 + n 2 p(\omega_1)=\dfrac{n_1}{n_1+n_2} p(ω1)=n1+n2n1 p ( ω 2 ) = n 2 n 1 + n 2 p(\omega_2)=\dfrac{n_2}{n_1+n_2} p(ω2)=n1+n2n2
 
类条件概率密度:  { p ( x ∣ ω 1 ) 男性 职工的(身高,体重)分布 p ( x ∣ ω 2 ) 女性 职工的(身高,体重)分布 \begin{cases}p(\boldsymbol x|\omega_1)&\text{\textcolor{blue}{男性}职工的(身高,体重)分布}\\p(\boldsymbol x|\omega_2)&\text{\textcolor{blue}{女性}职工的(身高,体重)分布}\end{cases} {p(xω1)p(xω2)男性职工的(身高,体重)分布女性职工的(身高,体重)分布
 
贝叶斯判决:将新样本 x ∗ \boldsymbol x^{\ast} x 判为最大后验概率所对应的类别 arg max ⁡ j   p ( ω j ∣ x ∗ ) \displaystyle\argmax_{j}\ p(\omega_j|\boldsymbol x^{\ast}) jargmax p(ωjx)(“最小错误概率准则”)
考虑该单位其他部门的某个人,通过测量其身高、体重组成特征向量 x ∗ = [ x 1 ∗ , x 2 ∗ ] T \boldsymbol x^{\ast}=[x_1^{\ast},x_2^{\ast}]^T x=[x1,x2]T 来判断是男性( ω 1 \omega_1 ω1类)还是女性( ω 2 \omega_2 ω2类)。若 p ( ω 1 ∣ x ∗ ) > p ( ω 2 ∣ x ∗ ) p(\omega_1|\boldsymbol x^{\ast})>p(\omega_2|\boldsymbol x^{\ast}) p(ω1x)>p(ω2x),则认为是男性;否则,认为是女性。

\qquad 显然,如何有效地估计“类条件概率密度函数” p ( x ∣ ω i ) p(\boldsymbol x|\omega_i) p(xωi) 最为关键,常用的估计方法有:参数方法(最大似然估计,贝叶斯估计,递归贝叶斯学习)、非参数方法 Parzen \text{Parzen} Parzen窗, kNN \text{kNN} kNN)以及朴素贝叶斯等方法。

在上例中,若男性职工( ω 1 \omega_1 ω1类)样本集为 D 1 = { x 1 , ⋯   , x n 1 } \mathcal D_1=\{\boldsymbol x_1,\cdots,\boldsymbol x_{n_1}\} D1={x1,,xn1}
      女性职工( ω 2 \omega_2 ω2类)样本集为 D 2 = { x n 1 + 1 , ⋯   , x n 1 + n 2 } \mathcal D_2=\{\boldsymbol x_{{n_1+1}},\cdots,\boldsymbol x_{n_1+n_2}\} D2={xn1+1,,xn1+n2} 
通过已观测到的样本来计算“类条件概率密度”就是要计算 p ( x ∣ ω 1 , D 1 ) p(\boldsymbol x|\omega_1,\mathcal D_1) p(xω1,D1) p ( x ∣ ω 2 , D 2 ) p(\boldsymbol x|\omega_2,\mathcal D_2) p(xω2,D2)

\qquad 不失一般性,假设针对某个特定的类 ω \omega ω n n n 个观测数据 D = { x 1 , ⋯   , x n } \mathcal D=\{\boldsymbol x_1, \cdots, \boldsymbol x_n\} D={x1,,xn}。“条件概率密度函数估计”问题就变成了,根据 ω \omega ω 类的观测数据集 D \mathcal D D 来估计“条件概率密度函数 p ( x ∣ D ) p(\boldsymbol x|\mathcal D) p(xD)

( 1 ) \qquad(1) (1) 若观测数据 D \mathcal D D 也固定不变,就可以把“条件概率密度函数” p ( x ∣ D ) p(\boldsymbol x|\mathcal D) p(xD) 简记为“概率密度函数” p ( x ) p(\boldsymbol x) p(x)

( 2 ) \qquad(2) (2)概率密度函数的参数形式 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ) 已知、而参数 θ \boldsymbol\theta θ 未知,估计“概率密度函数”的问题就转变为对 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ) 的参数 θ \boldsymbol\theta θ 的估计问题。

在上例中,若假设男性和女性的类条件概率密度函数 p ( x ∣ ω i , D i , θ i ) p(\boldsymbol x|\omega_i,\mathcal D_i,\boldsymbol\theta_i) p(xωi,Di,θi) 都服从某个正态分布:
此时, p ( x ∣ ω 1 , D 1 , θ 1 ) ∼ N ( μ 1 , Σ 1 ) p(\boldsymbol x|\omega_1,\mathcal D_1,\boldsymbol\theta_1)\sim\mathcal N(\boldsymbol\mu_1,\Sigma_1) p(xω1,D1,θ1)N(μ1,Σ1) ,其中参数 θ 1 = ( μ 1 , Σ 1 ) \boldsymbol\theta_1=(\boldsymbol\mu_1,\Sigma_1) θ1=(μ1,Σ1)
    p ( x ∣ ω 2 , D 2 , θ 2 ) ∼ N ( μ 2 , Σ 2 ) p(\boldsymbol x|\omega_2,\mathcal D_2,\boldsymbol\theta_2)\sim\mathcal N(\boldsymbol\mu_2,\Sigma_2) p(xω2,D2,θ2)N(μ2,Σ2) ,其中参数 θ 2 = ( μ 2 , Σ 2 ) \boldsymbol\theta_2=(\boldsymbol\mu_2,\Sigma_2) θ2=(μ2,Σ2)
 
已知某个特定的类 ω \omega ω 服从正态分布 N ( μ , Σ ) \mathcal N(\boldsymbol\mu,\Sigma) N(μ,Σ),只是参数 θ = ( μ , Σ ) \boldsymbol\theta=(\boldsymbol\mu,\Sigma) θ=(μ,Σ) 未知,针对该类的观测数据集固定为 D \mathcal D D,那么估计该类的“类条件概率密度函数” p ( x ∣ ω , D , θ ) p(\boldsymbol x|\omega,\mathcal D,\boldsymbol\theta) p(xω,D,θ) 就可以简记为估计 p ( x ∣ θ ) ∼ N ( μ , Σ ) p(\boldsymbol x|\boldsymbol\theta)\sim\mathcal N(\boldsymbol\mu,\Sigma) p(xθ)N(μ,Σ) 的参数 θ = ( μ , Σ ) \boldsymbol\theta=(\boldsymbol\mu,\Sigma) θ=(μ,Σ) 的值。

\qquad

1. 最大似然估计

\qquad 已知观测数据集 D = { x 1 , ⋯   , x n } \mathcal D=\{\boldsymbol x_1, \cdots, \boldsymbol x_n\} D={x1,,xn},同时假设概率密度函数的参数形式 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ) 是已知的、而参数 θ \boldsymbol\theta θ 未知。基于观测数据集 D \mathcal D D 对概率密度函数 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ) 的参数 θ \boldsymbol\theta θ 进行最大似然估计时,参数 θ \boldsymbol\theta θ 是一个确定而未知的量。

( 1 ) \qquad(1) (1) 由于观测数据 D = { x 1 , ⋯   , x n } \mathcal D=\{\boldsymbol x_1, \cdots, \boldsymbol x_n\} D={x1,,xn} 是独立抽取的,可定义观测数据集 D \mathcal D D 的似然函数:

p ( D ∣ θ ) = p ( x 1 , ⋯   , x n ∣ θ ) = ∏ i = 1 n p ( x i ∣ θ ) \qquad\qquad\qquad p(\mathcal D|\boldsymbol\theta)=p(\boldsymbol x_1, \cdots, \boldsymbol x_n|\boldsymbol\theta)=\prod\limits_{i=1}^n p(\boldsymbol x_i|\boldsymbol\theta) p(Dθ)=p(x1,,xnθ)=i=1np(xiθ)

( 2 ) \qquad(2) (2) 当参数 θ \boldsymbol\theta θ 取不同的值,显然 p ( D ∣ θ ) p(\mathcal D|\boldsymbol\theta) p(Dθ) 的值也会有不同的变化。

\qquad   若参数 θ = θ ^ \boldsymbol\theta=\hat{\boldsymbol\theta} θ=θ^ 时, p ( D ∣ θ ^ ) = max ⁡ θ   p ( D ∣ θ ) p(\mathcal D|\hat{\boldsymbol\theta})=\displaystyle\max_{\boldsymbol\theta}\ p(\mathcal D|\boldsymbol\theta) p(Dθ^)=θmax p(Dθ),那么 θ ^ \hat{\boldsymbol\theta} θ^ 就是概率密度函数参数估计的最大似然解,由观测数据集 D \mathcal D D 估计出的概率密度函数就为 p ( x ∣ θ ^ ) p(\boldsymbol x|\hat{\boldsymbol\theta}) p(xθ^)

\qquad
最大似然估计的求解

( 1 ) \quad(1) (1) 定义对数似然函数:

ℓ ( θ ) = ln ⁡ p ( D ∣ θ ) \qquad\qquad\quad\quad \ell(\boldsymbol\theta)=\ln p(\mathcal D|\boldsymbol\theta) (θ)=lnp(Dθ)

( 2 ) \quad(2) (2) 最大似然解:

θ ^ = arg max ⁡ θ   p ( D ∣ θ ) \qquad\qquad\quad\quad\hat{\boldsymbol\theta}=\displaystyle\argmax_{\boldsymbol\theta}\ p(\mathcal D|\boldsymbol\theta) θ^=θargmax p(Dθ)

\quad\quad\quad 或者说 p ( D ∣ θ ^ ) = max ⁡ θ   p ( D ∣ θ ) p(\mathcal D|\hat{\boldsymbol\theta})=\displaystyle\max_{\boldsymbol\theta}\ p(\mathcal D|\boldsymbol\theta) p(Dθ^)=θmax p(Dθ)

( 3 ) \quad(3) (3) 通过计算 ∇ θ ℓ ( θ ) = 0 \nabla_{\boldsymbol\theta} \ell(\boldsymbol\theta)=0 θ(θ)=0(对每个 θ i \theta_i θi 求偏导)求得 θ ^ \hat{\boldsymbol\theta} θ^ 的值:

∇ θ ℓ ( θ ) = ∑ i = 1 n ∇ θ ln ⁡ p ( x i ∣ θ ) = 0 \qquad\qquad\quad\quad\nabla_{\boldsymbol\theta} \ell(\boldsymbol\theta)=\displaystyle\sum_{i=1}^n \nabla_{\boldsymbol\theta} \ln p(\boldsymbol x_i|\boldsymbol\theta)=0 θ(θ)=i=1nθlnp(xiθ)=0

\quad\quad\quad 或者说 ∂ ℓ ( θ ) ∂ θ i = 0 , ∀   i \dfrac{\partial\ell(\boldsymbol\theta)}{\partial\theta_i}=0,\quad\forall\ i θi(θ)=0, i

\quad 参数 θ \boldsymbol\theta θ 的最大似然解 θ ^ \hat{\boldsymbol\theta} θ^ 实际上是一个“完全由观测样本决定的统计量”,也就是说:

θ ^ = g ( x 1 , ⋯   , x n ) \qquad\qquad\hat{\boldsymbol\theta}=g(\boldsymbol x_1, \cdots, \boldsymbol x_n) θ^=g(x1,,xn)

“线性回归参数模型”的例子,可参考《线性模型参数求解的最大似然估计》

例1:以一维情况为例,假设概率密度函数的参数形式 p ( x ∣ θ ) ∼ N ( μ , σ 2 ) p(x|\textcolor{red}{\theta})\sim\mathcal N(\textcolor{red}{\mu},\sigma^2) p(xθ)N(μ,σ2),已知方差 σ 2 = 1 8 2 \sigma^2=18^2 σ2=182,未知参数 θ = μ \theta=\mu θ=μ(真实值为 20 20 20)。

from scipy.stats import multivariate_normal
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
mean = 20
std = 18
var = std**2
num = 100
x = np.linspace(-50, 100, num*2, endpoint=False)
y = norm.pdf(x, mean, std)
y1 = multivariate_normal.pdf(x, mean, var)
plt.figure(1, figsize=(8,4))
plt.plot(x, y), plt.xlabel('x'), plt.ylabel('y')
plt.title('$\mu=20, \sigma=18^2$')
# 生成数据集 D,共有num个样本点
rx = mean + std * np.random.randn(num)
ry = np.zeros_like(rx)
plt.plot(rx, ry, 'r.', markersize='3')
# MLE (假设均值未知,方差已知)
mu = np.linspace(mean-10, mean+10, 100)
likelihood = mu.copy()
# 计算数据集 D 对不同均值的似然值
for i in range(len(mu)):
    likelihood[i] = np.prod(norm.pdf(rx, mu[i], std))
mean_ml = mu[np.argmax(likelihood)]
print(mean_ml)
plt.figure(2, figsize=(8,4))
plt.plot(mu, likelihood)# 显示不同均值时的似然函数值,横坐标为未知参数(均值)
plt.title('$\hat\mu=$'+str(mean_ml))
plt.show()

运行结果:
在这里插入图片描述

Matlab版本可参考《正态分布的最大似然估计》

\qquad

2. 贝叶斯参数估计

\qquad 参数方法假设概率密度函数的参数形式 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ) 已知,参数向量 θ \boldsymbol\theta θ 未知。

( 1 ) \qquad(1) (1) “贝叶斯参数估计”方法将参数向量 θ \boldsymbol\theta θ 看成是一个随机向量

\qquad   在观测任何训练样本之前,我们对参数向量 θ \boldsymbol\theta θ 的全部了解只有其先验概率 p ( θ ) p(\boldsymbol\theta) p(θ)

( 2 ) \qquad(2) (2) 根据先验概率 p ( θ ) p(\boldsymbol\theta) p(θ) 抽取出一个参数向量 θ = θ ^ \boldsymbol\theta=\hat{\boldsymbol\theta} θ=θ^,从而确定了概率密度函数 p ( x ∣ θ ^ ) p(\boldsymbol x|\hat{\boldsymbol\theta}) p(xθ^)

\qquad   若观测数据 D = { x 1 , ⋯   , x n } \mathcal D=\{\boldsymbol x_1, \cdots, \boldsymbol x_n\} D={x1,,xn} 是由这个概率密度函数 p ( x ∣ θ ^ ) p(\boldsymbol x|\hat{\boldsymbol\theta}) p(xθ^) 经过 n n n 次独立抽取的
\qquad   就可以求出观测数据集 D \mathcal D D 关于参数向量 θ ^ \hat{\boldsymbol\theta} θ^ 的似然值 p ( D ∣ θ ^ ) = ∏ i = 1 n p ( x i ∣ θ ^ ) p(\mathcal D|\hat{\boldsymbol\theta})=\prod\limits_{i=1}^n p(\boldsymbol x_i|\hat{\boldsymbol\theta}) p(Dθ^)=i=1np(xiθ^)

( 3 ) \qquad(3) (3) 应用贝叶斯公式,可求出当前观测数据集 D \mathcal D D 关于参数向量 θ = θ ^ \boldsymbol\theta=\hat{\boldsymbol\theta} θ=θ^ 的后验概率

p ( θ ∣ D ) = p ( D ∣ θ ) p ( θ ) ∫ p ( D ∣ θ ) p ( θ ) d θ \qquad\qquad\qquad p(\boldsymbol\theta|\mathcal D)=\dfrac{p(\mathcal D|\boldsymbol\theta)p(\boldsymbol\theta)}{\displaystyle\int p(\mathcal D|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta} p(θD)=p(Dθ)p(θ)dθp(Dθ)p(θ)

\qquad   若 p ( θ ^ ∣ D ) = max ⁡ p ( θ ∣ D ) p(\hat{\boldsymbol\theta}|\mathcal D)=\max p(\boldsymbol\theta|\mathcal D) p(θ^D)=maxp(θD),且 p ( θ ∣ D ) p(\boldsymbol\theta|\mathcal D) p(θD) θ ^ \hat{\boldsymbol\theta} θ^ 附近形成一个显著的尖峰
\qquad   就可以认为概率密度函数 p ( x ) = p ( x ∣ D ) ≈ p ( x ∣ θ ^ ) p(\boldsymbol x)=p(\boldsymbol x|\mathcal D)\approx p(\boldsymbol x|\hat{\boldsymbol\theta}) p(x)=p(xD)p(xθ^)

p ( x ∣ D ) = ∫ p ( x , θ ∣ D ) d θ = ∫ p ( x ∣ θ , D ) p ( θ ∣ D ) d θ = ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ 训练样本集  D 与测试样本 x  的选取是独立抽取的 \qquad\begin{aligned}p(\boldsymbol x|\mathcal D)&=\displaystyle\int p(\boldsymbol x,\boldsymbol\theta|\mathcal D)d\boldsymbol\theta \\ &= \displaystyle\int p(\boldsymbol x|\boldsymbol\theta,\mathcal D)p(\boldsymbol\theta|\mathcal D)d\boldsymbol\theta \\ &= \displaystyle\int p(\boldsymbol x|\boldsymbol\theta)p(\boldsymbol\theta|\mathcal D)d\boldsymbol\theta\qquad\text{训练样本集 }\mathcal D \text{与测试样本}\boldsymbol x \text{ 的选取是独立抽取的}\end{aligned} p(xD)=p(x,θD)dθ=p(xθ,D)p(θD)dθ=p(xθ)p(θD)dθ训练样本集 D与测试样本x 的选取是独立抽取的
 
\qquad p ( θ ∣ D ) p(\boldsymbol\theta|\mathcal D) p(θD) 正好在 θ ^ \hat{\boldsymbol\theta} θ^ 附近形成一个显著的尖峰 p ( θ ^ ∣ D ) p(\hat{\boldsymbol\theta}|\mathcal D) p(θ^D) 的值比其他位置的 p ( θ ∣ D ) p(\boldsymbol\theta|\mathcal D) p(θD) 都大很多,比如 p ( θ ∣ D ) → 0 , ∀   θ ≠ θ ^ p(\boldsymbol\theta|\mathcal D)\to 0,\forall\ \boldsymbol\theta\neq\hat{\boldsymbol\theta} p(θD)0, θ=θ^,此时,显然有 p ( x ∣ D ) ≈ p ( x ∣ θ ^ ) p(\boldsymbol x|\mathcal D)\approx p(\boldsymbol x|\hat{\boldsymbol\theta}) p(xD)p(xθ^)
 
\qquad 最理想的情况是 p ( θ ∣ D ) = δ ( θ − θ ^ ) p(\boldsymbol\theta|\mathcal D)=\delta(\boldsymbol\theta-\hat{\boldsymbol\theta}) p(θD)=δ(θθ^),此时 p ( x ∣ D ) = p ( x ∣ θ ^ ) p(\boldsymbol x|\mathcal D)=p(\boldsymbol x|\hat{\boldsymbol\theta}) p(xD)=p(xθ^)

\qquad
例2:以一维情况为例,假设概率密度函数的参数形式 p ( x ∣ θ ) ∼ N ( μ , σ 2 ) p(x|\textcolor{red}{\theta})\sim\mathcal N(\textcolor{red}{\mu},\sigma^2) p(xθ)N(μ,σ2),且方差 σ 2 \sigma^2 σ2 已知,未知参数 θ = μ \theta=\mu θ=μ

( 1 ) \quad(1) (1) 贝叶斯参数估计方法认为 θ \theta θ 是一个随机变量,并假设 p ( θ ) ∼ N ( μ 0 , σ 0 2 ) p(\theta)\sim\mathcal N(\mu_0,\sigma_0^2) p(θ)N(μ0,σ02),其中 μ 0 , σ 0 2 \mu_0,\sigma_0^2 μ0,σ02 是已知的

( 2 ) \quad(2) (2) 根据 p ( θ ) ∼ N ( μ 0 , σ 0 2 ) p(\theta)\sim\mathcal N(\mu_0,\sigma_0^2) p(θ)N(μ0,σ02) 抽取一个具体的 μ \mu μ 值(比如取 μ = μ ^ \mu=\hat\mu μ=μ^),也就确定了概率密度函数 p ( x ∣ θ ) ∼ N ( μ ^ , σ 2 ) p(x|\textcolor{red}{\theta})\sim\mathcal N(\hat\mu,\sigma^2) p(xθ)N(μ^,σ2),并认为观测数据 D = { x 1 , ⋯   , x n } \mathcal D=\{x_1, \cdots, x_n\} D={x1,,xn} 是根据该概率分布独立地抽取出的 n n n 个样本,从而计算出观测数据集 D \mathcal D D 关于参数向量 μ ^ \hat\mu μ^ 的似然值 p ( D ∣ μ ^ ) = ∏ i = 1 n p ( x i ∣ μ ^ ) p(\mathcal D|\hat\mu)=\prod\limits_{i=1}^n p(x_i|\hat\mu) p(Dμ^)=i=1np(xiμ^)

( 3 ) \quad(3) (3) 由贝叶斯公式,可知 p ( μ ∣ D ) p(\mu|\mathcal D) p(μD) 同样服从正态分布

p ( μ ∣ D ) = p ( D ∣ μ ) p ( μ ) ∫ p ( D ∣ μ ) p ( μ ) d μ = ⋯ = 1 2 π σ n exp ⁡ { − 1 2 ( μ − μ n σ n ) 2 } \qquad\quad p(\mu|\mathcal D)=\dfrac{p(\mathcal D|\mu)p(\mu)}{\int p(\mathcal D|\mu)p(\mu)d\mu}=\cdots=\dfrac{1}{\sqrt{2\pi}\sigma_n}\exp\left\{-\dfrac{1}{2}\left(\dfrac{\mu-\mu_n}{\sigma_n}\right)^2\right\} p(μD)=p(Dμ)p(μ)dμp(Dμ)p(μ)==2π σn1exp{21(σnμμn)2}

\qquad 其中, { 1 σ n 2 = n σ 2 + 1 σ 0 2 μ n σ n 2 = n σ n 2 μ ^ n + μ 0 σ 0 2 \begin{cases}\dfrac{1}{\sigma_n^2}=\dfrac{n}{\sigma^2}+\dfrac{1}{\sigma_0^2}\\\\\dfrac{\mu_n}{\sigma_n^2}=\dfrac{n}{\sigma_n^2}\hat\mu_n+\dfrac{\mu_0}{\sigma_0^2}\end{cases} σn21=σ2n+σ021σn2μn=σn2nμ^n+σ02μ0 μ ^ n = 1 n ∑ k = 1 n x k \hat\mu_n=\dfrac{1}{n}\displaystyle\sum_{k=1}^n x_k μ^n=n1k=1nxk样本均值

\qquad 从而得到: { μ n = ( n σ 0 2 n σ 0 2 + σ 2 ) μ ^ n + μ 0 σ 2 n σ 0 2 + σ 2 σ n 2 = σ 0 2 σ 2 n σ 0 2 + σ 2 \begin{cases}\mu_n=\left(\dfrac{n\sigma_0^2}{n\sigma_0^2+\sigma^2}\right)\hat\mu_n+\dfrac{\mu_0\sigma^2}{n\sigma_0^2+\sigma^2}\\\\\sigma_n^2=\dfrac{\sigma_0^2\sigma^2}{n\sigma_0^2+\sigma^2}\end{cases} μn=(nσ02+σ2nσ02)μ^n+nσ02+σ2μ0σ2σn2=nσ02+σ2σ02σ2

详细推导过程见《Pattern Classification》3.4节公式(26)~(35)
贝叶斯参数估计通常需要满足共轭性 (conjugacy) \text{(conjugacy)} (conjugacy)的条件,也就是“后验概率(正⽐于先验和似然函数的乘积)与先验概率有着相同的函数形式”,可参考《Pattern Recognition and Machine Learning》第2章

在这里插入图片描述

取自于《Pattern Classification》Fig 3.2(左图为二维示意图,右图为三维示意图)
 
可以看出,观测样本数 n n n 越大,越使得 p ( μ ∣ D ) p(\mu|\mathcal D) p(μD) 形成一个显著的尖峰,也就表示未知参数 μ \mu μ 的值更多可能出现 μ ∗ = arg max ⁡ μ   p ( μ ∣ D ) \mu^{\ast}=\argmax_{\mu}\ p(\mu|\mathcal D) μ=argmaxμ p(μD) 的附近(当 n → ∞ n\to\infty n时, σ n 2 → 0 \sigma_n^2\to0 σn20,尖峰越显著)。
显然, μ n → μ ^ n   ( n → ∞ ) \mu_n\rightarrow\hat\mu_n\ (n\to\infty) μnμ^n (n) 趋于样本均值, σ n 2 = σ 0 2 σ 2 n σ 0 2 + σ 2 → 0   ( n → ∞ ) \sigma_n^2=\dfrac{\sigma_0^2\sigma^2}{n\sigma_0^2+\sigma^2}\rightarrow0\ (n\to\infty) σn2=nσ02+σ2σ02σ20 (n)

\qquad

3. 顺序(sequential)贝叶斯学习

\qquad 贝叶斯学习,是一个“增量学习 (incremental learning) \text{(incremental\ learning)} (incremental learning)”过程。其主要特点是,学习过程随着观测数据的不断获取而不断进行下去。

( 1 ) \qquad(1) (1) n − 1 n-1 n1 时刻观测样本集为 D n − 1 = { x 1 , ⋯   , x n − 1 } \mathcal D^{n-1}=\{\boldsymbol x_1, \cdots, \boldsymbol x_{n-1}\} Dn1={x1,,xn1},随着第 n n n 时刻观测到数据 x n \boldsymbol x_n xn,观测样本集更新为 D n = D n − 1 ∪ { x n } = { x 1 , ⋯   , x n − 1 , x n } \mathcal D^{n}=\mathcal D^{n-1}\cup\{\boldsymbol x_n\}=\{\boldsymbol x_1, \cdots, \boldsymbol x_{n-1},\boldsymbol x_n\} Dn=Dn1{xn}={x1,,xn1,xn}

( 2 ) \qquad(2) (2) 由于观测样本集 D \mathcal D D 一直在更新, p ( θ ∣ D ) p(\boldsymbol\theta|\mathcal D) p(θD) 的值也一直在更新,直到 p ( θ ∣ D n ) p(\boldsymbol\theta|\mathcal D^n) p(θDn) 随着 n → ∞ n\to\infty n 而形成一个显著的尖峰

\qquad
贝叶斯学习的实现步骤如下:

( 1 ) (1) (1) 0 0 0 时刻

\qquad 观测数据集 D 0 = ∅ \mathcal D^{0}=\varnothing D0=,定义 p ( θ ∣ D 0 ) = p ( θ ) p(\boldsymbol\theta|\mathcal D^{0})=p(\boldsymbol\theta) p(θD0)=p(θ) p ( θ ) p(\boldsymbol\theta) p(θ) 是未知参数向量的先验概率。

( 2 ) (2) (2) 1 1 1 时刻

\qquad p ( θ ∣ D 0 ) p(\boldsymbol\theta|\mathcal D^{0}) p(θD0) 中抽取一个 θ \boldsymbol\theta θ 值用于确定概率密度函数 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ),同时观测第一个数据 x 1 \boldsymbol x_1 x1,观测数据集更新为 D 1 = { x 1 } \mathcal D^{1}=\{\boldsymbol x_1\} D1={x1},然后计算似然函数 p ( x 1 ∣ θ ) p(\boldsymbol x_1|\boldsymbol\theta) p(x1θ),最后使用贝叶斯公式计算后验概率:

p ( θ ∣ D 1 ) = p ( x 1 ∣ θ ) p ( θ ∣ D 0 ) ∫ p ( x 1 ∣ θ ) p ( θ ∣ D 0 ) d θ \qquad\qquad p(\boldsymbol\theta|\mathcal D^{1})=\dfrac{p(\boldsymbol x_1|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{0})}}{\displaystyle\int p(\boldsymbol x_1|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{0})}d\boldsymbol\theta} p(θD1)=p(x1θ)p(θD0)dθp(x1θ)p(θD0),此处 p ( θ ∣ D 0 ) = p ( θ ) p(\boldsymbol\theta|\mathcal D^{0})=p(\boldsymbol\theta) p(θD0)=p(θ)

与上节中描述的贝叶斯参数估计不同的是,该时刻的后验概率 p ( θ ∣ D 1 ) p(\boldsymbol\theta|\mathcal D^{1}) p(θD1) 将作为下一时刻贝叶斯公式中的先验概率,也就是先验概率由 p ( θ ∣ D 0 ) = p ( θ ) p(\boldsymbol\theta|\mathcal D^{0})=p(\boldsymbol\theta) p(θD0)=p(θ) 更新为 p ( θ ∣ D 1 ) p(\boldsymbol\theta|\mathcal D^{1}) p(θD1)

( 3 ) (3) (3) 2 2 2 时刻

\qquad p ( θ ∣ D 1 ) p(\boldsymbol\theta|\mathcal D^{1}) p(θD1) 中抽取一个 θ \boldsymbol\theta θ 值用于确定概率密度函数 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ),同时观测第二个数据 x 2 \boldsymbol x_2 x2,观测数据集更新为 D 2 = { x 1 , x 2 } \mathcal D^{2}=\{\boldsymbol x_1,\boldsymbol x_2\} D2={x1,x2},然后计算数据 x 2 \boldsymbol x_2 x2 的似然函数 p ( x 2 ∣ θ ) p(\boldsymbol x_2|\boldsymbol\theta) p(x2θ),最后使用贝叶斯公式计算后验概率:

p ( θ ∣ D 2 ) = p ( x 2 ∣ θ ) p ( θ ∣ D 1 ) ∫ p ( x 2 ∣ θ ) p ( θ ∣ D 1 ) d θ \qquad\qquad p(\boldsymbol\theta|\mathcal D^{2})=\dfrac{p(\boldsymbol x_2|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{1})}}{\displaystyle\int p(\boldsymbol x_2|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{1})}d\boldsymbol\theta} p(θD2)=p(x2θ)p(θD1)dθp(x2θ)p(θD1)

该时刻的后验概率 p ( θ ∣ D 2 ) p(\boldsymbol\theta|\mathcal D^{2}) p(θD2) 将作为下一时刻贝叶斯公式中的先验概率,也就是先验概率由 p ( θ ∣ D 1 ) p(\boldsymbol\theta|\mathcal D^{1}) p(θD1) 更新为 p ( θ ∣ D 2 ) p(\boldsymbol\theta|\mathcal D^{2}) p(θD2)

⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ \qquad\cdots\cdots\qquad\qquad\cdots\cdots\qquad\qquad\cdots\cdots\qquad\qquad\cdots\cdots\qquad\qquad\cdots\cdots ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

( 4 ) (4) (4) n n n 时刻

\qquad p ( θ ∣ D n − 1 ) p(\boldsymbol\theta|\mathcal D^{n-1}) p(θDn1) 中抽取一个 θ \boldsymbol\theta θ 值用于确定概率密度函数 p ( x ∣ θ ) p(\boldsymbol x|\boldsymbol\theta) p(xθ),同时观测第 n n n 个数据 x n \boldsymbol x_n xn,观测数据集更新为 D n = { x 1 , ⋯   , x n } \mathcal D^{n}=\{\boldsymbol x_1,\cdots,\boldsymbol x_n\} Dn={x1,,xn},然后计算数据 x n \boldsymbol x_n xn 的似然函数 p ( x n ∣ θ ) p(\boldsymbol x_n|\boldsymbol\theta) p(xnθ),最后使用贝叶斯公式计算后验概率:

p ( θ ∣ D n ) = p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) ∫ p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) d θ \qquad\qquad p(\boldsymbol\theta|\mathcal D^{n})=\dfrac{p(\boldsymbol x_n|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{n-1})}}{\displaystyle\int p(\boldsymbol x_n|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{n-1})}d\boldsymbol\theta} p(θDn)=p(xnθ)p(θDn1)dθp(xnθ)p(θDn1)

该时刻的后验概率 p ( θ ∣ D n ) p(\boldsymbol\theta|\mathcal D^{n}) p(θDn) 将作为下一时刻贝叶斯公式中的先验概率,也就是先验概率由 p ( θ ∣ D n − 1 ) p(\boldsymbol\theta|\mathcal D^{n-1}) p(θDn1) 更新为 p ( θ ∣ D n ) p(\boldsymbol\theta|\mathcal D^{n}) p(θDn)

由于样本抽取是独立的,因此 p ( D n ∣ θ ) = p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p(\mathcal D^{n}|\boldsymbol\theta)=p(\boldsymbol x_n|\boldsymbol\theta)p(\mathcal D^{n-1}|\boldsymbol\theta) p(Dnθ)=p(xnθ)p(Dn1θ)
 
可得到: p ( θ ∣ D n ) = p ( D n ∣ θ ) p ( θ ) ∫ p ( D n ∣ θ ) p ( θ ) d θ = p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) ∫ p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) d θ p(\boldsymbol\theta|\mathcal D^{n})=\dfrac{\textcolor{slateblue}{p(\mathcal D^{n}|\boldsymbol\theta)}p(\boldsymbol\theta)}{\displaystyle\int \textcolor{slateblue}{p(\mathcal D^{n}|\boldsymbol\theta)}p(\boldsymbol\theta)d\boldsymbol\theta}=\dfrac{\textcolor{slateblue}{p(\boldsymbol x_n|\boldsymbol\theta)p(\mathcal D^{n-1}|\boldsymbol\theta)}p(\boldsymbol\theta)}{\displaystyle\int \textcolor{slateblue}{p(\boldsymbol x_n|\boldsymbol\theta)p(\mathcal D^{n-1}|\boldsymbol\theta)}p(\boldsymbol\theta)d\boldsymbol\theta} p(θDn)=p(Dnθ)p(θ)dθp(Dnθ)p(θ)=p(xnθ)p(Dn1θ)p(θ)dθp(xnθ)p(Dn1θ)p(θ)
 
又:   p ( θ ∣ D n − 1 ) = p ( D n − 1 ∣ θ ) p ( θ ) ∫ p ( D n − 1 ∣ θ ) p ( θ ) d θ ⟹ p ( D n − 1 ∣ θ ) p ( θ ) = p ( θ ∣ D n − 1 ) ∫ p ( D n − 1 ∣ θ ) p ( θ ) d θ p(\boldsymbol\theta|\mathcal D^{n-1})=\dfrac{p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)}{\displaystyle\int p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta}\Longrightarrow \textcolor{royalblue}{p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)}=p(\boldsymbol\theta|\mathcal D^{n-1})\displaystyle\int p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta p(θDn1)=p(Dn1θ)p(θ)dθp(Dn1θ)p(θ)p(Dn1θ)p(θ)=p(θDn1)p(Dn1θ)p(θ)dθ
 
代入 p ( θ ∣ D n ) p(\boldsymbol\theta|\mathcal D^{n}) p(θDn)中,可得到:
 
p ( θ ∣ D n ) = p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) ∫ p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) d θ = p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) ∫ p ( D n − 1 ∣ θ ) p ( θ ) d θ ∫ p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) d θ = p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) ∫ p ( x n ∣ θ ) p ( D n − 1 ∣ θ ) p ( θ ) ∫ p ( D n − 1 ∣ θ ) p ( θ ) d θ d θ = p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) ∫ p ( x n ∣ θ ) p ( θ ∣ D n − 1 ) d θ \qquad\qquad\begin{aligned}p(\boldsymbol\theta|\mathcal D^{n})&=\dfrac{p(\boldsymbol x_n|\boldsymbol\theta)\textcolor{royalblue}{p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)}}{\displaystyle\int p(\boldsymbol x_n|\boldsymbol\theta)p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta}\\&=\dfrac{p(\boldsymbol x_n|\boldsymbol\theta)p(\boldsymbol\theta|\mathcal D^{n-1})\displaystyle\int p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta}{\displaystyle\int p(\boldsymbol x_n|\boldsymbol\theta)p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta}\\&=\dfrac{p(\boldsymbol x_n|\boldsymbol\theta)p(\boldsymbol\theta|\mathcal D^{n-1})}{\displaystyle\int p(\boldsymbol x_n|\boldsymbol\theta)\textcolor{crimson}{\dfrac{p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)}{\displaystyle\int p(\mathcal D^{n-1}|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta}}d\boldsymbol\theta}\\&=\dfrac{p(\boldsymbol x_n|\boldsymbol\theta)p(\boldsymbol\theta|\mathcal D^{n-1})}{\displaystyle\int p(\boldsymbol x_n|\boldsymbol\theta)\textcolor{crimson}{p(\boldsymbol\theta|\mathcal D^{n-1})}d\boldsymbol\theta}\end{aligned} p(θDn)=p(xnθ)p(Dn1θ)p(θ)dθp(xnθ)p(Dn1θ)p(θ)=p(xnθ)p(Dn1θ)p(θ)dθp(xnθ)p(θDn1)p(Dn1θ)p(θ)dθ=p(xnθ)p(Dn1θ)p(θ)dθp(Dn1θ)p(θ)dθp(xnθ)p(θDn1)=p(xnθ)p(θDn1)dθp(xnθ)p(θDn1)

\qquad 如此反复下去,能够产生一系列的概率密度函数 p ( θ ∣ x 1 ) , p ( θ ∣ x 1 , x 2 ) , ⋯   , p ( θ ∣ D n ) , ⋯ p(\boldsymbol\theta|\boldsymbol x_1),p(\boldsymbol\theta|\boldsymbol x_1,\boldsymbol x_2),\cdots,p(\boldsymbol\theta|\mathcal D^{n}),\cdots p(θx1),p(θx1,x2),,p(θDn),,这一过程被称为“参数估计的递归的贝叶斯方法”。

\qquad
例3:线性回归的贝叶斯学习(《Pattern Recognition and Machine Learning》3.3.1节)

\qquad 假设观测数据满足 t i = y ( x i , w ) + ε ,    ε ∼ N ( 0 , β − 1 ) t_i=y(x_i,\boldsymbol w)+\varepsilon,\ \ \varepsilon\sim\mathcal N(0,\beta^{-1}) ti=y(xi,w)+ε,  εN(0,β1),其中 β = 1 σ 2 = 25 \beta=\frac{1}{\sigma^2}=25 β=σ21=25

\qquad 线性回归模型 y ( x , w ) = w 0 + w 1 x ,    w = ( w 0 , w 1 ) T y(x,\boldsymbol w)=w_0+w_1x,\ \ \boldsymbol w=(w_0,w_1)^T y(x,w)=w0+w1x,  w=(w0,w1)T,假定真实参数值为 w = ( − 0.3 , 0.5 ) T \boldsymbol w=(-0.3,0.5)^T w=(0.3,0.5)T

\qquad 对于某个点 x i x_i xi,关于目标值 t i t_i ti 的似然函数为 p ( t i ∣ x i , w ) = N ( t ∣ y ( x i , w ) , β − 1 ) p(t_i|x_i,\boldsymbol w)=\mathcal N(t|y(x_i,\boldsymbol w),\beta^{-1}) p(tixi,w)=N(ty(xi,w),β1)

关于所有目标值 t \bold t t 的似然函数为 p ( t ∣ w , X ) = p ( t 1 , ⋯   , t N ∣ X , w ) = ∏ i = 1 N p ( t i ∣ x i , w ) p(\bold t|\boldsymbol w,\bold X)=p(t_1,\cdots,t_N|\bold X,\boldsymbol w) =\displaystyle\prod_{i=1}^N p(t_i|x_i,\boldsymbol w) p(tw,X)=p(t1,,tNX,w)=i=1Np(tixi,w)

\qquad 参数向量 w \boldsymbol w w 的先验概率为 p ( w ) = N ( w ∣ m 0 , S 0 ) p(\boldsymbol w)=\mathcal N(\boldsymbol w|\boldsymbol m_0,\boldsymbol S_0) p(w)=N(wm0,S0)

\qquad 经过计算可以推导出后验概率 p ( w ∣ t ) = N ( w ∣ m N , S N ) p(\boldsymbol w|\bold t)=\mathcal N(\boldsymbol w|\boldsymbol m_N,\boldsymbol S_N) p(wt)=N(wmN,SN)

\qquad 其中, m N = S N ( S 0 − 1 m 0 + β Φ T t ) \boldsymbol m_N=\boldsymbol S_N(\boldsymbol S_0^{-1}\boldsymbol m_0+\beta\Phi^T\bold t) mN=SN(S01m0+βΦTt)
\qquad     S N − 1 = S 0 − 1 + β Φ T Φ \boldsymbol S_N^{-1}=\boldsymbol S_0^{-1}+\beta\Phi^T\Phi SN1=S01+βΦTΦ

本例可参考《线性模型参数求解的最大似然估计》或者《Pattern Recognition and Machine Learning》3.3.1节

在这里插入图片描述

第1行 —— 中图:先验概率 p ( w ) p(\boldsymbol w) p(w),真实值 w = ( − 0.3 , 0.5 ) T \boldsymbol w=(-0.3,0.5)^T w=(0.3,0.5)T 位于 ‘ + ’ ‘+’ +
    —— 右图:从 p ( w ) p(\boldsymbol w) p(w) 中抽取的、若干个不同的 w \boldsymbol w w值所画出不同的直线杂乱无章(由于先验信息 p ( w ) p(\boldsymbol w) p(w) 分布广泛、不确定性大)
 
第2行 —— 右图:观测到第1个数据 ( x 1 , t 1 ) (x_1,t_1) (x1,t1)蓝色圆圈
    —— 左图:计算出的似然值 p ( t 1 ∣ x 1 , w ) p(t_1|x_1,\boldsymbol w) p(t1x1,w) 关于 w \boldsymbol w w 的图像
    —— 中图: p ( w ) p(\boldsymbol w) p(w) 作为先验概率,计算出的后验概率 p ( w ∣ t 1 ) p(\boldsymbol w|t^{1}) p(wt1) 开始出现尖峰,关于 w \boldsymbol w w 的不确定性变小
    —— 右图:从 p ( w ∣ t 1 ) p(\boldsymbol w|t^{1}) p(wt1) 中抽取的、若干个不同的 w \boldsymbol w w值所画出不同的直线基本都靠近点 ( x 1 , t 1 ) (x_1,t_1) (x1,t1) 穿过,不再完全杂乱无章
 
第3行 —— 右图:观测到第2个数据 ( x 2 , t 2 ) (x_2,t_2) (x2,t2)蓝色圆圈
    —— 左图:计算出的似然值 p ( t 2 ∣ x 2 , w ) p(t_2|x_2,\boldsymbol w) p(t2x2,w) 关于 w \boldsymbol w w 的图像
    —— 中图: p ( w ∣ t 1 ) p(\boldsymbol w|t^{1}) p(wt1) 作为先验概率,计算出的后验概率 p ( w ∣ t 1 , t 2 ) p(\boldsymbol w|t^{1},t^{2}) p(wt1,t2) 的尖峰更明显,关于 w \boldsymbol w w 的不确定性变得更小
    —— 右图:从 p ( w ∣ t 1 , t 2 ) p(\boldsymbol w|t^{1},t^{2}) p(wt1,t2) 中抽取的、若干个不同的 w \boldsymbol w w值所画出不同的直线的方向趋于一致
 
第4行 —— 右图:观测到第n个数据 ( x n , t n ) (x_n,t_n) (xn,tn)蓝色圆圈
    —— 左图:计算出的似然值 p ( t n ∣ x n , w ) p(t_n|x_n,\boldsymbol w) p(tnxn,w) 关于 w \boldsymbol w w 的图像
    —— 中图:后验概率 p ( w ∣ t 1 , t 2 , ⋯   , t n ) p(\boldsymbol w|t^{1},t^{2},\cdots,t^{n}) p(wt1,t2,,tn) 的尖峰非常尖锐,基本消除了 w \boldsymbol w w 的不确定性
    —— 右图:从 p ( w ∣ t 1 , t 2 , ⋯   , t n ) p(\boldsymbol w|t^{1},t^{2},\cdots,t^{n}) p(wt1,t2,,tn) 中抽取的、若干个不同的 w \boldsymbol w w值所画出不同的直线基本上一致,说明这些不同的 w \boldsymbol w w值已经基本相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值