zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

深度学习——线性代数

2023-02-18 16:34:34 时间

1、标量、向量、矩阵、张量

1.1 标量(Scalar)

  表示一个单独的数,通常用斜体小写字母表示,如$s\in R$ 。

1.2  向量 (Vector)

  表⽰一列数,这些数有序排列的,可以通过下标获取对应值,通常⽤粗体⼩写字母表⽰:$x\in R^{n}$ ,它表⽰元素取实数,且有 n个元素,第⼀个元素表⽰为:$x_{1}$。将向量写成列向量的形式:

    $x=\begin{bmatrix}x_{1}\\ x_{2}\\ ...\\ x_{n}\end{bmatrix}$  

  有时需要向量的⼦集,例如第 1, 3, 6 个元素,那么我们可以令集合 S = {1, 3, 6} ,然后⽤ xS 来表⽰这个⼦集。另外,我们⽤符号 - 表⽰集合的补集:x−1 表⽰除 x1 外 x 中的所有元素,x−S 表⽰除 x1, x3, x6 外 x 中的所有元素。

1.3 矩阵 (Matrix)

  表⽰⼀个二维数组,每个元素的下标由两个数字确定,通常⽤⼤写粗体字母表⽰:$A\in R^{n\times m}$,它表⽰元素取实数的 m ⾏ n 列矩阵,其元素可以表⽰为:A1,1, Am,n。我们⽤ : 表⽰矩阵的⼀⾏或者⼀列:Ai,: 为第 i ⾏,A:,j 为第 j 列。

   矩阵可以写成这样的形式:

     $\begin{bmatrix}A_{1,1} & A_{1,2}\\ A_{2,1} &A_{2,2}\end{bmatrix}$

  有时我们需要对矩阵进⾏逐元素操作,如将函数 f 应⽤到 A 的所有元素上,此时我们⽤ f(A)i,j 表⽰。

1.4 张量 (Tensor)

  超过二维的数组,我们⽤ A 表⽰张量,Ai,j,k 表⽰其元素(三维张量情况下)。

2、矩阵转置

   矩阵转置 (Transpose) 相当于沿着对角线翻转,定义如下:

     $A_{ij}^{T}=A_{ij}$

  矩阵转置的转置等于矩阵本⾝:

    $(A^{T})^{T}=A$

3、 矩阵加法

  加法即对应元素相加,要求两个矩阵的形状⼀样:

    $C=A+B,C_{i,j}=A_{i,j}+B_{i,j}$

   数乘即一个标量与矩阵每个元素相乘:

     $D=a\cdot B+c,D_{i,j}=a\cdot B_{i,j}+c$

  有时我们允许矩阵和向量相加的,得到⼀个矩阵,把 b 加到了 A 的每⼀⾏上,本质上是构造了⼀个将 b 按⾏复制的⼀个新矩阵,这种机制叫做⼴播 (Broadcasting):
    $C=A+b,C_{i,j}=A_{i,j}+b_{j}$

4、 矩阵乘法

  两个矩阵相乘得到第三个矩阵,我们需要 A 的形状为 m × n,B 的形状为 n × p,得到的矩阵为 C 的形状为 m × p:

    $C=AB$

  具体定义为:

    $C_{i,j}=\sum \limits_{k}A_{i,k}B_{i,k}$

5、 单位矩阵

  为了引⼊矩阵的逆,我们需要先定义单位矩阵 (Identity Matrix):单位矩阵乘以任意⼀个向量等于这个向量本⾝。记 In 为保持 n 维向量不变的单位矩阵,即:

    $I_{n}=R^{n\times m},\forall x\in R^{n},I_{n}x=x$

  单位矩阵的结构⼗分简单,所有的对⾓元素都为 1 ,其他元素都为 0,如:

    $\begin{bmatrix}1 & 0 &0 \\ 0&  1& 0\\ 0 & 0 & 1\end{bmatrix}$

6、 矩阵的逆

  矩阵 A 的逆 (Inversion) 记作$A^{-1}$,定义为⼀个矩阵使得

    $A^{-1}A=I_{n}$

  如果 $A^{-1}$存在,那么线性⽅程组 Ax = b 的解为:

    $A^{-1}Ax=I_{n}x=x=A^{-1}b$

7 、范数

  通常我们⽤范数 (norm) 来衡量向量,向量的 Lp 范数定义为:
  $\left \| x\right \|_{p}=(\sum \limits_{i}|x_{i}|)^{p},p\in R,p\geq1$

8、特征值分解

  如果⼀个 n × n 矩阵 A 有 n 组线性⽆关的单位特征向量$\left \{v^{(1)}、v^{(2)}...v^{(n)}\right \}$,以及对应的特征值 λ1, . . . , λn。将这些特征向量按列拼接成⼀个矩阵:$V=\left \{v^{(1)}、v^{(2)}...v^{(n)}\right \}$,并将对应的特征值拼接成一个向量$\lambda =\left \{\lambda_{(1)}、\lambda_{(2)}...\lambda_{(n)}\right \}$。

9、奇异值分解

  奇异值分解 (Singular Value Decomposition, SVD) 提供了另⼀种分解矩阵的⽅式,将其分解为奇异向量和奇异值。与特征值分解相⽐,奇异值分解更加通⽤,所有的实矩阵都可以进⾏奇异值分解,⽽特征值分解只对某些⽅阵可以。奇异值分解的形式为:
  A = UΣVT 

  若 A 是 m × n 的,那么 U 是 m × m 的,其列向量称为左奇异向量,⽽ V 是 n × n 的,其列向量称为右奇异向量,⽽ Σ 是 m × n 的⼀个对⾓矩阵,其对⾓元素称为矩阵 A 的奇异值。

  事实上,左奇异向量是 AA 的特征向量,⽽右奇异向量是 AA 的特征向量,⾮ 0 奇异值的平⽅是 AA 的⾮ 0 特征值。