ppt
video

Lecture 9: Linear Regression 线性回归

9.1 Linear Regression Problem 线性回归问题

考虑一个问题,银行按照每个顾客的个人情况,赋予不同的信用额度。我们可不可以通过机器学习,学到一个赋予信用额度的比较好的方式呢?
信用额度是一个实数,所以输出yRy \in R,属于回归问题。
这里介绍最简单的一种,即线性回归:
【林轩田】机器学习基石(九)——线性回归

xx的每一个维度特征xix_i赋予一个权重wiw_i表示重要程度,再求和,得到yy,这是线性回归的基本思想。

得到的h(x)h(x)类似于我们之前学到的感知器算法,但是没有添加符号signsign这个步骤。

【林轩田】机器学习基石(九)——线性回归

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

【林轩田】机器学习基石(九)——线性回归

线性回归算法中,我们普遍使用“squared error”的错误度量方式。

9.2 Linear Regression Algorithm 线性回归算法

上面一小节,关于线性回归的演算法公式,我们已经介绍清楚了。
接下来,我们需要考虑的问题是,如何计算EinE_{in}的最小值。
在推导之前,我们先来复习一下向量和矩阵的一些相关运算。

向量、矩阵运算

向量的内积

  • ab=abcos(a,b)\vec{a} \cdot \vec{b} = |\vec{a}| \cdot |\vec{b}| \cdot cos(\vec{a},\vec{b})
  • ba=bacos(b,a)\vec{b} \cdot \vec{a} = |\vec{b}| \cdot |\vec{a}| \cdot cos(\vec{b},\vec{a})
  • 所以,ab=ba\vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a},向量的内积符合交换律。

矩阵的行列式计算

  • 只有方针才有行列式值。

  • 二阶行列式计算如下:
    D=det(A)=det(a11a12a21a22)=a11a22a21a12|D| = det(A) = det(\begin{vmatrix} a_{11}&a_{12}\\ a_{21}&a_{22} \end{vmatrix}) = a_{11}a_{22} - a_{21}a_{12}

  • 奇排列:逆序数为奇数的排列

  • 偶排列:逆序数为偶数的排列

  • 例如:123123共有321=63*2*1=6种排列方式,其中132132逆序数为1,为奇排列;231231逆序数为2,为偶排列。

  • 三阶行列式计算如下:
    D=det(A)=det(a11a12a13a21a22a23a31a32a33)=a11a22a33+a12a23a31+a13a21a12a11a23a31a13a22a31a12a21a33|D| = det(A) = det(\begin{vmatrix} a_{11}&a_{12}&a_{13}\\ a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33} \end{vmatrix}) \\ = a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{12} - a_{11}a_{23}a_{31} - a_{13}a_{22}a_{31} - a_{12}a_{21}a_{33}
    可以看出偶排列前面符号为正号,奇排列前面符号为负号。

  • 所以,三阶行列式可写成
    D=p1p2p3(1)τ(p1p2p3)a1p1a2p2a3p3|D| = \sum_{p_{1}p_{2}p_{3}} {(-1)^{\tau(p1p2p3)}a_{1p1}a_{2p2}a_{3p3}}
    其中,τ(p1p2p3)\tau(p1p2p3)代表排列的逆序数,p1p2p3p1p2p3代表所有排列。

  • 扩展到nn阶行列式,
    D=p1p2...pn(1)τ(p1p2...pn)a1p1a2p2...anpn|D| = \sum_{p_{1}p_{2}...p_{n}} {(-1)^{\tau(p1p2...pn)}a_{1p1}a_{2p2}...a_{npn}}
    一共有n!n!

  • 计算是这样计算的,但是行列式的本质是什么呢?可以看知乎这篇回答:
    https://www.zhihu.com/question/36966326
    我看了之后也不太懂,但有个结论说:行列式是线性变换的伸缩因子.。

  • det(A)>1det(A) > 1,这个矩阵在线性变换中有放大作用

  • det(A)=1det(A)=1,面积不变

  • 0<det(A)<10<det(A)<1,面积减小

  • det(A)=0det(A) = 0,图形降维,矩阵不可逆

  • det(A)<0det(A)<0,转…无法理解暂时,待填坑。

希望之后能理解吧,现在是真的理解不了。

矩阵的转置

  • 将原矩阵的行与列交换后得到的矩阵叫做转置矩阵。
  • 直观地看,它是将矩阵AA的所有元素绕着一条从第1行第1列元素出发的右下方45度射线做镜面翻转,即得到AA的转置。
  • 相关性质:(A±B)T=AT±BT(A \pm B)^{T} = A^{T} \pm B^{T}
  • (AB)T=BTAT(A * B)^{T} = B^{T} * A^{T}
  • (AT)T=A(A^T)^T = A
  • (KA)T=KAT(KA)^T = K*A^T

矩阵的奇异性

奇异矩阵的英文叫做singular matrix,意思为异常的矩阵。
实际上他就是非可逆矩阵,不满秩矩阵,行列式为0的矩阵。

减小EinE_{in}

