附录C:机器学习基础之线性代数


时间:2018-08-27 作者:魏文应


一、说明

本章节中, 粗体的 \pmb{x} 表示向量,常规字体的 x 表示一个数。

二、矩阵运算

什么是矩阵

把一些数,排列起来放置,组成数表,比如下面这个就是 m 行 n 列的矩阵:

\begin{gather*} A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \end{gather*}

元素 a_{ij} 是矩阵A 的第 ij 列。

矩阵加法

AB 两个矩阵相加,需要这两个矩阵为 同型矩阵(同为 m x n 矩阵),相对应元素相加即可:

\begin{gather*} A = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \cdots & a_{1n} + b_{1n}\\ a_{21} + b_{21} & a_{22} + b_{22} & \cdots & a_{2n} + b_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & \cdots & a_{mn} + b_{mn} \end{bmatrix} \end{gather*}

数与矩阵相乘

\lambda 与 矩阵 A 的乘积:

\begin{gather*} \lambda A = A \lambda = \begin{bmatrix} \lambda a_{11} & \lambda a_{12} & \cdots & \lambda a_{1n} \\ \lambda a_{21} & \lambda a_{22} & \cdots & \lambda a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ \lambda a_{m1} & \lambda a_{m2} & \cdots & \lambda a_{mn} \end{bmatrix} \end{gather*}

矩阵和矩阵相乘

先举个例子:

\begin{gather*} AB = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \\ b_{31} & b_{32} \end{bmatrix} \\ = \begin{bmatrix} a_{11}b_{11}+a_{12}b_{21} +a_{13}b_{31} & a_{11}b_{12}+a_{12}b_{22} +a_{13}b_{32} \\ a_{21}b_{11}+a_{22}b_{21} +a_{23}b_{31} & a_{21}b_{12}+a_{22}b_{22} +a_{23}b_{32} \end{bmatrix} \\ \end{gather*}

矩阵 A = (a_{ij}) 是一个 m \times s 矩阵,矩阵 B = (b_{ij}) 是一个 s \times n 矩阵。两个矩阵相乘 AB 得到一个 m \times n 矩阵 C = (c_{ij})

c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \cdots + a_{ik}b_{kj} = \sum_{k=1}^s {a_{ik} b_{kj}}

(i = 1, 2, 3, \cdots, m); (j = 1, 2, 3, \cdots, n)

这就是 矩阵和矩阵相乘。从中我们可以看到,矩阵相乘 ABBA 是不一样的。相乘的前提条件是,前一个矩阵列 s 数要和后一个矩阵的行 s 数相等。

三、超平面

超平面,是因为机器学习的几何模型需要超平面这个概念,几何模型的决策面就是一个超平面。至于什么是几何模型、什么是决策面,我们后面再说。我们先从数学角度上看超平面。

有些平面画不出来

由于人眼睛感知的限制,我们只能看到空间的维数 n \leq 3,比如:一维点 x,二维点 (x, y), 三维点 (x, y, z) ,这些点我们可以用 笛卡尔直角坐标系 表示出来,直观看到。等维数 n \geq 4 以后,人就不能直观地观察到了。但我们依然沿用这种几何的说法,比如 (x, y, z, j) 我们依然可以叫做点。

向量空间

向量 应该都知道,比如平面坐标系中的向量 (x, y) 、三维坐标系中的向量 (x, y, z)。在几何中,我们把 “既有大小又有方向的量” 叫做 向量 。现实世界中,我们把空间看做是由一个一个点组成的,这样的空间叫做 点空间n 维向量的全体组成的集合,叫做 n 维向量空间,表示如下:

R^n = \{ (x_1, x_2, \cdots, x_n) \space | \space x_1, x_2, \cdots, x_n \in R \}

R 表示实数范围内。也就是说,(x_1, x_2, \cdots, x_n) 表示一些点,把所有的点放在一起,构成的集合,这样的集合,给它取个名字,叫做 n 维向量空间。在几何上,二维向量空间 R^2 是平面空间,三维向量空间 R^3 是三维立体空间。我们知道,在三维空间中,可以用 \vec{i}, \vec{j}, \vec{k} 作为一个基本向量,(a \vec{i}, b \vec{j}, c \vec{k}) 就可以表示三维空间中的任意向量了。n 维向量空间 V 中:

  • a_1, a_2, \cdots, a_n \in V
  • a_1, a_2, \cdots, a_n 之间线性无关。
  • 向量空间 V 中任意向量,都可以用 a_1, a_2, \cdots, a_n 表示。

