[笔记]朴素贝叶斯·神经网络·SVM
朴素贝叶斯
在上一讲中的特征
这样在对
例子:居住面积
当原始的连续值在多项分布中建模效果不是很好时,离散这些特征然后使用朴素贝叶斯(代替GDA)常常会得到一个更好的结果。
文本分类问题
在特殊语境下的文本分类,朴素贝叶斯使用多元伯努利事件模型(multi-variate Bernoulli event model)。例如上一讲中提到的垃圾邮件分类就采用这个模型。
下面介绍一种不同的模型,多项式事件模型(multinomial event model)。
把一封邮件写成一组特征向量,
其中,n为第i封邮件中词的数量;
x表示对应词典中每一个词的索引,
在多项式事件模型中,我们假设一封邮件的产生是一个从一开始就断定(按照
模型的参数:
注意
数据似然性:
参数的极大似然估计:
总体地含义为,在垃圾邮件的任意位置,下一个位置生成k词的概率。
应用Laplace平滑,分子加1,分母加|V|:
神经网络
非线性分类器(Non-linear classifiers)
之前学习的Logistic回归分类算法属于线性分类,通过一条直线将数据分开。但是实际情况中,经常会有数据间的分界并不是直线的,我们希望得到更加匹配数据边界的分类方式。
为了得到非线性分界线的假设,我们可以将特征先输入到多个sigmoid单元,再从这些单元输入到下一级的sigmoid单元。这样就一步步得到了神经网络,其中中间的节点叫做隐藏层,神经网络可以有多个隐藏层。
中间节点的a1、a2、a3可以是:
…最终输出:
其中θ表示各自的参数;
梯队下降算法在神经网络上的应用称为反向传播算法。
神经网络在面对很强噪音时也能具有很好地性能。
支持向量机(SVM)
边界:直观的解释
考虑Logistic回归,通过
那么,当我们预测“1“时,当且仅当
也就是说,如果能够找到参数θ使得
符号改动
为了方便地讨论SVM,更新:
其中,
b(实数)代替了线性分类器中的
函数间隔
由(w,b)确定的超平面和一个训练样本的函数间隔(functional margin):
为了使函数间隔很大,如果
对于整个训练集合,函数间隔定义为:
为了得到尽可能大的函数间隔,我们发现将(w,b)变为原来的两倍(2w,2b)可以将函数间隔变大,但是这没有什么意义。所以我们需要引入正则化(normalization)条件来规范表达式,即||w||=1。
那么可以用(w/||w||,b/||w||)替代(w,b)。
几何间隔
w是垂直分隔超平面的,w/||w||是单位向量(unit-length vector)。
对于训练样本A,线段AB的长度表示几何间隔。
那么点B为,
又因为
解得:
如果||w||=1,那么几何间隔等于函数间隔;
一般来说,几何间隔 = 函数间隔 / ||w||。
几何间隔是不会随着参数的调整「(w,b)->(2w,2b)」而发生变化。
定义整个训练集的几何间隔为单个训练样本的几何间隔的最小值:
最大几何间隔(maximum geometric margin):