ppt
video
Lecture 9: Linear Regression 线性回归
9.1 Linear Regression Problem 线性回归问题
考虑一个问题,银行按照每个顾客的个人情况,赋予不同的信用额度。我们可不可以通过机器学习,学到一个赋予信用额度的比较好的方式呢?
信用额度是一个实数,所以输出y∈R,属于回归问题。
这里介绍最简单的一种,即线性回归:

对x的每一个维度特征xi赋予一个权重wi表示重要程度,再求和,得到y,这是线性回归的基本思想。
得到的h(x)类似于我们之前学到的感知器算法,但是没有添加符号sign这个步骤。

线性回归的几何表示如上图,寻找最优的h(x)实际上是寻找最优的线或者超平面。

线性回归算法中,我们普遍使用“squared error”的错误度量方式。
9.2 Linear Regression Algorithm 线性回归算法
上面一小节,关于线性回归的演算法公式,我们已经介绍清楚了。
接下来,我们需要考虑的问题是,如何计算Ein的最小值。
在推导之前,我们先来复习一下向量和矩阵的一些相关运算。
向量、矩阵运算
向量的内积
- a⋅b=∣a∣⋅∣b∣⋅cos(a,b)
- b⋅a=∣b∣⋅∣a∣⋅cos(b,a)
- 所以,a⋅b=b⋅a,向量的内积符合交换律。
矩阵的行列式计算
-
只有方针才有行列式值。
-
二阶行列式计算如下:
∣D∣=det(A)=det(∣∣∣∣a11a21a12a22∣∣∣∣)=a11a22−a21a12
-
奇排列:逆序数为奇数的排列
-
偶排列:逆序数为偶数的排列
-
例如:123共有3∗2∗1=6种排列方式,其中132逆序数为1,为奇排列;231逆序数为2,为偶排列。
-
三阶行列式计算如下:
∣D∣=det(A)=det(∣∣∣∣∣∣a11a21a31a12a22a32a13a23a33∣∣∣∣∣∣)=a11a22a33+a12a23a31+a13a21a12−a11a23a31−a13a22a31−a12a21a33
可以看出偶排列前面符号为正号,奇排列前面符号为负号。
-
所以,三阶行列式可写成
∣D∣=p1p2p3∑(−1)τ(p1p2p3)a1p1a2p2a3p3
其中,τ(p1p2p3)代表排列的逆序数,p1p2p3代表所有排列。
-
扩展到n阶行列式,
∣D∣=p1p2...pn∑(−1)τ(p1p2...pn)a1p1a2p2...anpn
一共有n!项
-
计算是这样计算的,但是行列式的本质是什么呢?可以看知乎这篇回答:
https://www.zhihu.com/question/36966326
我看了之后也不太懂,但有个结论说:行列式是线性变换的伸缩因子.。
-
det(A)>1,这个矩阵在线性变换中有放大作用
-
det(A)=1,面积不变
-
0<det(A)<1,面积减小
-
det(A)=0,图形降维,矩阵不可逆
-
det(A)<0,转…无法理解暂时,待填坑。
希望之后能理解吧,现在是真的理解不了。
矩阵的转置
- 将原矩阵的行与列交换后得到的矩阵叫做转置矩阵。
- 直观地看,它是将矩阵A的所有元素绕着一条从第1行第1列元素出发的右下方45度射线做镜面翻转,即得到A的转置。
- 相关性质:(A±B)T=AT±BT
- (A∗B)T=BT∗AT
- (AT)T=A
- (KA)T=K∗AT
矩阵的奇异性
奇异矩阵的英文叫做singular matrix,意思为异常的矩阵。
实际上他就是非可逆矩阵,不满秩矩阵,行列式为0的矩阵。
减小Ein
第一步是将Ein(w)改造成矩阵形式。

