机器学习(三)——朴素贝叶斯方法、SVM(1)

http://antkillerfarm.github.io/

高斯判别分析(续)

将上面三个分布的概率密度函数代入第二节公式7,可求得 argmaxyp(y|x) ,然后进行最大似然估计,可得该GDA的最大似然估计参数为:(过程略)

ϕ=1mi=1m1{y(i)=1}

μ0=mi=11{y(i)=0}x(i)mi=11{y(i)=0}

μ1=mi=11{y(i)=1}x(i)mi=11{y(i)=1}

Σ=1mi=1m(x(i)μy(i))(x(i)μy(i))T

上图中的直线就是分界线

p(y=1|x)=0.5

GDA vs 逻辑回归

p(y=1|x)=p(x|y=1)p(y=1)p(x|y=1)p(y=1)+p(x|y=0)p(y=0)=1Aexp(f(μ0,Σ,x))ϕ1Aexp(f(μ0,Σ,x))ϕ+1Aexp(f(μ1,Σ,x))(1ϕ)=11+exp(f(μ1,Σ,x))(1ϕ)exp(f(μ0,Σ,x))ϕ=11+exp(f(μ1,Σ,x)+log(1ϕ)f(μ0,Σ,x)log(ϕ))=11+exp(θTx)

从上面的变换可以看出,GDA是逻辑回归的特例。

一般来说,GDA的条件比逻辑回归严格。因此,如果模型符合GDA的话,采用GDA方法,收敛速度(指所需训练集的数量)比较快。

而逻辑回归的鲁棒性较好,对于非GDA模型或者模型不够准确的情况,仍能收敛。

互不相容事件、独立事件与条件独立事件

如果 P(AB)=0 ,则事件A、B为互不相容事件。

如果 P(AB)=P(A)P(B)P(A)=P(A|B) ,则事件A、B为独立事件。

如果 P(AB|R)=P(A|R)P(B|R) ,则事件A、B为条件R下的独立事件。

可见,这三者是完全不同的数学概念,不要搞混了。

朴素贝叶斯方法

这里以文本分析(Text Classification)为例,讲解一下朴素贝叶斯(Naive Bayes)方法。

文本分析的一个常用方法是根据词典建立特征向量x。x中的每个元素代表词典里的一个单词,如果该单词在文本中出现,则对应的元素值为1,否则为0。

这里假设我们的目标是通过文本分析,判别一个email是否是垃圾邮件。 y=1 表示是垃圾邮件, y=0 表示不是垃圾邮件。显然,在这里一封邮件就是一个样本集。

相比之前的应用领域,文本分析的特殊之处在于词典中的单词数量十分庞大,从而导致x的维数巨大(比如50000个单词,就是50000维),以至于之前的方法,根本无法计算。

为了简化问题,我们假设 p(xi|y) 是条件独立的。这个假设被称为朴素贝叶斯假设(Naive Bayes (NB) assumption)。使用这个假设的算法被称为朴素贝叶斯分类器(Naive Bayes classifier)。

从数学角度,NB假设是个很严格的条件,但是实际使用中,即使样本集不满足NB假设,使用NB方法的效果一般还是不错的。

p(x1,,x50000|y)=p(x1|y)p(x2|y,x1)p(x3|y,x1,x2)p(x50000|y,x1,,x49999)()=p(x1|y)p(x2|y)p(x3|y)p(x50000|y)(NB)=i=1np(xi|y)

因此:

p(y=1|x)=p(x|y=1)p(y=1)p(x)=(ni=1p(xi|y=1))p(y=1)(ni=1p(xi|y=1))p(y=1)+(ni=1p(xi|y=0))p(y=0)(1)

最大似然估计值为:

ϕj|y=1=p(xj=1|y=1)=mi=11{x(i)j=1y(i)=1}mi=11{y(i)=1}

ϕj|y=0=p(xj=1|y=0)=mi=11{x(i)j=1y(i)=0}mi=11{y(i)=0}

ϕy=p(y=1)=mi=11{y(i)=1}m

NB算法还可以扩展到y有多个取值的情况。对于y为连续函数的情况,可以采用区间离散化操作,将之离散化为多个离散值。

拉普拉斯平滑

对于样本集中未出现的单词,在其首次出现时,由于先验概率 p(xi|y=1)=0,p(xi|y=0)=0 ,这时公式1会出现 00 的情况。

为了避免这种情况,我们假定先验概率至少为1次,也就是

ϕj=p(y=j)=mi=11{y(i)=j}+1m+k

这种方法叫做拉普拉斯平滑(Laplace Smoothing)。注意这里 ϕ 的定义和上面略有不同,上面的公式中,y是二值分布,而这里是多值分布(值为k)。为了满足概率和为1的条件,分母上需要加k。

文本分类的事件模型

文本分类的事件模型有两类:

1.多值伯努利事件模型(multi-variate Bernoulli event model)。

在这个模型中,我们首先随机选定了邮件的类型(垃圾或者普通邮件,也就是 p(y) ),然后翻阅词典,随机决定一个词是否要在邮件中出现,出现则 xi 标示为1,否则标示为0。然后将出现的词,组成一封邮件。一个词是否出现的概率为 p(xi|y) ,整封邮件的概率为 p(y)ni=1p(xi|y)

2.多项事件模型(multinomial event model)。

