线性代数篇

主线为花书第二章-线性代数,但其上面一些表述属实费解,于是参考B站3Blue1Brown线性代数和B站同济子豪兄的视频讲解。

先放一句3B1B的话共勉,伙计们不要被数学公式吓到,慢慢钻研,慢慢推肯定能学懂。线性代数这一部分相信一般理工科的同志们肯定都学过,这里主要是稍微看看回忆下。

标量、向量、矩阵和张量

标量(scalar):一个单独的数,用斜体表示,通常被赋予小写的变量名称。$ s \in et R$

向量(vector):物理中的向量有长度和方向决定,长度和方向不变可以随意移动,它们表示的是同一个向量。计算机中的向量更多的是对数据的抽象,可以根据面积和价格定义一个房子 [ 100 m 2 700000 ¥ ] \begin{bmatrix}100m^2\\700000¥\end{bmatrix} [100m2700000¥]一列数。

通过次序中的索引,我们可以确定每个单独的数。用粗体的小写变量名称,比如

$ \begin{equation}
x=\begin{bmatrix} x_1 \
x_2 \
\dots \ x_n
\end{bmatrix}.
\end{equation}$

线性代数中的向量可以理解为一个空间中的箭头,这个箭头起点落在原点。如果空间中有许多的向量,可以点表示一个向量,即向量头的坐标。

向量的加法:可以理解为在坐标中两个向量的移动。对于二维向量来说,例如:

[ 1 2 ] + [ 3 − 1 ] = [ 4 1 ] \begin{bmatrix} 1 \\ 2 \end{bmatrix} + \begin{bmatrix} 3 \\ -1 \end{bmatrix} = \begin{bmatrix} 4 \\ 1\end{bmatrix} [12]+[31]=[41]

数字和向量相乘:可以理解为向量的缩放。

2 [ 3 1 ] = [ 6 2 ] 2\begin{bmatrix} 3 \\ 1 \end{bmatrix}=\begin{bmatrix} 6 \\ 2 \end{bmatrix} 2[31]=[62]

矩阵(matrix):一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。粗体的大写变量名称,比如
A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2 ] \begin{equation}A= \begin{bmatrix} A_{1,1} & A_{1,2}\\ A_{2,1} & A_{2,2}\\ \end{bmatrix} \end{equation} A=[A1,1A2,1A1,2A2,2]

张量(tensor):一个数组(一般超过两维的)中的元素分布在若干维坐标的规则网格中.
张量 A A A中坐标为 ( i , j , k ) (i,j,k) (i,j,k)的元素记作 A i , j , k A _{i,j,k} Ai,j,k

直观理解:


向量与矩阵的操作

转置(transpose):是以对角线为轴的镜像
( A ⊤ ) i , j = A j , i . \begin{equation} (A^\top)_{i,j}= A_{j,i}. \end{equation} (A)i,j=Aj,i.

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

标量与矩阵相乘或相加:将其与矩阵的每个元素相乘或相加,比如 D = a ⋅ B + c D = a \cdot B + c D=aB+c,其中 D i , j = a ⋅ B i , j + c D_{i,j} = a\cdot B_{i,j} + c Di,j=aBi,j+c

广播(broadcasting):在深度学习中,我们也使用一些不那么常规的符号。允许矩阵和向量相加,产生一个新矩阵:
C = A + b C = A + b C=A+b 其中 C i , j = A i , j + b j C_{i, j} = A_{i, j} + b_{j} Ci,j=Ai,j+bj,即向量 b b b和矩阵 A A A的每一行相加

## 例
import numpy as np
M = np.arange(9).reshape(3, 3)
C = np.arange(3).reshape(3, 1)
print("M:")
print(M)
print("C:")
print(C)
print("M+C:")
print(M+C)
---------------------------------------
M:
[[0 1 2]
 [3 4 5]
 [6 7 8]]
C:
[[0]
 [1]
 [2]]
M+C:
[[ 0  1  2]
 [ 4  5  6]
 [ 8  9 10]]

矩阵乘积(matrix product):设两个矩阵 A m n A_{mn} Amn B k p B_{kp} Bkp 的乘积是 C C C,为了使乘法可被定义,必须满足 n = k n = k n=k. C = A B C = AB C=AB 的形状是 m m m x p p p.具体地,该乘法操作定义为
C i , j = ∑ k A i , k B k , j \begin{equation} C_{i,j}=\sum_k A_{i,k} B_{k,j} \end{equation} Ci,j=kAi,kBk,j

元素对应乘积(element-wise product)或Hadamard乘积(Hadamard product)是两个矩阵对应元素的乘积,记为 A ⊙ B A \odot B AB

点积(dot-product):两个相同维数的向量 x x x y y y可看作矩阵乘积 x T y x^Ty xTy,即对应元素相乘相加,是一个标量。