这样的向量组 (a_1, a_2, \cdots, a_n) 叫做 向量空间的基 。此外,下面向量空间:

V = \{ \pmb{x} | \pmb{x} = (\xi_1, \xi_2, \cdots, \xi_n), \xi_i \in R, i = 1, 2, \cdots, n \}, F = R

这个向量空间,数域F 是在 实数R范围内,所以叫做 n 元实坐标向量空间。相对的,如果数域F是 复数C,那么就叫做 n 元复坐标向量空间

线性空间

向量空间,也叫做 线性空间 。向量空间是从几何学的角度去描述,因为向量空间是能够满足线性运算的,所以也叫做线性空间,一般用 V 表示线性空间。满足下面8个运算规则的运算,称为 线性运算

  • \vec{x} + \vec{y} = \vec{y} + \vec{x}
  • (\vec{x} + \vec{y}) + \vec{z} = \vec{x} + (\vec{y} + \vec{z})
  • 在空间 V 存在 **零元素 \vec{0} , 对任何 \vec{x} \in V, 都有 \vec{x} + \vec{0} = \vec{x}
  • 对于任何 \alpha \in V ,都有 \alpha负元素 \beta \in V ,使得 \alpha + \beta = \vec{0}
  • 1 \vec{x} = \vec{x}
  • \lambda(\mu \vec{x}) = (\lambda \mu) \vec{x}
  • (\lambda + \mu) \vec{x} = \lambda \vec{x} + \mu \vec{x}
  • \lambda(\vec{x} + \vec{y}) = \lambda \vec{x} + \lambda \vec{y}

一般情况下,我们认为向量空间指的就是线性空间,两个名称等价,意思一样。线性空间更加抽象化而已。n 维线性空间 记为 V_n 。如果 \vec{a_1}, \vec{a_2}, \cdots, \vec{a_n}V_n 的一个 ,线性空间 V_n 可以表示为:

V_n = \{ \vec{\alpha} = x_1 \vec{a_1} + x_2 \vec{a_2} + \cdots + x_n \vec{a_n} \space | \space x_1, x_2, \cdots, x_n \in R\}

我们可以说这个线性空间 V_n ,是由基 \vec{a_1}, \vec{a_2}, \cdots, \vec{a_n} 生成的线性空间。有些时候,还叫做由基 \vec{a_1}, \vec{a_2}, \cdots, \vec{a_n} 张成的线性空间 。在向量空间,我们说过 实向量空间,也就是 实线性空间

子空间

先举个例子:平面R^2R^3 的子集,而且 R^2 也是一个线性空间,称 R^2R^3线性子空间。我们知道了,在数域 F上 的线性空间 V ,可以看成是由无数点的集合构成的。我们选择其中一些点,这些点构成的集合 S 是 线性空间 V 的子集,这个集合S要 满足封闭性,即:

  • \forall x, y \in S ,都有 x + y \in S
  • \forall x \in S, \forall 、\lambda \in F ,都有 \lambda x \in S

这个线性空间 S 就叫做线性空间V的 线性子空间 。 上面 \forall 符号意思是 任意,也就是 “对于任意 x, y 的意思。符号 \in属于 的意思。

超平面

高中我们就知道,ax + by = c 可以在平面上表示一条线,ax + by + cz = d 可以在三维空间上表示一个面。推广到 n 维向量空间,无论是线还是面,我们都把它叫做 。我们可以把面看做是由无数点组成的:

\vec{x} = \{ (x_1, x_2, \cdots, x_n) | a_1 x_1 + a_2 x_2 + \cdots + a_n x_n = b \}

