本文为《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)执行一次迭代

IVM import vector machine的更多相关文章

  1. 6. support vector machine

    1. 了解SVM 1. Logistic regression 与SVM超平面 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类.如果用x表示数据点,用y表示类别( ...

  2. 使用Support Vector Machine

    使用svm(Support Vector Machine)中要获得好的分类器,最重要的是要选对kernel. 常见的svm kernel包括linear kernel, Gaussian kernel ...

  3. Support Vector Machine (3) : 再谈泛化误差(Generalization Error)

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  4. Support Vector Machine (2) : Sequential Minimal Optimization

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  5. PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)

    主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:59:22  大家好,今天一起交流下PRML第7章.第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分 ...

  6. Support Vector Machine (1) : 简单SVM原理

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  7. 支持向量机 support vector machine

    SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...

  8. A glimpse of Support Vector Machine

    支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提 ...

  9. 支持向量机SVM(Support Vector Machine)

    支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classificati ...

随机推荐

  1. 关于Redis的一些常识

    http://blog.csdn.net/mengxianhua/article/details/8961713 关于Redis的一些常识 2013-05-22 18:00 13315人阅读 评论(0 ...

  2. [置顶] SPL讲解(6)--Condition篇

    SmartPersistenceLayer 2.0 之 Condition篇 原理        强大的Condition功能是SPL的一个特性,可以使用Condition完成绝大部分的条件定义,使用 ...

  3. 产生n bit所有可能的序列

    void binary(int n) { ) printf("%s\n",A); // Assume A is a global variable else { A[n-] = ' ...

  4. Hamming code

    Also known as (7,4) code,7 trainsmitted bits for 4 source code. TRANSMIT The transmitted procedure c ...

  5. 文件系统、mkdir、touch、nano、cp笔记

    文件系统:rootfs: 根文件系统 FHS:Linux发行版目录层级遵循协议 /boot: 系统启动相关的文件,如内核.initrd,以及grub(bootloader)引导加载器/dev: 设备文 ...

  6. rsync常用参数详解

    rsync常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux中,一切皆是文件,包括你的终端,硬件设备信息,目录,内核文件等等.所以工作中我们难免会遇到拷贝文件 ...

  7. Unity position和localposition

    1. position是根据世界原点为中心 2. localPosition是根据父节点为中心,如果没有父节点,localpositon和position是没有区别的 3.选中一个物体左上角Globa ...

  8. 使用spring 并加载模板发送Email 发邮件 java 模板

    以下例子是使用spring发送email,然后加载到固定的模板,挺好的,大家可以试试 需要使用到spring-context 包 和 com.springsource.org.apache.veloc ...

  9. hdu 4611

    2013hdu多校联赛二的第一题,当时队友说两个盒子个数的最小公倍数是周期, 如果两个数的最小公倍数比较大的时候(最大是9999900000),如果遍历求的话肯定会超时 当时想找各种规律,都没找到,最 ...

  10. 【贪心】【Uva11729】 Commando War

    你有n个部下,每个部下需要完成一项任务.第i个部下需要你花Bi分钟交待任务,然后他会立刻独立地.无间断地执行Ji分钟后完成任务.你需要选择交待任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任 ...