概述
机器学习基石 Lecture9: Linear Regression
- Linear Regression Problem
- Linear Regression Algorithm
- Generalization Issue
- Linear Regression for Binary Classification
Linear Regression Problem
回到下发信用卡的例子。之前的例子里需要判断的是是否下发信用卡,如果现在改为对某个用户应该给多少信用卡额度,那么这个问题的结果
y
y
y就变成了一个实数,因此这个问题也就变成了一个回归问题。如果把每一维的特征使用不同的系数求得加权和作为预测结果,那么这个假设函数就叫做线性回归的假设:
假设函数和感知机很像,不过没有了sign函数。对于线性回归而言,要找到一个分隔线或者分隔面,使得预测结果与真实结果之间的差别最小。
一般在线性回归问题里使用的error measure都是平方误差。如下所示。我们的算法目标就是找到一个
E
i
n
E_{in}
Ein最小的假设函数:
Linear Regression Algorithm
为了以后的推导方便,我们把目标函数
E
i
n
(
w
)
E_{in}(w)
Ein(w)写为矩阵的形式:
最终的结果是一个向量模长的表示。这个目标函数有很好的性质:连续,可微,且是个凸函数。因此我们的算法需要找到一个让目标函数有最小值的系数
w
w
w:
很自然的想到对这个表达式进行求梯度,梯度为0的位置就是我们需要的结果 。梯度求导如下:
显然对于以上的梯度形式,我们可以写出等于0时候的闭式解。不过根据
X
T
X
X^{T}X
XTX的可逆性也分为两种情况,但是最终都能够直接求得结果:
一般情况下
X
T
X
X^{T}X
XTX都是可逆的,因为样本数量
N
N
N会远远大于向量维度
d
+
1
d+1
d+1,也就是X的秩一般是
d
+
1
d+1
d+1。通常直接调用求逆或伪逆的包即可求得结果。因此就得到了线性回归的算法流程:
Generalization Issue
看起来线性回归的算法并不像是一个机器学习的过程,而是直接得到了一个结果。但是实际上判断的方式应该看
E
o
u
t
(
w
L
I
N
)
E_{out}(w_{LIN})
Eout(wLIN)有没有真的很小,如果是那就说明真的学到了:
这么一个解析解的结果也能够为我们提供一些算法的保证,而且比VC bound的保证要简单一些。首先计算在平均情况下
E
i
n
E_{in}
Ein的结果:
图中把
X
X
+
XX^{+}
XX+写为一个映射函数
H
H
H,代表的是将向量
y
y
y映射为一个新的结果
y
^
widehat{y}
y
。可以通过图解来理解各个量之间的关系:
红色的一大片表示的是使用
X
X
X作为空间的基组成的一个线性空间。显然结果
y
^
widehat{y}
y
落在这个空间里。
y
−
y
^
y-widehat{y}
y−y
是新旧结果之间的差,它垂直于这个空间平面。有一个结论是
I
−
H
I-H
I−H的迹等于
N
−
(
d
+
1
)
N-(d+1)
N−(d+1)。不好详细推导,可以简单理解为这个映射矩阵
H
H
H把原先有
N
N
N个自由度的
y
y
y映射为一个只有
d
+
1
d+1
d+1个自由度的空间内,因此
I
−
H
I-H
I−H的迹是这个结果。
根据图示我们可以写出
E
i
n
(
w
L
I
N
)
E_{in}(w_{LIN})
Ein(wLIN)的表示形式与最终的结果:
E
o
u
t
E_{out}
Eout的平均结果推导比较复杂,可以稍微理解为因为
E
i
n
E_{in}
Ein在可见的数据集上的一定的偏移导致了后一项结果的正负值不同。
可以看出随着N的增加,最终算法能够保证
E
o
u
t
E_{out}
Eout的上限。因此算法确实学到了东西。
Linear Regression for Binary Classification
线性回归与线性分类似乎很接近,而且线性回归可以直接求得解析解。似乎可以使用线性回归的结果用在线性分类的问题里,只不过最终将结果再加个sign函数即可。那么这个使用方式在数学上是否合理呢?
它们之间唯一的不同似乎就在于error measure的不同,两种方法之间的关系如下图:
对于某个样本而言,线性回归的error总是大于等于0/1 error的。回到之前为感知机推导的VC bound,我们可以发现使用线性回归的error measure也能够为线性分类的
E
o
u
t
E_{out}
Eout提供一个上限保证,也就是说这个方法确实是可用的。
或许使用了这个measure牺牲了上限的紧度,但是更容易计算。而且为了得到更好的结果,也可以作为PLA算法的初始结果进行迭代。
最后
以上就是无聊百褶裙为你收集整理的机器学习基石 Lecture9: Linear Regression的全部内容,希望文章能够帮你解决机器学习基石 Lecture9: Linear Regression所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复