Kernel Methods (4) Kernel SVM
(本文假设你已经知道了hard margin SVM的基本知识.)
如果要为Kernel methods找一个最好搭档, 那肯定是SVM. SVM从90年代开始流行, 直至2012年被deep learning打败. 但这个打败也仅仅是在Computer Vision 领域. 可以说对现在的AI研究来说, 第一火的算法当属deep learning. 第二火的仍是SVM. 单纯的SVM是一个线性分类器, 能解决的问题不多. 是kernel methods为SVM插上了一双隐形的翅膀, 让它能翱翔于AI研究的天空, 因为kernel methods可以将线性SVM变成非线性的.
问题描述
- 给定:
- 一个training set \(D\), 由\(m\)个二元组\((x_i, y_i)\)组成.
- \(x_i\)是一个\(d\)维列向量, \(x_i \in R^d\)
- \(y_i = \pm 1\), 代表\(x_i\)所属类别
- \(i \in [1, m]\)
- 一个kernel function \(kappa\)
- 一个training set \(D\), 由\(m\)个二元组\((x_i, y_i)\)组成.
- 目标: 用D训练一个kernel svm分类器, 判断测试样本\(x \notin D\)的类别\(y\)
目标函数
假设\(\kappa\)对应的feature mapping function为\(\Phi\), 那么\(\Phi(x)\)将\(x\)从原始输入空间\(\chi:R^d\)映射到一个线性可分的特征空间\(H:R^n\). 这时用SVM对新得到的训练数据\((\Phi(x_i), y_i)\)进行线性分类.
SVM的优化目标是maximum margin. 这个margin是指正负两类decision boundaries的距离.
两个decision boundaries的方程为:
\[
w^T \Phi(x) + b = \pm 1
\]
它们的距离为:
\[
margin = \frac {2}{||w||}
\]
最大化\(d\)的值就是最小化\(||w||\)的值, 所以SVM的优化目标又可以写为:
\[
minimize : J(w) = \frac 12 w^T w
\]
因为需要正确分类所有的training data, 所以需要满足的约束条件为:
\[
y_i(w^T \Phi(x_i) + b) \ge 1, \forall i\in[1,m]
\]
对偶问题
上述优化问题的Lagrange multipliers function为:
\[
J(w, b, \alpha_1, \dots \alpha_m) = \frac 12 w^Tw - \sum_{i = 1}^m \alpha_i[y_i(w^T\Phi(x_i) + b) - 1], \alpha_i \ge 0
\]
它取得最小值的必要条件为
\[
\frac {\partial J}{\partial w} = w - \sum_{i = 1}^m \alpha_i y_i \Phi(x_i) = 0
\]
\[
\frac {\partial J}{\partial b} = \sum_{i = 1}^m \alpha_i y_i = 0
\]
\[
\to w = \sum_{i = 1}^m \alpha_i y_i \Phi(x_i) = Z^T \beta
\]
其中
\[
Z =
\left[
\begin{matrix}
\Phi(x_1)^T\\
\Phi(x_2)^T\\
\vdots \\
\Phi(x_m)^T
\end{matrix}
\right]
\qquad
\beta =
\left[
\begin{matrix}
\alpha_1y_1\\
\alpha_2y_2\\
\vdots \\
\alpha_my_m
\end{matrix}
\right]
\]
\(\to\)
\[
w^Tw = \beta^T Z Z^T \beta = \beta^TK\beta
\]
\[
w^T\Phi(x_i) = \beta^T Z \Phi(x_i) = \beta^T k_i^T = k_i\beta
\]
其中, \(K\)是kernel matrix, \(k_i\)是\(K\)的第\(i\)行.
代入 \(J(w, b, \alpha_1, \dots \alpha_m)\), 就得到了对偶问题:
\[maximumize: W(\alpha) = \sum_{i=1}^m \alpha_i + \frac 12 \beta^T K \beta - \sum_{i=1}^m \alpha_iy_ik_i\beta \]
\[ = \sum_{i=1}^m \alpha_i + \frac 12 \beta^T K \beta - \beta^T K \beta \]
\[ = \sum_{i=1}^m \alpha_i - \frac 12 \beta^T K \beta \]
\[ = \sum_{i=1}^m \alpha_i - \frac 12 \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j \kappa(x_i, x_j) \]
它需要满足两个约束条件:
\((1)\sum_{i = 1}^m \alpha_i y_i = 0\)
\((2)\alpha_i \ge 0\)
可以解出\(W(\alpha)\)里包含的未知参数\(\alpha = (\alpha_1,\dots, \alpha_m)\).具体解法先略过.
得到\(w\)和\(b\)
\(\alpha\)已知后, 可以求得\(w\):
\[
w = \sum_{i = 1}^m \alpha_i y_i \Phi(x_i)
\]
现在就差\(b\)了. 如何求\(b\)呢? 现在回头想想SVM里的Support Vector的概念. 对于位于decision boudaries上的样本, 它们的\(y_i(w^T\Phi(x_i) + b) = 1\). 所以\(b\)可以根据支持向量, 即\(\alpha_i \neq 0\)对应的\(\Phi(x_i)\)来求得, 用\(\Phi(x_{sv})\)表示.
\[
b = y_{sv} - w^T\Phi(x_{sv}) = y_{sv} - \sum_{i = 1}^m \alpha_i y_i \Phi(x_i)^T \Phi(x_{sv}) = y_{sv} - \sum_{i=1}^m \alpha_i y_i \kappa(x_i, x_{sv})
\]
SV会存在多个, 理论上每个SV求出来的\(b\)应该是相等的. 但在现实情况中会存在计算误差, 所以一个更robust的做法是利用所有的SV求出各自的\(b\), 然后取平均值.
这个时候, \(w\)中还有\(\Phi\), 真实值是未知的, 但没关系. \(b\)则完全已知了.
预测新样本的类别
最后得到的SVM模型为
\[
y = sgn(w^T\Phi(x) + b) = sgn(\sum_{i = 1}^m \alpha_i y_i \Phi(x_i)\Phi(x) + b) = sgn(\sum_{i = 1}^m \alpha_i y_i \kappa(x_i, x) + b)
\]
Kernel Methods (4) Kernel SVM的更多相关文章
- Kernel Methods (2) Kernel function
几个重要的问题 现在已经知道了kernel function的定义, 以及使用kernel后可以将非线性问题转换成一个线性问题. 在使用kernel 方法时, 如果稍微思考一下的话, 就会遇到以下几个 ...
- Kernel Methods (5) Kernel PCA
先看一眼PCA与KPCA的可视化区别: 在PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?里已经推导过PCA算法的小半部分原理. 本文假设你已经知道了PCA算法的基本原理和步骤. 从原始输入 ...
- Kernel Methods (3) Kernel Linear Regression
Linear Regression 线性回归应该算得上是最简单的一种机器学习算法了吧. 它的问题定义为: 给定训练数据集\(D\), 由\(m\)个二元组\(x_i, y_i\)组成, 其中: \(x ...
- PRML读书会第六章 Kernel Methods(核函数,线性回归的Dual Representations,高斯过程 ,Gaussian Processes)
主讲人 网络上的尼采 (新浪微博:@Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:16:05 今天的主要内容:Kernel的基本知识,高斯过程.边思考边打字,有点慢, ...
- Kernel Methods - An conclusion
Kernel Methods理论的几个要点: 隐藏的特征映射函数\(\Phi\) 核函数\(\kappa\): 条件: 对称, 正半定; 合法的每个kernel function都能找到对应的\(\P ...
- 核方法(Kernel Methods)
核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...
- Kernel Methods for Deep Learning
目录 引 主要内容 与深度学习的联系 实验 Cho Y, Saul L K. Kernel Methods for Deep Learning[C]. neural information proce ...
- Kernel methods on spike train space for neuroscience: a tutorial
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 时序点过程:http://www.tensorinfinity.com/paper_154.html Abstract 在过去的十年中,人 ...
- Kernel Methods (6) The Representer Theorem
The Representer Theorem, 表示定理. 给定: 非空样本空间: \(\chi\) \(m\)个样本:\(\{(x_1, y_1), \dots, (x_m, y_m)\}, x_ ...
随机推荐
- WinCE项目应用之RM905a+医用放射性核素活度计
RM905a+医用放射性核素活度计大概是我做的第一个WinCE项目,RM905a的升级版.RM905a是曾经的老大LZF 2000年左右的作品,基于51单片机开发,数码管显示,稳定可靠,好似目前还在生 ...
- NOIP2003神经网络[BFS]
题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今 ...
- web 小知识
document.write和innerHTML的区别 document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open.每次写完关 ...
- 嵌入式Linux驱动学习之路(九)Linux系统调用、驱动程序框架
应用程序通过open read write close 等函数来操作计算机硬件.类似是一个接口. 当应用程序调用这些接口程序时,计算机是如何进入内核的呢?这是经过了系统调用. 实际上当调用接口函数 ...
- NOI2004 郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...
- http协议(三)几种数据传输方式
说说http协议的一些特点: 1)无状态 http协议是一种自身不对请求和响应之间的通信状态进行保存的协议,即无状态协议. 这种设置的好处是:更快的处理更多的请求事务,确保协议的可伸缩性 不过随着we ...
- AIO 简介
from:http://blog.chinaunix.net/uid-11572501-id-2868654.html Linux的I/O机制经历了一下几个阶段的演进: 1. 同步阻塞I/O: 用 ...
- 关闭tomcat, 部署并启动tomcat的脚本
/opt/tomcat/bin/shutdown.sh rm -f /opt/tomcat/webapps/ibank.war rm -rf /opt/tomcat/webapps/ibank cp ...
- css一些记录
比如右侧链接:更多 ,定义此span float:right ,但是 更多 要写在 短标题的左边 比如:<span>更多</span> <font>这是短标题 ...
- 利用Weblogic的iisproxy、iisforward插件实现IIS转发
默认情况下,IIS只能提供http重定向功能,而无法满足转发需求. 举例:http://localhost/app1 利用http重定向到 http://www.abc.com/app1 访问 htt ...