上面这个向量集合,由这个集合中的无数个点组成 n 维向量空间的一个面,这个面,就叫做 n 维向量空间中的 n-1 维超平面。为什么是 n-1 呢? 2维空间(2D)中,a_1 x_1 + a_2 x_2 = b 表示的是几何中的直线,线是1维的。3维空间(3D)中,a_1 x_1 + a_2 x_2 + a_3 x_3 = b 表示的是几何中的面,面是2维的。你会发现,直线可以把平面分开两半,平面可以把空间分成两半。这就说明它可以分类,在机器学习的分类问题就会用到。

超平面

四、向量运算

数量积(内积)

高中,我们就学过:a \bullet b = | a | | b | \cos \theta 。这个就是二维空间中,平面向量的数量积(内积)。引入坐标系以后,向量 \vec a = (x_1, y_1) 和向量 \vec b = (x_2, y_2) 数量积就是:

a \bullet b = | a | | b | \cos \theta = x_1 x_2 + y_1 y_2

而且向量 \vec{a} 和向量 \vec{b} 互相垂直 时,有下面公式:

\vec{a} \bot \vec{b} = x_1 x_2 + y_1 y_2 = 0

后来我们把数量积推广到了三维空间,对于向量 \vec{a} = (x_1, y_1, z_1) 和 向量 \vec{b} = (x_2, y_2, z_2) ,数量积就是:

a \bullet b = x_1 x_2 + y_1 y_2 + z_1 z_2

如果 \vec{a} \bot \alpha ,那么称这个向量 \vec{a} 是 平面 \alpha法向量。如果有一个空间平面,平面方程如下:

Ax + By + Cz = D

那么它的法向量就是 (A, B, C) ,解释如下:

设向量 (A, B, C) 是 平面 \alpha法向量, 并且和平面 \alpha 交于点 (x_0, y_0, z_0) 。平面 \alpha 上的向量均可表示为:(x-x_0, y-y_0, z-z_0),因为向量 (A, B, C) 与向量 (x-x_0, y-y_0, z-z_0) 垂直,所以:
A(x-x_0) + B(y-y_0) + C(z-z_0)=0

整理得:Ax+By+Cz+D=0
可见,标准方程中,三个未知数的 系数所组成的向量 (A,B,C),就是平面的一个 法向量

前面讲的,是二维空间和三维空间,将 内积计算 推广到 n 维空间:

\vec{x} = (a_1, a_2, \cdots, a_n)

\vec{y} = (b_1, b_2, \cdots, b_n)

\vec{x} \bullet \vec{y} = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n

内积空间

我们先说什么是 内积。上面我们说,在解析几何中,设 \pmb{\alpha} = (x_1, y_1, z_1)\pmb{\beta }= (x_2, y_2, z_2),它的内积:

(\pmb{\alpha}, \pmb{\beta}) = \pmb{\alpha} \bullet \pmb{\beta} = | \pmb{\alpha} | \pmb{\beta} | \cos{\theta} = x_1 x_2 + y_1 y_2 + z_1 z_2

上面公式中,我们规定了一种规则,让两个 向量相乘,得到一个 实数。可以这么说吧,这种规则是 根据自己的需求自定义的 。如果你规定 \pmb{\alpha} \bullet \pmb{\beta} = x_1 也是可以的,只要满足你的实际需求就可以了。比如上面,解析几何中的 (\pmb{\alpha}, \pmb{\beta}) 之所以等于 x_1 x_2 + y_1 y_2 + z_1 z_2 ,是根据对应的实际物理意义定义的,如 \theta 是两个向量的夹角, | \pmb{\alpha} | 是向量\pmb{\alpha}的模等等 。这样的规则太随意,我们希望对这个生成规则做一些限制。比如下面规定:

V 是实数域 R 上的 线性空间\forall \pmb{x}, \pmb{y} \in V, 给定 某种规则,使 \pmb{x}\pmb{y} 对应于 一个实数,记为 (\pmb{x}, \pmb{y}), 且满足下列条件:

  • (\pmb{x},\pmb{y}) = (\pmb{y}, \pmb{x}) ;
  • (\lambda \pmb{x}, \pmb{y}) = \lambda (\pmb{x}, \pmb{y});
  • (\pmb{x} + \pmb{y}, \pmb{z}) = (\pmb{x}, \pmb{z}) + (\pmb{y}, \pmb{z});
  • (\pmb{x, x}) \geq 0,当且仅当 \pmb{x = 0} 时, (\pmb{x, x}) = 0 .

