机器学习技法 笔记五 Kernel Logistic Regression
2016-03-06 12:51
393 查看
这一节我们把以前学过的logistics 和 kernel合在一起
在上一节中,我们讲了soft-margin,推出的结论如下图
图中的ζ其实就是一个点违反的距离,就是1-y(wz+b)
其实我们可以很容易想到,对于图中的点,如果违反了,那么ζ是1-y(wz+b),而对于没有违反的点,显然就是0,
所以其实可以写成这样子
其实这个形式是不是很熟悉?
没错
那我们为什么不一开始直接写成这个样子,而是写成最开始做二次规划的那个样子呢?
1.如果直接写成这个样子,没有条件,而且是把整个东西直接来做min,不是一个二次规划问题
2.对于里面的err hat,我们中间有max函数,对于它,有的地方是没有办法微分的。
我们可以很直观的看一下比较,其实large margin就是更少的hyperplanes,就是L2 regularization的更短的w
而soft margin其实就是一个具体的err hat,把具体错误的衡量方式给了出来。
当然图中的C越大,说明regularization做得越小。 λ则相反
接着,我们再来说说这个error问题,
0/1 error,这个是上一门课提到的,而我们SVM的error hat显然是0/1error的一个上限
而在以前讲过,如果0/1error能够被一个上限给包住,那么我们找到一个替代的演算法(我已经忘了,看来还需要脑补一下=。=)
其实我们可以由图看出来,logistic的和svm的其实是很接近的。
又因为我们的svm加上了w的限制,是不是可以把SVM看做是一个logistic+L2呢?
w的限制对应L2,error hat对应logistic =。=也就是说如果我们今天解了一个regularization logistic 问题,是不是其实也相当于解了一个SVM问题呢?
那如果我们今天解了一个SVM问题,可以想成解决了一个regularization logistic 问题吗?大家记得我们logistic问题给出的概率哟,SVM能做到吗?
naive 方法1,解出SVM得到b和w,然后直接用这个b和w代替lr问题中的b和w,=。=这样感觉就没有lr的意义了,比如以前推导的似然函数等等都没有了
naive 方法2,解出SVM得到b和w,然后用这个作为lr问题中迭代的起始点,但是这和实际只跑lr的解没有太大区别
一个可行的方法,直接给公式吧
其实就是先用SVM做出来一个值,然后再调整A和B两个参数来match 最大似然函数。
其实也可以这样理解,就是把以前的x转换到SVM这个维度,多维到一维,然后再做一个一维的lr问题。
但是这并不是真正的做kernel lr=。=
我们前面已经接触到这样一个结论,在L2 lr中我们要求的w可以表示成资料Z的线性组合,
证明:假设最佳解w1不是属于space Z,
那么w1这个向量可以分解成w2∈space Z ,w3垂直于space Z,首先w1*z=(w2+w3)*z=w2z,因为w3*z=0,垂直嘛
ww=(w2+w3)(w2+w3)=w2w2+w3w3+2w2w3=w2w2+w3w3>w2w2
显然w2比起w1来说才是更优的解,矛盾
所以说我们的确是可以用资料的线性组合来表示w
显然这样就得到了我们的kernel
最后老师说这个模型可以理解成两种,一个把kernel本身当做一个整体,所以是β的线性组合,也可也理解成原始资料的线性组合
比如高斯SVM,可以理解为原始资料的线性组合,也可以理解为一堆高斯的线性组合。这里我没太理解清楚=。=
最后klr的β大多不为0,计算代价比较大。
在上一节中,我们讲了soft-margin,推出的结论如下图
图中的ζ其实就是一个点违反的距离,就是1-y(wz+b)
其实我们可以很容易想到,对于图中的点,如果违反了,那么ζ是1-y(wz+b),而对于没有违反的点,显然就是0,
所以其实可以写成这样子
其实这个形式是不是很熟悉?
没错
那我们为什么不一开始直接写成这个样子,而是写成最开始做二次规划的那个样子呢?
1.如果直接写成这个样子,没有条件,而且是把整个东西直接来做min,不是一个二次规划问题
2.对于里面的err hat,我们中间有max函数,对于它,有的地方是没有办法微分的。
我们可以很直观的看一下比较,其实large margin就是更少的hyperplanes,就是L2 regularization的更短的w
而soft margin其实就是一个具体的err hat,把具体错误的衡量方式给了出来。
当然图中的C越大,说明regularization做得越小。 λ则相反
接着,我们再来说说这个error问题,
0/1 error,这个是上一门课提到的,而我们SVM的error hat显然是0/1error的一个上限
而在以前讲过,如果0/1error能够被一个上限给包住,那么我们找到一个替代的演算法(我已经忘了,看来还需要脑补一下=。=)
其实我们可以由图看出来,logistic的和svm的其实是很接近的。
又因为我们的svm加上了w的限制,是不是可以把SVM看做是一个logistic+L2呢?
w的限制对应L2,error hat对应logistic =。=也就是说如果我们今天解了一个regularization logistic 问题,是不是其实也相当于解了一个SVM问题呢?
那如果我们今天解了一个SVM问题,可以想成解决了一个regularization logistic 问题吗?大家记得我们logistic问题给出的概率哟,SVM能做到吗?
naive 方法1,解出SVM得到b和w,然后直接用这个b和w代替lr问题中的b和w,=。=这样感觉就没有lr的意义了,比如以前推导的似然函数等等都没有了
naive 方法2,解出SVM得到b和w,然后用这个作为lr问题中迭代的起始点,但是这和实际只跑lr的解没有太大区别
一个可行的方法,直接给公式吧
其实就是先用SVM做出来一个值,然后再调整A和B两个参数来match 最大似然函数。
其实也可以这样理解,就是把以前的x转换到SVM这个维度,多维到一维,然后再做一个一维的lr问题。
但是这并不是真正的做kernel lr=。=
我们前面已经接触到这样一个结论,在L2 lr中我们要求的w可以表示成资料Z的线性组合,
证明:假设最佳解w1不是属于space Z,
那么w1这个向量可以分解成w2∈space Z ,w3垂直于space Z,首先w1*z=(w2+w3)*z=w2z,因为w3*z=0,垂直嘛
ww=(w2+w3)(w2+w3)=w2w2+w3w3+2w2w3=w2w2+w3w3>w2w2
显然w2比起w1来说才是更优的解,矛盾
所以说我们的确是可以用资料的线性组合来表示w
显然这样就得到了我们的kernel
最后老师说这个模型可以理解成两种,一个把kernel本身当做一个整体,所以是β的线性组合,也可也理解成原始资料的线性组合
比如高斯SVM,可以理解为原始资料的线性组合,也可以理解为一堆高斯的线性组合。这里我没太理解清楚=。=
最后klr的β大多不为0,计算代价比较大。
相关文章推荐
- VBA中将数字列转换成字母的方法
- 构建之法问题
- hdu 5233 Gunner II (map的简单用法)
- Linux 进程切换
- 认识数据库系统
- HDU 1847 Good Luck in CET-4 Everybody!
- UITableView性能优化
- PAT1042字符统计
- 如何通过变量去调用对应的函数
- 第四章 第二节——基本途径
- SDWebimage的缓存机制
- ajax应用实例 获取各种数据
- RTSP服务器实例live555源代码分析
- Hello Java
- win10 专业版 wamp 安装报错
- 浅读构建之法的提问以及阅读计划
- C++中头文件嵌套定义问题
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
- [android] 采用断点调试的方式观察pull解析的流程
- Node.js模块封装及使用方法