感知机(perception):二类分类的线性模型,输入为实例的特征向量,输出为实例的类别,取+1,-1。
对应于输入空间中将样本实例分成正负两类的分离超平面,属于判别模型。
其损失函数为:所有误分类点到分类超平面的距离总和。目的为最小化这个距离总和。
其中, 为误分类点到分离超平面距离。L 是 w, b 的连续可导函数。
其包括原始形式和对偶形式,采用随机梯度下降法进行求解。首先任意选择一个超平面w0,b0,然后使用梯度下降法不断的极小化目标函数,其过程不是一次使所有的M个点的梯度下降,而是随机选择一个误分类点使其梯度下降,这样以来随机梯度下降会存在震荡,但整体趋势是下降的,算法本身是收敛的。
对偶形式的基本思想是将w和b表示为实例xi和标记yi的线性组合,通过求其解系求得w和b,本质是用代替w属于全局数据求解
由感知机模型可以进一步推出支持向量机
支持向量机(SVM):是一种二分类模型,定义在特征空间上的建个最大的线性分类器,这也是与感知机的区别:求间隔最大化。
支持向量机的学习策略就是间隔最大化,可形式化为求解一个凸二次规划问题,也等价于正则化的合页损失函数最小化问题。
线性可分支持向量机:硬间隔最大化
则:
线性支持向量机:软间隔最大化
NOTE: w的解唯一,b的解不唯一,存在于一个区间中
非线性支持向量机:核函数 + 软间隔最大化
通过非线性变换将非线性问题转化为线性问题。
这里引入了核函数将输入空间映射为特征空间,核函数:, 在学习与预测中只定义核函数,不显示定义函数
常用核函数
多项式核函数:
,对应的支持向量机是一个p次多项式分类器,分类决策函数为:
高斯核函数:
对应的支持向量机为高斯径向基函数分类器,分类决策函数为:
字符串核函数:
原始问题: | 对偶问题: |
![]() | ![]() |
KKT(Karush-Kuhn-Tucker)条件:
对原始问题和对偶问题,如果函数 f(x) 和ci(x) 是凸函数,hj(x) 是仿射函数,并且不等式约束ci(x)是严格可行的,则 分别是原始问题和对偶问题的解的充分必要条件是
满足以下条件:
且, 是对偶互补条件,即:若
,则
最后给出求解svm的SMO算法:
SMO算法假设如果所有的变量的解都满足KKT条件,则此问题的解就找到了。否则选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解从而加快整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。