• Deep Learning(花书)教材笔记-Math and Machine Learning Basics(线性代数拾遗)


    I. Linear Algebra

    1. 基础概念回顾

    • scalar: 标量
    • vector: 矢量,an array of numbers.
    • matrix: 矩阵, 2-D array of numbers.
    • tensor: 张量, 更高维的一组数据集合。
    • identity Matricx:单位矩阵
    • inverse Matrix:逆矩阵,也称非奇异函数。当矩阵A的行列式(|A|≠0)时,则存在(A^{-1}).

    2. Span

    3. Norm

    (L^p) norm 定义如右: (||x||_p=(sum_i|x_i|^p)^{frac{1}{p}}) for (p∈R,p≥1).

    任何满足如下条件的函数都可视为norm:

    • (f(x)=0 \, Rightarrow x=0)
    • (f(x+y)≤f(x)+f(y)) (三角不等式)
    • (forall α ∈R,f(αx)=|α|f(x))

    1) (L^2) Norm

    最常用的是二范式,即(L^2) norm,也称为Euclidean norm(欧几里得范数)。因为在机器学习中常用到求导,二范式求导之后只与输入数据本身有关,所以比较实用。

    2) (L^1) Norm

    但是二范式在零点附近增长很慢,而且有的机器学习应用需要在零点和非零点之间进行区分,此时二范式显得力不从心,所以我们可以选择一范式,即(L^1) norm,其表达式为:(||x||_1=sum_i|x_i|).

    3) (L^0) Norm

    0范式表示矢量中非0的元素的个数。其实0范式这个说法是不严谨的,因为它不满足第三个条件,but whatever~

    4) (L^∞) Norm

    无穷大范式,也叫max norm,它表示矢量中所有元素绝对值的最大值,即

    [||x||_∞=max |x_i| ]

    5) F norm

    F norm全称是Frobenius Norm,其表达式如下:

    [||A||_F=sqrt{sum_{i,j}A_{i,j}^2} ]

    4.特殊矩阵和向量

    1) Diagonal matrix(对角矩阵)

    定义: a matrix (D) is diagonal if and only if (D_{i,j}=0) for all (i≠j).

    仔细看定义!!!这里并没有说必须是squre matrix(方阵),所以对角矩阵不一定是方阵,rectangle matrix也有可能是对角矩阵(只要对角线上不为0,其余部分都为0)。

    2) Orthogonal Matrix(正交矩阵)

    定义: 若(A^TA=AA^T=I),那么n阶实矩阵A则为正交矩阵。

    注意矩阵A必须为方阵,另外有定义可知 (A^{-1}=A^T)

    3) Orthonomal Matrix(标准正交矩阵)

    定义: 满足正交矩阵的要求,且为x和y均为unit vector(单位矢量)。

    5. Eigendecomposition(特征分解)

    很多数学概念其实都可以分解成很小的组成部分,然后通过观察这些组成进而找出它们可能存在的通用的性质。例如对于一个整数12,我们会试着把它分解成12=2×2×3,由这个表达式我们可以得到一些有用的结论,例如12不能被5整除,任何数乘以12后都能被3整除等等。

    很自然地,对于矩阵,我们也想看看他是否也能被拆分呢,所以就引入了特征分解的概念,通过特征分解我们会得到矩阵(A)的(一组)eigenvector(特征向量): (v)eigenvalue(特征值): (λ),它们满足如下等式:

    [Av=λv ]

    (特征向量当然也可以在右边,但是通常更习惯于放在右边。)

    假设矩阵(A)有n个线性独立的特征向量({v^{(1)}, ..., v^{(n)}})以及对应的特征值({ λ_1, ...,λ_n })。记
    (V=[v^{(1)}, ..., v^{(n)}],λ=[λ_1, ...,λ_n ]),则矩阵A的特征分解如下:

    [A=Vdiag(λ)V^{-1} ]

    另外实对称矩阵的特征分解用得比较多,表达式为(A=QLambda Q^{-1}),(Q)表示由特征向量组成的正交矩阵,(Lambda)表示对角矩阵,注意(Q)(Lambda)的值是一一对应的。

    • 当一个矩阵的特征值都为正时,该矩阵则为positive definite(正定矩阵).
    • 当一个矩阵的特征值都大于等于0时,该矩阵则为positive semidefinite(半正定矩阵).
    • 当一个矩阵的特征值都为负时,该矩阵则为negative definite(负定矩阵).
    • 当一个矩阵的特征值都小于等于0时,该矩阵则为negative semidefinite(半负定矩阵).

    6. Singular Value Decomposition(奇异值分解)

    Singular Value Decomposition (SVD) 可以把一个矩阵分解得到 singular vectors和singular values。SVD可以像特征值分解一样帮助我们对一个矩阵进行分析,并且SVD适用性更广。每个实矩阵都能做SVD,但是不一定能做特征值分解。比如说如果一个矩阵不是方阵,那么就不能做特征分解,但是我们可以做SVD。

    SVD分解后的矩阵表达式如下:

    [A=UDV^T ]

    假设A是一个m×n矩阵,那么U定义为m×m矩阵,D是m×n矩阵,V是n×n矩阵。
    除此以外

    • 矩阵U和V都是orthogonal matrix,其中矩阵U的列向量是left-singular vectors,矩阵V的列向量是right-singular vectors。矩阵A的left-singular vectors是矩阵(A^TA)的特征向量,right-singular vectors是矩阵(AA^T)的特征向量。矩阵A的非零奇异值是矩阵(AA^T)或者(A^TA)的平方根。
    • 矩阵D是diagonal matrix,注意不一定是方阵。D对角线上的即为矩阵A的奇异值(singular value)。

    讲这么多,肯定对SVD还没有一个直观的理解,下面一节会介绍SVD的应用。

    7. Moore-Penrose Pseudoinverse

    我们在求一个矩阵的逆(matrix inverse)的时候,一般都需要规定这个矩阵是方阵。

    假设有一个线性方程(Ax=y),为了解出这个方程,我们很直观地希望能够造出一个left-inverse矩阵B和A相乘,从而求出x,即(x=By)

    如果A是一个非方阵的矩阵,当它的row大于column时,很有可能此时无解;而当row小于column时,可能有多解。

    Moore-Penrose Pseudoinverse就是为了解决这个问题的,矩阵A的伪逆定义如下:

    [A^+=lim_{αsearrow{0}}(A^TA+αI)^{-1}A^T$$。 上面的公式实际很少用,一般都是使用SVD的公式,即 $$A^+=VD^+U^T]

    U,D,V是上节中提到的矩阵A的奇异分解。(D^+)是矩阵D的伪逆,它是首先将D的非零元素取倒数得到一个矩阵,然后将这个矩阵转置之后就得到了(D^+)

    当矩阵A的row比column少时,使用伪逆可以得到很多解。但是,(x=A^+y)这个解是所有解中有最小Euclidean norm((||x||_2))的。

    当矩阵A的row比column多时,可能无解。但是使用伪逆求得的解x ,能使得(Ax)尽可能的接近(y),也就是说能使得(||Ax-y||_2)最小。

    8. Trace Operator(迹)

    trace运算符是将矩阵对角线上的所有元素求和,即(Tr(A)=sum_iA_{i,i})



    MARSGGBO原创





    2018-12-01



  • 相关阅读:
    ADO.NET Entity Framework如何:通过每种类型多个实体集定义模型(实体框架)
    ADO.NET Entity Framework EDM 生成器 (EdmGen.exe)
    编程之美的求阶乘结果末尾0的个数
    JS 自动提交表单时 报“对象不支持此属性”错误
    php168商务系统品牌无法生成的解决办法
    如何从Access 2000中表删除重复记录
    服务器IUSR_机器名账号找不到怎么办?
    SQL2005 重建全文索引步骤 恢复数据时用到
    PHP页面无法输出XML的解决方法
    bytes2BSTR 解决ajax中ajax.responseBody 乱码问题
  • 原文地址:https://www.cnblogs.com/marsggbo/p/10050048.html
Copyright © 2020-2023  润新知