小言_互联网的博客

算法工程师的数学基础|线性代数中的矩阵

311人阅读  评论(0)

【算法工程师的数学基础】系列将会从线性代数、微积分、数值优化、概率论、信息论五个方面进行介绍,感兴趣的欢迎关注【搜索与推荐Wiki】公众号,获得最新文章。

《算法工程师的数学基础》已更新:

线性代数主要包含向量、向量空间(或称线性空间)以及向量的线性变换和有限维的线性方程组。本篇文章主要介绍线性代数部分中的矩阵知识。


线性映射

线性映射(linear map) 是指从线性空间 V V 到线性空间 W W 的一个映射函数: f W f \rightarrow W ,并满足:对于 V V 中任何两个向量 u u v v 以及任何标量 c c ,有:
f ( u + v ) = f ( u ) + f ( v ) f ( c v ) = c f ( v ) f(u+v) = f(u) + f(v)\\f(cv) = cf(v)
两个有限维欧式空间的映射函数 f : R n R m f: R^n \rightarrow R^m 可以表示为:
y = A x = Δ [ a 11 x 1 + a 12 x 2 + . . . + a 1 n x n a 21 x 1 + a 22 x 2 + . . . + a 2 n x n . . . a m 1 x 1 + a m 2 x 2 + . . . + a m n x n ] y = Ax \overset{ \Delta }{=} \begin{bmatrix}a_{11} x_1 + a_{12}x_2 + ... + a_{1n}x_n \\ a_{21} x_1 + a_{22}x_2 + ... + a_{2n}x_n \\ . \\ . \\ . \\ a_{m1} x_1 + a_{m2}x_2 + ... + a_{mn}x_n \end{bmatrix}
其中 A A 定义为 m n m*n 的矩阵(matrix),是一个由 m m n n 列元素排列成的矩形阵列。一个矩阵的第 i i 行,第 j j 列上的元素表示为 A i j A_{ij}

矩阵操作

如果 A A B B 都是 m n m*n 的矩阵,则 A A B B 的加法结果也是 m n m*n 的矩阵,其每个元素都是 A A B B 对应位置元素相加。

[ A + B ] i j = a i j + b i j [A+B]_{ij} = a_{ij} + b_{ij}

乘积 假设有两个 A A B B 分别表示两个线性映射 g : R m R k g: R^m \rightarrow R^k f : R n R m f: R^n \rightarrow R^m ,则其复合线性映射:
( g f ) ( x ) = g ( f ( x ) ) = g ( B x ) = A ( B ( x ) ) = ( A B ) ( x ) (g \circ f)(x) = g(f(x)) = g(Bx) = A(B(x)) = (AB)(x)
其中 A B AB 表示矩阵 A A B B 的乘积,定义为:
[ A B ] i j = k = 1 m a i k b k j [AB]_{ij} = \sum_{k=1}^{m}a_{ik}b_{kj}
两个矩阵的乘积仅当第一个矩阵的列数和第二个矩阵的行数相等时才能定义。如果 A A k m k*m B B m n m*n ,这 A B A*B 的结果是一个 k n k*n 的矩阵。

矩阵的乘法满足结合律和分配律:

  • 结合律: ( A B ) C = A ( B C ) (AB)C = A(BC)
  • 分配律: ( A + B ) C = A C + B C , C ( A + B ) = C A + C B (A+B)C = AC+BC, C(A+B)=CA + CB

Hadamard积 A A B B 的Hadamard积,也称为逐点乘积,为 A A B B 中对应的元素相乘。
[ A B ] i j = a i j b i j [A \odot B]_{ij} = a_{ij} b_{ij}
一个标量 c c 与矩阵 A A 乘积为 A A 的相应位置的元素与 c c 的乘积:
[ c A ] i j = c a i j [cA]_{ij} = ca_{ij}

转置 m n m*n 矩阵 A A 的转置(transposition)是一个 n m n*m 的矩阵,记为 A T A^T A T A^T 的第 i i 行第 j j 列的元素是原矩阵 A A 的第 j j 行第 i i 列的元素
[ A T ] i j = [ A ] j i [A^T]_{ij}=[A]_{ji}

