在贝叶斯决策论中,我们已经学习了如何根据先验概率 P ( ω i ) P(\omega_i) P(ωi)与类条件概率密度 p ( x ∣ ω i ) p(\textbf{x}|\omega_i) p(x∣ωi)来设计最优分类器。但在实际应用中,通常得不到有关问题的概率结构的全部信息。通常的解决方案是利用这些训练样本来估计问题中所涉及的先验概率和类条件密度函数,并把这些估计的结果当做实际问题的先验概率和类条件概率密度,然后在设计分类器
在典型的监督学习问题中,有标注的样本估计先验概率不困难,最大的困难在于估计类条件概率密度:
但如果先验知识允许我们把条件概率密度进行参数化,例如:我们可以假设 p ( x ∣ ω i ) p(\textbf{x}|\omega_i) p(x∣ωi)是一个多元高斯分布,其均值是 μ i \mu_i μi,协方差矩阵为 Σ i \Sigma_i Σi。这样我们就把问题从估计完全未知的类条件概率密度 p ( x ∣ ω i ) p(\textbf{x}|\omega_i) p(x∣ωi)转化为了估计参数 μ i \mu_i μi与 Σ i \Sigma_i Σi。这样的方法被称为参数估计方法。与之对应的也有非参数估计方法。
参数估计问题是统计学中的经典问题,主要的解决方案有两种,分别对应统计学中的两大学派:
当然,在参数估计完成后,我们仍然使用后验概率作为分类准则。
根据每个样本所属的类别对样本集 D D D进行分类: D 1 , D 2 . . . , D c D_1,D_2...,D_c D1,D2...,Dc,任意一个分类样本集 D j D_j Dj中的样本都是独立的根据类条件概率密度函数 p ( x ∣ ω j ) p(\textbf{x}|\omega_j) p(x∣ωj)来抽取的。因此获得一个重要假设:每个样本集中的样本都是独立同分布的随机变量(independent and identically distributed:i.i.d),我们还假设每一个类的类条件概率密度 p ( x ∣ ω j ) p(\textbf{x}|\omega_j) p(x∣ωj)的形式都是已知的,未知的是具体的参数向量 θ j \theta_j θj的值。比如:假设 p ( x ∣ ω j ) p(\textbf{x}|\omega_j) p(x∣ωj)服从多维正态分布,这样向量 θ j \theta_j θj就由分量 μ j , Σ j \mu_j,\Sigma_j μj,Σj所组成。
为了强调类条件概率密度函数 p ( x ∣ ω j ) p(\textbf{x}|\omega_j) p(x∣ωj)依赖于参数向量 θ j \theta_j θj的情况,通常写为形如 p ( x ∣ ω j , θ j ) p(\textbf{x}|\omega_j,\theta_j) p(x∣ωj,θj)的形式。因此**最大似然估计(MLE)**解决的就是正确的估计各个类别的具体的参数向量: θ 1 , θ 2 , . . . θ c \theta_1,\theta_2,...\theta_c θ1,θ2,...θc。
问题其实就变成了一个条件概率最大的求解,即在已有的训练集的条件下,求使得 p ( θ ∣ D ) p(θ|D) p(θ∣D) 最大的参数 θ \theta θ,形式化表达为求解
θ ^ = a r g m a x θ p ( θ ∣ D ) \hat{\theta}=\underset{\theta}{argmax}\;p(θ|D)\\ θ^=θargmaxp(θ∣D)
而根据条件概率公式有
p ( θ ∣ D ) = p ( D ∣ θ ) p ( θ ) p ( D ) p(\theta|D)=\frac{p(D|\theta)p(\theta)}{p(D)} p(θ∣D)=p(D)p(D∣θ)p(θ)
因为我们在极大似然估计中假设 θ \theta θ是确定的,所以 p ( θ ) p(\theta) p(θ)就是一个常数。 p ( D ) p(D) p(D)同样是根据已有的数据得到的,也是确定的,或者我们可以把其看作是对整个概率的一个归一化因子。这时候,求解公式 (1) 就变成了求解
θ ^ = a r g m a x θ p ( D ∣ θ ) \hat{\theta}=\underset{\theta}{argmax}\;p(D|\theta)\\ θ^=θargmaxp(D∣θ)
一个有监督的总的样本集分为c类,我们要估计每个类的后验概率,有c个独立的问题,每个问题解决思路相同如下:已知样本集 D D D中有n个样本 x 1 , x 2 . . . , x n x_1,x_2...,x_n x1,x2...,xn。由于这些样本独立同分布,因此由(3)中的似然函数得:【2】
L ( θ ) = p ( D ∣ θ ) = ∏ k = 1 n p ( x k ∣ θ ) L(\theta)=p(D|\theta)=\prod_{k=1}^np(\textbf{x}_k|\theta) L(θ)=p(D∣θ)=k=1∏np(xk∣θ)
因为样本集 D D D已知, p ( D ∣ θ ) p(D|\theta) p(D∣θ)可以看作是参数向量 θ \theta θ的函数,参数向量 θ \theta θ的最大似然估计,就是使似然函数: p ( D ∣ θ ) p(D|\theta) p(D∣θ)达到最大值的参数向量,记为 θ ^ \hat{\theta} θ^。为了方便分析取对数,定义对数似然函数:
l ( θ ∣ D ) = l n p ( D ∣ θ ) l(\theta|D)=lnp(D|\theta) l(θ∣D)=lnp(D∣θ)
如果实际的待求参数的个数为p,则参数向量 θ \theta θ可以写成如下的p维向量的形式: θ = ( θ 1 , θ 2 ∗ ∗ , . . . , θ p ) t \theta=(\theta_1,\theta_2**,...,\theta_p)^t θ=(θ1,θ2∗∗,...,θp)t。**记 ∇ θ \nabla_\theta ∇θ为梯度算子(构建求偏导数的数学式)**这样用数学语言表示求 θ ^ \hat{\theta} θ^的全过程:
∇ θ = [ ∂ ∂ θ 1 . . . ∂ ∂ θ p ] l ( θ ∣ D ) = l n ∑ k = 1 n p ( x k ∣ θ ) 计 算 : θ ^ = a r g m a x θ l ( θ ∣ D ) 等 价 于 : ∇ θ l = ∑ k = 1 n ∇ θ l n p ( x k ∣ θ ) = 0 \nabla_\theta=\begin{bmatrix} \frac{\partial }{\partial \theta_1}\\ ...\\ \frac{\partial }{\partial \theta_p} \end{bmatrix}\\ l(\theta|D)=ln\sum_{k=1}^np(\textbf{x}_k|\theta)\\ 计算:\hat{\theta}=\underset{\theta}{argmax}\;l(\theta|D)\\ 等价于: \nabla_\theta l=\sum_{k=1}^n\nabla_\theta lnp(\textbf{x}_k|\theta)=0 ∇θ=⎣⎡∂θ1∂...∂θp∂⎦⎤l(θ∣D)=lnk=1∑np(xk∣θ)计算:θ^=θargmaxl(θ∣D)等价于:∇θl=k=1∑n∇θlnp(xk∣θ)=0
注意:求得的解 θ ^ \hat{\theta} θ^可能是全局最大值点,也可能是局部极值点。
深入讨论当训练样本服从多元正态分布时的情况。
我们得到以下结论,对于均值的最大似然估计就是对全体样本取平均。
高斯分布的更典型的情况是协方差矩阵 Σ \Sigma Σ和均值 μ \mu μ都未知。这样参数向量 θ \theta θ由两个分量组成。
先考虑单变量的情况
当高斯函数是多元时,最大似然估计的结果是:
μ ^ = 1 n ∑ k = 1 n x k Σ ^ = 1 n ( x k − μ ^ ) ( x k − μ ^ ) t \hat{\mu}=\frac{1}{n}\sum_{k=1}^{n}\textbf{x}_k\\ \hat{\Sigma}=\frac{1}{n}(\textbf{x}_k-\hat{\mu})(\textbf{x}_k-\hat{\mu})^t μ^=n1k=1∑nxkΣ^=n1(xk−μ^)(xk−μ^)t
**均值的最大似然估计就是样本的均值,而协方差的最大似然估计是n个 ( x k − μ ^ ) ( x k − μ ^ ) t (\textbf{x}_k-\hat{\mu})(\textbf{x}_k-\hat{\mu})^t (xk−μ^)(xk−μ^)t的算术平均。**实际上对方差的最大似然估计是有偏的估计,样本的协方差矩阵 C = 1 n − 1 ( x k − μ ^ ) ( x k − μ ^ ) t C=\frac{1}{n-1}(\textbf{x}_k-\hat{\mu})(\textbf{x}_k-\hat{\mu})^t C=n−11(xk−μ^)(xk−μ^)t,而我们估计的方差是 σ ^ = n − 1 n C \hat{\sigma}=\frac{n-1}{n}C σ^=nn−1C
样本协方差矩阵的推导过程【2】:
MLP通过最大化似然函数 L ( θ ) L(\theta) L(θ)从而找出参数 θ \theta θ,思想在于找出能最大概率生成这批数据的参数。但是这种做法完全依赖于数据本身,当数据量大的时候,最大似然估计往往能很好的估计出参数 θ \theta θ;但是当数据量小的时候,估计出来的结果并不会很好。就例如丢硬币问题,当我们投掷了5次,得出了
正正正正正
的结果,极大似然估计会得出投出正面的概率为100%!这显然是不符常理的。贝叶斯派的人认为,后验概率中被估计的参数同样服从一种已知的分布,即参数也为一个随机变量。他们在估计参数前会先带来先验知识,例如参数在[0.5,0.6]的区域内出现的概率最大,在引入了先验知识后利用样本估计出参数分布的形式,在数据量小的情况下估计出来的结果往往会更合理。【2】
我们希望利用现有的全部信息来为测试样本x计算分类的依据:后验概率 P ( ω i ∣ x ) P(\omega_i|\textbf{x}) P(ωi∣x)(现有的全部信息一部分为我们的先验知识,比如未知概率密度函数的形式,未知参数取值范围;另一部分则来自训练集本身),假设已有训练集 D = D 1 , D 2 , . . . , D c D={D_1,D_2,...,D_c} D=D1,D2,...,Dc,改写后验概率为: P ( ω i ∣ x , D ) P(\omega_i|\textbf{x},D) P(ωi∣x,D)表示训练集的重要性,则贝叶斯公式为:
P ( ω i ∣ x , D ) = p ( x ∣ ω i , D ) P ( ω i ∣ D ) ∑ j = 1 c p ( x ∣ ω i , D ) P ( ω j ∣ D ) P(\omega_i|\textbf{x},D)=\frac{p(\textbf{x}|\omega_i,D)P(\omega_i|D)}{\sum_{j=1}^{c}p(\textbf{x}|\omega_i,D)P(\omega_j|D)} P(ωi∣x,D)=∑j=1cp(x∣ωi,D)P(ωj∣D)p(x∣ωi,D)P(ωi∣D)
这一公式指出我们能够根据训练样本提供的信息来确定类条件概率密度和先验概率。
通常认为先验概率可以事先得到,或简单计算得到, P ( ω i ∣ D ) P(\omega_i|D) P(ωi∣D)可以简写为 P ( ω i ) P(\omega_i) P(ωi)
有监督学习可以把每个样本都归到它所属的类中,如果 i ≠ j i\not=j i=j,那么样本集 D i D_i Di中的训练样本就对 p ( x ∣ ω j , D ) p(\textbf{x}|\omega_j,D) p(x∣ωj,D)没有任何影响,这样就产生两个简化:
本质上我们处理的是c个独立的问题,每个问题形式:已知一组训练样本D,根据这些样本估计 p ( x ∣ D ) p(\textbf{x}|D) p(x∣D)(未简化为 p ( x ∣ ω i , D ) p(\textbf{x}|\omega_i,D) p(x∣ωi,D))
参数估计法的前提是每个类的类条件概率密度形式已知,参数向量 θ \theta θ未知。对于任意一个测试样本x,去除类符号 ω i \omega_i ωi简化为 p ( x ∣ θ ) p(\textbf{x}|\theta) p(x∣θ)且形式已知。而贝叶斯估计与最大似然估计的区别体现在,我们不认为 θ \theta θ是一个固定但未知的值,而是服从一个概率分布 p ( θ ) p(\theta) p(θ)。根据 p ( x ∣ θ ) p(\textbf{x}|\theta) p(x∣θ)、 p ( θ ) p(\theta) p(θ)、与 D D D,我们可以得到未知参数 θ \theta θ的后验概率密度函数 p ( θ ∣ D ) p(\theta|D) p(θ∣D)
p ( θ ∣ D ) = p ( θ ) p ( D ∣ θ ) ∫ p ( θ ) p ( D ∣ θ ) d θ 其 中 : p ( D ∣ θ ) = ∏ i = 1 n p ( x k ∣ θ ) 【 这 里 x k 是 训 练 样 本 集 的 某 一 个 样 本 】 p(\theta|D)=\frac{p(\theta)p(D|\theta)}{\int p(\theta)p(D|\theta)d\theta}\\ 其中:p(D|\theta)=\prod_{i=1}^{n}p(\textbf{x}_k|\theta)【这里\textbf{x}_k是训练样本集的某一个样本】 p(θ∣D)=∫p(θ)p(D∣θ)dθp(θ)p(D∣θ)其中:p(D∣θ)=i=1∏np(xk∣θ)【这里xk是训练样本集的某一个样本】
接着根据 P ( θ ∣ D ) P(\theta|D) P(θ∣D)积分估算测试样本的后验概率 p ( x ∣ D ) p(\textbf{x}|D) p(x∣D):
p ( x ∣ D ) = ∫ p ( x , θ ∣ D ) d θ = ∫ p ( x ∣ θ , D ) p ( θ ∣ D ) d θ p(\textbf{x}|D)=\int p(\textbf{x},\theta|D)d\theta\\=\int p(\textbf{x}|\theta,D)p(\theta|D)d\theta p(x∣D)=∫p(x,θ∣D)dθ=∫p(x∣θ,D)p(θ∣D)dθ
由于对测试样本x和训练样本集D的选取是独立进行的, p ( x ∣ θ , D ) = p ( x ∣ θ ) p(\textbf{x}|\theta,D)=p(\textbf{x}|\theta) p(x∣θ,D)=p(x∣θ),公式(10)改为:
p ( x ∣ D ) = ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ p(\textbf{x}|D)=\int p(\textbf{x}|\theta)p(\theta|D)d\theta p(x∣D)=∫p(x∣θ)p(θ∣D)dθ
总结整个贝叶斯估计分为三个阶段:
对高斯正态分布的情况,用贝叶斯估计的方法来计算未知参数 θ \theta θ的后验概率密度函数 p ( θ ∣ D ) p(\theta|D) p(θ∣D)和设计分类器所需的类条件概率密度函数 p ( x ∣ D ) p(\textbf{x}|D) p(x∣D),其中假设 p ( x ∣ μ ) ∼ N ( μ , Σ ) p(\textbf{x}|\mu)\sim N(\mu,\Sigma) p(x∣μ)∼N(μ,Σ)(相当于第一步中的 p ( x ∣ θ ) p(\textbf{x}|\theta) p(x∣θ))
先考虑只有均值 μ \mu μ未知的情况,同时假设特征向量是一维的。 p ( x ∣ μ ) ∼ N ( μ , Σ ) p(x|\mu)\sim N(\mu,\Sigma) p(x∣μ)∼N(μ,Σ),而且我们认为所有关于均值 μ \mu μ的先验知识都在先验概率密度函数 p ( μ ) p(\mu) p(μ)中,且均值 μ \mu μ服从 p ( μ ) ∼ N ( μ 0 , σ 0 2 ) p(\mu)\sim N(\mu_0,\sigma^2_0) p(μ)∼N(μ0,σ02)( μ 0 , σ 0 2 \mu_0,\sigma_0^2 μ0,σ02已知),根据3.1节总结的贝叶斯估计三步走:
我们发现 p ( μ ∣ D ) p(\mu|D) p(μ∣D)是一个指数函数,且指数部分是 μ \mu μ的二次型,因此 p ( μ ∣ D ) p(\mu|D) p(μ∣D)实际上任然是正态分布,把 p ( μ ∣ D ) p(\mu|D) p(μ∣D)写成下面的形式:
利用对应位置系数相等的原则就可以求出 μ n , σ n 2 \mu_n,\sigma_n^2 μn,σn2的值:
上述方程显示了先验知识和样本观测结果是如何被结合在一起,并且形成 μ \mu μ的后验概率密度函数 p ( μ ∣ D ) p(\mu|D) p(μ∣D)的,总的来说:
μ n \mu_n μn代表在观测n个样本后对 μ \mu μ的真实值的最好估计, μ n \mu_n μn是 μ 0 与 μ ^ n \mu_0与\hat{\mu}_n μ0与μ^n的线性组合
σ n 2 \sigma_n^2 σn2表示对这种估计的不确定性(取值更离散,不集中)
根据公式(7), σ n 2 \sigma_n^2 σn2是n的单调递减函数,也就是说每观测一个样本,我们对 μ \mu μ的估计的不确定性就会减小,当 μ \mu μ增加时, p ( μ ∣ D ) p(\mu|D) p(μ∣D)的概率密度图就会变得更尖锐,当n趋近于无穷大时,逼近狄拉克函数。
狄拉克δ函数是一个广义函数,在物理学中常用其表示质点、点电荷等理想模型的密度分布,该函数在除了零以外的点取值都等于零,而其在整个定义域上的积分等于1。
狄拉克δ函数在概念上,它是这么一个“函数”:在除了零以外的点函数值都等于零,而其在整个定义域上的积分等于1。【4】
在得到均值的后验概率密度 p ( μ ∣ D ) p(\mu|D) p(μ∣D)后,我们就可以计算类条件概率密度 p ( x ∣ D ) p(\textbf{x}|D) p(x∣D)(实际上是 p ( x ∣ ω i , D ) p(\textbf{x}|\omega_i,D) p(x∣ωi,D),把c个问题独立,去除类有关变量后)
求得类条件概率密度后再带入到公式(19)就能求出后验概率了。
最大似然估计与贝叶斯估计在训练样本趋于无穷时效果是一样的,然而在实际的问题中,训练样本总是有限的,决定我们选择哪个方法的主要因素有
总结贝叶斯方法有很强的理论基础,但在实际应用中最大似然估计更加简便,且性能也相差无几。
【1】模式分类(第二版)
【2】(1条消息) 极大似然估计与贝叶斯估计_Jim_Liu-CSDN博客_极大似然估计和贝叶斯估计
【3】(20 封私信 / 29 条消息) 为什么样本方差(sample variance)的分母是 n-1? - 知乎 (zhihu.com)
【4】百度百科:狄拉克δ函数