满足上面的实数 d = (\pmb{x, y}) 称为向量 \pmb{x}\pmb{y}内积 。其中,\pmb{x}, \pmb{y}, \pmb{z} \in V\lambda \in R

定义了内积的 实线性空间 V,叫做 欧几里德空间。简称 欧氏空间 或者 实内积空间。而对于内积空间中,推广到复数的 复内积空间,这里我们不讨论。我们用得比较多的是 标准内积

n 维向量空间 R^n 中,对于 \pmb{x} = (a_1, a_2, \cdots, a_n)^T\pmb{y} = (b_1, b_2, \cdots, b_n)^T,我们规定:

(\pmb{x}, \pmb{y}) = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n = \sum_{k=1}^n {a_k b_k}

这个内积,就称为 R^n 上的 标准内积。可以这么说,R^n 使用上述内积构成 n 维欧氏空间。

范数

先看范数的定义:

令 V 是复向量空间。函数 || \pmb{x} ||V \rightarrow R 称为向量 \pmb{x}范数

什么意思呢?意思就是将一个 向量 计算以后得到一个 实数,至于你怎么计算,你想怎么算都行。我们来例子。令向量 \pmb{x} = (x_1, x_2, \cdots, x_n),对于这个向量,你可以这么计算:

|| \pmb{x} || = x_1^2 + x_2^2 + \cdots + x_n^2

也可以这么算(|x| 绝对值符号,x 的绝对值):

|| \pmb{x} || = | x_1 | + | x_2 | + \cdots + | x_n |

总之你开心就好。但是为了是范数使用起来有意义,范数规定

  • || \pmb{x} || \geq 0 (非负性)
  • || \pmb{x} || = 0 ,当且仅当 \pmb{x} = 0 (正性)
  • || c \pmb{x} || = | c | || \pmb{x} ||, 对所有复常数 c 成立。 (齐次性)
  • || \pmb{x} + \pmb{y} || = || \pmb{x} || + || \pmb{y} || (三角不等式)

满足上面条件的函数,称为 范数 。如果不满足第二条:正性,则称为 向量 \pmb{x} 的半范数 。我们可能会用到下面范数,L_1 范数 (也叫做 和范数 或者 1范数):

||\pmb{x}||_1 \overset{def}{=} |\sum_{i=1}^m {x_i} | = |x_1| + |x_2| + \cdots + |x_m|

上面等号的 defdefine 的缩写,意思是 定义 。而下面的 L_2范数 ,也叫做 欧几里德范数 ,我们勾股定理,就是当向量 x 的范数为 ||\pmb{x}|| = \sqrt{|x_1|^2 + |x_2|^2} 求得的。你会发现,L2范数可以求空间中两点之间的距离。 L_2范数 如下:

||\pmb{x}||_2 \overset{def}{=} \sqrt{ |x_1|^2 + |x_2| ^2+ \cdots + |x_m |^2 }

下面是 L_p 范数(上面 L_1L_2 范数,就是 p=1p=2 的情况):

|| \pmb{x} ||_p = (\sum_{i=1}^m {|x_i|^p} )^{1/p}

L_{\infty}范数 (无穷范数或者极大范数):

|| \pmb{x} ||_{\infty} = max\{|x_1|, |x_2|, \cdots, |x_n| \}

上面各种范数说明了,向量 \pmb{x} 的范数,只是一个转换函数而已,由一个向量得到一个数,这种转换根据现实需求而定。比如空间中的点的坐标 \pmb{x} = (x_1, x_2, x_3) ,它到原点的距离就是:

f(x) = || \pmb{x} ||_2 = \sqrt{ |x_1|^2 + |x_2|^2 + |x_3|^2 } = d

上面这个,就是向量 \pmb{x}L_2 范数。我们原来是一个向量 \pmb{x} = (x_1, x_2, x_3) 的形式,经过函数 f(x) 映射关系,得到一个实数 d 。这个函数 f(x) 就可以称为 向量\pmb{x} 的范数。

五、参考书籍

  • 《线性代数(第五版)》- 同济大学 。
  • 《矩阵分析与应用》- 张贤达 。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容