SVM
线性可分支持向量机–硬间隔最大化
数据线性可分
函数间隔:y*(wx+b) y表示类别符号、wx+b表示点距离超平面的距离。表示分类预测的正确性和确信度,但是成比例改变w\b,函数间隔会变成2倍,几何间隔就是w=1,真实的图上间隔
支持向量:训练数据集的样本中与分离超平面距离最近的样本的实例
在决定分离超平面时只有支持向量起作用,其他实例点不起作用,支持向量个数很少,所以支持向量机由少数重要的训练样本确定。
线性可分支持向量机的学习策略就是几何间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
线性支持向量机–软间隔最大化
原有的分类平面+一定的松弛变量
合页损失函数:L=[1-y(wx+b)]+
[z]+=z ,z>0;0,z<=0.
非线性支持向量机
当输入空间为欧式空间或离散集合、特征空间为希尔贝特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。核方法(kernel method)是比支持向量机更为一般的机器学习方法
SVM&感知机
相同:
- 都是二分类模型
- 都是通过一个分离超平面对特征进行分类
不同:
- SVM 是特殊的感知机
- 感知机是用误分类最小的策略,求得分离超平面,这时存在无穷个解,感知机利用间隔最大化求得最优分离超平面。
- 支持向量机还包括核技巧,这使它成为实质上的非线性分类器。
SVM优缺点
SVM优点
- 由于SVM是一个凸优化问题,所以求得的解一定是全局最优而不是局部最优。
- 不仅适用于线性线性问题还适用于非线性问题(用核技巧)。
- 拥有高维样本空间的数据也能用SVM,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了“维数灾难”。
- 理论基础比较完善(例如神经网络就更像一个黑盒子)。
- 解决小样本下机器学习问题
- 无需依赖整个数据
- 泛化能力比较强
SVM缺点:
- 二次规划问题求解将涉及m阶矩阵的计算(m为样本的个数), 因此SVM不适用于超大数据集。(SMO算法可以缓解这个问题)
- 只适用于二分类问题。(SVM的推广SVR也适用于回归问题;可以通过多个SVM的组合来解决多分类问题)
- 当观测样本很多时,效率并不是很高
- 对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数
- 对于核函数的高维映射解释力不强,尤其是径向基函数
- 对缺失数据敏感
SMO算法
是SVM的求解算法,不断将原二次规划问题分解为只有两个变量的二次规划子问题,并对原问题解析求解,
最大熵原理
学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型
在满足约束条件时,选择熵最大的模型
模型集合中、条件熵最大的模型就是最大熵模型
隐马尔可夫模型
由初始状态概率向量、状态转移概率矩阵、观测概率矩阵决定