深度学习-必备的数学知识-线性代数2

深度学习

必备的数学知识

线性代数

我们已经在线性代数1中讲解了四个重要概念:标量、向量、矩阵和张量。以及转置、矩阵相加、标量与矩阵相乘或相加和向量和矩阵相加。
这篇文章将为大家讲解矩阵乘积以及线性方程组。

矩阵乘积

两个矩阵的矩阵乘积(matrix product)是第三个矩阵。写作
C = A B \mathbf{C}=\mathbf{A}\mathbf{B} C=AB
为使矩阵乘积具有良定义,矩阵 A \mathbf{A} A的列数与矩阵 B \mathbf{B} B的行数必须相同。即 A ∈ R m × n \mathbf{A} \in R^{m\times n} ARm×n, B ∈ R n × p \mathbf{B} \in R^{n\times p} BRn×p。那么矩阵 C C C的行数为m,列数为p,即 C ∈ R m × p C \in R^{m \times p} CRm×p
乘法操作定义为
C i , j = ∑ k A i , k B k , j C_{i,j}=\sum_{k} A_{i,k}B_{k,j} Ci,j=kAi,kBk,j
两个矩阵标准乘积不是将对应元素的乘积,对应元素的乘积称之为元素对应乘积(element-wise product) 或 Hadamard乘积(Hadamard product),记作 A ⊙ B \mathbf{A} \odot \mathbf{B} AB
两个相同维度的向量的点积(dot product,又称标量积和内积)是指两个向量对应元素的乘积的和。形式化的说,若 x ∈ R m \mathbf{x} \in R^m xRm, y ∈ R m \mathbf{y} \in R^m yRm,则它们的点积定义为
x ⋅ y = ∑ i m x i y i \mathbf{x} \cdot \mathbf{y}=\sum_{i}^{m}x_iy_i xy=imxiyi
需要注意的是两个向量的点积是标量。
因为我们可以将向量看作一列的矩阵,所以我们可以将 x ⋅ y \mathbf{x} \cdot \mathbf{y} xy看作矩阵乘积 x T y \mathbf{x}^T\mathbf{y} xTy。我们可以将 C = A B \mathbf{C}=\mathbf{A}\mathbf{B} C=AB中计算 C i , j C_{i,j} Ci,j的过程看作是在计算 A \mathbf{A} A的第i行和 B \mathbf{B} B的第j列之间的点积。
矩阵乘积具有很多的性质,比如:
矩阵乘积服从分配律:
  A ( B + C ) = A B + A C \ \mathbf{A}(\mathbf{B}+\mathbf{C})=\mathbf{A}\mathbf{B}+\mathbf{A}\mathbf{C}  A(B+C)=AB+AC
矩阵乘积服从结合律:
A ( B C ) = B ( A C ) \mathbf{A}(\mathbf{B}\mathbf{C})=\mathbf{B}(\mathbf{A}\mathbf{C}) A(BC)=B(AC)
但是矩阵乘积并不总是满足交换律:
A B ≠ B A \mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A} AB=BA
这很好理解,因为矩阵乘积涉及到了行和列的点积。当计算两个矩阵的乘积时,我们是将第一个矩阵的行和第二个矩阵的列进行点积,如果交换两个矩阵的顺序,那么就是将第二个矩阵的行和第一个矩阵的列进行点积,这可能会得到完全不同的结果。
此外还有一个重要的原因是:转换两个矩阵的顺序后,这两个矩阵的乘积可能没有定义。例如:我们有一个 m × n m \times n m×n的矩阵 A \mathbf{A} A n × p n \times p n×p的矩阵 B \mathbf{B} B,其中 p ≠ m \mathbf{p \neq m} p=m。对于 A B \mathbf{A}\mathbf{B} AB,因为矩阵 A \mathbf{A} A的列数和矩阵 B \mathbf{B} B行数相同,所以有定义。但 B A \mathbf{B}\mathbf{A} BA是没有定义的,因为矩阵 B \mathbf{B} B的列数和矩阵 A \mathbf{A} A行数不相同。
对于矩阵的转置我们有:
( A B ) T = B T A T (\mathbf{A}\mathbf{B})^T=\mathbf{B}^T\mathbf{A}^T (AB)T=BTAT

两个向量的点积满足交换律:
x T y = y T x \mathbf{x}^T\mathbf{y}=\mathbf{y}^T\mathbf{x} xTy=yTx
这一点很好证明:
我们对 x T y \mathbf{x}^T\mathbf{y} xTy 进行转置可以到 y T x \mathbf{y}^T\mathbf{x} yTx
我们知道两个向量的点积也是标量,而标量的转置是自身。所以我们有
x T y = ( x y ) T = y T x \mathbf{x}^T\mathbf{y}= (\mathbf{x}\mathbf{y})^T=\mathbf{y}^T\mathbf{x} xTy=(xy)T=yTx

