机器学习笔记(四) 极大似然估计

零、写在前面

参考资料:

  • 《机器学习》周志华
  • 斯坦福 CS 229 吴恩达

一、贝叶斯决策论

贝叶斯分类器显然是用于分类问题的,是一种监督学习的模型。最核心的过程是这样的:

在训练过程中,分类器要根据训练集中的好多好多组x(各个特征)和y(类别)学会做这样一件事:对于没见过的样本,能根据它的各个特征计算出他属于各个类别的概率
继而在应用时,选择概率最高的那个样本作为输出结果。

其中 “根据它的各个特征(x)计算出他属于各个类别(c)的概率” 理解为条件概率:在具有特征x的条件下,属于类别c的概率。这概率我们记为P(c|x)P(c|x)。有时他也被称为似然(likelihood)。

只要得到了这个概率,剩下的事情就只有比较大小了,所以我们要关注怎样能比较准确地得到这个概率。大体来说有两种策略:

  1. 直接建模P(c|x)P(c|x),即这个模型要学会,输入给他一组特征x,能够输出它属于各个类别c的概率,即模型学到了特征x到类别c的映射
  2. 另一种方法是反过来,要对P(x|c)P(x|c)建模,即对于每个类别,模型要试着了解,这个类别的样本的各个特征大概是什么样的。即对于联合概率P(x,c)P(x,c)建模,并以此来获得需要的P(c|x)P(c|x)

第一种策略我们称之为判别式(discriminative)模型,像决策树,支持向量机,以及近几年大红大紫的神经网络都属于这样的类型。第二种曲线救国的策略我们称为生成式(generative)模型,本文要讨论的贝叶斯分类器就属于这一类型。

先说上面 “并以此来获得需要的P(c|x)P(c|x)”的方法——贝叶斯定理:

P(c|x)=P(c)P(x|c)/P(x)P(c|x)=P(c)P(x|c)/P(x)

只要得到了等号右侧的每一项,我们就能顺利获得 P(c|x)P(c|x)了。当然,其中 P(c)P(c) P(x)P(x)并不费力,重点是在 P(x|c)P(x|c)上。

二、极大似然估计

极大似然估计就是获得P(x|c)P(x|c)的一种方法,它的主要思想是:先假设它服从某种概率分布形式,这形式可以用一组参数表示出来,然后,由训练样本计算出这组参数。

举个例子,一个人要通过描述让你把他脑子里想的东西画出来,考虑这两种方法:

  1. 在纸上随便找一个点开始,接着往随便一个方向画,然后逆时针旋转,旋转,旋转,旋转。。。直到回到原来的那个开始的点,注意画出的轨迹一定要平滑而优美。
  2. 画一个圆,半径为θθ

极大似然估计就相当于第二种方法,即先假设要你画的东西是一个圆,这个圆能通过参数θθ表示出来。

回到我们的极大似然估计,我们假设P(x|c)P(x|c)服从高斯(正态)分布,即

P(x|c)N(μ,σ)P(x|c)∼N(μ,σ)

但如果高斯分布中的参数 μ,σμ,σ都只是实数,那这个概率分布就不能表示 多个特征到类别的映射。因此我们使用 多元正态分布,两个参数分别调整为—— μμ为n维的 平均向量 σσ为n * n维的 方差矩阵。与普通高斯分布相似,平均向量控制概率取最大值的位置,方差矩阵控制图像“扁”的程度。我们把这两组参数一起记为 θθ
P(x;μ,σ)=exp((xμ)Tσ1(xμ))/(2π)2/n|sigma|2/nP(x;μ,σ)=exp(−(x−μ)Tσ−1(x−μ))/(2π)2/n|sigma|2/n

另,如果假设 P(x|c)P(x|c)服从高斯(正态)分布,这算法也可以被称为 高斯判别分析(Gaussian Discriminant Analysis model )
令Dc表示训练集D中属于类别c的样本们,假设独立同分布,则参数 θθ对数据集的条件概率(似然)为
P(Dc|θ)=P(x|θ)P(Dc|θ)=∏P(x|θ)

在计算机上,连乘很多小于1的数很可能造成数值下溢,所以我们取对数,改为累加:

LL(θ)=logP(Dc|θ)=logP(x|θ)LL(θ)=logP(Dc|θ)=∑logP(x|θ)

我们自然是希望这对数似然越大越好。所以我们要求:

θ=argmaxθLL(θ)θ=argmaxθLL(θ)

在正态分布中,我们对公式求导,将对于各个参数的偏导数置为零,就可以得到各个参数的极大似然估计:

μ=1/|Dc|x  (xDc)σ2=1/|Dc|(xμ)(xμ)T  (xDc)μ=1/|Dc|∑x  (x∈Dc)σ2=1/|Dc|∑(x−μ)(x−μ)T  (x∈Dc)

这样,我们获得了一组参数,用这组参数确定的模型可以计算P(x|c)P(x|c),代入贝叶斯公式(其他所需的两项很容易获得),我们就能得到给定属性时属于各个类别的概率,比较这些概率,选出最大的那一个,就得到了预测结果。

此外,不难看出,因为一直在使用概率,这一算法有很好的可解释性

贝叶斯决策论,除了极大似然估计之外,还有很多其他的应用,比如大名鼎鼎的朴素贝叶斯等等。我们将在下篇文章里介绍这些算法。

你可能感兴趣的:(机器学习,机器学习,极大似然估计,贝叶斯,高斯判别分析,生成学习算法)