IVM import vector machine

本文为《Kernel Logistic Regression and the Import Vector Machine》的阅读笔记
是技法课的课外阅读

Abstract:
基于KLR kernel logistic regression,能自然延伸到多分类问题
提供属于各类的概率
也有类似support vector,且这部分training data占比比SVM小

algrithm:
IVM基于Kernal logistic regression(KLR),下面介绍KLR

原始logistic regression为:
$H = -\frac{1}{n}\sum_i^n \left\{ [y_i=1]ln(p(x_i))+[y_i=0]ln(1-p(x_i))\right \}+\frac{\lambda}{2}w^tw$ (1)
其中$p(x)=\frac{1}{1+exp(-(xw+b))}$

根据represent theory,$xw=\sum_i^n K(x,x_i)a_i$(2),这里K表示kernel
(1)中前半部分,很容易用(2)替换后得到对应的kernel化版本
(1)中后半部分,令$a=(a_1,a_2,...,a_n)$,$K$为nxn的矩阵,$K_{ij}=K(x_i,x_j)$,
$X$为nxd的矩阵,n为样本量,d为每个样本变换后的维度,$K=XX^t$根据(2),有
$Xw=Ka=XX^ta$,$w=X^ta$,$w^tw=a^tXX^ta=a^tKa$

$H=\frac{1}{n}\sum_i^n \left\{ [y_i=1]ln(1+exp(-f(x_i)))+[y_i=0]ln(1+exp(f(x_i)))\right \}+\frac{\lambda}{2}a^tKa$(3)
其中$f(x)=b+\sum_{x_i\in S} K(x,x_i)a_i,S=\left\{x_1,x_2,...,x_n\right\}$(4)

由于KLR并非hinge loss,所以解完后得到的每个$a_i$都不等于0
IVM是基于KLR的,所做的改进即选出一些$a_i\neq 0$,而其他$a_i=0$,这些不等于0的样本点,类似于SVM的support vector,此处叫Import point

令这些Import point组成的集合成为$S$,大小为$n_s$,此时(4)式中的$S$只包含Import point
(3)式中的$K$也有变动
重新考虑(2)式:$xw=\sum_i^n K(x,x_i)a_i$,令$X_s$为由Import point变换后组成的矩阵,大小为$n_s\times d,$令$K_a=XX_s^t$为$n\times n_s$的矩阵
有$Xw = K_a a = XX_s^t a$,$w = X_s^t a$,$w^tw = a^tX_sX_s^ta=a^tK_q a$,此处$K_q=X_sX_s^t$,是$n_s\times n_s$的矩阵

用牛顿法求解$H$,令$H_1=\frac{1}{n}\sum_i^n \left\{ [y_i=1]ln(1+exp(-f(x_i)))+[y_i=0]ln(1+exp(f(x_i)))\right \}$,$H_2=\frac{\lambda}{2}a^tK_qa$
$\frac{\partial H_1}{\partial a_j} = \frac{1}{n}\sum_i^n \left\{ -[y_i=1]K(x_i,x_j)\frac{exp(-f(x_i))}{1+exp(-f(x_i))}+[y_i=0]K(x_i,x_j)\frac{exp(f(x_i))}{1+exp(f(x_i))}\right \}\\ \ \ \ = \frac{1}{n}\sum_i^n \left\{ -[y_i=1]K(x_i,x_j)(1-p(x_i))+[y_i=0]K(x_i,x_j)p(x_i)\right \}\\ \ \ \ = \frac{1}{n}\sum_i^n \left\{ -y_iK(x_i,x_j)(1-p(x_i))+(1-y_i)K(x_i,x_j)p(x_i)\right \}\\ \ \ \ = \frac{1}{n}\sum_i^n (p(x_i)-y_i)K(x_i,x_j)=\frac{1}{n}\sum_i^n {K_a^t}_{ji}{(p-y)}_{i1}=\frac{1}{n} {[K_a^t(p-y)]}_{j1}$
由于$H_2$是一个数字,所以$trace H_2=H_2$
$\partial a\ trace H_2 = \partial a\ trace \frac{\lambda}{2}a^tK_qa = \frac{\lambda}{2}(K_qa+K_qa)=\lambda K_qa$
$\frac{\partial H_2}{\partial a_j}=\lambda {[K_qa]}_{j1}=\lambda \sum_i^{n_s} {[K_q]}_{ji}a_{i1}$

$\frac{\partial^2 H_1}{\partial a_j\partial a_z}=\frac{1}{n}\sum_i^n \frac{exp(-f(x_i))}{(1+exp(-f(x_i)))^2}K(x_i,x_z)K(x_i,x_j)=\frac{1}{n}\sum_i^np(x_i)(1-p(x_i)){[K_a]}_{iz}{[K_a]}_{ij}$
令$W=diag(p(x_i)(1-p(x_i)))$
$\frac{\partial^2 H_1}{\partial a_j\partial a_z}=\frac{1}{n}\sum_i^n {[K_a^t]}_{ji}W_{ii}{[K_a]}_{iz}=\frac{1}{n} {[K_a^tWK_a]}_{jz}$
$\frac{\partial^2 H_2}{\partial a_j\partial a_z}=\lambda {[K_q]}_{jz}$

