一、朴素贝叶斯
在上一课中提到,对于一个新样本,由贝叶斯方法得到的模型可以做出如下推断
而贝叶斯的最终目的,就是在P(y=1|x)和
P(y=0|x)两者中,选值大的一方作为label就行
而在本节课的开头,先介绍了此方法的两种变化
变化一:
在上式中Xi的取值只有0和1两种,那么让Xi取多个值,即Xi∈{1,2,…,k},则上式中会发生如下变化:p(x|y) = ∏ p(xi|y),此时p(xi|y)变成多项式分布,而不是伯努利分布。
变化二:
将邮件的表示改一下,改成一个(xi1, xi2, ......, xini),这个的意思表示:第i封邮件,一共有ni个词,其中xij,表示这个第i封邮件中,第j个词对应的数字,数字是一个索引,指向词典中的xij个词,比如词典一共50000个词,那么xi20=300则表示邮件中第20个词是词典里面的第300个词。
此时生成模型的联合概率p(xy)为:(p(y|x)=p(xy)/p(x),因此我们主要是求的p(xy),p(x)可由之前内容得到)
如第一个Φk|y=1,分子表示,所有
垃圾邮件中,词k出现的次数,分母表示,所有垃圾邮件的词数总和。因此整个公式表示,表示在训练集中,如果一封邮件是垃圾邮件,词k出现的概率。
类似的,对参数进行拉普拉斯平滑,则有:
另外,在讲完这一部分的Q&A中,提到了极大似然估计的方法, 简单来说就是列出似然性公式,然后找到使这个公式最大化的值即可。
二、神经网络
在前面的章节中,主要讲的是线性分类,以逻辑回归为例,不管是用梯度下降还是牛顿方法,目的都是找到一条直线,进行例如“值小于0.5预测0,大于0.5预测1”这种类型的划分。而非线性分类,就是当数据不能被一条直线分开,需要一种算法,学习非线性的分界线。
讲到这里,Andrew好像又发现自己漏讲了一个知识点,又回顾了一下:
根据广义线性模型(GLM)的知识,对于一个样本的输出值y值,仅有0,1两项,那么你可以假设它服从于伯努利分布,然后根据广义线性模型的一个固定流程,就可以得出该样本的模型——那就是逻辑回归模型。由此得到一个推论:如果x|y=1 ~ ExpFamily(η1),x|y=0 ~ ExpFamily (η0) 那么p(y=1|x)是logistic函数。
由于朴素贝叶斯也是满足这样的模型,即它也属于指数函数族,因此它得到的也是逻辑回归模型,即线性模型。
而神经网络,就是非线性模型的一个体现 。一个神经网络由多个单元组成
以之前提到的
sigmoid函数为例,假设输入特征为x0~x3,那么对应的单元即是以此为输入,然后输出为hθ(x),此函数即为一个sigmoid函数,如下图
我们
得到的最终hθ(x),就是我们需要的非线性分界线
此模型中的参数为:
三、支持向量机(SVM)
这里虽然标题是SVM,但Andrew实际讲的是另一种。SVM是一种非线性分类器,但这里先讲一种应用了SVM思想的线性分类器,之后的课程中再慢慢拓展到SVM
在开始新内容之前,Andrew先修改了一下自己用的符号,之前在讨论logistic回归时,使用的很多符号并不能用在支持向量机上面,正好这里对比一下两者:
现在改为:hw.b(x)=g(wTx+b),其中b相当于是之前的θ0,w相当于原来的θ向量除去θ0之后的值。因此新版的w,x均是n维向量,不像logistic回归里面,都是n+1维。
把b单独拿出来的目的 ,就是为了引出支持向量机
首先,从直观的角度感受一下我们一直强调的分类效果:如果θTx>>0,相当确定的预测y=1;如果θTx<<0,相当确定的预测y=0。也就是说,从可信度考虑,我们不仅需要分类器能分类,而且对分类结果的可信度我们也要求越高越好。因此有了函数间隔等概念。
一个超平面(w,b)和某个特定训练样本(x(i),y(i))对应的函数间隔定义为:
那么一个超平面(w,b)和整个训练集的函数间隔定义为:
值得注意的是,我们可以对参数w和b同时放大/缩小任意相同的倍数,虽然不会影响分类的结果,但是函数间距的值却会发生变化,因此一般会把w、b正规化,比如令||w||=1等。
类似的,几何距离定义为:一个训练样本对应的点到由超平面确定的分隔线的距离。然后经过一系列推导,对于一个样本(xi,yi),它相对于(w,b)的几何间隔为:
而对于一个训练集,它的几何间隔就可以类似地定义为,所有样本中间隔最小的那个几何间隔。另外有结论:如果||w||=1,函数间隔等于几何间隔。更一般的,几何间隔等于函数间隔除以||w||。
找到一组(w,b),即一个超平面,使得对应的几何间隔最大,因为在上式中||w||=1,所以也相当于函数间隔最大。