knitr::opts_chunk$set(echo = TRUE)
前面都是在讲泛化的问题,现在开始讲算法相关。我之前看李航的书大都是怎么构建损失函数以及如何优化损失函数,也没想过泛化的问题。至于线性回归,统计学里讲的比较取巧,先假定存在线性关系,受误差项影响产生一些波动。书归正传,按照Week9的顺序,权当复习。
符号标记
x=(x0,x1,x2,⋯,xd)T
x
=
(
x
0
,
x
1
,
x
2
,
⋯
,
x
d
)
T
:样本特征,其中
x0
x
0
为常数项,其余为用户特征
y
y
:目标变量,连续型数值变量
w=(w0,w1,w2,⋯,wd)T
w
=
(
w
0
,
w
1
,
w
2
,
⋯
,
w
d
)
T
:系数向量
线性回归算法
Hypothesis如下:
线性回归算法的目标就是找到最合适的 w w ,使得训练集误差( Ein E i n )最小。而衡量误差的方式为:
矩阵表示:
矩阵
X
X
共计行,每一行代表一个样本,每个样本
d+1
d
+
1
个维度。
对于这类线性回归问题,损失函数一般是凸函数。凸函数证明:
易知Hessian Matrix为半正定,所以损失函数是凸函数。此时只要令一阶导为0,求出对应的 w w 即可。
其中 (XTX)−1XT ( X T X ) − 1 X T 又称伪逆矩阵,记为 X+ X + 。 XTX X T X 的逆矩阵不一定存在,软件总能求出一个替代矩阵。这样我们可以找一个 w w 使得损失函数最小。
泛化问题
又是比较难的部分,线性回归能保证 Ein≈Eout E i n ≈ E o u t 吗?没大看懂,尝试着叙述一下。变换 Ein E i n 个形式:
用
WLIN
W
L
I
N
预测时,可以得到预测值
y^=XwLIN=X(XTX)−1XTy
y
^
=
X
w
L
I
N
=
X
(
X
T
X
)
−
1
X
T
y
,称
X(XTX)−1XT
X
(
X
T
X
)
−
1
X
T
为Hat Matrix。
而Hat Matrix的物理意义如下:
Hat Matrix相当于对
y
y
做往
X
X
张成的线性空间span投影的操作。那么{I - X{X^ + }
{I - X{X^ + }
则是向span垂直方向投影。从几何上讲我们希望找到最短的
y−y^
y
−
y
^
,显然向量垂直这个线性空间时,满足要求。(三维的时候容易理解,试验设计教材上的比较清楚)。
考虑noise存在的情况:
y=f(X)+noise
y
=
f
(
X
)
+
n
o
i
s
e
,此时
Ein
E
i
n
为:
因为
f(X)
f
(
X
)
在
X
X
张成的空间上,所以为0。进一步:
推导过程并不懂,noise应该是一个矩阵,每个样本都会有一个随机扰动noise存在。Mr林并没有讲的很细致,就平均而言
noise level也不知道什么意思,有的资料上貌似指的是误差项的协方差矩阵。
Ein
E
i
n
和
Eout
E
o
u
t
都向
σ2
σ
2
(noise level)收敛,他们之间的差异被
2(d+1)N
2
(
d
+
1
)
N
bound住。所以这时候说明
N
N
够大时,。
Summary
有点怀念NG课程直接面向工程的方式,至少容易接受点。泛化的问题实在是比较难理解,先这样吧。
2018-02-05 于杭州