【Linear Regression】林轩田机器学习基石
这一节开始讲基础的Linear Regression算法。
(1)Linear Regression的假设空间变成了实数域
(2)Linear Regression的目标是找到使得残差更小的分割线(超平面)
下面进入核心环节:Linear Regression的优化目标是minimize Ein(W)
为了表达简便,首先需要把这种带Σ符号的转换成matrix form,如下:
1~2:多个项的平方和可以转换成向量的平方
2~3:把每个列向量x都横过来,组成一个新的X矩阵
最后转换成了最终的minimize的表达式:连续可导,凸集,求梯度为0的点。求梯为0的过程如下:
如何求出微分等于0的表达式。
第一张的式子设计到一些矩阵微分的公式,找到了下面这blog(http://blog.sciencenet.cn/blog-849193-653656.html)复习一下。
其中涉及到了二次函数的微分(Quadratic Products):注意,因为这里A=X'X是对称阵,所以A==A',因此得到了2Aw
还涉及到了一次函数的微分(Linear Products)
如何求出最终的结果。
这里分两种情况
(1)一种是X'X是invertible的,显然直接求逆矩阵即可
(2)一种X’X是singluar的,这时应该求出广义逆矩阵
啥是广义逆?之前用ELM的时候学过一些。看课件再复习一下:
同时,林也推荐实际中用well-implemented routine 广义逆就好了。
因此,把广义逆矩阵算出来了,也就算OK了。
把求得的w带回去求得的矩阵拟合y^是XX(广义逆)y
这里又提炼出来一个Hat Matrix的概念:
课程中主要从几何意义的角度来阐述了这个hat matrix H是干啥的。
一开始理解这个gemoetric意义一直没有理解好,直到看了这篇blog(http://beader.me/mlnotebook/section3/linear-regression.html)之后,有些明白了。
大概是说,y hat是y到span of X的投影,这样一来,||y-yhat||²最小(垂线距离最短)。
这样看来,I-H这个线性变化就是把y变成了y-yhat。
换一个角度,可以把y看成是一个理想的f(x)+noise构成的;这样,其实也是是吧I-H这个线性变换应用在了nosie上面,变成了y-yhat。
换这个角度看有啥用呢?主要是为了得到Ein跟noise的关系
Linear Regression相当于把noise在原来基础上降低了1-(1+d)/N这么多。
但Eout却是比原来的noise大了。总结来说,见下图:
当N比较大时,Ein和Eout平均误差为2(d+1)/N级别的noise。
VC是Bound住错误的概率,但上面的Learning Curve说的是平均的情况,但是二者想表达的意思是相近的,就是N越大,Ein跟Eout越接近。
最后,又提到了一个问题Linear Classification vs. Linear Regression二者的关系。
我的理解有两点:
(1)直观看来,Regression似乎可以用来替代的Classification(因为毕竟只是少了一个算sign的步骤);而且classification是NP-hard的(算的慢),但是Linear Regression是analytic solution的(算得快)。
(2)对于classification的问题,y只有1和-1,把这两种情况下的Error曲线画出来,发现其实classification的线是一直在regression的线的下面的。
因此,结论就是,Linear Regression在Binary Classification问题上,是可以作为一个稍微宽松的错误上界的。
这里的trade-off的对象是算法的效率与error bound的紧密程度。
这里,林提出了一个practical的方法:实际中甚至可以先做一个regression来求一个初始化参数值,然后再应用诸如PLA/Pocket这类的算法降低error。
【Linear Regression】林轩田机器学习基石的更多相关文章
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 【 Logistic Regression 】林轩田机器学习基石
这里提出Logistic Regression的角度是Soft Binary Classification.输出限定在0~1之间,用于表示可能发生positive的概率. 具体的做法是在Linear ...
- 【Linear Models for Binary Classification】林轩田机器学习基石
首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理. 既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给 ...
- 【Regularization】林轩田机器学习基石
正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transf ...
- 【The VC Dimension】林轩田机器学习基石
首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...
- 【Perceptron Learning Algorithm】林轩田机器学习基石
直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:fea ...
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 林轩田机器学习基石笔记2—Learning to Answer Yes/No
机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...
- 【Theory of Generalization】林轩田机器学习基石
紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还 ...
随机推荐
- May 03rd 2017 Week 18th Wednesday
Truth needs no colour; beauty, no pencil. 真理不需要色彩,美丽不需要涂饰. There is no absoulte truth and everlastin ...
- POJ-3669 Meteor Shower---BFS+预处理
题目链接: https://vjudge.net/problem/POJ-3669 题目大意: 巨大流星雨即将袭来.每个流星会对击中的地方以及周围(上下左右四格)造成破坏.Bessie开始时位于(0, ...
- ios 创建自己的.a文件
1:首先创建个 静态工程(Cocoa Touch Static Library); 方法名字,一定要暴露在.h文件中, 2:分别在模拟器环境和真机环境下 Analyze (shift+command+ ...
- gearmand安装过程
51 cd boost_1_53_0 52 tail -f build_log 53 dir 54 cd gearmand-1.1.8 55 ./configure 56 could not find ...
- 创建 XXXXXXXX 的配置节处理程序时出错: 请求失败
今天碰到这个错误,之前的程序在测试的时候都没有问题,同样的程序打包通过QQ传给其他人,在XP下测试也没有问题,我的Win7系统从QQ信箱下载压缩包,解压之后执行程序就会出问题,本来还是考虑自己程序是不 ...
- python剑指offer最小的K个数
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 思路: 使用快排中的partition思想. ①我们设定part ...
- MySQL自增锁等待问题解决
有网友再群里问:在做基准测试时候,批量插入数据时,有很多自增锁等待,我告诉他解决办法: 1.innodb_autoinc_lock_mode=2 2.innodb_autoextend_increme ...
- Windows Subsystem for Linux(WSL)安装记录
什么是WSL Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层.它是由微软与Canoni ...
- 关于Pycharm基本操作笔记
创建 project(工程,译音:破拽科特) 1.Create New project(创建一个新的工程,译音:科瑞特 纽 破摘科特) 2.pure python(纯派森,译音:皮忧儿 派森) 3.l ...
- mysql,oracle表数据相互导入
mysql导入oracle: 例如mysql中有ts_user_info表,现在要导入到oracle中的user_info表 1:导出mysql表数据到data.txt文件 mysql> sel ...