MachineLearning(Hsuan-Tien Lin)第九讲
来源:互联网 发布:这个淘宝内衣女模特赵 编辑:程序博客网 时间:2024/04/29 23:54
线性回归
线性回归问题
andrew的Week1和Week2说的也是线性回归。可以比较下二者所讲的。
比如银行给顾客信用卡的例子,线性回归做的不是决定“要不要给顾客信用卡”而是“要给顾客多少信用额度”,每个顾客给的不一样。线性回归:
注意,x0是常数项,是阈值。目标是希望加权后的结果和期望接近。没有sign,就是直接算出来的值就是结果,不需要像分类问题一样,取符号。
和分类不一样:(有两个特征x1,x2)
一维的是:
红色的线是误差,即residual余数,预测和实际差多少。希望余数越小越好,用squared error衡量:
从机器学习角度要看两个,一个是训练数据上的error,另一个是还没看过的资料的error。
注意,有noise,所以(x,y)~P就是x和y都服从某个分布
线性回归算法
现在的问题就是,怎么minimize Ein(w)。这和Andrew讲的一样,就是要minJ(θ)。
—>是向量内积交换。1/N是求平均,是我们的预测,是希望的。
再把连加的展开,有点象
最后简化式子,X表示的是输入的资料,W表示变化的线,y是想要的输出。
目标是
这是一个连续、可导的凸函数,碗状。可以在andrew的Week1中看多维空间的成本函数Ein样子。
因为Ein(W)是碗状的,所以在碗底WLin一定就是Ein最小的地方。梯度是Ein(W)的d个偏导数为分量的向量。梯度方向是函数具有最大变化率的方向。沿正梯度方向,函数是上升的;沿负梯度方向,函数是下降的。
以下是几个常用的梯度公式:
把Ein(W)的平方展开,用正规方程(Normal Equation,andrew的Week2 )求min Ein(w):
把称A,这个称b,为c。
上式化为:
求梯度(可参考那几个常用梯度的式子):
再把A、b、c代回原来的值
碗底WLin是梯度为0的地方,是Ein最小的地方。
所以梯度为0,就是:
接下去,就是矩阵求逆(要可逆才行):
(Normal Equation已经在Andrew的week2中写过,一模一样)
这里,把用符号表示。
这样,WLin可以表示为:
不可逆的话,就用梯度下降算法(重点在步长和方向)。
所以Normal Equation总结就是:
(1)矩阵X
(2)求逆
(3)求=
(4)
Normal Equation给人的感觉就是嗖的一下就出来了,不像梯度下降一样,一步一步迭代,给人感觉有在学习。所以,接下来,就分析一下为什么这个算法也是真的有在学习。
首先,它有好的Ein。Ein(W)凸函数在碗底Ein最小,而且我们的确求出来了这个Ein
其次,有好的Eout。Ein=Eout
最后,它不是一下子就出结果。矩阵求逆中间也是一步一步求出来的。
一般化问题
我们深入分析下Eout也是好的。
首先把Ein的式子展开:
I是单位矩阵。
我们把叫做帽子(Hat)矩阵H。这个矩阵是y变成了。
(因为,而)
帽子矩阵H的作用是什么呢?
首先,在一个N维空间,y是这个空间的一个向量。
我们看,其中WLIN是权重,是x的系数。X是d+1维的空间。(本篇开始,我们就说)
所以是X空间的一个向量。
X空间包含在N维空间中。
实际上是y在X空间的投影。垂直于X空间。线性回归做的事情,就是要让越小越好。
帽子矩阵H做的事情,就是投影。(去看看前面,我们说帽子矩阵是把y变成了)
I-H做的事情,就是求。
trace(I-H)就是(I-H)这个矩阵的对角线上所有值的和。
它的物理理解就是,y是N维空间的向量,当我们投影到d+1维空间时,求剩下部分的自由度就是(N-(d+1))。
上面说的是理想状况。(你会问“什么意思?”)实际存在noise,使我们求的的目标函数f(x)是:
它是有noise情况下求出来的:
所以,如果我们把noise也投影到x空间,那么也是noise和它在X空间投影的余数。
1/N是求平均,这个N是N笔资料。(N-(d+1))的N是N维。(对N维和N笔资料的说法不太理解,不知道是不是为了约掉N,才取N笔资料?)
noise level是资料中有多少的noise,即一定做不到的部分。d+1是自由度。N是资料量。
Eout部分有点复杂(先不证了)。
所以,Normal Equation可以求得Ein和Eout很接近。
帽子矩阵有三条性质:
(1)对称性
(2)两次投影会投到同一个地方
(3)取2次余数会得到同一个余数
线性回归解决分类问题
现在来比较线性分类和线性回归:
{+1,-1}也是实数,能不能就直接用线性回归,就不用什么线性分类,还是NP-hard。我们来看看线性分类的问题是否能用线性回归解。
它们两个最大的区别就是错误衡量的方式。
sqr的err是个抛物线,左边y=1,错误最低的就是=1时;右边y=-1,错误最低的就是=-1时。
0/1的err是个阶梯,输出只能{+1,-1}。左边y=1,当>0,sign()输出是1时就没错,否则就错了;右边y=-1,当<0,sign()输出是-1时就没错,否则就错了。
从上面的图可以看出:
VCbound说:
上面告诉我们线性分类的err比线性回归的err小,所以:
所以,可以用线性回归解决线性分类问题,就是err宽松了些。
而且,PLA或pocket算法时,w0可以用线性回归求一个比较好的w,然后再用原来思路修正。这样就可以加速算法。
- MachineLearning(Hsuan-Tien Lin)第九讲
- MachineLearning(Hsuan-Tien Lin)第一讲
- MachineLearning(Hsuan-Tien Lin)第二讲
- MachineLearning(Hsuan-Tien Lin)第三讲
- MachineLearning(Hsuan-Tien Lin)第四讲
- MachineLearning(Hsuan-Tien Lin)第五讲
- MachineLearning(Hsuan-Tien Lin)第六讲
- MachineLearning(Hsuan-Tien Lin)第七讲
- MachineLearning(Hsuan-Tien Lin)第八讲
- MachineLearning(Hsuan-Tien Lin)第十讲
- MachineLearning(Hsuan-Tien Lin)第十一讲
- MachineLearning(Hsuan-Tien Lin)第十二讲
- MachineLearning(Hsuan-Tien Lin)第十四讲
- MachineLearning(Hsuan-Tien Lin)第十五讲
- MachineLearning(Hsuan-Tien Lin)第十六讲
- MachineLearning(Hsuan-Tien Lin)第十三讲
- Machine Learning Foundations(机器学习基石) By Hsuan-Tien Lin (林轩田) week1 笔记
- 第九讲
- 指针与动态空间分配
- 似锦流年,没有谁比谁更坚强
- rpm包安装
- [FAQ04549] JB Launcher2 代码导入Eclipse 后如何消除错误
- 控制台程序暂停
- MachineLearning(Hsuan-Tien Lin)第九讲
- C-链表增删结点的问题(16)
- AM3359 GPIO 设置问题 引脚
- MapReduce源码分析之MapReduce如何读取、解析输入文件
- 不同环境下 DLL 开发以及调用
- 解决“在web config 中没有找到连接字符串”
- ruby学习笔记(10)-puts,p,print的区别
- iOS Client 与WebSocket 通信 入门demo 即时通讯 socketio
- 第4周作业-数学学习工具