Deep Learning学习笔记——线性代数

来源:互联网 发布:数据挖掘研究生 编辑:程序博客网 时间:2024/04/29 12:52
开始DeepLearning的学习笔记,从基础章节线性代数开始。现代术语“深度学习”超越了目前机器学习模型的神经科学观点。它诉诸于学习多层次组合这一更普遍的原理,这一原理也可以应用与那些并非受神经科学启发的机器学习框架。
  1. 基本概念
    1. 标量
    2. 向量
    3. 矩阵
    4. 张量
      1. 张量,2维张量在形式上与矩阵一致,1维张量在形式上与向量是一致的。
      2. 张量的长度(一维的长度)等于数据集空间的维度,等于输入神经元的个数。
      3. 张量的数值分布在若干维坐标的规则网络中
      4. 在神经网络的矩阵计算中,张量就是在参数矩阵前后或者等号前面的向量,如下图
      5. 我感觉张量的数学概念很晦涩,意会一下就行
  2. 矩阵和向量相乘
  3. 单位矩阵和逆矩阵
    1. 逆矩阵必须是一个方阵,所有列向量都是线性无关
    2. 一个列向量线性相关的方阵被称为奇异的
  4. 线性相关和生成子空间
    1. 线性组合
    2. 生成子空间、列空间
    3. 线性相关、线性无关
  5. 范数
    1. 有时我们需要衡量一个向量的大小。在机器学习中,我们经常使用被称为范数(norm)的函数衡量向量大小。Lp 范数定义如下:其中p∈R,p≥1
    2. 范数(包括Lp范数)是将向量映射到非负值的函数。直观上来说,向量x的范数衡量从原点到点x的距离。
    3. 当p=2时,L2 范数被称为欧几里得范数(Euclidean norm)。它表示从原点出发到向量x确定的点的欧几里得距离,经常简化为||x||,略去下标2。平方欧几里得范数也经常用来衡量向量的大小,可以简单地通过点积xTx计算。
    4. L1 范数在各个位置斜率相同,同时保持简单的数学形式的函数。                                                                                  
    5. 另一个经常在机器学习中出现的范数是L∞范数,也称最大范数。这个范数表示向量中具有最大幅值的元素的绝对值。
    6. 衡量矩阵大小,在深度学习中,最常见的做法是使用Frobenius范数,其类似于向量的欧几里得范数。
  6. 特殊类型的矩阵和向量
    1. 对角矩阵
    2. 对称
    3. 单位向量:具有单位范数
    4. 正交
      1. 标准正交
      2. 正交矩阵:ATA = AAT = I,也就是说A-1 = AT
  7. 特征分解
    1. 就像整数可以分解为质因数
    2. 特征分解(eigendecomposition)是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。
      1. 方阵A的特征向量(eigenvector)是指与A相乘后相当于对该向量进行缩放的非零向量v: Av =  λv。  标量λ被称为这个特征向量对应的特征值(eigenvalue)。
      2. 如果v是A的特征向量,那么任何缩放后的向量sv(s∈R, s≠0)也是A的特征向量。此外,sv和v有相同的特征值。基于这个原因,通常我们只考虑单位特征向量。
      3. 假设矩阵A有n个线性无关的特征向量{v(1), ..., v(n)},对应着特征值{λ1, ...,  λn}。我们将特征向量连接成一个矩阵,使得每一列是一个特征向量:V = [ v(1), ..., v(n)]。类似地,我们也将特征值连接成一个向量λ = [ λ1, ...,  λn]T。因此A的特征分解(eigendecomposition)可以记作 A = Vdiag(λ)V-1 。
      4. 每个实对称矩阵都可以分解成实特征向量和实特征值:A = QΛQT
        1. 其中Q是A的特征向量组成你的正交矩阵, Λ是对角矩阵。
      5. 正定、半正定、负定、半负定
  8. 奇异值分解(singular value decomposition, SVD)
    1. 将矩阵分解为奇异向量和奇异值
    2. 每个实数矩阵都有一个奇异值分解,但不一定都有特征分解
    3. A = UDVT
      1. 假设A是一个m×n的矩阵,那么U是一个m×m矩阵,D是一个m×n的矩阵,V是一个n×n的矩阵
      2. U和V都是正交矩阵,D被定义为对角矩阵,但不一定是方阵
      3. 对角矩阵D对角线上的元素被称为矩阵A的奇异值(singular value).矩阵U的列向量被称为左奇异向量(left singular vector),矩阵V的列向量被称右奇异向量(right singular vector)
      4. 事实上,我们可以用与A 相关的特征分解去解释A 的奇异值分解。A 的左奇异向量(left singular vector)是AAT的特征向量。A 的右奇异向量(right singular vector)是ATA 的特征向量。A 的非零奇异值是ATA 特征值的平方根,同时也是 AA⊤ 特征值的平方根。
    4. SVD最有用的一个性质可能是拓展矩阵求逆到非方矩阵上。
  9. Moore-Penrose伪逆
    1. 对于分方阵而言,其逆矩阵没有定义。
    2. 假设在解方程Ax=y中,我们希望通过矩阵A的左逆B来求解线性方程
      1. 等式两边左乘左逆B后,可得x=By
      2. 如果矩阵A的线性无关的行向量个数大于线性无关的列向量的个数,上述方程没有解;如果矩阵A的线性无关的行向量个数小于线性无关的列向量的个数,那么上述方程有不止一个解。
      3. Moore-Penrose伪逆可以帮我们解决这个问题
    3. 矩阵A的伪逆计算公式为 A+=VD+UT 。
      1. 其中,矩阵U,D和V是矩阵A奇异值分解后得到的矩阵。对角矩阵D的伪逆D+ 是其非零元素取倒数之后再转置得到的。
      2. 当矩阵A的列数多于行数时,使用伪逆求解线性方程是众多可能解法中的一种。
      3. 特别是,x=A+y是方程所有可行解中欧几里得范数||x||2 最小的一个
      4. 当矩阵A的行数多于列数时,可能没有解。这时,通过伪逆得到的x是的Ax和y的欧几里得距离||Ax-y||2 最小。
  10. 迹运算
    1. 迹运算返回的是矩阵对角元素的和:                                                               
    2. 迹运算提供了另一种描述矩阵Frobenius范数的方式:
      1. Frobenius范数另一种定义方式:                   \|A\|_F=\sqrt{\sum_{i=1}^m\sum_{j=1}^n |a_{ij}|^2}=\sqrt{\operatorname{trace}(A^{{}^*} A)}=\sqrt{\sum_{i=1}^{\min\{m,\,n\}} \sigma_{i}^2}
    3. 循环不变性:Tr(ABC) = Tr(CAB) = Tr(BCA)
    4. 标量在迹运算后任然是它自己:a = Tr(a)
  11. 行列式
    1. 行列式是一个将方阵映射到实数的函数。
    2. 行列式等于矩阵特征值的乘积
    3. 行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少
    4. 如果行列式是0,那么空间至少沿着某一维完全收缩了,失去了原来的体积
    5. 如果行列式是1,那么这个转换保持空间体积不变
  12. 实例:主成分分析(Principal Component Analysis)
    1. 我只知道这几点
      1. 原始数据分布的空间,维度太大,需要降维到低维空间。
      2. 原始数据A可以进行特征分解,A在特征矩阵下的新坐标矩阵为B
      3. 如果去掉比较弱的特征向量,A在新特征矩阵下的新新坐标矩阵为CC就是降维后的数据。
    2. 其他的太难了,pass