第一步是将Ein(w)E_{in}(w)改造成矩阵形式。
【林轩田】机器学习基石(九)——线性回归

  • wTxn=xnTww^Tx_n = x_n^Tw 成立的原因:
    • 首先ATBA^TB一般情况下式不等于BTAB^TA的,推导如下:
      由矩阵转置定理(AB)T=BTAT(AB)^T = B^TA^T,得
      (ATB)T=BT(AT)T=BTA(A^TB)^T = B^T(A^T)^T = B^TA
      (ATB)T=BTA(A^TB)^T = B^TA
      如果此时增加条件ATB=BTAA^TB = B^TA,即(ATB)T=ATB(A^TB)^T = A^TB
      就是说ATBA^TB是以左上-右下45度对角线镜面对称的方阵。
      即只有矩阵MM是45度镜面对称时,其转置等于它本身。

    • 假设输入xxdd维特征,w=w0w1w2...wdw = \begin{vmatrix} w_{0}\\ w_{1}\\w_2\\...\\w_d \end{vmatrix}是列向量,一个(d+1)1(d+1)*1的矩阵,xn=xn0xn1...xndx_n = \begin{vmatrix} x_{n0}\\x_{n1}\\...\\x_{nd}\end{vmatrix}是列向量,也是一个(d+1)1(d+1)*1的矩阵。wTxnw^Tx_n就是[1(d+1)][1(d+1)][1*(d+1)]* [1*(d+1)]也就是维度为111*1的矩阵,即一个实数,它必然是镜面对称的。所以wTxn=xnTww^Tx_n = x_n^Tw成立。

  • 将平方求和改造成向量模的平方:
    • 假设我们有个向量v={v1,v2,v3}\vec{v} = \{v_1,v_2,v_3\}v2=v12+v22+v32|\vec{v}|^2 = {v_1}^2 + {v_2}^2+{v_3}^2
    • 同理n=1N(xnTwyn)2=x1Twy1x2Twy2...xNTwyN2\sum_{n=1}^N(x_n^Tw-y_n)^2 = \begin{vmatrix} x_1^Tw-y_1\\ x_2^Tw-y_2\\...\\x_N^Tw-y_N\end{vmatrix}^2
  • 矩阵的线性变换
    • 根据矩阵的加减法,加减的线性变换是显而易见的。即令Y=y1y2...yNY = \begin{vmatrix} y_1\\y_2\\...\\y_N\end{vmatrix}
    • 根据矩阵的乘法,将xnTwx_n^Twww项拆出来,即新的X=x1Tx2T...xNTX = \begin{vmatrix} x_1^T\\x_2^T\\...\\x_N^T\end{vmatrix},行列数为[N(d+1)][N*(d+1)]

最终,Ein(w)E_{in}(w)的矩阵形式为
Ein(w)=1NXwY2E_{in}(w) = \frac{1}{N}||Xw-Y||^2

第二步,探索Ein(w)E_{in}(w)的图像走势,寻找使其最小的ww
【林轩田】机器学习基石(九)——线性回归

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

所以我们的任务是找到使得函数梯度为0的ww向量

【林轩田】机器学习基石(九)——线性回归

拆平方,扩写Ein(w)E_{in}(w)
Ein(w)=1NXwY2=1N(XwY)T(XwY)E_{in}(w) = \frac{1}{N}||Xw-Y||^2 = \frac{1}{N} ||(Xw-Y)^T(Xw-Y)||
注意到这里使用了矩阵乘法的一些技巧,EinE_{in}肯定是个值,但是XwYXw-Y是个(d+1)1(d+1)*1的矩阵,所以求标量平方值需要使用转置。

(XwY)T(XwY)=((Xw)TYT)(XwY)=(wTXTYT)(XwY)=wTXTXwwTXTYYTXw+YYT(Xw-Y)^T(Xw-Y) = ((Xw)^T-Y^T)(Xw-Y)\\ = (w^TX^T-Y^T)(Xw-Y)\\ =w^TX^TXw - w^TX^TY - Y^TXw+YY^T

之前再证明wTxn=xnTww^Tx_n = x_n^Tw 成立时,提到,当矩阵MM是45度镜面对称时,其转置等于它本身。这里YT(Xw)Y^T(Xw)结果是111*1的矩阵,镜面对称,所以,
(YT(Xw))T=(Xw)T(YT)T=wTXTY(Y^T(Xw))^T = (Xw)^T(Y^T)^T = w^TX^TY
这样,上面的因式分解式的中间两项可写成
wTXTXw2wTXTY+YYTw^TX^TXw - 2 w^TX^TY +YY^T
保留自变量ww,令因变量
A=XTX, b=XTY, c=YYTA = X^TX,\ b=X^TY,\ c=YY^T
Ein(w)E_{in}(w)可写为:
Ein(w)=1N(wTAw2wTb+c)E_{in}(w) = \frac{1}{N}(w^TAw-2w^Tb+c)

看上图,当ww只有一维时,Ein(w)E_{in}(w)简化成简单的二次式。
类推,当ww有多维时,
Ein(w)=1N(2Aw2b)\triangledown E_{in}(w) = \frac{1}{N}(2Aw-2b)

我们需要要求梯度为0时的ww就非常简单了:

Awb=0=>Aw=b=>(A)1Aw=A1bAw-b=0 => Aw = b =>(A)^{-1}Aw = A^{-1}b
即,当AA可逆时
w=A1b=XTXXTYw = A^{-1}b\\ =X^TXX^TY
我们把XXXTX^XX^T叫做XX的伪逆矩阵,XX^\dotplus

【林轩田】机器学习基石(九)——线性回归

虽然由于NgN \ggg gXTXX^TX在大多数情况都是可逆的;但也不排除存在奇异矩阵XTXX^TX,这样的话就会有很多组解,但是其中一组解仍是XYX^\dotplus Y,这里XX^\dotplus可能会有很多种定义方式。

我们在实践中,只需要调用软件程序中已经定义好的\dotplus即可。

【林轩田】机器学习基石(九)——线性回归

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

相关文章:

  • 2022-12-23
  • 2021-10-01
  • 2021-04-19
  • 2021-11-22
  • 2022-01-02
  • 2021-05-06
  • 2021-04-02
猜你喜欢
  • 2021-08-23
  • 2021-07-16
  • 2021-05-18
  • 2022-12-23
  • 2021-06-01
  • 2021-11-04
  • 2022-12-23
相关资源
相似解决方案