林轩田之机器学习课程笔记( embedding numerous feature之 kernel logistic regression)(32之21)
2017-12-31 12:13
513 查看
概要
SVM模型用于正则化
SVM和逻辑回归
SVM进行软间隔二分类问题
kernel版本的逻辑回归
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
题目可能不全,因为有字数限制,不好意思,可以参考:
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/
本节主要讲解将kernel的技巧和逻辑回归结合起来。
发现其实做soft-margin的SVM和原始的SVM差异并不大。上节课也提到了这个,回顾下soft-margin的原始公式:
min12wTw+C∑n=1Nξns.t:yn(wTzn+b)≥1−ξnξn≥0
我们知道在上节中:
1)当点没有违反条件的时候,ξn=0
2)当点违反条件的时候,ξn=1−yn(wTnzn+b)≥0
所以这两个式子可以合并:ξn=max(0,1−yn(wTnzn+b))
带入原始公式:
min12wTw+C∑n=1Nmax(0,1−yn(wTnzn+b))
这个是啥?不就是像正则化的东西么?其实思想都是一样的。
我们来对比下,在采用了ridge的方式的正则化如下:
min(λNwTw+1N∑n=1Nerr)
所以我们可以将C∑Nn=1max(0,1−yn(wTnzn+b)看做是一个err不就是一样的形式么?
但是SVM有两个原因是不能像传统的正则化那样求解的。
1)如果直接这样写,这不是一个QP问题,不好求解
2)max这个函数在一些点上是不可导的,导致求解麻烦。
我们来对比下SVM和正则化的情况
所以从这个角度看,SVM就是一个正则化表达式,当C比较大的时候,对应正则化项的λ比较小,允许更大的错误点,反之亦然。
所以我们对比PLA,逻辑回归和SVM
当SVM和逻辑回归两边趋于无穷的时候:
所以soft-margin的SVM和ridge的逻辑回归没什么差别。
那么既然soft-margin的SVM和L2的逻辑回归没什么两样,那么能不能直接使用SVM的结果拿去逻辑回归中求解呢?或者使用逻辑回归的结果拿去SVM中求解呢?
假设已经得到SVM结果:bsvm,wsvm
1)直接带入逻辑回归,g(x)=θ(wTsvmx+b),这样做呢效果还不错,但是还不是逻辑回归的最优
2)将逻辑回归的初始值设定为bsvm,wsvm,这样就会带来一个问题,然后进行优化,这样就会带来一个问题,因SVM是kernel的,而逻辑回归用不了啊。
能不能融合这两个方法?可不可以将SVM得到的结果再拿去做逻辑回归呢?
这样逻辑回归就成了:
g(x)=θ(A(wTsvmϕ(x)+b)+B)
逻辑回归的损失函数就变成了:
minA,B=1N∑n=1Nlog(1+e−yn(A⋅(wTsvmϕ(x)+b)+B))
可以这么去理解,先将点通过kernel的soft-margin的SVM进行求解,然后根据结果算出分数,最后根据这些分数重新放入LR中。
这样的套路在机器学习中很是常见,比如GBDT产生特征,拿给LR去使用,FM产生特征给GDBT使用等
这里可以理解为SVM经过运算重新产生特征,然后给LR。
那么我们在做kernel的时候也是通过了SVM,有没有办法直接将kernel使用在逻辑回归呢?下节讲解。
所以w=∑Nn=1αnzn是能够转换成kernel的关键,这样分数就可以得到:
s=∑n=1NαnzTnz=∑n=1Nαnk(zn,z)
同时我们知道,PLA/逻辑回归都是这样的形式:
这里同时说明下,如果是带有L2正则化的线性模型,其解中的w都应该是资料点的线性组合。
minw=λNwTw+1N∑n=1Nerr(yn,wTzn)
总有:w=∑Nn=1αnzn
这里简单的证明下。
将w得到的最佳解:w∗=w||+w⊥两个部分。w||表示在资料点展开的平面中,w⊥表示与资料点垂直的平面中。根据结论w⊥=0才对。
假设w⊥≠0
则有对比err(yn,wTzn)无论w⊥是否等于0都没有关系,
err(yn,(w||+w⊥)zn)=err(yn,(w||)zn)
但是
(w||+w⊥)T(w||+w⊥)>(w||)T(w||)
所以如果存在w⊥≠0必然导致结果不是最小的,这和上面的假设矛盾。
所以如果是L2的线性模型,必有:w=∑Nn=1αnzn
对于逻辑回归模型:
minw=λNwTw+1N∑n=1Nlog(1+e−ynwTzn)
直接假设w=∑Nn=1βnzn带入同时带入kernel:
minw=λN∑n=1N∑m=1Nβnβmk(xn,xm)+1N∑n=1Nlog(1+e−yn∑Nm=1βmk(xn,xm))
这个结果仔细观察yn∑Nm=1βmk(xn,xm)可以看做是关于β的一个线性组合.同时前面的项目,会得到:
βTkβ这样一个正则化。
所以这个kernel版本的逻辑回归可以看做核函数的转换的逻辑回归。
kernel逻辑回归得到的结果和kernel的SVM结果形式可能很不一样,因为kernel逻辑回归得到的β大部分不是0,而SVM则大部分α都是0,所以从这个角度看kernel的逻辑回归版本拿去预测会消费更多的时间。
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
SVM模型用于正则化
SVM和逻辑回归
SVM进行软间隔二分类问题
kernel版本的逻辑回归
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
题目可能不全,因为有字数限制,不好意思,可以参考:
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/
概要
上节讲到了soft-margin的SVM,其目的还是为了防止过拟合。本节主要讲解将kernel的技巧和逻辑回归结合起来。
SVM模型用于正则化
首先来看看前期学习到的hard-margin和soft-margin问题:发现其实做soft-margin的SVM和原始的SVM差异并不大。上节课也提到了这个,回顾下soft-margin的原始公式:
min12wTw+C∑n=1Nξns.t:yn(wTzn+b)≥1−ξnξn≥0
我们知道在上节中:
1)当点没有违反条件的时候,ξn=0
2)当点违反条件的时候,ξn=1−yn(wTnzn+b)≥0
所以这两个式子可以合并:ξn=max(0,1−yn(wTnzn+b))
带入原始公式:
min12wTw+C∑n=1Nmax(0,1−yn(wTnzn+b))
这个是啥?不就是像正则化的东西么?其实思想都是一样的。
我们来对比下,在采用了ridge的方式的正则化如下:
min(λNwTw+1N∑n=1Nerr)
所以我们可以将C∑Nn=1max(0,1−yn(wTnzn+b)看做是一个err不就是一样的形式么?
但是SVM有两个原因是不能像传统的正则化那样求解的。
1)如果直接这样写,这不是一个QP问题,不好求解
2)max这个函数在一些点上是不可导的,导致求解麻烦。
我们来对比下SVM和正则化的情况
Tables | 最小化 | 常数项 |
---|---|---|
常数项的正则化 | Ein | wTw≤C |
hard-margin SVM | wTw | Ein=0 |
ridge正则化 | Ein+λNwTw | |
soft-margin SVM | 12wTw+CNerr^ |
SVM和逻辑回归
上面中我们将SVM进行了变形,在机器学习基石中,我们学习了PLA,线性回归,逻辑回归的err函数。首先令分数score是:s=wTzn+bTables | PLA | 线性回归 | 逻辑回归 | SVM |
---|---|---|---|---|
h(x) | sign(s) | h(s) | θ(s) | |
损失函数 | [sign(ys)≠1] | (ys−1)2 | ln(1+e−ys) | max(0,1−ys) |
当SVM和逻辑回归两边趋于无穷的时候:
所以soft-margin的SVM和ridge的逻辑回归没什么差别。
那么既然soft-margin的SVM和L2的逻辑回归没什么两样,那么能不能直接使用SVM的结果拿去逻辑回归中求解呢?或者使用逻辑回归的结果拿去SVM中求解呢?
SVM进行软间隔二分类问题
上节中我们知道soft-margin的SVM和L2的逻辑回归没什么两样,那我们可以直接使用SVM的结果拿到逻辑回归中么?假设已经得到SVM结果:bsvm,wsvm
1)直接带入逻辑回归,g(x)=θ(wTsvmx+b),这样做呢效果还不错,但是还不是逻辑回归的最优
2)将逻辑回归的初始值设定为bsvm,wsvm,这样就会带来一个问题,然后进行优化,这样就会带来一个问题,因SVM是kernel的,而逻辑回归用不了啊。
能不能融合这两个方法?可不可以将SVM得到的结果再拿去做逻辑回归呢?
这样逻辑回归就成了:
g(x)=θ(A(wTsvmϕ(x)+b)+B)
逻辑回归的损失函数就变成了:
minA,B=1N∑n=1Nlog(1+e−yn(A⋅(wTsvmϕ(x)+b)+B))
可以这么去理解,先将点通过kernel的soft-margin的SVM进行求解,然后根据结果算出分数,最后根据这些分数重新放入LR中。
这样的套路在机器学习中很是常见,比如GBDT产生特征,拿给LR去使用,FM产生特征给GDBT使用等
这里可以理解为SVM经过运算重新产生特征,然后给LR。
那么我们在做kernel的时候也是通过了SVM,有没有办法直接将kernel使用在逻辑回归呢?下节讲解。
kernel版本的逻辑回归
我们知道kernel的本质是绕过转换,直接在原始空间中求解,要使用kernel,我们得到的w必须是资料点的线性组合才行,不然你拿w去算分数怎么搞成kernel的形式呢。所以w=∑Nn=1αnzn是能够转换成kernel的关键,这样分数就可以得到:
s=∑n=1NαnzTnz=∑n=1Nαnk(zn,z)
同时我们知道,PLA/逻辑回归都是这样的形式:
这里同时说明下,如果是带有L2正则化的线性模型,其解中的w都应该是资料点的线性组合。
minw=λNwTw+1N∑n=1Nerr(yn,wTzn)
总有:w=∑Nn=1αnzn
这里简单的证明下。
将w得到的最佳解:w∗=w||+w⊥两个部分。w||表示在资料点展开的平面中,w⊥表示与资料点垂直的平面中。根据结论w⊥=0才对。
假设w⊥≠0
则有对比err(yn,wTzn)无论w⊥是否等于0都没有关系,
err(yn,(w||+w⊥)zn)=err(yn,(w||)zn)
但是
(w||+w⊥)T(w||+w⊥)>(w||)T(w||)
所以如果存在w⊥≠0必然导致结果不是最小的,这和上面的假设矛盾。
所以如果是L2的线性模型,必有:w=∑Nn=1αnzn
对于逻辑回归模型:
minw=λNwTw+1N∑n=1Nlog(1+e−ynwTzn)
直接假设w=∑Nn=1βnzn带入同时带入kernel:
minw=λN∑n=1N∑m=1Nβnβmk(xn,xm)+1N∑n=1Nlog(1+e−yn∑Nm=1βmk(xn,xm))
这个结果仔细观察yn∑Nm=1βmk(xn,xm)可以看做是关于β的一个线性组合.同时前面的项目,会得到:
βTkβ这样一个正则化。
所以这个kernel版本的逻辑回归可以看做核函数的转换的逻辑回归。
kernel逻辑回归得到的结果和kernel的SVM结果形式可能很不一样,因为kernel逻辑回归得到的β大部分不是0,而SVM则大部分α都是0,所以从这个角度看kernel的逻辑回归版本拿去预测会消费更多的时间。
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
相关文章推荐
- 林轩田之机器学习课程笔记( embedding numerous feature之 soft-margin support vector machine)(32之20)
- 台湾大学林轩田机器学习技法课程学习笔记5 -- Kernel Logistic Regression
- 林轩田之机器学习课程笔记(when can machines learn之learning problem)(32之1)
- 林轩田之机器学习课程笔记( distilling hidden features之neural network)(32之28)
- 林轩田之机器学习课程笔记(why can machines learn之theory of generalization)(32之6)
- 林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
- 林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
- 林轩田之机器学习课程笔记( combining predictive features之 decision tree)(32之25)
- 林轩田之机器学习课程笔记( embedding numerous feature之linear support vector machine )(32之17)
- 林轩田之机器学习课程笔记(when can machines learn之feasibility of learning)(32之4)
- 林轩田之机器学习课程笔记( how can machines learn better之regularization)(32之14)
- 林轩田之机器学习课程笔记( combining predictive features之 adaptive boosting)(32之24)
- 林轩田之机器学习课程笔记( embedding numerous feature之dual support vector machine)(32之18)
- 林轩田之机器学习课程笔记( combining predictive features之 random forest)(32之26)
- 林轩田之机器学习课程笔记( distilling hidden features之deep learning)(32之29)
- 林轩田之机器学习课程笔记(why can machines learn之noise and error)(32之8)
- 林轩田之机器学习课程笔记( how can machines learn之logistic regression)(32之10)
- 林轩田之机器学习课程笔记( embedding numerous feature之kernel support vector machine)(32之19)
- 林轩田之机器学习课程笔记( how can machines learn better之validation)(32之15)
- 林轩田之机器学习课程笔记(why can machines learn之training versus testing)(32之5)