这里参考吴恩达的机器学习的1-5章,主要讲线性回归的应用。
1. 通过微分方法推导线性回归
这里主要讲解一个特征变量下的线性回归方法的使用:
假设函数(Hypothesis Function) : hθ(x)=θ0+θ1x,很显然它是一个线性函数。
其中 x 就是训练样本中的特征变量, y 就是对应于特征变量x的样本实际值,所以 (x(i),y(i))就表示样本集中的每一个样本点。
θ0,θ1是两个参数, 接下来我们就会通过训练样本数据来计算出它们的具体值是多少。
我们知道 实际样本值y和hθ(x)的值是有偏差的, 那么我们的代价函数(Cost Function)如下:
J(θ0,θ1)=1/2m∗i=1∑m(hθ(x(i))−y(i))2
上面这个代价函数就是计算整个训练样本集中的预测值与实际值的方差.
这里的m表示样本集的总数量.
下一步我们的目标就是找到这个代价函数的最小值 Minimizeθ0,θ1J(θ0,θ1), 也就是找到一个误差最小,最接近于真实样本的情况。
目前这个代价函数有两个变量, θ0,θ1。如何找到这个凸函数的最小值呢?首先我们复习一下微分(导数)的原理, 根据费马引理和函数的极值定理1可知:
函数f(x)在f′(x0)=0处,存在极值(极大值或极小值)。
当f′(x) 在靠近x0点时, “左负右正”( 即x<x0时, f′(x)<0,x>x0时, f′(x)>0), 那么在x0处, f(x)存在极小值。
所以这里求出J(θ0,θ1) 分别对θ0,θ1的偏导数, 得到偏导数接近于0时的 θ0,θ1, 那么它们就是我们要找的最好的假设函数的参数了。
根据复合函数的求导法则:
dxdy=dudy∗dxdu
对θ0求偏导数的结果为:∂θ0∂J(θ0,θ1)=1/m∗i=1∑m(hθ(x(i))−y(i))
对θ1求偏导数的结果为:∂θ1∂J(θ0,θ1)=1/m∗i=1∑m(hθ(x(i))−y(i))x(i)
梯度下降法(Gradient descent)
通过求代价函数的导数(偏导数), 逐步逼近(局部)最小值。
repeat until convergence {
同步更新θ值,直到θ0,θ1不再变化,也就说明它的偏导数接近于0了,所以这个式子减去偏导数的值不再变了。
θ0:=θ0−αm1∑i=1m(hθ(x(i))−y(i))
θ1:=θ1−αm1∑i=1m(hθ(x(i))−y(i))x(i)
}
多个特征变量的情况
上面我们讨论的时一个特征变量的情况, 我们也可以推导出有n个特征变量时的θ0,θ1,θ2,...θn 的值。
上面的假设函数改成如下:
hθ(x0,x1,...,xn)=θ0x0+θ1x1+...+θnxn
上面的梯度下降法同步更新也改成如下:
θj:=θj−αm1∑i=1m(hθ(x(i))−y(i))xj(i)
其中j=0,1,...,n
θ0:=θ0−αm1∑i=1m(hθ(x(i))−y(i))x0(i)
θ1:=θ1−αm1∑i=1m(hθ(x(i))−y(i))x1(i)
…
θn:=θn−αm1∑i=1m(hθ(x(i))−y(i))xn(i)
2. 使用正规方程来推导线性回归
其实在线性代数中,正规方程是由正交投影(Orthogonal Projection)推导出来的,下面我们阐述一下这一过程。
正交补集(Orthogonal complement)
对于向量集合S,S⊥,如果满足:
S⊥={v:v⋅u=0,∀u∈S}
其中v是S⊥中的任意向量,u是S中的任意向量
v⋅u=vT∗u,即两个向量做Dot-Product
那么我们就说, 集合S⊥是集合S的正交补集。
正交投影(Orthogonal Projection)
我们知道对于任意向量u都可以分解成任意两个向量相加,而正交投影是其中的一种分解方式,其定义如下:
对于任何一个向量u, 都可以分解成两个向量w,z ,使得 u=w+z,w∈W,z∈W⊥,并且w⋅z=0,而且这种分解还是唯一的.,这一过程可以叫做正交投影。分解之后的这两个向量w,z在坐标系上看是互相垂直的。
|
|
|
---|
正交投影过程 |
正交投影是所有分解中最近的 |
图4:证明过程(为什么最近) |
图4就是证明为什么向量w是距离u最近的,也就是u−w的值最小。
向量w就是向量u在集合W中的投影,记作w=UW(u),和其它的投影比较起来它是唯一正交的。
已知正交分解z=u−w,任取一个向量w′∈W,只要证明z<∣u−w′∣成立,那么就说明z是最小的,其实从图中显而易见, 唯有z是垂直于W的,垂直的距离最短嘛。
根据z∈W⊥,所以z与W中的任意向量做Dot-Product都是0,所以存在(w−w′)∈W,(u−w)⋅(w−w′)=0。
根据Pythagorean Theorem(毕氏定理) ∣∣u+v∣∣2=∣∣u∣∣2+2u⋅v+∣∣v∣∣2,构造并证明出:∣∣u−w′∣∣2>∣∣u−w∣∣2,所以z是最小的。
正规方程的推导过程
根据上面的知识点,下面我们来推导正规方程。
已知C是一个n∗k的矩阵,且它的列向量构成的集合是集合W的一个basis,也就是说它的列向量都是线性无关(linear independent)的;
对于任意一个向量u,w=UW(u), w是向量u在集合W中的正交投影,w∈W;
证明推导过程:
w=C∗b,b是任意一个向量,b∈Rk, 其实就是线性组合(linear combination)的过程, 集合W内的一个向量w 一定可以用W的basis做线性组合得到.
z=u−w,z∈W⊥ 。
那么: w⋅z=0, 推出 C⋅(u−w)=0, 因为 C中的列向量属于集合W, 而u−w 属于集合W⊥, 所以它们进行正交化操作一定是0,注意这里的0指的是0向量。
所以: CT∗(u−w)=0, 它俩相乘等于0向量;
推出: CT∗u−CT∗w=0;
推出: CT∗u−CT∗(C∗b)=0;
推出: CT∗u=CT∗C∗b,然后 两边同时乘以 (CT∗C)−1 得到:
b=(CT∗C)−1∗CT∗u
w=C∗(CT∗C)−1∗CT∗u
其中(CT∗C)−1是(CT∗C)的逆矩阵.
正规方程在线性回归中的应用
返回到上面的假设函数hθ(x0,x1,x3,x4)=θ0x0+θ1x1+θ2x2+θ3x3+θ4x4,我们的训练样本集中有多个特征变量x0,x1,...,xn以及实际值y,样本集如下表格描述:
x0 |
房屋尺寸(feet2) x1 |
卧室数量 x2 |
楼层数 x3 |
房龄 x4 |
价格($1000) y |
---|
1 |
2104 |
5 |
1 |
45 |
460 |
1 |
1416 |
3 |
2 |
40 |
232 |
1 |
1534 |
3 |
2 |
30 |
315 |
1 |
852 |
2 |
1 |
36 |
178 |
1 |
566 |
1 |
10 |
25 |
166 |
1 |
3534 |
7 |
7 |
30 |
609 |
1 |
1044 |
4 |
3 |
19 |
299 |
根据输入的特征参数值来预测房屋价格
根据上面的表格,我们可以构造出一个包含所有特征参数的矩阵:
X=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡11111112104141615348525663534353453321771221107745403036253030⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
房屋实际价格向量:
y=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡460232315178166609299⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
特征值参数:
θ=⎣⎢⎢⎢⎢⎡θ0θ1θ2θ3θ4⎦⎥⎥⎥⎥⎤
那么我们上面的假设函数可以改成如下:
hθ(x0,x1,x3,x4)=X∗θ
所以这里的X就相当于正规方程中的C,θ相当于向量b,y相当于向量u。
θ=(XTX)−1XTy
hθ(x0,x1,x3,x4)=X(XTX)−1XTy,就是房屋实际价格y在X上的正交投影,它和房屋实际价格y之间的差是最小的,所以也是最接近于y的值了。