-
wTxn=xnTw 成立的原因:
-
首先ATB一般情况下式不等于BTA的,推导如下:
由矩阵转置定理(AB)T=BTAT,得
(ATB)T=BT(AT)T=BTA
即(ATB)T=BTA,
如果此时增加条件ATB=BTA,即(ATB)T=ATB,
就是说ATB是以左上-右下45度对角线镜面对称的方阵。
即只有矩阵M是45度镜面对称时,其转置等于它本身。
-
假设输入x有d维特征,w=∣∣∣∣∣∣∣∣∣∣w0w1w2...wd∣∣∣∣∣∣∣∣∣∣是列向量,一个(d+1)∗1的矩阵,xn=∣∣∣∣∣∣∣∣xn0xn1...xnd∣∣∣∣∣∣∣∣是列向量,也是一个(d+1)∗1的矩阵。wTxn就是[1∗(d+1)]∗[1∗(d+1)]也就是维度为1∗1的矩阵,即一个实数,它必然是镜面对称的。所以wTxn=xnTw成立。
- 将平方求和改造成向量模的平方:
- 假设我们有个向量v={v1,v2,v3},∣v∣2=v12+v22+v32
- 同理n=1∑N(xnTw−yn)2=∣∣∣∣∣∣∣∣x1Tw−y1x2Tw−y2...xNTw−yN∣∣∣∣∣∣∣∣2
- 矩阵的线性变换
- 根据矩阵的加减法,加减的线性变换是显而易见的。即令Y=∣∣∣∣∣∣∣∣y1y2...yN∣∣∣∣∣∣∣∣
- 根据矩阵的乘法,将xnTw的w项拆出来,即新的X=∣∣∣∣∣∣∣∣x1Tx2T...xNT∣∣∣∣∣∣∣∣,行列数为[N∗(d+1)]
最终,Ein(w)的矩阵形式为
Ein(w)=N1∣∣Xw−Y∣∣2
第二步,探索Ein(w)的图像走势,寻找使其最小的w

我们把这个Ein(w)看成以w为自变量的二次函数, 这个函数是连续的,可微分的,凸函数。这样的函数肯定存在极值点,这个极值点的的梯度为0。
林教授解释梯度很形象,他说当一个球到达凸函数的谷底,它往哪个方向都滚不动,梯度定义如上图,对函数的每个方向(变量)作偏微分。哪里都滚不动,我们就说各个方向的偏微分即梯度为0。
所以我们的任务是找到使得函数梯度为0的w向量。

拆平方,扩写Ein(w)
Ein(w)=N1∣∣Xw−Y∣∣2=N1∣∣(Xw−Y)T(Xw−Y)∣∣
注意到这里使用了矩阵乘法的一些技巧,Ein肯定是个值,但是Xw−Y是个(d+1)∗1的矩阵,所以求标量平方值需要使用转置。
(Xw−Y)T(Xw−Y)=((Xw)T−YT)(Xw−Y)=(wTXT−YT)(Xw−Y)=wTXTXw−wTXTY−YTXw+YYT
之前再证明wTxn=xnTw 成立时,提到,当矩阵M是45度镜面对称时,其转置等于它本身。这里YT(Xw)结果是1∗1的矩阵,镜面对称,所以,
(YT(Xw))T=(Xw)T(YT)T=wTXTY
这样,上面的因式分解式的中间两项可写成
wTXTXw−2wTXTY+YYT
保留自变量w,令因变量
A=XTX, b=XTY, c=YYT
Ein(w)可写为:
Ein(w)=N1(wTAw−2wTb+c)
看上图,当w只有一维时,Ein(w)简化成简单的二次式。
类推,当w有多维时,
▽Ein(w)=N1(2Aw−2b)
我们需要要求梯度为0时的w就非常简单了:
Aw−b=0=>Aw=b=>(A)−1Aw=A−1b
即,当A可逆时
w=A−1b=XTXXTY
我们把XXXT叫做X的伪逆矩阵,X∔。

虽然由于N⋙g,XTX在大多数情况都是可逆的;但也不排除存在奇异矩阵XTX,这样的话就会有很多组解,但是其中一组解仍是X∔Y,这里X∔可能会有很多种定义方式。
我们在实践中,只需要调用软件程序中已经定义好的∔即可。

Fun Time说当我们已经得到了wLIN,可以做预测了,我们预测的y^会长什么样呢?
答案是:只需要将算好的w代入即可。