• #机器学习--补充数学基础--线性代数


    引言

            本系列博客旨在为机器学习(深度学习)提供数学理论基础。因此内容更为精简,适合二次学习的读者快速学习或查阅。


    1、张量(Tensor)

            一般的,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量,张量 A A A 中的坐标为 ( i , j , k ) (i,j,k) (i,j,k) 的元素记作 A i , j , k A_{i,j,k} Ai,j,k

    2、广播(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 的每一行相加,这种简写方法使我们无须在加法操作前定义一个将向量 b b b 复制到每一行而生成的矩阵,这种隐式地复制向量 b b b 到很多位置的方式,称为广播

    3、线性变换

            在进行线性变换 y = A x y=Ax y=Ax 的时候,若线性变换矩阵 A A A 为正交矩阵则表示对 x x x 进行旋转,若线性变换矩阵 A A A 为对角矩阵则表示对 x x x 进行拉伸。

    4、Hadamard乘积

            设 A , B ∈ C m ∗ n A,B\in C^{m*n} A,BCmn A = { a i j } A=\{a_{ij}\} A={aij} B = { b i j } B=\{b_{ij}\} B={bij} ,称 m ∗ n m*n mn 矩阵 [ a 11 b 11 a 12 b 12 … a 1 n b 1 n a 21 b 21 a 22 b 22 … a 2 n b 2 n ⋮ ⋮ ⋮ a m 1 b m 1 a m 2 b m 2 … a m n b m n ]

    [a11b11a12b12a1nb1na21b21a22b22a2nb2nam1bm1am2bm2amnbmn]" role="presentation" style="position: relative;">[a11b11a12b12a1nb1na21b21a22b22a2nb2nam1bm1am2bm2amnbmn]
    a11b11a21b21am1bm1a12b12a22b22am2bm2a1nb1na2nb2namnbmn         为矩阵 A A A B B BHadamard乘积,记作 A ⊙ B A\odot B AB

    5、范数(norm)

            我们通常使用范数的函数来衡量向量的大小,形式上, L p L^{p} Lp 范数的定义如下: ∣ ∣ x ∣ ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p ||x||_{p}=\left (\sum_{i}|x_{i}|^{p}\right)^{\frac{1}{p}} ∣∣xp=(ixip)p1        其中 p ∈ R p\in R pR p ≥ 1 p\ge1 p1
            当 p = 2 p=2 p=2 时, L 2 L^{2} L2 范数称为欧几里得范数,它表示从原点出发到向量 x x x 确定的点的欧几里得距离,简写为 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣
            平方 L 2 L^{2} L2 范数也经常用来衡量向量的大小,可以简单地通过点积 x T x x^{T}x xTx 计算,平方 L 2 L^{2} L2 范数在数学和计算上都比 L 2 L^{2} L2 范数本身更方便,但其在原点附近增长的十分缓慢。因此当机器学习问题中零和非零元素之间的差异非常重要时,通常会使用 L 1 L^{1} L1 范数。
            另一个经常在机器学习中出现的范数是 L ∞ L^{\infty} L 范数,也被称为最大范数,这个范数表示向量中具有最大幅值的元素的绝对值: ∣ ∣ x ∣ ∣ ∞ = max ⁡ i ∣ x i ∣ ||x||_{\infty}=\max_{i}|x_{i}| ∣∣x=imaxxi        有时候我们可能也希望衡量矩阵的大小,通常使用F(Frobenius)范数,即 ∣ ∣ A ∣ ∣ F = ∑ i , j A i , j 2 ||A||_{F}=\sqrt{\sum_{i,j}A^{2}_{i,j}} ∣∣AF=i,jAi,j2

    6、特征分解

            我们对12进行分解质因数,即 12 = 2 ∗ 2 ∗ 3 12=2*2*3 12=223 ,从而得知12不能被5整除,但可以被3整除。正如我们可以通过分解质因数得出整数的一内在些性质,我们也可以通过分解矩阵来发现矩阵表示成数组元素时不明显的函数性质。
            单位特征向量,如果 x x x A A A特征向量,那么任何缩放后的向量 s x sx sx 也是 A A A 的特征向量,此外 x x x s x sx sx 具有相同的特征值,因此通常我们讨论特征向量时只考虑单位特征向量。
            假设矩阵 A A A n n n 个线性无关的单位特征向量 { x 1 , … , x n } \{x_{1},\dots,x_{n}\} {x1,,xn} ,对应着特征值 { λ 1 , … , λ n } \{\lambda_{1},\dots,\lambda_{n}\} {λ1,,λn} ,我们将特征向量连接成一个矩阵,使得每一列是一个特征向量: V = [ x 1 , … , x n ] V=[x_{1},\dots,x_{n}] V=[x1,,xn] 。类似地,我们也可以将特征值连接成一个向量 λ = [ λ 1 , … , λ n ] \lambda=[\lambda_{1},\dots,\lambda_{n}] λ=[λ1,,λn] 。因此 A A A特征分解可以记作 A = V d i a g ( λ ) V T A=Vdiag(\lambda)V^{T} A=Vdiag(λ)VT        所有特征值都是正数的矩阵称为正定;所有特征值都是非负数的矩阵称为半正定。同样地,所有特征值都是负数的矩阵称为负定;所有特征值都是非正数的矩阵称为半负定。其中半正定矩阵还满足 ∀ x , x T A x ≥ 0 \forall x,x^{T}Ax\ge0 x,xTAx0 ,正定矩阵还保证 x T A x = 0 ⇒ x = 0 x^{T}Ax=0\Rightarrow x=0 xTAx=0x=0

    7、奇异值分解(singular value decomposition,SVD)

            由于特征分解只能适用于方阵,且某些情况下会涉及复数而非实数,因此为了能够对任意实数矩阵进行分解,提出了另一种分解方式,即奇异值分解。与特征分解类似,奇异值分解将矩阵 A A A 分解成三个矩阵的乘积: A = U D V T A=UDV^{T} A=UDVT        其中 A A A 是一个 m ∗ n m*n mn 的矩阵, U U U 是一个 m ∗ m m*m mm 的正交矩阵, D D D 是一个 m ∗ n m*n mn 的对角矩阵, V V V 是一个 n ∗ n n*n nn 的正交矩阵,对角矩阵 D D D 对角线上的元素称为矩阵 A A A奇异值,矩阵 U U U 的列向量称为左奇异向量,矩阵 V V V 的列向量称为右奇异向量

    8、穆尔-彭罗斯广义逆矩阵(Moore-Penrose generalized inverse matrix)

            一般情况下,只有方阵才可能有逆矩阵,但某些情况我们需要求一个非方阵的逆矩阵,因此需要引入穆尔-彭罗斯广义逆矩阵,其定义如下: A + = lim ⁡ α ↘ 0 ( A T A + α I ) − 1 A T ) A^{+}=\lim_{\alpha\searrow0}(A^{T}A+\alpha I)^{-1}A^{T}) A+=α0lim(ATA+αI)1AT)        但计算伪逆的实际算法没有基于这个定义,而是使用下面的公式: A + = V D + U T A^{+}=VD^{+}U^{T} A+=VD+UT        其中,矩阵 U U U D D D V V V 是矩阵 A A A 奇异值分解后得到的矩阵,对角矩阵 D D D 的伪逆 D + D^{+} D+ 是其非零元素取倒数之后再转置得到的。

    9、迹运算

            定义:迹运算返回的是矩阵对角元素的和: T r ( A ) = ∑ i A i , i Tr(A)=\sum_{i}A_{i,i} Tr(A)=iAi,i

            性质:
            1) T r ( A ) = T r ( A T ) Tr(A)=Tr(A^{T}) Tr(A)=Tr(AT)
            2) ∣ ∣ A ∣ ∣ F = T r ( A A T ) ||A||_{F}=\sqrt{Tr(AA^{T})} ∣∣AF=Tr(AAT)
            3) d f ( x ) = d ( T r ( A x ) ) = A T df(x) = d(Tr(Ax))=A^{T} df(x)=d(Tr(Ax))=AT
            4) 标量的迹运算结果是它本身: a = T r ( a ) a=Tr(a) a=Tr(a)
            5) 循环置换矩阵乘积,迹运算结果不变: T r ( A B C ) = T r ( C A B ) = T r ( B C A ) Tr(ABC)=Tr(CAB)=Tr(BCA) Tr(ABC)=Tr(CAB)=Tr(BCA)

  • 相关阅读:
    六款 Linux 常用远程连接神器,你知道几个?
    牛客面试刷题
    java计算机毕业设计物业后台管理系统源码+数据库+系统+lw文档+mybatis+运行部署
    一行代码解决Three.js中只能在一侧看到物体的问题
    SpringBoot第三方bean管理
    电商通用(二)
    Flink Yarn Per Job - Yarn应用
    Linux ls-al命令实现,tree命令实现,不带缓存的文件IO(open,read,write)
    【TypeScript介绍】一文带你初步了解TypeScript
    【优化模型】求解二次规划问题
  • 原文地址:https://blog.csdn.net/qq_43519779/article/details/126201632