深度学习笔记 —— SVM 支持向量机
2017-10-25 14:35
316 查看
支持向量机Support Vector Machine (SVM)是有监督学习中最有影响的方法之一。
SVM与逻辑回归Logistic Regression相似, 都基于线性函数 wTx+b 。
SVM的关键创新在与kernel trick, 采用样本点乘的形式我们可以将SVM使用的线性函数写成
wTx+b=b+∑i=1mαixTx(i) 其中x(i) 是训练样本,α 是系数向量
我们用特征函数 ϕ(x) 替代 x ,则点乘部分可替换为函数 k(x,x(i))=ϕ(x)⋅ϕ(x(i)) ,这里的函数 k 就被称为kernel。
这样我们可以将函数写成 f(x)=b+∑iαik(x,x(i))
这个函数相对于 x 是非线性的,但相对于 ϕ(x) 是线性的,尤其重要的是 f(x) 对于 α 是线性的。
这就相当于我们首先使用 ϕ(x) 对所有样本进行了预处理,然后使用一个线性模型。
由于我们这里要优化的是 α ,这就使我们能用线性的模型来处理非线性的任务。
最常用到的kernel是Gaussian kernel高斯核 k(u,v)=N(u−v;0,σ2I) ,其中N(x;μ,Σ) 是标准正态密度,它也被称为radial basis function (RBF) kernel,
我们可以将高斯核视作执行模板匹配,首先训练样本 x 与对应的标签 y 成为 y 类别的模板,当测试样本 x, 的欧几里德距离接近 x 时,认为 x, 与x 的模板非常相似,模型给对应的 y 一个非常大的权重。
SVM不是唯一可以用kernel trick提高的算法,所有使用kernel trick的算法被称为kernel machines或kernel methods。
SVM的一个弱点是评估决策函数的成本与训练样本数量成线性相关,减轻影响的方法是学习一个大多为0的 α 向量,这样分类新样本时只需评估那些 αi 不为0的训练样本,这些训练样本被称为support vectors 支撑向量。
Kernel machines当数据集规模巨大时计算成本非常高,相应的有了Stochastic Gradient Descent,同时核机器也不能很好的泛化,为克服核机器这个弱点引发了深度学习的复兴。
SVM与逻辑回归Logistic Regression相似, 都基于线性函数 wTx+b 。
SVM的关键创新在与kernel trick, 采用样本点乘的形式我们可以将SVM使用的线性函数写成
wTx+b=b+∑i=1mαixTx(i) 其中x(i) 是训练样本,α 是系数向量
我们用特征函数 ϕ(x) 替代 x ,则点乘部分可替换为函数 k(x,x(i))=ϕ(x)⋅ϕ(x(i)) ,这里的函数 k 就被称为kernel。
这样我们可以将函数写成 f(x)=b+∑iαik(x,x(i))
这个函数相对于 x 是非线性的,但相对于 ϕ(x) 是线性的,尤其重要的是 f(x) 对于 α 是线性的。
这就相当于我们首先使用 ϕ(x) 对所有样本进行了预处理,然后使用一个线性模型。
由于我们这里要优化的是 α ,这就使我们能用线性的模型来处理非线性的任务。
最常用到的kernel是Gaussian kernel高斯核 k(u,v)=N(u−v;0,σ2I) ,其中N(x;μ,Σ) 是标准正态密度,它也被称为radial basis function (RBF) kernel,
我们可以将高斯核视作执行模板匹配,首先训练样本 x 与对应的标签 y 成为 y 类别的模板,当测试样本 x, 的欧几里德距离接近 x 时,认为 x, 与x 的模板非常相似,模型给对应的 y 一个非常大的权重。
SVM不是唯一可以用kernel trick提高的算法,所有使用kernel trick的算法被称为kernel machines或kernel methods。
SVM的一个弱点是评估决策函数的成本与训练样本数量成线性相关,减轻影响的方法是学习一个大多为0的 α 向量,这样分类新样本时只需评估那些 αi 不为0的训练样本,这些训练样本被称为support vectors 支撑向量。
Kernel machines当数据集规模巨大时计算成本非常高,相应的有了Stochastic Gradient Descent,同时核机器也不能很好的泛化,为克服核机器这个弱点引发了深度学习的复兴。
相关文章推荐
- 深度学习*学习笔记----支持向量机SVM(3)
- TensorFlow深度学习框架学习(二):TensorFlow实现线性支持向量机(SVM)
- 深度学习笔记——基于传统机器学习算法(LR、SVM、GBDT、RandomForest)的句子对匹配方法
- Andrew Ng机器学习入门学习笔记(六)之支持向量机(SVM)
- OpenCv学习笔记--支持向量机SVM之C++的实现(1)
- 支持向量机 SVM-学习笔记
- [置顶] 支持向量机SVM学习笔记
- 我的OpenCV学习笔记(六):使用支持向量机(SVM)
- OpenCv学习笔记--支持向量机SVM线性可分情况下的OpenCv实现的超详细注释(2)
- 支持向量机(SVM)学习笔记
- 深度学习笔记(一)线性SVM与SoftMax分类器
- 【PR学习笔记二】【搬砖】SVM(支持向量机)基础
- 神经网络学习笔记-支持向量机(Support Vector Machine,SVM )
- 《统计学习方法》-支持向量机SVM学习笔记和python源码
- 学习笔记-支持向量机(SVM)
- 支持向量机(SVM)学习笔记
- 深度学习-灰度平均值算法和支持向量机算法(SVM)进行手写数字识别
- Python学习笔记之支持向量机SVM实例,及SVC参数介绍
- 学习笔记——支持向量机svm(3)kernel trick(核函数)
- 我的OpenCV学习笔记(六):使用支持向量机(SVM)