根据牛顿法的更新公式:$\alpha_{k+1} = \alpha_{k}-Hessian^{-1}g$
$a_{k+1} = a_{k}+{(\frac{1}{n} K_a^tWK_a+\lambda K_q)}^{-1}(\frac{1}{n}K_a^t(y-p)-\lambda K_qa_k)\\ \ \ \ ={(\frac{1}{n} K_a^tWK_a+\lambda K_q)}^{-1} (\frac{1}{n}K_a^t(y-p)-\lambda K_qa_k+\frac{1}{n} K_a^tWK_aa_k+\lambda K_qa_k)\\ \ \ \ ={(\frac{1}{n} K_a^tWK_a+\lambda K_q)}^{-1} (\frac{1}{n}K_a^t[(y-p)+WK_aa_k])$ (3)

detail:
1.$S=\emptyset$,$R={x_1,x_2,...,x_n}$
2.遍历R中的每一个样本,令$S=S\bigcup x_l$,求解a,使H最小
3.选取使H最小的$x_l$,记此时H的値为$H_{k+1}$
4.如果$\frac{|H_{k+1}-H_k|}{H_k}<\eta$,判定为收敛,返回S,以及a;否则重复2-4,直到收敛(通常设$\eta=0.001$)

2步骤中如果加入一个$x_l$,就要进行一轮牛顿法的迭代,是很花时间的,改为如下更新策略
每一次加入一个$x_l$,按公式(3)执行一次迭代

时间: 2024-11-25 10:58:37

IVM import vector machine的相关文章

机器学习之支持向量机(Support Vector Machine)(更新中...)

支持向量机 支持向量机(support vector machines,SVMs)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:支持向量机还包括核技巧,这使它成为实质上的非线性分类器.支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题. 支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机(linear support vector machine in

Machine Learning Techniques -1-Linear Support Vector Machine

1-Linear Support Vector Machine 我们将这种定义为margin,则之前判断最优划分的问题转化为寻找最大margain的问题. 对于待选的几个w所表示的线,问题转化成利用对应w比较相对距离的问题. 此时定义w为方向向量,b为之前的w0,即bia. 由于w就是所求点到直线的法线方向,问题转化为求投影的问题. 因为每个点对应符号yn只有在和距离表示的绝对值内部符号为+的时候才说明划分正确,所以可以乘上yn来去除abs() 这里的距离是一种容忍度,所以我们选其中最近的那个.

支持向量机SVM(Support Vector Machine)

支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classification)的模式识别应用中. 支持向量机的最大特点是既能够最小化经验损失(也叫做经验风险.或者经验误差),同时又能够最大化几何间距(分类器的置信度),因此SVM又被称为最大边缘区(间距)的分类器. 根据具体应用场景的不同,支持向量机可以分为线性可分SVM.线性SVM和带有核函数的SVM.最终的结果都是得

机器学习技法——第1-2讲.Linear Support Vector Machine

本栏目(机器学习)下机器学习技法专题是个人对Coursera公开课机器学习技法(2015)的学习心得与笔记.所有内容均来自Coursera公开课Machine Learning Techniques中Hsuan-Tien Lin林轩田老师的讲解.(https://class.coursera.org/ntumltwo-001/lecture) 第1讲-------Linear Support Vector Machine 在机器学习基石介绍的基本工具(主要围绕特征转换Feature Transf

支持向量机(SVM:support vector machine)

传统机器学习分类任务中,我认为支持向量机是最难.最复杂.最有效的一种模型.可能是由于其是一种特殊的神经网络的缘故吧! 1.支持向量机简介 支持向量机(support vector machines,SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:支持向量机还包括核技巧,这使它成为实质上的非线性分类器.支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming,不怕,附录有解

A glimpse of Support Vector Machine

支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提供一些其他内容.(以下各节内容分别来源于不同的资料,在数学符号表述上可能有差异,望见谅.) 一.原理概述 机器学习的一大任务就是分类(Classification).如下图所示,假设一个二分类问题,给定一个数据集,里面所有的数据都事先被标记为两类,能很容易找到一个超平面(hyperplane)将其完

Linear Classification: Support Vector Machine, Softmax

原文地址:http://cs231n.github.io/linear-classify/ ############################## 内容列表: 1.介绍线性分类器 2.线性成绩函数 3.解释一个线性分类器 4.损失函数 4.1.多类支持向量机 4.2 . Softmax分类器 4.3 . 支持向量机 vs Softmax 5.线性分类器的交互式web例子 6.总结 ###############################################3 Linear

支持向量机(support vector machine)

支持向量机SVM 支持向量机(support vector machine,SVM)是由Cortes和Vapnik在1995年提出的,由于其在文本分类和高维数据中强大的性能,很快就成为机器学习的主流技术,并直接掀起了"统计学习"在2000年前后的高潮,是迄今为止使用的最广的学习算法. 本篇将要简要的介绍一下SVM,如有错误请批评指正,共同学习.本文主要分为以下几个部分: SVM的优化目标(代价函数) SVM最大间隔超平面 large margin(决策边界) SVM最大间隔中的数学原理

2.机器学习技法- Dual Support Vector Machine

Lecture 2.  Dual Support Vector Machine 2.1 Motivation of Dual Suppor Vector Machine 将 linear support vector machine 加上 feature transformation 就能得到 nonlinear support vector machine.这样做的好处,我们可以利用 svm 和 feature transformation 的优良特性Q1:较小的 VC Dimension (