xi 表示邮件的第i个词在字典中的位置,那么 xi 的取值范围为 1,2,...V V 表示字典中单词的数目。这样一封邮件可以表示成 (x1,x2,,xn) ,这里n为邮件包含的单词个数,显然每个邮件的n值一般是不同的。

这相当于重复投掷 V 面的骰子,将观察值记录下来就形成了一封邮件。每个面的概率服从 p(xi|y) ,而且每次试验条件独立。这样我们得到的邮件概率是 p(y)ni=1p(xi|y)

需要注意的是,上面两个事件模型的概率公式虽然一致,但含义却有很大差异,不要弄混了。

支持向量机

支持向量机(SVM,Support Vector Machines)是目前最好的监督学习算法。它由Vladimir Naumovich Vapnik与Alexey Ya. Chervonenkis于1963年提出。

注:Vladimir Naumovich Vapnik,1936年生,乌兹别克国立大学学士,莫斯科控制科学学院博士,后成为该学院计算机科学研究部门负责人。1990年代末移民美国,先后供职于AT&T Bell、NEC、Facebook,伦敦大学和哥伦比亚大学教授。

Alexey Yakovlevich Chervonenkis,1938~2014,俄罗斯数学家。俄罗斯科学院院士,伦敦大学教授。

我们首先来看一幅图:

上图中的x和o分别代表y的两种不同取值(1和0)。前面提到逻辑回归的预测函数为 hθ(x)=g(θTx) ,那么图中直线的解析方程就是 θTx=0 。这条直线被称作分割超平面(Separating Hyperplane),也就是预测值的分界线。

图中的三个点A、B、C,虽然都在线的上方,然而从直觉来说,A离分界线最远,我们对它的值为1的信心也最足。反观C点,由于离分界线比较近,我们对其值的预测,实际上并没有多大把握。因为这种情况下,样本集的少许调整,就会导致分界线的移动,从而导致预测值的改变。B点的情况介于A和C之间。

和逻辑回归不同,SVM更关心靠近分界线的点,让他们尽可能地远离分界线,而不是在所有点上都达到最优。

为了便于后续讨论,我们对 hθ(x) 进行改写: hw,b(x)=g(wTx+b) 。其中b为常数项,即 x0 的系数项,w为其余的 xi 的系数项。

同时对 g(z) 的定义也调整为:

g(z)={1,1,z0z<0

这个定义的好处在于 g(z) 的取值,只和z的符号相关,而和其绝对值的大小无关。

函数边距和几何边距

为了定义样本点和边界线的距离,我们引入函数边距(functional margin)和几何边距(geometric margins)的定义。

函数边距的定义如下:

γ^=mini=1,,mγ^(i),γ^(i)=y(i)(wTx(i)+b)

几何边距的几何意义如上图所示。w是分界线的法向量,A的坐标是 x(i) ,它到分界线的距离是 γ(i) ,根据解析几何知识可知,A到分界线的垂足B的坐标为 x(i)γ(i)ww 。将其代入分界线方程 wTx+b=0 ,可得:

wT(x(i)γ(i)ww)+b=0wTx(i)γ(i)wTww+b=0

wTx(i)+b=γ(i)w2wγ(i)=wTx(i)+bw=(ww)Tx(i)+bw

正是A在边界线上方时的情况,扩展到整个坐标系的话,上式可改为:

γ(i)=y(i)(ww)Tx(i)+bw

同理,可得几何边距的定义为:

γ=mini=1,,mγ(i)

从函数边距和几何边距的定义可以看出,如果等比例缩放w和b的话,其几何边距不变,且当 w=1 时,函数边距和几何边距相等。

最优边距分类

SVM算法的本质,就是求能使几何边距最大的w和b的取值,用数学语言描述就是求解问题:

maxγ,w,bs.t.γy(i)(wTx(i)+b)γ,i=1,,mw=1

注:上式中的 s.t. 是subject to的缩写,表示极值问题的约束条件。

这个问题等价于:

maxγ,w,bs.t.γ^wy(i)(wTx(i)+b)γ^,i=1,,m

如果能通过比例变换使 γ^=1 ,则问题化解为:

minγ,w,bs.t.12w2y(i)(wTx(i)+b)1,i=1,,m

这个问题实际上就是数学上的QP(Quadratic Programming)问题,采用这种方案的分类被称为最优边距分类(optimal margin classifier)。

拉格朗日对偶

QP问题是有约束条件的优化问题(constrained optimization problem)的一种,下面让我们讨论一下解决这类问题的通用方法。

假设我们求解如下问题:

minws.t.f(w)gi(w)0,i=1,,khi(w)=0,i=1,,l

这里将约束条件分为两类:

1. hi(w)=0 代表的是约束条件为等式的情况。

2. gi(w)0 代表的是约束条件为不等式的情况。

上述约束优化问题也被称为原始优化问题(primal optimization problem)。为了求解这个问题,我们定义广义拉格朗日(generalized Lagrangian)函数:

L(w,α,β)=f(w)+i=1kαigi(w)+i=1lβihi(w)

利用这个函数可以将约束优化问题转化为无约束优化问题。其中的 αi βi 也被称作拉格朗日乘子(Lagrange multiplier)。

θP(w)=maxα,β:αi0L(w,α,β)=maxα,β:αi0f(w)+i=1kαigi(w)+i=1lβihi(w)

其中, P 代表原始优化问题, maxα,β:αi0 表示在 α,β 变化,而其他变量不变的情况下,求最大值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值