Machine Learning 之 线性代数基础(部分)

 
最近才开始看《深度学习》草丛书, 现在写下ML中需要用到的线性代数的概念
 

一、数学概念

  1.     标量、向量、矩阵和张量
  • 标量: 一个单独的数。 介绍标量时,会明确这个数是数据什么数, “令x属于R(实数)表示一条直线的斜率”
  • 向量:一列数, 这列数是有序排列的名。可以根据数据顺序来确定数字,可以理解为java数组、python列表,都是有顺序的,可以通过索引访问具体数据。简单表示: , 矩阵表示: ,理解为Python列表 a= [x, y, z](图来自百度百科“向量”关键词)
  • 矩阵:二维数组,有两个索引确定,常用大写表示A (Ai,j 表示 第i行,第j列)
  • 张量:多维数组,一个数组的元素分布在多维空间中,张量A记做Ai,j,k  (三个维度 i,j和k)
 
 

二、线性代数

  1. 矩阵和向量

  • 向量
       CS里,向量是一组有序的数/列表,如:
            
            其含义是,点从原点(0,0)出发,沿着X轴走1个单位,再沿着Y轴走2个单位,到达终点(下图粗略表示下)。
   
                
  • 线性组合、张成空间与基
        线性组合: 任意向量可以由基向量表示
            如下:  s = av + bw (a,b属于实数R)
              
        张成空间:线性组合组成的空间
            例如  s = av + bw (a,b属于实数R) 中,不同a和b生成的S向量不同,这些向量会组成如下结果:
            A.  若v向量和 w向量共线(线性相关), 那么张量空间就是这条直线
            B.  若S为一个原点(0,0),那么张量空间就是一个点
            C.  若v和w不共线, 张量空间就是一个平面
            由上述二维空间,可以推理三维空间内的,张量空间是一组平面(平面束) 
        
  • 矩阵
            
            
 
       注: 上面这两个图来自 3Blue1Brown的线性代数视频, 地址: https://www.bilibili.com/video/av6731067/?p=3
  1. 矩阵的转置和逆矩阵

  • 矩阵的转置: 矩阵的转置是以对角线(主对角线,左上角到右下角)为轴做镜像
            如下图所示:
                主对角线数据(1,4,8)如下图红线, 以主对角线为轴,做镜像.
                原始:a[0][1] = 3, 转置后: a[1][0] = 3
                原始:a[0][2] = 6, 转置后: a[2][0] = 6
            
  •  矩阵的逆(逆矩阵):
                定义:
      
        (注:图来自数学乐对逆矩阵的简介)
                单位矩阵 I:单位矩阵就是主对角线各值都为1的方阵(1×1, 2×2, 3×3,....., n×n)
                矩阵A=  , 如何求逆矩阵?  调换 a和d的位置,且b和c前加负号(-),再除以矩阵A的行列式。
                问题换了,如何计算矩阵的行列式:
                    举例: 
                              有如下2×2矩阵,  ,  要计算这个矩阵的行列式:3×8-6×9  = 24-54=- 30, 那么这个矩阵的逆矩阵:
                                        (-1/30) ×      得到结果,结果这就不写了。 
                               如何验证对不对? 逆矩阵 × 矩阵 =? 单位矩阵 来判断 

  3.矩阵、向量运算

  •  矩阵和矩阵乘法
           矩阵乘法要求 矩阵A的列数 = 矩阵B的行数
            设有如下2×2矩阵A和矩阵B
            
              
            
        解释如下:
        
            “ 矩阵A的列数 = 矩阵B的行数” 解释,比如是如下矩阵,就不能相乘:       
      
        
        矩阵乘法的性质:
            矩阵具有分配率 A(B + C) = AB + AC, 矩阵乘积也服从:  A(BC) = (AB)C
            矩阵不具有交换律  A×B ≠ B×A
            矩阵乘积的转置等于矩阵转置的乘积:(AB).T = A.T ×B.T  ( 用的是python  numpy矩阵转置的写法 np.array.T)
 
        向量点积的性质:
            交换律: x.T y = y.T x
            “向量点积为标量,标量转置为自身”得到:x.T y = (x.T y).T = y.T x
            
 
  • 矩阵×向量:
            例如有如下矩阵A和向量B, 向量的矩阵表示法就是如下B所示
        
            A矩阵 3×2,向量B为 2乘以1  , 相乘结果为3×1的矩阵,结果如下
        
 
  • 矩阵 + 向量 
            矩阵 A + 向量b  = 矩阵 A 行数据 + 向量 b 行数据
                               A[0][x] + b[0]          [ A[0][0] + b[0],   A[0][1] + b[0], ..... , A[0][n] + b[0],   
         A + b =          A[1][x] + b[1]    =>  A[1][0] + b[1],   A[1][1] + b[1], .... ,  A[1][n] + b[1],
                               A[2][x] + b[2]            A[n][0] + b[n],   A[n][1] + b[n], ... ,  A[n][n] + b[n] ]
 
          
  • 线性方程的矩阵表示
            一元线性方程,就可以表示为  Ax = b  ,  A属于R的m×n维度的矩阵,b是属于R的向量,x为要解的未知向量。
            那么多远方程怎么表示? 如下:
    
      如何求解Ax  = b,就要用到前面说的逆矩阵,推到如下:
        两边乘以矩阵A的逆矩阵, 然后左侧成为单位矩阵I × x,单位矩阵I ×X = X,得到如下最后的结果 X=A-1b
                
 
 

   4.线性相关和生成子空间

             X=A-1b, 当且A的逆矩阵A-1存在时,对于确定的向量b,式子才有解。但有些方程组而言,对于一些b,不存在解/存在无数个解,存在(1,+)个解不会发生,因为x和y都是某方程组的解,则有:在 z= αx + (1-α)y  (α为任意实数R)也是方程组的解。
           将A矩阵的列向量看做从原点出发的不同方向,确定有多少种方法可以达到b
          
         
              可以这样理解,假设上图 a向量、c向量和d向量是矩阵A的列向量,  那么就会有三个常数,使得
                所以就成 为线性组合,(每个向量×标量系数)的和。
 
  • 生成子空间: 一组向量的生成子空间,指原始向量线性组合后所能抵达的点的集合
            确定Ax=b有没有解,就是判断b是不是在A的列向量的生成子空间中,这个特殊的生成子空间被称为A的列空间/A的值域。 
              
  • 线性无关:矢量空间的一组元素中,若没有矢量可用有限个其他矢量的线性组合表示,则为线性无关,反之线性相关
        
        要使矩阵可逆,必须保证Ax=b对于每个b值最多有1个解,为此,必须保证A矩阵组多含有m个列向量,意味着 矩阵A必须为方阵(m = n),且所有列向量都是线性无关的。
        一个列向量线性相关的的方阵被称为奇异的,若矩阵A不是方阵或者是一个奇异的方阵,方城仍有可能有解。
        (上面是抄书的,似懂非懂的。。。)
 
 

  5.范数

            范数: 范式是衡量向量的大小, 是将向量映射到非负值的函数。
    范数是满足如下条件的函数:
        A. f(x) = 0 => x = 0
        B. f(x + y) ≤ f( x)+ f ( y )     (三角不等式 )
        C. 存在α属于实数R, f(αx) = |α| f(x)
 
  • L0范数: p = 0,  非零元素的个数
  • L1 范数 : p=1时, 向量绝对值之和
  • 欧几里得范数(L2范数): p = 2时, 为欧几里得范数, 表示从原点出发到向量的欧几里得距离
  • L∞    最大范数: 
        
  • L-∞ 最小范数: 
      
  • Frobenius范数(深度学习常用的衡量矩阵大小的范数):
        
 

6. 特殊矩阵和向量

  •  对角矩阵:主对角线含有非零元素,其他都为0。 对于i×j维度的对角矩阵D, 当且仅当 对于 i≠j, Dij = 0.(单位矩阵也是对角矩阵)
            示例:
          
 
  • 单位向量:具有单位范数的向量,即:
                
            如果x.T y = 0 , 那么 向量x与向量y正交, 夹角90°。若向量x与y都为单位向量x.T y = 0,且则称其为标准正交
  • 正交矩阵:  
            
            则有:
                   
 
  

   (特征分解、奇异值分解、迹运算、行列式、主成分分析 后面再补

 
 

猜你喜欢

转载自www.cnblogs.com/HankCui/p/11289109.html