线性方程组

形如
a 1 x 1 + a 2 x 2 + . . . + a n x n = b a_1x_1+a_2x_2+...+a_nx_n=b a1x1+a2x2+...+anxn=b
的方程称为线性方程,其中 a 1 , a 2 , . . . , a 3 a_1,a_2,...,a_3 a1,a2,...,a3 b b b是实数, x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn是未知量。
大家是否觉得这个式子很熟悉?是的,我们可以将它表示为两个向量 a \mathbf{a} a x \mathbf{x} x的点积等于 b b b。即
a T x = b \mathbf{a}^T \mathbf{x}=b aTx=b
其中 a \mathbf{a} a是已知的实数向量, b b b为标量, x \mathbf{x} x为未知向量。
由n个线性方程组成的方程组称为线性方程组。
形如
a 1 , 1 x 1 + a 1 , 2 x 2 + . . . + a 1 , n x n = b 1 a 2 , 1 x 1 + a 2 , 2 x 2 + . . . + a 2 , n x n = b 2 . . . . a m , 1 x 1 + a m , 2 x 2 + . . . + a m , n x n = b m a_{1,1}x_1+a_{1,2}x_2+...+a_{1,n}x_n=b_1\\ a_{2,1}x_1+a_{2,2}x_2+...+a_{2,n}x_n=b_2\\ ....\\ a_{m,1}x_1+a_{m,2}x_2+...+a_{m,n}x_n=b_m a1,1x1+a12x2+...+a1,nxn=b1a2,1x1+a22x2+...+a2,nxn=b2....am,1x1+am2x2+...+am,nxn=bm
这个方程组相当于 m × n m \times n m×n的矩阵 A \mathbf{A} A和一个只有 n n n维向量(n行1列的矩阵) x \mathbf{x} x的乘积,结果是m维向量(m行一列的矩阵) b \mathbf{b} b。用数学语言表示:
A x = b ( 1 ) \mathbf{A}\mathbf{x}=\mathbf{b}\\ (1) Ax=b1
其中 A ∈ R m × n \mathbf{A} \in R^{m\times n} ARm×n是已知矩阵, b ∈ R m \mathbf{b} \in R^m bRm 是已知向量, x ∈ R n \mathbf{x} \in R^n xRn 是未知向量。
我们可以将上式重写为
A 1 , : x = b 1 A 2 , : x = b 2 . . . . A m , : x = b m \mathbf{A}_{1,:}\mathbf{x}=b_1\\ \mathbf{A}_{2,:}\mathbf{x}=b_2\\ ....\\ \mathbf{A}_{m,:}\mathbf{x}=b_m\\ A1,:x=b1A2,:x=b2....Am,:x=bm

对于大部分的矩阵 A \mathbf{A} A,我们都可以通过矩阵逆(matrix inversion)来求解式(1)。
矩阵 A \mathbf{A} A的矩阵逆记作 A − 1 \mathbf{A^{-1}} A1,其定义的矩阵满足如下条件
A A − 1 = I n \mathbf{A}\mathbf{A^{-1}}=\mathbf{I}_{n} AA1=In
上式中的 I n \mathbf{I}_{n} In是单位矩阵(identity matrix)。
任意向量和单位矩阵相乘,都不会改变。我们将保持n维向量不变的单位矩阵记作 I n \mathbf{I}_{n} In.
形式上, I ∈ R n × n \mathbf{I} \in R^{n \times n} IRn×n
∀ x ∈ R n , I n x = x \forall \mathbf{x} \in R^{n} , \mathbf{I}_n\mathbf{x}=\mathbf{x} xRn,Inx=x
单位矩阵的结构很简单:所有沿主对角线的元素都是1,而其他位置的所有元素都是0。如下所示:
[ 1 0 0 0 1 0 0 0 1 ] \begin{bmatrix} 1 &0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix} 100010001
我们可以利用矩阵逆的特性,通过以下步骤求解式(1)
A x = b A − 1 A x = A − 1 b I n x = A − 1 b x = A − 1 b \mathbf{A}\mathbf{x}=\mathbf{b}\\ \mathbf{A}^{-1}\mathbf{A}\mathbf{x}=\mathbf{A}^{-1}\mathbf{b}\\ \mathbf{I}_{n}\mathbf{x}=\mathbf{A}^{-1}\mathbf{b}\\ \mathbf{x}=\mathbf{A}^{-1}\mathbf{b} Ax=bA1Ax=A1bInx=A1bx=A1b
本系列教程所选教材是深度学习领域奠基性的经典教材《DEEP LEARNING》,它是由LanGoodfello、YoshuaBengio和AraonCourille所撰写。建议有条件的去研读原书,本文章是对这本教材的总结和理解。如有问题,恳请指正。

  • 37
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值