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

ppt
video

Lecture 9: Linear Regression 线性回归

9.1 Linear Regression Problem 线性回归问题

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

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

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

902

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

903

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

9.2 Linear Regression Algorithm 线性回归算法

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

向量、矩阵运算

向量的内积

  • a b = | a | | b | c o s ( a , b )
  • b a = | b | | a | c o s ( b , a )
  • 所以, a b = b a ,向量的内积符合交换律。

矩阵的行列式计算

  • 只有方针才有行列式值。
  • 二阶行列式计算如下:
    | D | = d e t ( A ) = d e t ( | a 11 a 12 a 21 a 22 | ) = a 11 a 22 a 21 a 12
  • 奇排列:逆序数为奇数的排列
  • 偶排列:逆序数为偶数的排列
  • 例如: 123 共有 3 2 1 = 6 种排列方式,其中 132 逆序数为1,为奇排列; 231 逆序数为2,为偶排列。
  • 三阶行列式计算如下:
    | D | = d e t ( A ) = d e t ( | a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 | ) = 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 | = p 1 p 2 p 3 ( 1 ) τ ( p 1 p 2 p 3 ) a 1 p 1 a 2 p 2 a 3 p 3

    其中, τ ( p 1 p 2 p 3 ) 代表排列的逆序数, p 1 p 2 p 3 代表所有排列。
  • 扩展到 n 阶行列式,

    | D | = p 1 p 2 . . . p n ( 1 ) τ ( p 1 p 2... p n ) a 1 p 1 a 2 p 2 . . . a n p n

    一共有 n !

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

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

  • d e t ( A ) = 1 ,面积不变
  • 0 < d e t ( A ) < 1 ,面积减小
  • d e t ( A ) = 0 ,图形降维,矩阵不可逆
  • d e t ( A ) < 0 ,转…无法理解暂时,待填坑。

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

矩阵的转置

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

矩阵的奇异性

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

减小 E i n

第一步是将 E i n ( w ) 改造成矩阵形式。
904

  • w T x n = x n T w 成立的原因:

    • 首先 A T B 一般情况下式不等于 B T A 的,推导如下:
      由矩阵转置定理 ( A B ) T = B T A T ,得
      ( A T B ) T = B T ( A T ) T = B T A
      ( A T B ) T = B T A
      如果此时增加条件 A T B = B T A ,即 ( A T B ) T = A T B
      就是说 A T B 是以左上-右下45度对角线镜面对称的方阵。
      即只有矩阵 M 是45度镜面对称时,其转置等于它本身。

    • 假设输入 x d 维特征, w = | w 0 w 1 w 2 . . . w d | 是列向量,一个 ( d + 1 ) 1 的矩阵, x n = | x n 0 x n 1 . . . x n d | 是列向量,也是一个 ( d + 1 ) 1 的矩阵。 w T x n 就是 [ 1 ( d + 1 ) ] [ 1 ( d + 1 ) ] 也就是维度为 1 1 的矩阵,即一个实数,它必然是镜面对称的。所以 w T x n = x n T w 成立。

  • 将平方求和改造成向量模的平方:
    • 假设我们有个向量 v = { v 1 , v 2 , v 3 } | v | 2 = v 1 2 + v 2 2 + v 3 2
    • 同理
      n = 1 N ( x n T w y n ) 2 = | x 1 T w y 1 x 2 T w y 2 . . . x N T w y N | 2
  • 矩阵的线性变换
    • 根据矩阵的加减法,加减的线性变换是显而易见的。即令
      Y = | y 1 y 2 . . . y N |
    • 根据矩阵的乘法,将 x n T w w 项拆出来,即新的 X = | x 1 T x 2 T . . . x N T | ,行列数为 [ N ( d + 1 ) ]

最终, E i n ( w ) 的矩阵形式为

E i n ( w ) = 1 N | | X w Y | | 2

第二步,探索 E i n ( w ) 的图像走势,寻找使其最小的 w
905

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

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

906

拆平方,扩写 E i n ( w )

E i n ( w ) = 1 N | | X w Y | | 2 = 1 N | | ( X w Y ) T ( X w Y ) | |

注意到这里使用了矩阵乘法的一些技巧, E i n 肯定是个值,但是 X w Y 是个 ( d + 1 ) 1 的矩阵,所以求标量平方值需要使用转置。

( X w Y ) T ( X w Y ) = ( ( X w ) T Y T ) ( X w Y ) = ( w T X T Y T ) ( X w Y ) = w T X T X w w T X T Y Y T X w + Y Y T

之前再证明 w T x n = x n T w 成立时,提到,当矩阵 M 是45度镜面对称时,其转置等于它本身。这里 Y T ( X w ) 结果是 1 1 的矩阵,镜面对称,所以,

( Y T ( X w ) ) T = ( X w ) T ( Y T ) T = w T X T Y

这样,上面的因式分解式的中间两项可写成
w T X T X w 2 w T X T Y + Y Y T

保留自变量 w ,令因变量
A = X T X ,   b = X T Y ,   c = Y Y T

E i n ( w ) 可写为:
E i n ( w ) = 1 N ( w T A w 2 w T b + c )

看上图,当 w 只有一维时, E i n ( w ) 简化成简单的二次式。
类推,当 w 有多维时,

E i n ( w ) = 1 N ( 2 A w 2 b )

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

A w b = 0 => A w = b => ( A ) 1 A w = A 1 b

即,当 A 可逆时
w = A 1 b = X T X X T Y

我们把 X X X T 叫做 X 的伪逆矩阵, X

907

虽然由于 N g X T X 在大多数情况都是可逆的;但也不排除存在奇异矩阵 X T X ,这样的话就会有很多组解,但是其中一组解仍是 X Y ,这里 X 可能会有很多种定义方式。

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

908

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

猜你喜欢

转载自blog.csdn.net/sjz_hahalala479/article/details/81701164