向量化 矩阵的向量化是将矩阵表示为一个列向量。这里vec是向量化算子。设 A = [ a i j ] m n A=[a_{ij}]_{m*n} ,则:
v e c ( A ) = [ a 11 , a 21 , . . . , a m 1 , a 12 , a 22 , . . . , a m 2 , . . . , a 1 n , . . . , a m n ] T vec(A) = [a_{11}, a_{21},...,a_{m1},a_{12},a_{22},...,a_{m2},...,a_{1n},...,a{mn}]^T

方块矩阵 A A 的对角线元素之和称为它得迹(trace),记为 t r ( A ) tr(A) 。尽管矩阵得乘法不满足交换律,但它们得迹相同,即 t r ( A B ) = t r ( B A ) tr(AB)=tr(BA)

相信读者看到这里,肯定会有疑问,这么简单的「迹」,有什么特殊意义的?因为迹是有所有矩阵特征值的和,在求矩阵特征值的时候特别重要。

行列式 方块矩阵 A A 的行列式是一个将其映射到标量的函数,记作 d e t ( A ) det(A) A |A| 。行列式可以看做是有向面积或体积的概念在欧氏空间的推广。在 n n 维欧式空间中,行列式描述的是一个线性变换对体积所造成的影响。

一个 n n n*n 的方块矩阵 A A 的行列式定义为:
d e t ( A ) = σ S n s g n ( σ ) i = 1 n a i , σ ( i ) det(A)=\sum_{\sigma \in S_n} sgn(\sigma) \prod_{i=1}^{n} a_{i,\sigma(i)}
其中 S n S_n { 1 , 2 , . . . , n } \{ 1,2,...,n \} 的所有排列的集合, σ \sigma 是一种一个排列, σ ( i ) \sigma(i) 是元素 i i 在排列 σ \sigma 中的位置, s g n ( σ ) sgn(\sigma) 表示排列 σ \sigma 的符号差,定义为:
( σ ) = { 1 0 (\sigma) = \left\{\begin{matrix}1 \\ 0\end{matrix}\right.
σ \sigma 中的逆序对有偶数个是为1,当 σ \sigma 中的逆序对有奇数个是0

其中逆序对的定义为:在排列 σ \sigma 中,如果有序数对 ( i , j ) (i,j) 满足 1 i < j n 1 \leq i < j \leq n σ ( i ) > σ ( j ) \sigma(i) > \sigma(j) ,则其为 σ \sigma 的一个逆序对。

一个矩阵 A A 的列秩是 A A 的线性无关的列向量数量,行秩是 A A 的线性无关的行向量数量。一个矩阵的列秩和行秩总是相等的,简称为秩(rank)。

一个 m n m*n 的矩阵的秩最大为 m i n ( m , n ) min(m,n) 。两个句子的乘积 A B AB 的秩 r a n k ( A B ) m i n ( r a n k ( A ) , r a n k ( B ) ) rank(AB) \leq min( rank(A), rank(B))

范数 矩阵的范数有很多种形式,其中常用的 l p l_p 范数定义为:
A p = ( i = 1 m j = 1 n a i j p ) 1 / p ||A||_p = ( \sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^p )^{1/p}

矩阵类型

对称矩阵(symmetric) 指其转置等于自己的矩阵,即满足 A = A T A=A^T

稀疏矩阵(sparse matrix) 矩阵中分布有大量的元素 0,即非 0 元素非常少,这类矩阵称为稀疏矩阵。如下:
[ 0 1 0 0 0 2 0 1 0 ] \begin{bmatrix}0 & 1 & 0 \\ 0& 0 & 2 \\ 0& 1 & 0\end{bmatrix}

上(下)三角矩阵 一个 m m m*m 的矩阵的对角线称为主对角线,如果除主对角线之外的元素全部为0,则主对角线下的矩阵称为上三角矩阵,主对角线上的矩阵称为下三角矩阵

对角矩阵(diagonal matrix) 是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。一个 n n n*n 的对角矩阵 A A 满足:
[ A ] i j = 0 i f i j , i , j { 1 , . . . , n } [A]_{ij} = 0 \, \, if \, i\neq j, \forall i,j \in \{1,...,n\}
对角矩阵 A A 也可以记为 d i a g ( a ) diag(a) a a 为一个 n n 维向量,并满足:
[ A ] i j = a i [A]_{ij} = a_i
n n n*n 的对角矩阵 A = d i a g ( a ) A=diag(a) n n 维向量 b b 的乘积为一个 n n 维向量
A b = d i a g ( a ) b = a b Ab = diag(a)b = a \odot b
其中$\odot 表示点乘,即 (a \odot b)_i = a_i b_i$

单位矩阵(identity matrix) 是一种特殊的对角矩阵,其主对角线元素为1,其余元素为0。 n n 阶单位矩阵 I n I_n ,是一个 n n n *n 的方块矩阵,可以记为 I n = d i a g ( 1 , 1 , 1 , . . . ) I_n=diag(1,1,1,...)

一个 m n m*n 的矩阵 A A 和单位矩阵的乘积等于其本身
A I n = I m A = A AI_n = I_mA = A

逆矩阵 对于一个 n n n*n 的方块矩阵 A A ,如果存在另一个方块矩阵 B B 使得
A B = B A = I n AB = BA = I_n
为单位矩阵,则称 A A 是可逆的。矩阵 B B 称为 A A 的逆矩阵(inverse matrix),记为 A 1 A^{-1}

一个方阵的行列式等于0当且仅当该方阵不可逆。

正定矩阵(positive-definite matrix) 对于一个 n n n*n 的对称矩阵 A A ,如果对于所有的非零向量 x R n x \in R^n ,都满足 x T A x > 0 x^T A_x > 0 ,则 A A 为正定矩阵。如果 x T A x 0 x^T A_x \geq 0 ,则 A A 是半正定矩阵。

正交矩阵(orthogonal matrix) 正交矩阵 A A 为一个方块矩阵,其逆矩阵等于其转置矩阵。

A T = A 1 A^T = A^{-1}
等价于 A T = A A T = I n A^T=AA^T=I_n

Gram矩阵 向量空间中一组向量 v 1 , v 2 , . . . , v n v_1, v_2, ..., v_n 的Gram矩阵, G G 是内积的对称矩阵,其元素 G i j G_{ij} v i T v j v_i^T v_j

特征值与特征矢量

如果一个标量 λ \lambda 和一个非零向量 v v 满足:
A v = λ v Av = \lambda v
λ \lambda v v 分别称为矩阵 A A 的特征值(eigenvalue)和特征向量(eigenvector)

矩阵分解

一个矩阵通常可以用一些比较简单的矩阵来表示,称为矩阵分解(matrix decomposition,matrix factorization)

奇异值分解 一个 m n m*n 的矩阵 A A 的奇异值分解(Singualr Value Decomposition,SVD)定义为:
A = U D V T A = UDV^T
其中 U , V U,V 分别为 m m , n n m*m, n*n 的正交矩阵, D D m n m*n 的对角矩阵,其对角线上的元素称为奇异值(singular value)

特征分解 一个 n n n*n 的方块矩阵 A A 的特征分解(Eigendecomposition)定义为:
A = Q B Q 1 A= QBQ^{-1}
其中 Q Q n n n*n 的方块矩阵,其每一列都为 A A 的特征向量, B B 为对角阵,其每一个对角元素 A A 的特征值。

如果 A A 为对称矩阵,则 A A 可以被分解为:
A = Q B Q T A = QBQ^T
其中 Q Q 为正交阵。

好了,线性代数中的矩阵介绍和相关概念已经介绍完毕了,欢迎转发分享,让更多的人看到!


扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!


转载:https://blog.csdn.net/Gamer_gyt/article/details/104686771
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场