机器学习数学基础-线性代数

 

 

前言

AI(人工智能)现在火的一塌糊涂,其实在AI领域,机器学习已广泛应用在搜索引擎、自然语言处理、计算机视觉、生物特征识别、医学诊断、证券市场分析等领域,并且机器学习已经是各大互联网公司的基础设施,不再是一个新鲜的技术。但当你真的开始学习机器学习的时候,就会发现上手门槛其实还挺高的,这主要是因为机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。

本文主要介绍一下机器学习涉及到的一些最常用的的数学知识,方便大家在学习机器学习的时候,能扫除一些基础障碍。

标量(scalar)

标量是一个单独的数,一般用普通小写字母或希腊字母表示,如 a,\alpha 等。

向量(vector)相关

向量的定义

把数排成一列就是向量,比如:

向量一般用粗体小写字母或粗体希腊字母表示,如 \textbf{x} 等(有时候也会用箭头来标识,如 \pmb{\vec x} ),其元素记作 x_{i}

向量默认为列向量,行向量需要用列向量的转置表示,例如 \bm{x^{T}} 等。

  • 物理专业视角:向量是空间中的箭头,决定一个向量的是它的长度和方向
  • 计算机专业视角:向量是有序的数字列表
  • 数学专业视角:向量可以是任何东西,只要保证两个向量相加以及数字与向量相乘是有意义的即可

运算规则

向量的加法和数量乘法定义:

加法 相同维数的向量之间的加法为:

 

数量乘法 任意的常数 c 和向量的乘法为:

在给定数 c,c' 及向量 \textbf{x、y} 的情况下

张成空间

张成空间是向量 vw 全部线性组合构成的向量集合,即:

av+bw ( a,b 在实数范围内变动)

 

向量空间的基

向量空间中的一组基是张成该空间的一个线性无关向量的集合。

只有当以下两个条件同时满足时,一组向量 (\vec e_{1},...,\vec e_{n}) 才能成为基底。

  1. (当前空间中的)任意向量 \vec v 都可以表示成 \vec v = x_{1}\vec e_{1}+...+x_{n}\vec e_{n} 的形式( x_{1},...,x_{n} 为任意数)
  2. 并且这种表示方法是唯一的

向量空间的维数

空间的维数可以通过基向量的个数来定义

维数 = 基向量的个数 = 坐标的分量数

 

线性无关

当且仅当 a=b=c=0av+bw+cu=0 成立,则 v,w,u 是线性无关的。

换种表达方式,线性无关是说:其中任意一个向量都不在其他向量张成空间中,也就是对所有的 ab , u=av+bw 均不成立。

线性变换

线性的两个条件:直线依旧是直线 和 原点保持固定.

线性的严格定义:

线性变换保持网格线平行且等距分布,并且保持原点不动。

线性变换由它对空间的基向量的作用完全决定,在二维空间中,基向量就是 ij ,这是因为其他任意向量都成表示为基向量的线性组合,坐标为(x,y)的向量就是x乘以 i 加上y乘以 j ,在线性变换之后,网格线保持平行且等距分布这一性质有个绝妙的推论,向量(x,y)变换之后的结果,将是x乘以变换后的 i 的坐标加上y乘以变换后的 j 的坐标。

 

向量的点积

点乘,也叫向量的内积、数量积。顾名思义,求下来的结果是一个数。两个维度相同的向量,点积定义如下:

  • 点积和顺序无关
  • 两个向量相互垂直时,点积为0
  • 两个向量方向相同时,点积为正;相反时,点积为负

向量的叉积

叉乘,也叫向量的外积、向量积。顾名思义,求下来的结果是一个向量。

  • 向量的叉积不满足交换律

对偶向量

给定一个向量,如果存在这样一个映射,它把给定的向量映射为一个实数,就说这个映射是对偶向量。例如一个n维行向量(a1,a2...an),它既可以理解为行向量,也可理解为某种映射,该映射把给定的n维列向量(b1,b2...bn)(矢量)映射为实数k,k=a1b1+a2b2+...anbn,即矩阵的乘积。则这个映射满足对偶向量的定义,因此行向量(a1,a2...an)是对偶(b1,b2...bn)的对偶向量。

 

矩阵(matrix)相关

矩阵的定义

矩阵是一个二维数组,其中的每一个元素由两个索引(而非一个)所确定,一般用粗体的大写字母表示,比如: A = \begin{equation} \left( \begin{array}{ccc} a11 & a12 & a13\\ a21 & a22 & a23\\ \end{array} \right) \end{equation}

矩阵 A 中的第 i 行第 j 列的值,称为 A(i,j) 元素;当矩阵行数和列数相同时,称为方阵。

矩阵就是映射,或者说是向量运动的描述。
n 维向量 x 乘以 m\ast n 矩阵 A ,能得到 m 维向量 y=Ax 。也就是说,指定了矩阵 A ,就确定了从向量到另外一个向量的映射。
两个矩阵相乘的几何意义就是两个线性变换相继作用。

矩阵运算

加法:

只要两个矩阵的形状一样,就可以把两个矩阵相加。两个矩阵相加是指对应位置的元素相加,比如 C=A+B ,其中 C_{i,j}=A_{i,j}+B_{i,j}

乘法:

两个矩阵 AB 的矩阵乘积是第三个矩阵 C 。为了使乘法可被定义,矩阵A的列数必须和矩阵B的行数相等。如果矩阵 A 的形状是 m\ast n ,矩阵 B 的形状是 n\ast p ,那么矩阵 C 的形状是 m\ast p 。例如

C=AB

具体地,该乘法操作定义为:

C_{i,j}=\sum_{k}^{}{A_{i,k}B_{k,j}}

矩阵乘积服从分配律: A(B+C)=AB+AC
矩阵乘积也服从结合律: A(BC)=(AB)C
矩阵乘积不满足交换律: AB=BA 的情况并非总是满足
矩阵乘积的转置有着简单的形式: (AB)^T=B^TA^T

 

矩阵的秩

矩阵的秩,为变换后的空间的维数

核与值域

核:所有经过变换矩阵后变成了零向量的向量组成的集合,通常用Ker(A)来表示。

值域:某个空间中所有向量经过变换矩阵后形成的向量的集合,通常用R(A)来表示。

 

维数定理

对于 m\times n 矩阵 A ,有 dim Ker(A) +dim R(A) = n

其中 dim X 表示X的维度。

列空间

矩阵 A 的列空间为所有可能的输出向量 Av 构成的集合,换句话说,列空间就是矩阵所有的列所张成的空间。

所以更精确的秩的定义是列空间的维数;当秩达到最大值时,意味着秩和列数相等,也即满秩。

零向量

变换后落在原点的向量的集合被称为矩阵的‘零空间’或者‘核’。

  • 零向量一定在列空间中
  • 对于一个满秩变换来说,唯一能在变换后落在原点的就是零向量自身
  • 对于一个非满秩的矩阵来说,它将空间压缩到一个更低的维度上,变换后的已给向量落在零向量上,而“零空间”正是这些向量所构成的空间

行列式

线性变换的行列式即线性变换改变面积的比例。

det(M_1M_2) = det(M_1)det(M_2)

  • 检验一个矩阵的行列式是否为0,就能了解这个矩阵所代表的变换是否将空间压缩到更小的维度上
  • 在三维空间下,行列式可以简单看作这个平行六面体的体积,行列式为0则意味着整个空间被压缩为零体积的东西,也就是一个平面或者一条直线,或者更极端情况下的一个点
  • 行列式的值可以为负,代表空间定向发生了改变(翻转);但是行列式的绝对值依然表示区域面积的缩放比例

 

 

奇异矩阵

行列式为零的矩阵

特征值和特征向量

特征分解

如果说一个向量 v 是方阵 A 的特征向量,将一定可以表示成下面的形式:

Av=\lambda v

\lambda 为特征向量 v 对应的特征值。特征值分解是将一个矩阵分解为如下形式:

A=Q\Sigma Q^{-1}

其中, Q 是这个矩阵 A 的特征向量组成的矩阵, \Sigma 是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。也就是说矩阵A的信息可以由其特征值和特征向量表示。

对于矩阵为高维的情况下,那么这个矩阵就是高维空间下的一个线性变换。可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。

总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。

奇异值分解

特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可能是方阵,我们怎样才能描述这样普通的矩阵呢的重要特征呢?奇异值分解可以用来干这个事情,奇异值分解是一个能适用于任意的矩阵的一种分解的方法:

分解形式:

假设A是一个M * N的矩阵,那么得到的U是一个M * M的方阵(称为左奇异向量),Σ是一个M * N的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),VT(V的转置)是一个N * N的矩阵(称为右奇异向量)。

 

LU分解

给定矩阵A,将A表示成下三角矩阵L和上三角矩阵U的乘积,称为LU分解。

转置矩阵

对于矩阵A,将其行列互换得到的矩阵,称为A的转置矩阵,记为 A^{T}

矩阵的转置是以对角线为轴的镜像,这条从左上到右下的对角线被称为主对角线(main diagonal)。

(A^T)_{i,j}=A_{j,i}

单位矩阵

方阵中,如果除了对角线(从左上到右下)上的元素为1,其余元素都为0,则该矩阵称为单位矩阵,记为 II_{n} 表示 n 阶单位矩阵。

单位矩阵表示的映射是“什么都不做”的映射。

逆矩阵

A逆乘以A等于一个‘什么都不做’的矩阵。 A^{-1}A = \begin{equation} \left( \begin{array}{ccc} 1 & 0\\ 0 & 1 \\ \end{array} \right) \end{equation}

  • 一旦找到A逆,就可以在两步同乘A的逆矩阵来求解向量方程
  • 行列式不为零,则矩阵的逆存在

零矩阵

所有元素都为0的矩阵称为零矩阵,记为 O

零矩阵表示的映射是将所有的点都映射到原点的映射。

对角矩阵

在方阵中,对角线(从左上到右下)上的值称为对角元素。

非对角元素全部为0的矩阵称为对角矩阵。

对角矩阵表示的映射是沿着坐标轴伸缩,其中对角元素就是各坐标轴伸缩的倍率。

张量(tensor)

在某些情况下,我们会讨论坐标超过两维的数组。一般的,一个数组中的元素分布在若干维坐标的规则网络中,我们称之为张量。

一阶张量可以用向量表示,二阶张量可以用矩阵表示。

posted @ 2018-05-04 07:57  上帝不玩骰子  阅读(3362)  评论(0编辑  收藏  举报