我们可以把矩阵乘积 C = A B C=AB C=AB中计算 C i , j C_{i,j} Ci,j的步骤看作是 A A A的第 i i i行和 B B B的第 j j j列之间的点积。

性质

  1. A ( B + C ) = A B + A C A(B+C) = AB + AC A(B+C)=AB+AC (分配律)
  2. A ( B C ) = ( A B ) C A(BC) = (AB)C A(BC)=(AB)C (结合律)
  3. A B ≠ B A AB \ne BA AB=BA (一般情况下不满足交换律)
  4. ( A B ) T = B T A T (AB)^T = B^TA^T (AB)T=BTAT
  5. x T y = ( x T y ) T = y T x x^Ty = (x^Ty)^T = y^Tx xTy=(xTy)T=yTx

线性方程组:
如以下线性方程组
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 . \begin{matrix} A_{1,1}x_1+A_{1,2}x_2+\cdots A_{1,n}x_n = b_1\\ A_{2,1}x_1+A_{2,2}x_2+\cdots A_{2,n}x_n = b_2\\ \cdots\\ A_{m,1}x_1+A_{m,2}x_2+\cdots A_{m,n}x_n = b_m. \end{matrix} A1,1x1+A1,2x2+A1,nxn=b1A2,1x1+A2,2x2+A2,nxn=b2Am,1x1+Am,2x2+Am,nxn=bm.
其中 A ∈ R m x n A \in ℝ^{mxn} ARmxn b ∈ R m b \in ℝ^{m} bRm 都是已知的, x ∈ R n x \in ℝ^{n} xRn是要求解的未知向量。以上等式可以写为: A x = b Ax=b Ax=b

单位矩阵和逆矩阵

单位矩阵(identity matrix):任意向量和单位矩阵相乘,都不会改变。我们将保持n维向量不变的单位矩阵记作 I n ∈ R n × n I_n \in R^{n\times n} InRn×n(很多教材用 E E E表示单位阵),单位矩阵的所有沿主对角线的元素都是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

逆矩阵:记作 A − 1 A^{-1} A1,其定义的矩阵满足如下条件:
A − 1 A = I n A^{-1}A=I_n A1A=In
可以用以下步骤求解方程组:

A x = b A − 1 A x = A − 1 b I n x = A − 1 b x = A − 1 b \begin{matrix} Ax = b \\ A^{-1}Ax = A^{-1}b \\ I_nx = A^{-1}b \\ x = A^{-1}b \end{matrix} Ax=bA1Ax=A1bInx=A1bx=A1b
如果逆矩阵存在,那么上式肯定对于每一个向量 b b b恰好存在一个解。逆矩阵可能也不存在

然而,逆矩阵 A − 1 A^{-1} A1主要是作为理论工具使用的,并不会在大多数软件应用程序中实际使用。这是因为逆矩阵 A − 1 A^{-1} A1在数字计算机上只能表现出有限的精度,有效使用向量 b b b的算法通常可以得到更精确的 x x x

线性相关

在我们一般教科书上线性相关定义为:Font metrics not found for font: .线性相关⇔至少有一个向量可以用其余向量线性表示。

对二维向量而言,两个数乘向量称为两个向量的线性组合 a v ⃗ + b w ⃗ a\vec v+ b\vec w av +bw
两个不共线的向量通过不同的线性组合可以得到二维平面中的所有向量。
再看线性相关定义,这样就可以直观理解了。

当然两个共线的向量通过线程组合只能得到一个直线的所有向量。

如果两个向量都是零向量那么它只能在原点。

放到三维,而如果三个任意数分别乘三个不在一个平面上的三维向量则可以表示三维空间中的所有向量。
即这三个三维向量进行线性组合就可以得到这个三维空间的任意向量。
当然如果有两个向量共面,两个任意数分别乘这两个三维向量,会得到过这两个向量与原点的一个平面。即这三个向量的线性组合只能得到一个面上的所有向量。

张成空间

定义:向量 及 的的全部线性组合(Linear Combination, )构成的向量空间称为“张成(Span)的空间”。

  • 一般来说两个向量张成空间可以是直线、平面。
  • 三个向量张成空间可以是平面、空间。

如果多个向量,并且可以移除其中一个而不减小张成空间,那么它们是线性相关的,也可以说一个向量可以表示为其他向量的线性组合 u ⃗ = a v ⃗ + b w ⃗ \vec u = a \vec v + b\vec w u =av +bw
如果所有的向量都给张成的空间增加了新的维度,它们就成为线性无关的 u ⃗ ≠ a v ⃗ + b w ⃗ \vec u \neq a \vec v + b\vec w u =av +bw

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

线性空间

猜你喜欢

转载自blog.csdn.net/weixin_45755332/article/details/128868585