0


【机器学习基础】机器学习的数学基础

在这里插入图片描述

【作者主页】Francek Chen
【专栏介绍】

       ⌈ 
      
     
    
      ⌈ 
     
    
  ⌈Python机器学习 
   
    
     
     
       ⌋ 
      
     
    
      ⌋ 
     
    
  ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,依赖于强大的开源库如Scikit-learn、TensorFlow和PyTorch。本专栏介绍机器学习的相关算法以及基于Python的算法实现。

文章目录


  作为一门以数据及其模型为研究对象的学科,优化模型、分析模型性能等都需要数学手段的帮助。和其他学科一样,数学可以帮我们更清晰地描述和理解机器学习算法,也可以从理论上证明算法的有效性,是机器学习中必不可少的一环。本文将会介绍机器学习中常用的数学工具,为后面的学习打下基础。

一、向量

向量(vector),在数学中指具有大小和方向的量。与向量相对,只具有大小、不具有方向的量则称为标量(scalar)。简单来说,我们可以将向量理解为由

     n 
    
   
  
    n 
   
  
n个数构成的 
 
  
   
   
     n 
    
   
  
    n 
   
  
n元组,其中 
 
  
   
   
     n 
    
   
  
    n 
   
  
n称为向量的维数。向量通常有两种写法,如下所示的竖排写法称为列向量:

  
   
    
    
      x 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
          
          
            x 
           
          
            1 
           
          
         
        
       
       
        
         
          
          
            x 
           
          
            2 
           
          
         
        
       
       
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
       
       
        
         
          
          
            x 
           
          
            n 
           
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol{x} = \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} 
    
   
 x=​x1​x2​⋮xn​​​ 横排写法  
 
  
   
   
     x 
    
   
     = 
    
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     , 
    
    
    
      x 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      x 
     
    
      n 
     
    
   
     ) 
    
   
  
    \boldsymbol{x}=(x_1,x_2,\ldots,x_n) 
   
  
x=(x1​,x2​,…,xn​) 称为行向量。一个向量如果不加说明即默认为列向量,但实际中为了节省空间,我们通常将列向量写成  
 
  
   
   
     x 
    
   
     = 
    
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     , 
    
    
    
      x 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      x 
     
    
      n 
     
    
    
    
      ) 
     
    
      T 
     
    
   
  
    \boldsymbol{x}=(x_1, x_2, \ldots, x_n)^\mathrm{T} 
   
  
x=(x1​,x2​,…,xn​)T 的形式。其中上标 
 
  
   
   
     T 
    
   
  
    \mathrm{T} 
   
  
T表示转置(transpose),即将行和列翻转过来,行向量转置后就变成了列向量。例如,向量  
 
  
   
   
     x 
    
   
     = 
    
   
     ( 
    
   
     1 
    
   
     , 
    
   
     2 
    
   
     ) 
    
   
  
    \boldsymbol x = (1,2) 
   
  
x=(1,2) 的转置为:

  
   
    
     
     
       x 
      
     
       T 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
       
       
        
         
         
           2 
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol x^\mathrm{T} = \begin{pmatrix}1 \\ 2\end{pmatrix} 
    
   
 xT=(12​)

  关于向量的含义,我们既可以将其看成

     n 
    
   
  
    n 
   
  
n维空间中的一个点,其中向量每一维的值代表坐标;也可以将其看成从原点指向该坐标点的有向线段,具有长度和方向。无论哪种理解,每一个 
 
  
   
   
     n 
    
   
  
    n 
   
  
n维向量都与一个 
 
  
   
   
     n 
    
   
  
    n 
   
  
n维空间中的点相对应,因此,全体 
 
  
   
   
     n 
    
   
  
    n 
   
  
n维向量构成的空间与 
 
  
   
    
    
      R 
     
    
      n 
     
    
   
  
    \mathbb{R}^n 
   
  
Rn是等价的。在没有额外说明的情况下,对于向量  
 
  
   
   
     x 
    
   
     ∈ 
    
    
    
      R 
     
    
      n 
     
    
   
  
    \boldsymbol{x} \in \mathbb{R}^n 
   
  
x∈Rn,我们用  
 
  
   
    
    
      x 
     
    
      i 
     
    
   
     ( 
    
   
     1 
    
   
     ≤ 
    
   
     i 
    
   
     ≤ 
    
   
     n 
    
   
     ) 
    
   
  
    x_i (1\le i\le n) 
   
  
xi​(1≤i≤n) 来表示其第 
 
  
   
   
     i 
    
   
  
    i 
   
  
i维的分量。此外,记所有分量全部为0的向量为零向量  
 
  
   
   
     0 
    
   
     = 
    
   
     ( 
    
   
     0 
    
   
     , 
    
   
     0 
    
   
     , 
    
   
     … 
    
   
     , 
    
   
     0 
    
    
    
      ) 
     
    
      T 
     
    
   
  
    \boldsymbol{0}=(0,0,\ldots,0)^\mathrm{T} 
   
  
0=(0,0,…,0)T。

  设向量

     x 
    
   
     , 
    
   
     y 
    
   
     ∈ 
    
    
    
      R 
     
    
      n 
     
    
   
  
    \boldsymbol{x}, \boldsymbol{y} \in \mathbb{R}^n 
   
  
x,y∈Rn,标量  
 
  
   
   
     a 
    
   
     ∈ 
    
   
     R 
    
   
  
    a\in\mathbb{R} 
   
  
a∈R,向量的常见运算有:
  • 向量相加: x + y = ( x 1 + y 1 , x 2 + y 2 , … , x n + y n ) T \boldsymbol{x} + \boldsymbol{y} =(x_1+y_1,x_2+y_2,\ldots,x_n+y_n)^\mathrm{T} x+y=(x1​+y1​,x2​+y2​,…,xn​+yn​)T。
  • 向量与标量相乘: a x = x a = ( a x 1 , a x 2 , … , a x n ) T a\boldsymbol{x} = \boldsymbol{x}a = (ax_1,ax_2,\ldots,ax_n)^\mathrm{T} ax=xa=(ax1​,ax2​,…,axn​)T。当 a = 0 a=0 a=0 或 x = 0 \boldsymbol x = \boldsymbol 0 x=0 时,结果即为 0 \boldsymbol 0 0。
  • 向量内积(inner product),也称向量点积(dot product): x ⋅ y = ∑ i = 1 n x i y i \boldsymbol{x}\cdot\boldsymbol{y} = \sum_{i=1}^n x_iy_i x⋅y=∑i=1n​xi​yi​,注意两个向量的内积结果是标量。从式中可以看出,向量内积满足交换律,即 x ⋅ y = y ⋅ x \boldsymbol{x}\cdot\boldsymbol{y} = \boldsymbol{y}\cdot\boldsymbol{x} x⋅y=y⋅x。

  为了衡量向量的“长度”,我们定义范数(norm)函数

     ∥ 
    
   
     ⋅ 
    
   
     ∥ 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
    
      n 
     
    
   
     → 
    
   
     R 
    
   
  
    \| \cdot \| \colon \mathbb{R}^n \to \mathbb{R} 
   
  
∥⋅∥:Rn→R。一个函数是范数,当且仅当其满足下面3个条件:

  (1)正定性:

     ∥ 
    
   
     x 
    
   
     ∥ 
    
   
     ≥ 
    
   
     0 
    
   
  
    \|\boldsymbol{x}\| \ge 0 
   
  
∥x∥≥0,当且仅当  
 
  
   
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol{x}=\boldsymbol{0} 
   
  
x=0 时, 
 
  
   
   
     ∥ 
    
   
     x 
    
   
     ∥ 
    
   
     = 
    
   
     0 
    
   
  
    \|\boldsymbol{x}\|=0 
   
  
∥x∥=0;

  (2)绝对齐次性:

     ∥ 
    
   
     a 
    
   
     x 
    
   
     ∥ 
    
   
     = 
    
   
     ∣ 
    
   
     a 
    
   
     ∣ 
    
   
     ∥ 
    
   
     x 
    
   
     ∥ 
    
   
  
    \| a\boldsymbol{x} \| = |a|\|\boldsymbol{x}\| 
   
  
∥ax∥=∣a∣∥x∥;

  (3)三角不等式:

     ∥ 
    
   
     x 
    
   
     + 
    
   
     y 
    
   
     ∥ 
    
   
     ≤ 
    
   
     ∥ 
    
   
     x 
    
   
     ∥ 
    
   
     + 
    
   
     ∥ 
    
   
     y 
    
   
     ∥ 
    
   
  
    \| \boldsymbol{x} + \boldsymbol{y} \| \le \|\boldsymbol{x}\| + \|\boldsymbol{y}\| 
   
  
∥x+y∥≤∥x∥+∥y∥。

  在各种各样的向量范数中,

      L 
     
    
      p 
     
    
   
  
    L_p 
   
  
Lp​范数(又称 
 
  
   
   
     p 
    
   
  
    p 
   
  
p范数)是一类相对常用的范数,其定义为

  
   
    
    
      ∥ 
     
    
      x 
     
     
     
       ∥ 
      
     
       p 
      
     
    
      = 
     
     
      
      
        ( 
       
       
       
         ∑ 
        
        
        
          i 
         
        
          = 
         
        
          1 
         
        
       
         n 
        
       
      
        ∣ 
       
       
       
         x 
        
       
         i 
        
       
       
       
         ∣ 
        
       
         p 
        
       
      
        ) 
       
      
      
      
        1 
       
      
        / 
       
      
        p 
       
      
     
    
      , 
     
     
    
      p 
     
    
      ≥ 
     
    
      1 
     
    
   
     \|\boldsymbol{x}\|_p = \left( \sum_{i=1}^n |x_i|^p \right)^{1/p},\quad p \ge 1 
    
   
 ∥x∥p​=(i=1∑n​∣xi​∣p)1/p,p≥1 其中,又以下面几种 
 
  
   
    
    
      L 
     
    
      p 
     
    
   
  
    L_p 
   
  
Lp​范数最为常见:
  •                                                L                               2                                            L_2                     L2​范数,又称欧几里得范数,其结果是向量对应的点到原点的欧氏距离,也称为向量的模长:                                             ∥                               x                                           ∥                                  2                                          =                                                                      ∑                                                       i                                           =                                           1                                                      n                                                                x                                        i                                        2                                                                          \|\boldsymbol{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2}                        ∥x∥2​=i=1∑n​xi2​​ 由于其应用最广,我们有时会省略                                                   L                               2                                            L_2                     L2​范数的下标,直接写为                                        ∥                            x                            ∥                                  \|\boldsymbol{x}\|                     ∥x∥。
    
  •                                                L                               1                                            L_1                     L1​范数,又称绝对值范数,为向量各个分量的绝对值之和,其结果是向量所表示的点到原点的曼哈顿距离:                                             ∥                               x                                           ∥                                  1                                          =                                           ∑                                               i                                     =                                     1                                              n                                          ∣                                           x                                  i                                          ∣                                      \|\boldsymbol{x}\|_1 = \sum_{i=1}^n |x_i|                        ∥x∥1​=i=1∑n​∣xi​∣
    
  •                                                L                               ∞                                            L_\infty                     L∞​范数,又称无穷范数,由对                                                   L                               p                                            L_p                     Lp​范数的定义取极限                                         p                            →                            +                            ∞                                  p\to+\infty                     p→+∞ 得到,其结果是向量中绝对值最大的分量:                                             ∥                               x                                           ∥                                  ∞                                          =                                                        max                                     ⁡                                                           i                                     =                                     1                                     ,                                     …                                     ,                                     n                                                      ∣                                           x                                  i                                          ∣                                      \|\boldsymbol{x}\|_\infty = \max_{i=1,\ldots,n} |x_i|                        ∥x∥∞​=i=1,…,nmax​∣xi​∣
    

  当

     0 
    
   
     < 
    
   
     p 
    
   
     < 
    
   
     1 
    
   
  
    0 < p < 1 
   
  
0<p<1 时,按与上面相同的方式定义的函数并不满足范数的条件。但是为了方便,我们常将下面的函数也称为“范数”:
  •                                                L                               0                                            L_0                     L0​范数,由对                                                   L                               p                                            L_p                     Lp​范数的定义取极限                                         p                            →                                       0                               +                                            p \to 0^+                     p→0+ 得到,其结果是向量中不为                                        0                                  0                     0的元素的个数:                                             ∥                               x                                           ∥                                  0                                          =                                           ∑                                               i                                     =                                     1                                              n                                          I                               (                                           x                                  i                                          ≠                               0                               )                                      \|\boldsymbol{x}\|_0 = \sum_{i=1}^n \mathbb{I}(x_i \neq 0)                        ∥x∥0​=i=1∑n​I(xi​=0)
    

二、矩阵

  向量是一些数在一维上构成的元组,如果把它朝二维扩展,我们就得到了矩阵(matrix)。与向量相比,矩阵由于有了更多的维数,具有更大的灵活性,还可以定义新的运算。下面,我们就来介绍矩阵的基本概念和本书中可能会用到的简单性质。

(一)矩阵的基本概念

  矩阵是由一些数构成的矩形元组。一个

     m 
    
   
  
    m 
   
  
m行 
 
  
   
   
     n 
    
   
  
    n 
   
  
n列的矩阵通常称为  
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m \times n 
   
  
m×n 的矩阵,记为

  
   
    
    
      A 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
          
          
            a 
           
          
            11 
           
          
         
        
        
         
          
          
            a 
           
          
            12 
           
          
         
        
        
         
         
           ⋯ 
          
         
        
        
         
          
          
            a 
           
           
           
             1 
            
           
             n 
            
           
          
         
        
       
       
        
         
          
          
            a 
           
          
            21 
           
          
         
        
        
         
          
          
            a 
           
          
            22 
           
          
         
        
        
         
         
           ⋯ 
          
         
        
        
         
          
          
            a 
           
           
           
             2 
            
           
             n 
            
           
          
         
        
       
       
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
        
         
          
           
           
             ⋮ 
            
            
             
            
           
          
              
           
          
         
        
        
         
          
         
        
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
       
       
        
         
          
          
            a 
           
           
           
             m 
            
           
             1 
            
           
          
         
        
        
         
          
          
            a 
           
           
           
             m 
            
           
             2 
            
           
          
         
        
        
         
         
           ⋯ 
          
         
        
        
         
          
          
            a 
           
           
           
             m 
            
           
             n 
            
           
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol{A} = \begin{pmatrix} a_{11} &a_{12} &\cdots &a_{1n} \\ a_{21} &a_{22} &\cdots &a_{2n} \\ \vdots &\vdots\ & &\vdots \\ a_{m1} &a_{m2} &\cdots &a_{mn} \end{pmatrix} 
    
   
 A=​a11​a21​⋮am1​​a12​a22​⋮ am2​​⋯⋯⋯​a1n​a2n​⋮amn​​​

  对具体的元素不关心时,我们也将其记为

      A 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \boldsymbol{A}_{m\times n} 
   
  
Am×n​或 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A。默认情况下,我们用 
 
  
   
    
    
      a 
     
     
     
       i 
      
     
       j 
      
     
    
   
  
    a_{ij} 
   
  
aij​或者 
 
  
   
    
    
      A 
     
     
     
       i 
      
     
       j 
      
     
    
   
  
    \boldsymbol{A}_{ij} 
   
  
Aij​来表示矩阵 
 
  
   
   
     A 
    
   
  
    \boldsymbol{A} 
   
  
A中位于第 
 
  
   
   
     i 
    
   
  
    i 
   
  
i行第 
 
  
   
   
     j 
    
   
  
    j 
   
  
j列的元素,有时也反过来用  
 
  
   
   
     ( 
    
    
    
      a 
     
     
     
       i 
      
     
       j 
      
     
    
    
    
      ) 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    (a_{ij})_{m\times n} 
   
  
(aij​)m×n​ 表示元素为 
 
  
   
    
    
      a 
     
     
     
       i 
      
     
       j 
      
     
    
   
  
    a_{ij} 
   
  
aij​的 
 
  
   
   
     m 
    
   
  
    m 
   
  
m行 
 
  
   
   
     n 
    
   
  
    n 
   
  
n列矩阵。与向量相似, 
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m\times n 
   
  
m×n 的实数矩阵构成的空间即与  
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m\times n 
   
  
m×n 维的实数空间等价,一般记为 
 
  
   
    
    
      R 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \mathbb{R}^{m\times n} 
   
  
Rm×n。向量实际上是一种特殊的矩阵,列向量的列数为1,行向量的行数为1。同时,矩阵也可以看作由一组向量构成。设  
 
  
   
    
    
      a 
     
    
      i 
     
    
   
     = 
    
   
     ( 
    
    
    
      a 
     
     
     
       1 
      
     
       i 
      
     
    
   
     , 
    
    
    
      a 
     
     
     
       2 
      
     
       i 
      
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      a 
     
     
     
       m 
      
     
       i 
      
     
    
    
    
      ) 
     
    
      T 
     
    
   
  
    \boldsymbol{a}_i=(a_{1i}, a_{2i},\ldots, a_{mi})^\mathrm{T} 
   
  
ai​=(a1i​,a2i​,…,ami​)T,那么  
 
  
   
   
     A 
    
   
     = 
    
   
     ( 
    
    
    
      a 
     
    
      1 
     
    
   
     , 
    
    
    
      a 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      a 
     
    
      n 
     
    
   
     ) 
    
   
  
    \boldsymbol{A}=(\boldsymbol{a}_1, \boldsymbol{a}_2, \ldots, \boldsymbol{a}_n) 
   
  
A=(a1​,a2​,…,an​)。与向量相似,矩阵同样存在转置操作,表示将矩阵的行和列交换。一个  
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m\times n 
   
  
m×n 矩阵  
 
  
   
   
     ( 
    
    
    
      a 
     
     
     
       i 
      
     
       j 
      
     
    
    
    
      ) 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    (a_{ij})_{m\times n} 
   
  
(aij​)m×n​ 转置后会得到  
 
  
   
   
     n 
    
   
     × 
    
   
     m 
    
   
  
    n \times m 
   
  
n×m 矩阵  
 
  
   
   
     ( 
    
    
    
      a 
     
     
     
       j 
      
     
       i 
      
     
    
    
    
      ) 
     
     
     
       n 
      
     
       × 
      
     
       m 
      
     
    
   
  
    (a_{ji})_{n\times m} 
   
  
(aji​)n×m​。例如,矩阵

  
   
    
    
      A 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           2 
          
         
        
       
       
        
         
         
           3 
          
         
        
        
         
         
           4 
          
         
        
       
       
        
         
         
           5 
          
         
        
        
         
         
           6 
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} 
    
   
 A=​135​246​​ 的转置为

  
   
    
     
     
       A 
      
     
       T 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           3 
          
         
        
        
         
         
           5 
          
         
        
       
       
        
         
         
           2 
          
         
        
        
         
         
           4 
          
         
        
        
         
         
           6 
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol A^\mathrm{T} = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix} 
    
   
 AT=(12​34​56​)

  特别地,行数和列数均为

     n 
    
   
  
    n 
   
  
n的矩阵称为 
 
  
   
   
     n 
    
   
  
    n 
   
  
n阶方阵。如果 
 
  
   
   
     n 
    
   
  
    n 
   
  
n阶方阵 
 
  
   
   
     D 
    
   
  
    \boldsymbol D 
   
  
D只有左上到右下的对角线上的元素不为0,则称该方阵为对角矩阵(diagonal matrix),记为  
 
  
   
    
    
      d 
     
    
      i 
     
    
      a 
     
    
      g 
     
    
   
     ( 
    
    
    
      a 
     
    
      1 
     
    
   
     , 
    
    
    
      a 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      a 
     
    
      n 
     
    
   
     ) 
    
   
  
    \mathrm{diag}(a_1,a_2,\ldots,a_n) 
   
  
diag(a1​,a2​,…,an​)。例如  
 
  
   
    
    
      d 
     
    
      i 
     
    
      a 
     
    
      g 
     
    
   
     ( 
    
   
     1 
    
   
     , 
    
   
     2 
    
   
     , 
    
   
     3 
    
   
     ) 
    
   
  
    \mathrm{diag}(1, 2, 3) 
   
  
diag(1,2,3) 代表的矩阵为

  
   
    
     
     
       d 
      
     
       i 
      
     
       a 
      
     
       g 
      
     
    
      ( 
     
    
      1 
     
    
      , 
     
    
      2 
     
    
      , 
     
    
      3 
     
    
      ) 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           2 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           3 
          
         
        
       
      
     
       ) 
      
     
    
   
     \mathrm{diag}(1,2,3) = \begin{pmatrix} 1 & 0 & 0\\ 0 & 2 & 0 \\ 0 & 0 & 3 \end{pmatrix} 
    
   
 diag(1,2,3)=​100​020​003​​

  进一步,如果对角矩阵对角线上的元素全部为1,则称该方阵为

     n 
    
   
  
    n 
   
  
n阶单位矩阵(identity matrix)或单位阵,用 
 
  
   
    
    
      I 
     
    
      n 
     
    
   
  
    \boldsymbol{I}_n 
   
  
In​表示。阶数明确时,也可以省略下标的阶数,记为 
 
  
   
   
     I 
    
   
  
    \boldsymbol{I} 
   
  
I。例如,三阶单位阵为

  
   
    
     
     
       I 
      
     
       3 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol I_3 = \begin{pmatrix} 1 &0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} 
    
   
 I3​=​100​010​001​​ 所有元素为零的矩阵称为单位零矩阵,记为 
 
  
   
   
     0 
    
   
  
    \boldsymbol 0 
   
  
0。

(二)矩阵运算

  设矩阵

     A 
    
   
     , 
    
   
     B 
    
   
     ∈ 
    
    
    
      R 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \boldsymbol{A},\boldsymbol{B} \in \mathbb{R}^{m\times n} 
   
  
A,B∈Rm×n, 
 
  
   
   
     C 
    
   
     ∈ 
    
    
    
      R 
     
     
     
       n 
      
     
       × 
      
     
       l 
      
     
    
   
  
    \boldsymbol{C} \in \mathbb{R}^{n\times l} 
   
  
C∈Rn×l, 
 
  
   
   
     D 
    
   
     ∈ 
    
    
    
      R 
     
     
     
       l 
      
     
       × 
      
     
       k 
      
     
    
   
  
    \boldsymbol{D} \in \mathbb{R}^{l\times k} 
   
  
D∈Rl×k, 
 
  
   
   
     P 
    
   
     ∈ 
    
    
    
      R 
     
     
     
       m 
      
     
       × 
      
     
       l 
      
     
    
   
  
    \boldsymbol{P} \in \mathbb{R}^{m\times l} 
   
  
P∈Rm×l。向量  
 
  
   
   
     x 
    
   
     ∈ 
    
    
    
      R 
     
    
      n 
     
    
   
  
    \boldsymbol{x} \in \mathbb{R}^n 
   
  
x∈Rn,标量  
 
  
   
   
     λ 
    
   
     ∈ 
    
   
     R 
    
   
  
    \lambda \in \mathbb{R} 
   
  
λ∈R。矩阵的常用运算有:
  • 矩阵相加: A + B = B + A = ( a i j + b i j ) m × n \boldsymbol{A} + \boldsymbol{B} = \boldsymbol{B} + \boldsymbol{A} = (a_{ij} + b_{ij})_{m\times n} A+B=B+A=(aij​+bij​)m×n​ 要求两个矩阵行列数目都相同。
  • 矩阵与标量相乘: λ A = A λ = ( λ ⋅ a i j ) m × n \lambda\boldsymbol{A}=\boldsymbol{A}\lambda=(\lambda \cdot a_{ij})_{m\times n} λA=Aλ=(λ⋅aij​)m×n​。
  • 矩阵与矩阵相乘,要求第一个矩阵的列数与第二个矩阵的行数相同。设 P = A C \boldsymbol{P}=\boldsymbol{A}\boldsymbol{C} P=AC,则有 p i j = ∑ t = 1 n a i t c t j p_{ij} = \sum_{t=1}^n a_{it}c_{tj} pij​=t=1∑n​ait​ctj​

最终得到的

     P 
    
   
  
    \boldsymbol{P} 
   
  
P是  
 
  
   
   
     m 
    
   
     × 
    
   
     l 
    
   
  
    m\times l 
   
  
m×l 维的矩阵。这一运算方式可以理解为, 
 
  
   
   
     P 
    
   
  
    \boldsymbol P 
   
  
P的第 
 
  
   
   
     i 
    
   
  
    i 
   
  
i行 
 
  
   
   
     j 
    
   
  
    j 
   
  
j列的元素 
 
  
   
    
    
      p 
     
     
     
       i 
      
     
       j 
      
     
    
   
  
    p_{ij} 
   
  
pij​是由 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A的第 
 
  
   
   
     i 
    
   
  
    i 
   
  
i行和 
 
  
   
   
     B 
    
   
  
    \boldsymbol B 
   
  
B的第 
 
  
   
   
     j 
    
   
  
    j 
   
  
j列做向量内积得到的。这也说明了为什么矩阵乘法要求第一个矩阵的列数(即行向量的维数)与第二个矩阵的行数(即列向量的维数)相同,因为只有维数相等的向量才能进行内积。例如:

  
   
    
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           2 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           2 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           2 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           1 
          
         
        
        
         
         
           3 
          
         
        
       
       
        
         
         
           3 
          
         
        
        
         
         
           2 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           8 
          
         
        
        
         
         
           4 
          
         
        
       
       
        
         
         
           5 
          
         
        
        
         
         
           8 
          
         
        
       
      
     
       ) 
      
     
    
   
     \begin{pmatrix} 1 & 0 & 2 \\ 0 & 2 & 1 \end{pmatrix} \times \begin{pmatrix} 2 & 0 \\ 1 & 3 \\ 3 & 2 \end{pmatrix} = \begin{pmatrix} 8 & 4 \\ 5 & 8 \end{pmatrix} 
    
   
 (10​02​21​)×​213​032​​=(85​48​) 其中, 
 
  
   
   
     P 
    
   
  
    \boldsymbol P 
   
  
P第1行第1列的8的计算过程为

  
   
    
    
      ( 
     
    
      1 
     
    
      , 
     
    
      0 
     
    
      , 
     
    
      2 
     
    
      ) 
     
     
     
       ( 
      
      
       
        
         
         
           2 
          
         
        
       
       
        
         
         
           1 
          
         
        
       
       
        
         
         
           3 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
    
      1 
     
    
      × 
     
    
      2 
     
    
      + 
     
    
      0 
     
    
      × 
     
    
      1 
     
    
      + 
     
    
      2 
     
    
      × 
     
    
      3 
     
    
      = 
     
    
      8 
     
    
   
     (1,0,2) \begin{pmatrix} 2 \\ 1 \\ 3 \end{pmatrix} = 1\times 2 + 0 \times 1 + 2 \times 3 = 8 
    
   
 (1,0,2)​213​​=1×2+0×1+2×3=8 其余元素以此类推。

  应当注意,由于矩阵乘法对行数和列数的要求,将

     A 
    
   
     C 
    
   
  
    \boldsymbol{A}\boldsymbol{C} 
   
  
AC交换成 
 
  
   
   
     C 
    
   
     A 
    
   
  
    \boldsymbol{C}\boldsymbol{A} 
   
  
CA并不一定还符合乘法的定义。即使 
 
  
   
   
     A 
    
   
  
    \boldsymbol{A} 
   
  
A与 
 
  
   
   
     C 
    
   
  
    \boldsymbol{C} 
   
  
C的维数形如  
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m \times n 
   
  
m×n 和  
 
  
   
   
     n 
    
   
     × 
    
   
     m 
    
   
  
    n \times m 
   
  
n×m,交换后仍然满足乘法定义,其交换前后相乘的结果也不一定相等,即  
 
  
   
   
     A 
    
   
     C 
    
   
     ≠ 
    
   
     C 
    
   
     A 
    
   
  
    \boldsymbol{A}\boldsymbol{C} \neq \boldsymbol{C}\boldsymbol{A} 
   
  
AC=CA。例如:

  
   
    
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           2 
          
         
        
       
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      , 
     
     
     
     
       ( 
      
      
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           1 
          
         
        
        
         
         
           2 
          
         
        
       
      
     
       ) 
      
     
    
   
     \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} \times \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 2 \\ 1 & 1 \end{pmatrix},\quad \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} \times \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ 1 & 2 \end{pmatrix} 
    
   
 (10​11​)×(01​11​)=(11​21​),(01​11​)×(10​11​)=(01​12​)

  不过,虽然矩阵的乘法不满足交换律,但依然满足结合律,即

     ( 
    
   
     A 
    
   
     C 
    
   
     ) 
    
   
     D 
    
   
     = 
    
   
     A 
    
   
     ( 
    
   
     C 
    
   
     D 
    
   
     ) 
    
   
  
    (\boldsymbol{A}\boldsymbol{C})\boldsymbol{D} = \boldsymbol{A} (\boldsymbol{C}\boldsymbol{D}) 
   
  
(AC)D=A(CD)。另外,对于转置操作,有  
 
  
   
   
     ( 
    
   
     A 
    
   
     C 
    
    
    
      ) 
     
    
      T 
     
    
   
     = 
    
    
    
      C 
     
    
      T 
     
    
    
    
      A 
     
    
      T 
     
    
   
  
    (\boldsymbol{A}\boldsymbol{C})^\mathrm{T} = \boldsymbol{C}^\mathrm{T} \boldsymbol{A}^\mathrm{T} 
   
  
(AC)T=CTAT。

  由于向量也是一种特殊的矩阵,向量内积其实是矩阵乘法的一种特殊形式。但是,两个

     n 
    
   
     × 
    
   
     1 
    
   
  
    n \times 1 
   
  
n×1 维的列向量并不满足矩阵乘法对维数的要求。为了将向量的内积与矩阵乘法统一,我们通常将其中一个向量转置成  
 
  
   
   
     1 
    
   
     × 
    
   
     n 
    
   
  
    1 \times n 
   
  
1×n 维的行向量,再按矩阵乘法的规则进行计算,即:

  
   
    
    
      x 
     
    
      ⋅ 
     
    
      y 
     
    
      = 
     
     
     
       y 
      
     
       T 
      
     
    
      x 
     
    
   
     \boldsymbol x \cdot \boldsymbol y = \boldsymbol y^\mathrm{T} \boldsymbol x 
    
   
 x⋅y=yTx 此外,内积也常用尖括号写为 
 
  
   
   
     ⟨ 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ⟩ 
    
   
  
    \langle \boldsymbol x, \boldsymbol y \rangle 
   
  
⟨x,y⟩。该写法只是一种形式,其计算规则和上面是相同的。

  矩阵可以与向量相乘,其计算方式与矩阵乘法相同。设

     z 
    
   
     = 
    
   
     A 
    
   
     x 
    
   
  
    \boldsymbol{z} = \boldsymbol{A}\boldsymbol{x} 
   
  
z=Ax,那么

  
   
    
     
     
       z 
      
     
       i 
      
     
    
      = 
     
     
     
       ∑ 
      
      
      
        t 
       
      
        = 
       
      
        1 
       
      
     
       n 
      
     
     
     
       a 
      
      
      
        i 
       
      
        t 
       
      
     
     
     
       x 
      
     
       t 
      
     
    
   
     z_i = \sum_{t=1}^n a_{it}x_t 
    
   
 zi​=t=1∑n​ait​xt​ 得到的 
 
  
   
   
     z 
    
   
  
    \boldsymbol{z} 
   
  
z是 
 
  
   
   
     m 
    
   
  
    m 
   
  
m维向量。例如:

  
   
    
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
        
         
         
           2 
          
         
        
       
       
        
         
         
           2 
          
         
        
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           0 
          
         
        
       
       
        
         
         
           3 
          
         
        
       
       
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           2 
          
         
        
       
       
        
         
         
           4 
          
         
        
       
      
     
       ) 
      
     
    
   
     \begin{pmatrix} 1 & 0 & 2 \\ 2 & 1 & 1 \end{pmatrix} \times \begin{pmatrix} 0 \\ 3 \\ 1 \\ \end{pmatrix} = \begin{pmatrix} 2 \\ 4 \end{pmatrix} 
    
   
 (12​01​21​)×​031​​=(24​)

  类似于实数中的

     1 
    
   
  
    1 
   
  
1,任何矩阵与维度相符的单位阵相乘都等于自身,即  
 
  
   
    
    
      A 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
    
    
      I 
     
    
      n 
     
    
   
     = 
    
    
    
      I 
     
    
      m 
     
    
    
    
      A 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
     = 
    
    
    
      A 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \boldsymbol{A}_{m\times n} \boldsymbol{I}_n = \boldsymbol{I}_m \boldsymbol{A}_{m\times n} = \boldsymbol{A}_{m\times n} 
   
  
Am×n​In​=Im​Am×n​=Am×n​。进一步,在实数中,相乘等于 
 
  
   
   
     1 
    
   
  
    1 
   
  
1的两个数互为倒数。利用单位矩阵,我们也可以定义矩阵的“倒数”——逆矩阵(inverse)。对于 
 
  
   
   
     n 
    
   
  
    n 
   
  
n阶方阵 
 
  
   
   
     A 
    
   
  
    \boldsymbol{A} 
   
  
A,如果存在 
 
  
   
   
     n 
    
   
  
    n 
   
  
n阶方阵 
 
  
   
   
     B 
    
   
  
    \boldsymbol{B} 
   
  
B满足  
 
  
   
   
     A 
    
   
     B 
    
   
     = 
    
   
     I 
    
   
  
    \boldsymbol{A}\boldsymbol{B}=\boldsymbol{I} 
   
  
AB=I,则称 
 
  
   
   
     B 
    
   
  
    \boldsymbol{B} 
   
  
B是 
 
  
   
   
     A 
    
   
  
    \boldsymbol{A} 
   
  
A的逆矩阵,记为  
 
  
   
   
     B 
    
   
     = 
    
    
    
      A 
     
     
     
       − 
      
     
       1 
      
     
    
   
  
    \boldsymbol{B} = \boldsymbol{A}^{-1} 
   
  
B=A−1。逆矩阵之间的乘法是可交换的,即  
 
  
   
   
     A 
    
    
    
      A 
     
     
     
       − 
      
     
       1 
      
     
    
   
     = 
    
    
    
      A 
     
     
     
       − 
      
     
       1 
      
     
    
   
     A 
    
   
     = 
    
   
     I 
    
   
  
    \boldsymbol{A}\boldsymbol{A}^{-1} = \boldsymbol{A}^{-1}\boldsymbol{A} = \boldsymbol{I} 
   
  
AA−1=A−1A=I。例如:

  
   
    
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
          
          
            − 
           
          
            1 
           
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      , 
     
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
          
          
            − 
           
          
            1 
           
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      × 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           1 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
         
           0 
          
         
        
       
       
        
         
         
           0 
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
   
     \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} \times \begin{pmatrix} 1 & -1 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix},\quad \begin{pmatrix} 1 & -1 \\ 0 & 1 \end{pmatrix} \times \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} 
    
   
 (10​11​)×(10​−11​)=(10​01​),(10​−11​)×(10​11​)=(10​01​)

  转置操作与求逆操作之间的顺序可以交换,即

     ( 
    
    
    
      A 
     
    
      T 
     
    
    
    
      ) 
     
     
     
       − 
      
     
       1 
      
     
    
   
     = 
    
   
     ( 
    
    
    
      A 
     
     
     
       − 
      
     
       1 
      
     
    
    
    
      ) 
     
    
      T 
     
    
   
  
    (\boldsymbol{A}^\mathrm{T})^{-1} = (\boldsymbol{A}^{-1})^\mathrm{T} 
   
  
(AT)−1=(A−1)T。

(三)矩阵与线性方程组

  矩阵的逆并不是一定存在的。例如,二阶矩阵

      A 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
         
           1 
          
         
        
        
         
          
          
            − 
           
          
            1 
           
          
         
        
       
       
        
         
          
          
            − 
           
          
            1 
           
          
         
        
        
         
         
           1 
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol A = \left(\begin{matrix} 1 & -1 \\ -1 & 1 \end{matrix}\right) 
    
   
 A=(1−1​−11​) 就不存在逆矩阵。显然,零矩阵也不存在逆矩阵。那么,什么情况下矩阵的逆存在呢?我们可以从多元一次方程组的角度来理解。设矩阵  
 
  
   
    
    
      A 
     
     
     
       n 
      
     
       × 
      
     
       n 
      
     
    
   
     ∈ 
    
    
    
      R 
     
     
     
       n 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \boldsymbol A_{n\times n}\in \mathbb{R}^{n\times n} 
   
  
An×n​∈Rn×n,向量  
 
  
   
   
     x 
    
   
     ∈ 
    
    
    
      R 
     
    
      n 
     
    
   
  
    \boldsymbol x \in \mathbb{R}^n 
   
  
x∈Rn。将方程  
 
  
   
   
     A 
    
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol A\boldsymbol x = \boldsymbol 0 
   
  
Ax=0 按矩阵与向量的乘法展开,得到

  
   
    
    
      { 
     
     
      
       
        
         
          
          
            a 
           
          
            11 
           
          
          
          
            x 
           
          
            1 
           
          
         
           + 
          
          
          
            a 
           
          
            12 
           
          
          
          
            x 
           
          
            2 
           
          
         
           + 
          
         
           ⋯ 
          
         
           + 
          
          
          
            a 
           
           
           
             1 
            
           
             n 
            
           
          
          
          
            x 
           
          
            n 
           
          
         
           = 
          
         
           0 
          
         
        
       
      
      
       
        
         
          
          
            a 
           
          
            21 
           
          
          
          
            x 
           
          
            1 
           
          
         
           + 
          
          
          
            a 
           
          
            22 
           
          
          
          
            x 
           
          
            2 
           
          
         
           + 
          
         
           ⋯ 
          
         
           + 
          
          
          
            a 
           
           
           
             2 
            
           
             n 
            
           
          
          
          
            x 
           
          
            n 
           
          
         
           = 
          
         
           0 
          
         
        
       
      
      
       
        
         
          
          
          
          
            ⋮ 
           
           
            
           
          
         
        
       
      
      
       
        
         
          
          
            a 
           
           
           
             n 
            
           
             1 
            
           
          
          
          
            x 
           
          
            1 
           
          
         
           + 
          
          
          
            a 
           
           
           
             n 
            
           
             2 
            
           
          
          
          
            x 
           
          
            2 
           
          
         
           + 
          
         
           ⋯ 
          
         
           + 
          
          
          
            a 
           
           
           
             n 
            
           
             n 
            
           
          
          
          
            x 
           
          
            n 
           
          
         
           = 
          
         
           0 
          
         
        
       
      
     
    
   
     \begin{cases} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = 0 \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = 0 \\ \quad\quad\vdots \\ a_{n1}x_1 + a_{n2}x_2 + \cdots + a_{nn}x_n = 0 \\ \end{cases} 
    
   
 ⎩⎨⎧​a11​x1​+a12​x2​+⋯+a1n​xn​=0a21​x1​+a22​x2​+⋯+a2n​xn​=0⋮an1​x1​+an2​x2​+⋯+ann​xn​=0​ 这是一个 
 
  
   
   
     n 
    
   
  
    n 
   
  
n元一次方程组,且显然有解  
 
  
   
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol x= \boldsymbol 0 
   
  
x=0。如果该方程组只有这一个解,那么矩阵 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A的逆存在;反之,如果方程组存在非零解,则矩阵的逆不存在。设 
 
  
   
    
    
      x 
     
    
      1 
     
    
   
  
    \boldsymbol x_1 
   
  
x1​是方程的一个非零解,满足  
 
  
   
   
     A 
    
    
    
      x 
     
    
      1 
     
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol A \boldsymbol x_1 = \boldsymbol 0 
   
  
Ax1​=0,假设矩阵的逆存在,那么:

  
   
    
    
      0 
     
    
      = 
     
     
     
       A 
      
      
      
        − 
       
      
        1 
       
      
     
    
      0 
     
    
      = 
     
     
     
       A 
      
      
      
        − 
       
      
        1 
       
      
     
    
      A 
     
     
     
       x 
      
     
       1 
      
     
    
      = 
     
    
      I 
     
     
     
       x 
      
     
       1 
      
     
    
      = 
     
     
     
       x 
      
     
       1 
      
     
    
   
     \boldsymbol 0 = \boldsymbol A^{-1}\boldsymbol 0 = \boldsymbol A^{-1}\boldsymbol A \boldsymbol x_1 = \boldsymbol I \boldsymbol x_1 = \boldsymbol x_1 
    
   
 0=A−10=A−1Ax1​=Ix1​=x1​ 由此得到  
 
  
   
    
    
      x 
     
    
      1 
     
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol x_1=\boldsymbol 0 
   
  
x1​=0,与 
 
  
   
    
    
      x 
     
    
      1 
     
    
   
  
    \boldsymbol x_1 
   
  
x1​是非零解矛盾,故矩阵的逆不存在。

  我们用上面举的二阶矩阵的例子来进一步说明这一现象,该矩阵对应的方程组为

      { 
     
     
      
       
        
         
         
           + 
          
          
          
            x 
           
          
            1 
           
          
         
        
       
       
        
         
         
           − 
          
          
          
            x 
           
          
            2 
           
          
         
        
       
       
        
         
         
           = 
          
         
           0 
          
         
        
       
      
      
       
        
         
         
           − 
          
          
          
            x 
           
          
            1 
           
          
         
        
       
       
        
         
         
           + 
          
          
          
            x 
           
          
            2 
           
          
         
        
       
       
        
         
         
           = 
          
         
           0 
          
         
        
       
      
     
    
   
     \begin{cases} +x_1 &- x_2 &= 0 \\ -x_1 &+ x_2 &= 0 \end{cases} 
    
   
 {+x1​−x1​​−x2​+x2​​=0=0​ 可以发现,如果将第一个方程乘上-1,就得到了第二个方程。因此,这两个方程事实上是一样的,方程组其实只包含一个方程  
 
  
   
    
    
      x 
     
    
      1 
     
    
   
     − 
    
    
    
      x 
     
    
      2 
     
    
   
     = 
    
   
     0 
    
   
  
    x_1-x_2=0 
   
  
x1​−x2​=0。最终,方程组有两个未知数,但只有一个方程,就存在无穷多组解,从而矩阵的逆不存在。

  如果方程组

       A 
      
     
       x 
      
     
    
   
     = 
    
   
     0 
    
   
  
    \boldsymbol {Ax} = \boldsymbol0 
   
  
Ax=0 存在非零解,不妨设解向量中的前 
 
  
   
   
     m 
    
   
  
    m 
   
  
m维  
 
  
   
    
    
      x 
     
    
      1 
     
    
   
     , 
    
    
    
      x 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      x 
     
    
      m 
     
    
   
  
    x_1,x_2,\ldots, x_m 
   
  
x1​,x2​,…,xm​ 不为零。否则,我们总可以重排矩阵和向量行的顺序来使不为零的维度变成前 
 
  
   
   
     m 
    
   
  
    m 
   
  
m维。设矩阵 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A的列向量为  
 
  
   
    
    
      a 
     
    
      1 
     
    
   
     , 
    
    
    
      a 
     
    
      2 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      a 
     
    
      n 
     
    
   
  
    \boldsymbol a_1, \boldsymbol a_2, \ldots, \boldsymbol a_n 
   
  
a1​,a2​,…,an​,那么非零解就对应着下面的关系:

  
   
    
     
     
       x 
      
     
       1 
      
     
     
     
       a 
      
     
       1 
      
     
    
      + 
     
     
     
       x 
      
     
       2 
      
     
     
     
       a 
      
     
       2 
      
     
    
      + 
     
    
      ⋯ 
     
    
      + 
     
     
     
       x 
      
     
       m 
      
     
     
     
       a 
      
     
       m 
      
     
    
      = 
     
    
      0 
     
    
   
     x_1 \boldsymbol a_1 + x_2 \boldsymbol a_2 + \cdots + x_m \boldsymbol a_m = \boldsymbol 0 
    
   
 x1​a1​+x2​a2​+⋯+xm​am​=0 也就是说,原方程组中至少有一个方程可以由其他方程线性组合得到。像这样,对于向量  
 
  
   
    
    
      u 
     
    
      1 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      u 
     
    
      n 
     
    
   
  
    \boldsymbol u_1, \ldots, \boldsymbol u_n 
   
  
u1​,…,un​,如果以 
 
  
   
    
    
      t 
     
    
      i 
     
    
   
  
    t_i 
   
  
ti​为未知数的方程  
  
   
    
     
     
       ∑ 
      
      
      
        i 
       
      
        = 
       
      
        1 
       
      
     
       n 
      
     
     
     
       t 
      
     
       i 
      
     
     
     
       u 
      
     
       i 
      
     
    
      = 
     
    
      0 
     
    
   
     \sum_{i=1}^n t_i \boldsymbol u_i = \boldsymbol 0 
    
   
 i=1∑n​ti​ui​=0 有非零解,就称向量组  
 
  
   
    
    
      u 
     
    
      1 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      u 
     
    
      n 
     
    
   
  
    \boldsymbol u_1, \ldots, \boldsymbol u_n 
   
  
u1​,…,un​ 是线性相关的;反之,如果该方程只有零解,就称向量组是线性无关的。而对于线性相关的向量组,设其中存在 
 
  
   
   
     m 
    
   
  
    m 
   
  
m个向量线性无关,而任取 
 
  
   
   
     m 
    
   
     + 
    
   
     1 
    
   
  
    m+1 
   
  
m+1个向量都线性相关,则称该向量组的秩(rank)为 
 
  
   
   
     m 
    
   
  
    m 
   
  
m,记为  
 
  
   
    
    
      R 
     
    
      a 
     
    
      n 
     
    
      k 
     
    
   
     ( 
    
    
    
      u 
     
    
      1 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      u 
     
    
      n 
     
    
   
     ) 
    
   
     = 
    
   
     m 
    
   
  
    \mathrm{Rank}(\boldsymbol u_1, \ldots, \boldsymbol u_n) = m 
   
  
Rank(u1​,…,un​)=m。线性无关的向量组的秩就等于其包含向量的个数。将这一概念应用到矩阵上,可以定义矩阵 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A的秩 
 
  
   
    
    
      R 
     
    
      a 
     
    
      n 
     
    
      k 
     
    
   
     ( 
    
   
     A 
    
   
     ) 
    
   
  
    \mathrm{Rank}(\boldsymbol A) 
   
  
Rank(A)为其列向量组成的向量组的秩。于是,我们可以用矩阵的秩来判断其是否可逆:方阵 
 
  
   
    
    
      A 
     
     
     
       n 
      
     
       × 
      
     
       n 
      
     
    
   
  
    \boldsymbol A_{n\times n} 
   
  
An×n​可逆的充分必要条件是  
 
  
   
    
    
      R 
     
    
      a 
     
    
      n 
     
    
      k 
     
    
   
     ( 
    
   
     A 
    
   
     ) 
    
   
     = 
    
   
     n 
    
   
  
    \mathrm{Rank}(\boldsymbol A)=n 
   
  
Rank(A)=n。

  直观上来说,矩阵的秩可以衡量矩阵包含的信息,也就是矩阵的复杂程度。例如在上面的线性方程组中,虽然它包含两个方程,但由其中一个方程可以推出另一个,说明它包含的信息与仅有一个方程没有什么区别。对于矩阵来说,矩阵的秩越低,其列向量之间的相关性就越强,说明其实际上包含的信息就越少。

(四)矩阵范数

  与向量类似,在矩阵上同样可以定义范数函数

     ∥ 
    
   
     ⋅ 
    
   
     ∥ 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
     
     
       m 
      
     
       × 
      
     
       n 
      
     
    
   
     → 
    
   
     R 
    
   
  
    \| \cdot \| \colon \mathbb{R}^{m\times n} \to \mathbb{R} 
   
  
∥⋅∥:Rm×n→R,其需要满足的条件也与向量范数相同。

  (1)正定性:

     ∥ 
    
   
     A 
    
   
     ∥ 
    
   
     ≥ 
    
   
     0 
    
   
  
    \|\boldsymbol{A}\| \ge 0 
   
  
∥A∥≥0,且  
 
  
   
   
     ∥ 
    
   
     A 
    
   
     ∥ 
    
   
     = 
    
   
     0 
    
   
  
    \|\boldsymbol{A}\| = 0 
   
  
∥A∥=0 当且仅当 
 
  
   
   
     A 
    
   
  
    \boldsymbol{A} 
   
  
A的所有元素都为 
 
  
   
   
     0 
    
   
  
    0 
   
  
0。

  (2)绝对齐次性:

     ∥ 
    
   
     a 
    
   
     A 
    
   
     ∥ 
    
   
     = 
    
   
     ∣ 
    
   
     a 
    
   
     ∣ 
    
   
     ∥ 
    
   
     A 
    
   
     ∥ 
    
   
  
    \| a\boldsymbol{A} \| = |a|\| \boldsymbol{A} \| 
   
  
∥aA∥=∣a∣∥A∥。

  (3)三角不等式:

     ∥ 
    
   
     A 
    
   
     + 
    
   
     B 
    
   
     ∥ 
    
   
     ≤ 
    
   
     ∥ 
    
   
     A 
    
   
     ∥ 
    
   
     + 
    
   
     ∥ 
    
   
     B 
    
   
     ∥ 
    
   
  
    \| \boldsymbol{A} + \boldsymbol{B} \| \le \| \boldsymbol{A} \| + \| \boldsymbol{B} \| 
   
  
∥A+B∥≤∥A∥+∥B∥。

  在机器学习中,较为常用的矩阵范数是弗罗贝尼乌斯范数(Frobenius norm),简称

     F 
    
   
  
    \mathrm{F} 
   
  
F范数,定义为矩阵每个元素的平方之和的平方根: 
  
   
    
    
      ∥ 
     
    
      A 
     
     
     
       ∥ 
      
     
       F 
      
     
    
      = 
     
     
      
      
        ( 
       
       
       
         ∑ 
        
        
        
          i 
         
        
          = 
         
        
          1 
         
        
       
         m 
        
       
       
       
         ∑ 
        
        
        
          j 
         
        
          = 
         
        
          1 
         
        
       
         n 
        
       
       
       
         a 
        
        
        
          i 
         
        
          j 
         
        
       
         2 
        
       
      
        ) 
       
      
      
      
        1 
       
      
        2 
       
      
     
    
   
     \| \boldsymbol{A} \|_\mathrm{F} = \left( \sum_{i=1}^m \sum_{j=1}^n a_{ij}^2 \right)^{\frac{1}{2}} 
    
   
 ∥A∥F​=(i=1∑m​j=1∑n​aij2​)21​ 
 
  
   
   
     F 
    
   
  
    \mathrm{F} 
   
  
F范数与向量的 
 
  
   
    
    
      L 
     
    
      2 
     
    
   
  
    L_2 
   
  
L2​范数的定义较为类似,直观来说,可以用来衡量矩阵整体的“大小”,或者可以理解为将矩阵拉成向量后,向量对应的模长。

三、梯度

  在机器学习中,我们经常会将问题抽象成数学模型,经过一系列推导后,将其转化为在一定约束条件下,求某个函数在空间上的最小值的问题,这样的问题就叫做优化问题。给定函数

     f 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
    
      n 
     
    
   
     → 
    
   
     R 
    
   
  
    f\colon \mathbb{R}^n \to \mathbb{R} 
   
  
f:Rn→R,最简单也是最自然的优化问题是寻找函数的最小值: 
  
   
    
     
      
      
        min 
       
      
        ⁡ 
       
      
     
       x 
      
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
   
     \min_{\boldsymbol{x}} f(\boldsymbol{x}) 
    
   
 xmin​f(x)

  要求解这一优化问题,就必须分析该函数的性质,尤其是函数的变化趋势。试想,如果知道了函数在空间的每一个地方沿着任一方向是上升还是下降,就可以不断沿着函数值下降的方向走,直到向周围的所有方向函数值都上升为止。这时,我们就找到了函数的一个局部极小值。当然,这里描述的只是某种直观的感受,并不完全严谨,但也提示了函数的变化趋势在优化问题中的重要性。而梯度,就是描述函数变化速率和方向的工具。

  假设有一定微积分的基础,下面给出梯度(gradient)的定义。对于向量的标量值函数

     f 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
    
      n 
     
    
   
     → 
    
   
     R 
    
   
  
    f \colon \mathbb{R}^n \to \mathbb{R} 
   
  
f:Rn→R,其在 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x处的梯度为  
  
   
    
     
     
       ∇ 
      
     
       x 
      
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
     
      
      
        ( 
       
       
        
        
          ∂ 
         
        
          f 
         
        
        
        
          ∂ 
         
         
         
           x 
          
         
           1 
          
         
        
       
      
        , 
       
       
        
        
          ∂ 
         
        
          f 
         
        
        
        
          ∂ 
         
         
         
           x 
          
         
           2 
          
         
        
       
      
        , 
       
      
        ⋯ 
        
      
        , 
       
       
        
        
          ∂ 
         
        
          f 
         
        
        
        
          ∂ 
         
         
         
           x 
          
         
           n 
          
         
        
       
      
        ) 
       
      
     
       T 
      
     
    
   
     \nabla_{\boldsymbol{x}} f(\boldsymbol{x}) = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \cdots, \frac{\partial f}{\partial x_n} \right)^\mathrm{T} 
    
   
 ∇x​f(x)=(∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)T 其中, 
 
  
   
    
    
      ∇ 
     
    
      x 
     
    
   
  
    \nabla_{\boldsymbol{x}} 
   
  
∇x​表示对变量 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x求梯度。在不引起混淆的情况下,下标 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x可以省略。可以看出, 
 
  
   
   
     ∇ 
    
   
     f 
    
   
  
    \nabla f 
   
  
∇f也是一个 
 
  
   
   
     n 
    
   
  
    n 
   
  
n维向量,与 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x形状相同,其每一维均由 
 
  
   
   
     f 
    
   
  
    f 
   
  
f对 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x的对应维度求偏导数得到。我们知道,多元函数对其中一个变量的偏导数代表了函数在该变量方向上的变化速率和方向。如果将向量函数的变量 
 
  
   
   
     x 
    
   
  
    \boldsymbol{x} 
   
  
x看作是 
 
  
   
   
     n 
    
   
  
    n 
   
  
n个独立的标量变量,那么 
 
  
   
   
     f 
    
   
  
    f 
   
  
f也可以认为是有 
 
  
   
   
     n 
    
   
  
    n 
   
  
n个变量的多元函数  
 
  
   
   
     f 
    
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     , 
    
   
     … 
    
   
     , 
    
    
    
      x 
     
    
      n 
     
    
   
     ) 
    
   
  
    f(x_1, \ldots, x_n) 
   
  
f(x1​,…,xn​)。并且在直角坐标系中,由于向量的每一维都对应一个坐标轴, 
 
  
   
   
     f 
    
   
  
    f 
   
  
f对每个维度的偏导数,就指示了函数在这一坐标轴方向上的变化情况。最终由各个偏导数组合而成的向量,则代表函数在空间中完整的变化速率与方向。

  值得注意的是,梯度向量所指的方向有非常特殊的性质。如图1所示,图中是函数

     f 
    
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
     = 
    
   
     − 
    
   
     x 
    
   
     − 
    
   
     2 
    
   
     y 
    
   
  
    f(x,y) = -x - 2y 
   
  
f(x,y)=−x−2y 在 
 
  
   
   
     x 
    
   
     y 
    
   
  
    xy 
   
  
xy平面上的等值线图,在每条直线上函数的值都相等,且颜色越偏红的地方函数值越大,越偏蓝的地方函数值越小。按照上面的运算规则,可以算出函数在点  
 
  
   
   
     ( 
    
   
     1 
    
   
     , 
    
   
     1 
    
   
     ) 
    
   
  
    (1,1) 
   
  
(1,1) 处的梯度是  
 
  
   
   
     ( 
    
   
     − 
    
   
     1 
    
   
     , 
    
   
     − 
    
   
     2 
    
   
     ) 
    
   
  
    (-1,-2) 
   
  
(−1,−2)。图中画出了以  
 
  
   
   
     ( 
    
   
     1 
    
   
     , 
    
   
     1 
    
   
     ) 
    
   
  
    (1,1) 
   
  
(1,1) 为起点的一些箭头,图例中标明了箭头的方向,其中蓝色实线箭头是梯度方向。这些箭头的长度都相等。可以看出,虽然沿所有箭头的方向函数值都在增大,但是蓝色的箭头跨过了最多的等值线,说明沿该方向函数值增大最快。

在这里插入图片描述
图1 梯度与函数值变化
  或许有人对图1有疑问,认为函数非线性的情况与图中展示的线性情况不同,函数值增大最快的方向应当是从起点指向最大值点的方向。然而,仿照一元函数的泰勒展开

     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     ≈ 
    
   
     f 
    
   
     ( 
    
    
    
      x 
     
    
      0 
     
    
   
     ) 
    
   
     + 
    
    
    
      f 
     
    
      ′ 
     
    
   
     ( 
    
    
    
      x 
     
    
      0 
     
    
   
     ) 
    
   
     ( 
    
   
     x 
    
   
     − 
    
    
    
      x 
     
    
      0 
     
    
   
     ) 
    
   
  
    f(x) \approx f(x_0) + f'(x_0)(x-x_0) 
   
  
f(x)≈f(x0​)+f′(x0​)(x−x0​),我们也可以利用梯度对标量值函数在局部进行线性近似,即  
  
   
    
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      ≈ 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       0 
      
     
    
      ) 
     
    
      + 
     
    
      ∇ 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       0 
      
     
     
     
       ) 
      
     
       T 
      
     
    
      ( 
     
    
      x 
     
    
      − 
     
     
     
       x 
      
     
       0 
      
     
    
      ) 
     
    
   
     f(\boldsymbol x) \approx f(\boldsymbol x_0) + \nabla f(\boldsymbol x_0)^\mathrm{T} (\boldsymbol x - \boldsymbol x_0) 
    
   
 f(x)≈f(x0​)+∇f(x0​)T(x−x0​) 在遇到的情境中,函数 
 
  
   
   
     f 
    
   
  
    f 
   
  
f的性质通常都足够好,可以进行上面的线性近似。因此,当我们讨论函数在一个很小局部内的变化时,总是可以认为函数是线性的。这样,参照上面线性函数的例子,就可以从直观上推出:**在某一点函数值上升最快的方向就是函数在该点梯度的方向**。更严格的数学证明应当考虑函数在起点 
 
  
   
    
    
      x 
     
    
      0 
     
    
   
  
    \boldsymbol x_0 
   
  
x0​沿不同方向的方向导数 
 
  
   
    
     
      
       
        
        
          ∂ 
         
        
          f 
         
        
          ( 
         
         
         
           x 
          
         
           0 
          
         
        
          ) 
         
        
        
        
          ∂ 
         
        
          s 
         
        
       
      
     
    
   
  
    \begin{aligned}\frac{\partial f(\boldsymbol x_0)}{\partial \boldsymbol s}\end{aligned} 
   
  
∂s∂f(x0​)​​,其中 
 
  
   
   
     s 
    
   
  
    \boldsymbol s 
   
  
s表示空间中的某个方向。该导数的含义是,自变量从 
 
  
   
    
    
      x 
     
    
      0 
     
    
   
  
    \boldsymbol x_0 
   
  
x0​沿方向 
 
  
   
   
     s 
    
   
  
    \boldsymbol s 
   
  
s变为 
 
  
   
    
    
      x 
     
    
      0 
     
    
   
     + 
    
   
     d 
    
   
     s 
    
   
  
    \boldsymbol x_0 + \mathrm{d}\boldsymbol s 
   
  
x0​+ds时,函数值的变化为 
 
  
   
    
     
      
       
       
         ∥ 
        
        
         
         
           ∂ 
          
         
           f 
          
         
           ( 
          
          
          
            x 
           
          
            0 
           
          
         
           ) 
          
         
         
         
           ∂ 
          
         
           s 
          
         
        
       
         ∥ 
        
       
      
     
    
   
  
    \begin{aligned}\left\lVert \frac{\partial f(\boldsymbol x_0)}{\partial \boldsymbol s} \right\rVert\end{aligned} 
   
  
​∂s∂f(x0​)​​​。利用方向导数可以证明,当函数值变化最大时, 
 
  
   
   
     s 
    
   
  
    \boldsymbol s 
   
  
s就是梯度方向。

  图2展示了几个有代表性的二元函数在空间中部分点的梯度,分别是抛物面

     f 
    
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
     = 
    
    
    
      x 
     
    
      2 
     
    
   
     + 
    
    
    
      y 
     
    
      2 
     
    
   
  
    f(x,y)=x^2+y^2 
   
  
f(x,y)=x2+y2,马鞍面  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
     = 
    
    
    
      x 
     
    
      2 
     
    
   
     − 
    
    
    
      y 
     
    
      2 
     
    
   
  
    f(x,y)=x^2-y^2 
   
  
f(x,y)=x2−y2,以及 
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
     = 
    
   
     sin 
    
   
     ⁡ 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     sin 
    
   
     ⁡ 
    
   
     ( 
    
   
     y 
    
   
     ) 
    
   
  
    f(x,y)=\sin(x)\sin(y) 
   
  
f(x,y)=sin(x)sin(y)。

在这里插入图片描述
(a) 抛物面

      f 
     
    
      ( 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      ) 
     
    
      = 
     
     
     
       x 
      
     
       2 
      
     
    
      + 
     
     
     
       y 
      
     
       2 
      
     
    
   
     f(x,y)=x^2+y^2 
    
   
 f(x,y)=x2+y2 的梯度

在这里插入图片描述
(b) 马鞍面

      f 
     
    
      ( 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      ) 
     
    
      = 
     
     
     
       x 
      
     
       2 
      
     
    
      − 
     
     
     
       y 
      
     
       2 
      
     
    
   
     f(x,y)=x^2-y^2 
    
   
 f(x,y)=x2−y2 的梯度

在这里插入图片描述
(c)

      f 
     
    
      ( 
     
    
      x 
     
    
      , 
     
    
      y 
     
    
      ) 
     
    
      = 
     
    
      sin 
     
    
      ⁡ 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      sin 
     
    
      ⁡ 
     
    
      ( 
     
    
      y 
     
    
      ) 
     
    
   
     f(x,y)=\sin(x)\sin(y) 
    
   
 f(x,y)=sin(x)sin(y) 的梯度图2 几种二元函数的梯度示意

  上文介绍的函数以向量为自变量,函数值是标量。除此之外,在机器学习中我们还会经常遇到自变量和函数值都是向量的函数,称为向量值函数。设

     f 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
    
      n 
     
    
   
     → 
    
    
    
      R 
     
    
      m 
     
    
   
  
    \boldsymbol{f} \colon \mathbb{R}^n \to \mathbb{R}^m 
   
  
f:Rn→Rm 是向量值函数,那么函数值的每一维都是一个 
 
  
   
   
     n 
    
   
  
    n 
   
  
n元标量函数: 
  
   
    
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
     
      
      
        ( 
       
       
       
         f 
        
       
         1 
        
       
      
        ( 
       
       
       
         x 
        
       
         1 
        
       
      
        , 
       
      
        … 
       
      
        , 
       
       
       
         x 
        
       
         n 
        
       
      
        ) 
       
      
        , 
       
       
       
         f 
        
       
         2 
        
       
      
        ( 
       
       
       
         x 
        
       
         1 
        
       
      
        , 
       
      
        … 
       
      
        , 
       
       
       
         x 
        
       
         n 
        
       
      
        ) 
       
      
        , 
       
      
        ⋯ 
        
      
        , 
       
       
       
         f 
        
       
         m 
        
       
      
        ( 
       
       
       
         x 
        
       
         1 
        
       
      
        , 
       
      
        … 
       
      
        , 
       
       
       
         x 
        
       
         n 
        
       
      
        ) 
       
      
        ) 
       
      
     
       T 
      
     
    
   
     \boldsymbol f(\boldsymbol x) = \left(f_1(x_1,\ldots,x_n), f_2(x_1,\ldots,x_n), \cdots, f_m(x_1,\ldots,x_n)\right)^\mathrm{T} 
    
   
 f(x)=(f1​(x1​,…,xn​),f2​(x1​,…,xn​),⋯,fm​(x1​,…,xn​))T

  向量值函数其实并不少见,半径为

     r 
    
   
  
    r 
   
  
r的圆的参数方程  
 
  
   
   
     x 
    
   
     = 
    
   
     r 
    
   
     cos 
    
   
     ⁡ 
    
   
     θ 
    
   
     , 
    
   
     y 
    
   
     = 
    
   
     r 
    
   
     sin 
    
   
     ⁡ 
    
   
     θ 
    
   
  
    x=r\cos\theta, y=r\sin\theta 
   
  
x=rcosθ,y=rsinθ 就可以看成自变量为 
 
  
   
   
     θ 
    
   
  
    \theta 
   
  
θ、函数值为向量 
 
  
   
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
  
    (x,y) 
   
  
(x,y)的函数。假如我们要描述空间中的风速,那么也需要一个从空间坐标 
 
  
   
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     , 
    
   
     z 
    
   
     ) 
    
   
  
    (x,y,z) 
   
  
(x,y,z)到风速 
 
  
   
   
     ( 
    
    
    
      v 
     
    
      x 
     
    
   
     , 
    
    
    
      v 
     
    
      y 
     
    
   
     , 
    
    
    
      v 
     
    
      z 
     
    
   
     ) 
    
   
  
    (v_x,v_y,v_z) 
   
  
(vx​,vy​,vz​)的向量值函数。而在机器学习中,我们最常见的是向量之间的线性变换  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     = 
    
   
     A 
    
   
     x 
    
   
  
    \boldsymbol f(\boldsymbol x) = \boldsymbol A\boldsymbol x 
   
  
f(x)=Ax,其中 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A是矩阵。

  向量值函数同样也可以对自变量求导数,但这时导数的结果就变成矩阵,称为雅可比矩阵(Jacobian matrix),通常用

     ∇ 
    
   
     f 
    
   
  
    \nabla \boldsymbol f 
   
  
∇f或者 
 
  
   
    
    
      J 
     
    
      f 
     
    
   
  
    \boldsymbol J_{\boldsymbol f} 
   
  
Jf​表示。设  
 
  
   
   
     f 
    
    
    
    ⁣ 
   
     : 
    
    
    
    
      R 
     
    
      n 
     
    
   
     → 
    
    
    
      R 
     
    
      m 
     
    
   
  
    \boldsymbol{f} \colon \mathbb{R}^n \to \mathbb{R}^m 
   
  
f:Rn→Rm,其对自变量 
 
  
   
   
     x 
    
   
  
    \boldsymbol x 
   
  
x的梯度是一个  
 
  
   
   
     m 
    
   
     × 
    
   
     n 
    
   
  
    m \times n 
   
  
m×n 维的矩阵:

  
   
    
     
     
       ∇ 
      
     
       x 
      
     
    
      f 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
          
           
           
             ∇ 
            
           
             x 
            
           
             T 
            
           
           
           
             f 
            
           
             1 
            
           
          
         
        
       
       
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
       
       
        
         
          
           
           
             ∇ 
            
           
             x 
            
           
             T 
            
           
           
           
             f 
            
           
             m 
            
           
          
         
        
       
      
     
       ) 
      
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
          
           
            
             
              
               
               
                 ∂ 
                
                
                
                  f 
                 
                
                  1 
                 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  1 
                 
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
             
               ⋯ 
              
             
            
           
          
         
        
        
         
          
           
            
             
              
               
               
                 ∂ 
                
                
                
                  f 
                 
                
                  1 
                 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  n 
                 
                
               
              
             
            
           
          
         
        
       
       
        
         
          
           
            
             
              
              
                ⋮ 
               
               
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
              
             
            
           
          
         
        
        
         
          
           
            
             
              
              
                ⋮ 
               
               
                
               
              
             
            
           
          
         
        
       
       
        
         
          
           
            
             
              
               
               
                 ∂ 
                
                
                
                  f 
                 
                
                  m 
                 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  1 
                 
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
             
               ⋯ 
              
             
            
           
          
         
        
        
         
          
           
            
             
              
               
               
                 ∂ 
                
                
                
                  f 
                 
                
                  m 
                 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  n 
                 
                
               
              
             
            
           
          
         
        
       
      
     
       ) 
      
     
    
   
     \nabla_{\boldsymbol x} \boldsymbol f = \begin{pmatrix} \nabla_{\boldsymbol x}^\mathrm{T} f_1 \\ \vdots \\ \nabla_{\boldsymbol x}^\mathrm{T} f_m \end{pmatrix} = \begin{pmatrix} \begin{aligned}\frac{\partial f_1}{\partial x_1}\end{aligned} & \begin{aligned}\cdots\end{aligned} & \begin{aligned}\frac{\partial f_1}{\partial x_n}\end{aligned} \\ \begin{aligned}\vdots\end{aligned} & \begin{aligned}\end{aligned} & \begin{aligned}\vdots\end{aligned} \\ \begin{aligned}\frac{\partial f_m}{\partial x_1}\end{aligned} & \begin{aligned}\cdots\end{aligned} & \begin{aligned}\frac{\partial f_m}{\partial x_n}\end{aligned} \end{pmatrix} 
    
   
 ∇x​f=​∇xT​f1​⋮∇xT​fm​​​=​∂x1​∂f1​​​⋮​∂x1​∂fm​​​​⋯​​⋯​​∂xn​∂f1​​​⋮​∂xn​∂fm​​​​​ 其中 
 
  
   
    
    
      ∇ 
     
    
      T 
     
    
   
  
    \nabla^\mathrm{T} 
   
  
∇T表示先求梯度再转置。虽然严格意义上来说,雅可比矩阵已经不是梯度,但由于其与梯度的含义和形式都高度相似,也可以将其看作是梯度的推广。因此简单起见,统一用梯度来称呼标量值函数与向量值函数的导数,并用 
 
  
   
   
     ∇ 
    
   
  
    \nabla 
   
  
∇符号表示求梯度或雅可比矩阵。

  特别的,标量值函数的梯度是向量。类比于二阶导数,如果对梯度

     ∇ 
    
   
     f 
    
   
  
    \nabla f 
   
  
∇f再求一次梯度,得到的矩阵就称为 
 
  
   
   
     f 
    
   
  
    f 
   
  
f的黑塞矩阵(Hessian matrix):

  
   
    
     
     
       H 
      
     
       f 
      
     
    
      = 
     
     
     
       ∇ 
      
     
       2 
      
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
     
     
       ( 
      
      
       
        
         
          
           
            
             
              
               
                
                
                  ∂ 
                 
                
                  2 
                 
                
               
                 f 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  1 
                 
                
                  2 
                 
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
             
               ⋯ 
              
             
            
           
          
         
        
        
         
          
           
            
             
              
               
                
                
                  ∂ 
                 
                
                  2 
                 
                
               
                 f 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  1 
                 
                
               
                 ∂ 
                
                
                
                  x 
                 
                
                  n 
                 
                
               
              
             
            
           
          
         
        
       
       
        
         
          
           
            
             
              
              
                ⋮ 
               
               
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
              
             
            
           
          
         
        
        
         
          
           
            
             
              
              
                ⋮ 
               
               
                
               
              
             
            
           
          
         
        
       
       
        
         
          
           
            
             
              
               
                
                
                  ∂ 
                 
                
                  2 
                 
                
               
                 f 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  n 
                 
                
               
                 ∂ 
                
                
                
                  x 
                 
                
                  1 
                 
                
               
              
             
            
           
          
         
        
        
         
          
           
            
             
             
               ⋯ 
              
             
            
           
          
         
        
        
         
          
           
            
             
              
               
                
                
                  ∂ 
                 
                
                  2 
                 
                
               
                 f 
                
               
               
               
                 ∂ 
                
                
                
                  x 
                 
                
                  n 
                 
                
                  2 
                 
                
               
              
             
            
           
          
         
        
       
      
     
       ) 
      
     
    
   
     \boldsymbol{H}_f = \nabla^2 f(\boldsymbol{x})=\begin{pmatrix} \begin{aligned}\frac{\partial^2 f}{\partial x_1^2}\end{aligned} & \begin{aligned}\cdots\end{aligned} & \begin{aligned}\frac{\partial^2 f}{\partial x_1 \partial x_n}\end{aligned} \\ \begin{aligned}\vdots\end{aligned} & \begin{aligned}\end{aligned} & \begin{aligned}\vdots\end{aligned} \\ \begin{aligned}\frac{\partial^2 f}{\partial x_n \partial x_1}\end{aligned} & \begin{aligned}\cdots\end{aligned} & \begin{aligned}\frac{\partial^2 f}{\partial x_n^2}\end{aligned} \end{pmatrix} 
    
   
 Hf​=∇2f(x)=​∂x12​∂2f​​⋮​∂xn​∂x1​∂2f​​​⋯​​⋯​​∂x1​∂xn​∂2f​​⋮​∂xn2​∂2f​​​​

  我们直接给出向量求导的一些常用公式。读者可以发现,这些公式与一元标量函数的求导并无太大差别,只是需要注意向量和矩阵的转置来使维度相符。如无特殊标明,下面所有的求导都是对向量

     x 
    
   
  
    \boldsymbol x 
   
  
x进行的。其中 
 
  
   
   
     a 
    
   
  
    a 
   
  
a是标量, 
 
  
   
   
     y 
    
   
  
    \boldsymbol y 
   
  
y是向量, 
 
  
   
   
     A 
    
   
  
    \boldsymbol A 
   
  
A是矩阵。带有下角标的  
 
  
   
    
    
      α 
     
    
      x 
     
    
   
     , 
    
    
    
      β 
     
    
      x 
     
    
   
  
    \boldsymbol\alpha_{\boldsymbol{x}}, \boldsymbol\beta_{\boldsymbol{x}} 
   
  
αx​,βx​ 是 
 
  
   
   
     x 
    
   
  
    \boldsymbol x 
   
  
x的向量值函数。

  
   
    
     
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           y 
          
         
           T 
          
         
        
          x 
         
        
          = 
         
        
          ∇ 
         
         
         
           x 
          
         
           T 
          
         
        
          y 
         
        
          = 
         
        
          y 
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           x 
          
         
           T 
          
         
        
          x 
         
        
          = 
         
        
          2 
         
        
          x 
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
        
          ∥ 
         
        
          x 
         
         
         
           ∥ 
          
         
           2 
          
         
        
          = 
         
        
          x 
         
        
          / 
         
        
          ∥ 
         
        
          x 
         
         
         
           ∥ 
          
         
           2 
          
         
        
       
      
     
     
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           α 
          
         
           x 
          
         
           T 
          
         
        
          = 
         
        
          ( 
         
         
         
           ∇ 
          
          
          
            x 
           
          
            T 
           
          
         
         
         
           α 
          
         
           x 
          
         
         
         
           ) 
          
         
           T 
          
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           y 
          
         
           T 
          
         
        
          A 
         
        
          x 
         
        
          = 
         
         
         
           A 
          
         
           T 
          
         
        
          y 
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           x 
          
         
           T 
          
         
        
          A 
         
        
          x 
         
        
          = 
         
        
          ( 
         
        
          A 
         
        
          + 
         
         
         
           A 
          
         
           T 
          
         
        
          ) 
         
        
          x 
         
        
       
      
     
     
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
         
         
           α 
          
         
           x 
          
         
           T 
          
         
         
         
           β 
          
         
           x 
          
         
        
          = 
         
        
          ( 
         
        
          ∇ 
         
         
         
           α 
          
         
           x 
          
         
           T 
          
         
        
          ) 
         
         
         
           β 
          
         
           x 
          
         
        
          + 
         
         
         
           α 
          
         
           x 
          
         
           T 
          
         
        
          ( 
         
        
          ∇ 
         
         
         
           β 
          
         
           x 
          
         
        
          ) 
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
        
          A 
         
        
          x 
         
        
          = 
         
         
         
           A 
          
         
           T 
          
         
        
       
      
      
       
        
       
      
      
       
        
         
        
          ∇ 
         
        
          a 
         
        
          x 
         
        
          = 
         
        
          a 
         
        
          I 
         
        
       
      
     
    
   
     \begin{aligned} & \nabla \boldsymbol y^\mathrm{T}\boldsymbol x = \nabla \boldsymbol x^\mathrm{T}\boldsymbol y = \boldsymbol y && \nabla \boldsymbol x^\mathrm{T}\boldsymbol x = 2\boldsymbol x && \nabla \lVert \boldsymbol x \lVert_2 = \boldsymbol x / \lVert \boldsymbol x \lVert_2 \\ &\nabla \boldsymbol\alpha_{\boldsymbol{x}}^\mathrm{T} = (\nabla_{\boldsymbol{x}^\mathrm{T}} \boldsymbol\alpha_{\boldsymbol{x}})^\mathrm{T} && \nabla \boldsymbol y^{\mathrm{T}}\boldsymbol A\boldsymbol x = \boldsymbol A^{\mathrm{T}}\boldsymbol y &&\nabla \boldsymbol x^{\mathrm{T}}\boldsymbol A\boldsymbol x = (\boldsymbol A + \boldsymbol A^\mathrm{T})\boldsymbol x \\ &\nabla \boldsymbol\alpha_{\boldsymbol{x}}^\mathrm{T}\boldsymbol\beta_{\boldsymbol{x}} = (\nabla\boldsymbol\alpha_{\boldsymbol{x}}^\mathrm{T}) \boldsymbol\beta_{\boldsymbol{x}} + \boldsymbol\alpha_{\boldsymbol{x}}^\mathrm{T} (\nabla \boldsymbol\beta_{\boldsymbol{x}}) && \nabla \boldsymbol A \boldsymbol x = \boldsymbol A^\mathrm{T} &&\nabla a\boldsymbol x = a \boldsymbol I \end{aligned} 
    
   
 ​∇yTx=∇xTy=y∇αxT​=(∇xT​αx​)T∇αxT​βx​=(∇αxT​)βx​+αxT​(∇βx​)​​∇xTx=2x∇yTAx=ATy∇Ax=AT​​∇∥x∥2​=x/∥x∥2​∇xTAx=(A+AT)x∇ax=aI​

  与标量函数类似,函数

     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    f(\boldsymbol{x}) 
   
  
f(x)在 
 
  
   
    
    
      x 
     
    
      0 
     
    
   
  
    \boldsymbol{x}_0 
   
  
x0​处取到极大值或者极小值的必要条件是在该点的梯度为零向量: 
  
   
    
    
      ∇ 
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
     
     
       ∣ 
      
      
      
        x 
       
      
        0 
       
      
     
    
      = 
     
    
      0 
     
    
   
     \nabla f(\boldsymbol{x})|_{\boldsymbol{x}_0} = \boldsymbol{0} 
    
   
 ∇f(x)∣x0​​=0 虽然仅有这一条件并不充分,比如图2(b)展示过的  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     , 
    
   
     y 
    
   
     ) 
    
   
     = 
    
    
    
      x 
     
    
      2 
     
    
   
     − 
    
    
    
      y 
     
    
      2 
     
    
   
  
    f(x,y)=x^2-y^2 
   
  
f(x,y)=x2−y2,其在 
 
  
   
   
     ( 
    
   
     0 
    
   
     , 
    
   
     0 
    
   
     ) 
    
   
  
    (0,0) 
   
  
(0,0)处的梯度为零,但该点显然并非局部极小值。然而,进一步讨论需要用到 
 
  
   
    
    
      H 
     
    
      f 
     
    
   
  
    \boldsymbol H_f 
   
  
Hf​较为复杂的性质,且梯度为零在函数光滑时是必要条件。因此,我们暂且先对梯度与极值的关系有一个基本认识,在需要深入时再具体介绍分析的方法。

四、凸函数

  梯度为零并不能说明函数取到极值点。那么,是否存在一类函数,由梯度为零就可以直接推出极值点呢?考虑最简单的开口向上的二次函数

     y 
    
   
     = 
    
    
    
      x 
     
    
      2 
     
    
   
  
    y=x^2 
   
  
y=x2,显然函数在顶点  
 
  
   
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    x=0 
   
  
x=0 处的梯度为零,同时该点也是函数的极小值点。进一步分析可以发现,在自变量 
 
  
   
   
     x 
    
   
  
    x 
   
  
x由小变大的过程中,函数的导数(梯度) 
 
  
   
    
    
      y 
     
    
      ′ 
     
    
   
     = 
    
   
     2 
    
   
     x 
    
   
  
    y' = 2x 
   
  
y′=2x 是单调增加的。所以,如果导数存在零点 
 
  
   
    
    
      x 
     
    
      0 
     
    
   
  
    x_0 
   
  
x0​,在零点左边导数始终小于0,函数值单调减小;在零点右边导数始终大于0,函数值单调增加。这样,导数为零的点一定是函数的极小值点。

  当函数的自变量由一元扩展到多元、导数扩展成梯度的时候,我们同样需要把上面的直觉扩展,找到在不同情况下都适用的描述方法。直观上来说,如果梯度为零就可以推出极小值点,函数的图像应当是没有“起伏”的,这种性质该如何描述呢?这里直接给出定义:考虑函数

     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    f(\boldsymbol x) 
   
  
f(x),对任意  
 
  
   
    
    
      x 
     
    
      1 
     
    
   
     , 
    
    
    
      x 
     
    
      2 
     
    
   
  
    \boldsymbol x_1, \boldsymbol x_2 
   
  
x1​,x2​ 和  
 
  
   
   
     0 
    
   
     < 
    
   
     α 
    
   
     < 
    
   
     1 
    
   
  
    0 < \alpha < 1 
   
  
0<α<1,如果都有  
  
   
    
    
      α 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       1 
      
     
    
      ) 
     
    
      + 
     
    
      ( 
     
    
      1 
     
    
      − 
     
    
      α 
     
    
      ) 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       2 
      
     
    
      ) 
     
    
      ≥ 
     
    
      f 
     
    
      ( 
     
    
      α 
     
     
     
       x 
      
     
       1 
      
     
    
      + 
     
    
      ( 
     
    
      1 
     
    
      − 
     
    
      α 
     
    
      ) 
     
     
     
       x 
      
     
       2 
      
     
    
      ) 
     
    
   
     \alpha f(\boldsymbol x_1) + (1-\alpha)f(\boldsymbol x_2) \ge f(\alpha\boldsymbol x_1 + (1-\alpha) \boldsymbol x_2) 
    
   
 αf(x1​)+(1−α)f(x2​)≥f(αx1​+(1−α)x2​) 就称 
 
  
   
   
     f 
    
   
  
    f 
   
  
f是凸函数(convex function)。

  图3是一个凸函数的示意图,我们通过这张图来简单说明凸函数定义式的几何含义。上式左边是

     f 
    
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     ) 
    
   
  
    f(\boldsymbol x_1) 
   
  
f(x1​)和 
 
  
   
   
     f 
    
   
     ( 
    
    
    
      x 
     
    
      2 
     
    
   
     ) 
    
   
  
    f(\boldsymbol x_2) 
   
  
f(x2​)的加权平均,随着 
 
  
   
   
     α 
    
   
  
    \alpha 
   
  
α从0变化到1,它的轨迹就是连接 
 
  
   
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     , 
    
   
     f 
    
   
     ( 
    
    
    
      x 
     
    
      1 
     
    
   
     ) 
    
   
     ) 
    
   
  
    (\boldsymbol x_1, f(\boldsymbol x_1)) 
   
  
(x1​,f(x1​))和 
 
  
   
   
     ( 
    
    
    
      x 
     
    
      2 
     
    
   
     , 
    
   
     f 
    
   
     ( 
    
    
    
      x 
     
    
      2 
     
    
   
     ) 
    
   
     ) 
    
   
  
    (\boldsymbol x_2, f(\boldsymbol x_2)) 
   
  
(x2​,f(x2​))两点的线段。上式右边则是 
 
  
   
    
    
      x 
     
    
      1 
     
    
   
  
    \boldsymbol x_1 
   
  
x1​和 
 
  
   
    
    
      x 
     
    
      2 
     
    
   
  
    \boldsymbol x_2 
   
  
x2​两个点先加权平均得到  
 
  
   
   
     α 
    
    
    
      x 
     
    
      1 
     
    
   
     + 
    
   
     ( 
    
   
     1 
    
   
     − 
    
   
     α 
    
   
     ) 
    
    
    
      x 
     
    
      1 
     
    
   
  
    \alpha \boldsymbol x_1 + (1-\alpha) \boldsymbol x_1 
   
  
αx1​+(1−α)x1​、再求函数值的结果。要让上式成立,就需要左边表示的线段始终在右边对应位置的函数值上方,和上面我们希望的函数图像没有“起伏”是一致的。否则,我们就可以在函数图像有“鼓包”的地方找到两个点,使它们的连线在函数下方了。

在这里插入图片描述
图3 凸函数定义的几何解释
  图4展示了常见的凸函数

     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     = 
    
   
     ∣ 
    
   
     x 
    
   
     ∣ 
    
   
  
    f(x)=|x| 
   
  
f(x)=∣x∣ 和  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     = 
    
    
    
      e 
     
    
      x 
     
    
   
  
    f(x)=e^x 
   
  
f(x)=ex,以及非凸函数  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     = 
    
    
    
      x 
     
    
      3 
     
    
   
  
    f(x)=x^3 
   
  
f(x)=x3 和  
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     = 
    
   
     cos 
    
   
     ⁡ 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
     , 
    
   
     0 
    
   
     ≤ 
    
   
     x 
    
   
     ≤ 
    
   
     2 
    
   
     π 
    
   
  
    f(x)=\cos(x), 0\le x\le 2\pi 
   
  
f(x)=cos(x),0≤x≤2π。非凸函数的图像上还画出了一条红色虚线,表示该函数违反凸函数定义的地方。可以自行验证这些函数确实满足或不满足凸函数的定义。

在这里插入图片描述
图4 凸函数与非凸函数示例
  从这些例子中,我们需要说明几个与上面的“直觉”不完全相同的地方,也提醒注意严谨的数学表达是比直觉更可靠的工具。第一,凸函数不一定在所有点可导(可求梯度)。例如

     ∣ 
    
   
     x 
    
   
     ∣ 
    
   
  
    |x| 
   
  
∣x∣ 在  
 
  
   
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    x=0 
   
  
x=0 处的梯度就不存在。但我们在机器学习中遇到的大多数函数,都可以通过合理规定不可导点的导数来尽量弥补这一缺陷,比如规定  
 
  
   
   
     ∣ 
    
   
     x 
    
   
     ∣ 
    
   
  
    |x| 
   
  
∣x∣ 在  
 
  
   
   
     x 
    
   
     = 
    
   
     0 
    
   
  
    x=0 
   
  
x=0 的导数为 
 
  
   
   
     0 
    
   
  
    0 
   
  
0。第二,凸函数不一定存在极值点,例如 
 
  
   
    
    
      e 
     
    
      x 
     
    
   
  
    e^x 
   
  
ex在定义域内是单调递增函数,不存在导数为零的地方。第三,存在全局唯一极小值点的不一定是凸函数,例如 
 
  
   
   
     cos 
    
   
     ⁡ 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    \cos(x) 
   
  
cos(x)在  
 
  
   
   
     [ 
    
   
     0 
    
   
     , 
    
   
     2 
    
   
     π 
    
   
     ] 
    
   
  
    [0,2\pi] 
   
  
[0,2π] 区间上存在唯一极值点  
 
  
   
   
     x 
    
   
     = 
    
   
     π 
    
   
  
    x=\pi 
   
  
x=π,且该点的导数为  
 
  
   
   
     − 
    
   
     sin 
    
   
     ⁡ 
    
   
     ( 
    
   
     π 
    
   
     ) 
    
   
     = 
    
   
     0 
    
   
  
    -\sin(\pi)=0 
   
  
−sin(π)=0。甚至 
 
  
   
   
     cos 
    
   
     ⁡ 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    \cos(x) 
   
  
cos(x)在极值点左边导数  
 
  
   
   
     − 
    
   
     sin 
    
   
     ⁡ 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    -\sin(x) 
   
  
−sin(x) 始终为负、在极值点右边导数始终为正,与我们在本节最开始的描述相同,但它仍然不是凸函数。

  与凸函数相反,如果将定义式中的

     ≥ 
    
   
  
    \ge 
   
  
≥改为 
 
  
   
   
     ≤ 
    
   
  
    \le 
   
  
≤,即 
  
   
    
    
      α 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       1 
      
     
    
      ) 
     
    
      + 
     
    
      ( 
     
    
      1 
     
    
      − 
     
    
      α 
     
    
      ) 
     
    
      f 
     
    
      ( 
     
     
     
       x 
      
     
       2 
      
     
    
      ) 
     
    
      ≤ 
     
    
      f 
     
    
      ( 
     
    
      α 
     
     
     
       x 
      
     
       1 
      
     
    
      + 
     
    
      ( 
     
    
      1 
     
    
      − 
     
    
      α 
     
    
      ) 
     
     
     
       x 
      
     
       2 
      
     
    
      ) 
     
    
   
     \alpha f(\boldsymbol x_1) + (1-\alpha)f(\boldsymbol x_2) \le f(\alpha \boldsymbol x_1 + (1-\alpha) \boldsymbol x_2) 
    
   
 αf(x1​)+(1−α)f(x2​)≤f(αx1​+(1−α)x2​) 就得到了凹函数(concave function)。类比图2凸函数的几何解释,凹函数的图像应当是向上“鼓起”的,从而任意两点的连线都在图像的下方。因此,凸函数常常与最小化关联,凹函数常常与最大化关联。对比两者的定义式可以发现,如果 
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    f(\boldsymbol x) 
   
  
f(x)是凸函数,那么 
 
  
   
   
     − 
    
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    -f(\boldsymbol x) 
   
  
−f(x)一定是凹函数。相应来说,最小化凸函数 
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    f(\boldsymbol x) 
   
  
f(x)与最大化凹函数 
 
  
   
   
     − 
    
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ) 
    
   
  
    -f(\boldsymbol x) 
   
  
−f(x)是等价的。因此,我们只需要选取凸函数进行研究,就可以得到凹函数的所有性质。

  凸函数在机器学习中非常常见,一般向量范数都是凸函数。由于凸函数的良好性质,它的优化问题通常有简单且理论上严格的解法。因此,在后续所有的模型中,我们都希望尽可能找到某种形式的凸函数作为优化问题的目标。


本文转载自: https://blog.csdn.net/Morse_Chen/article/details/140780854
版权归原作者 Francek Chen 所有, 如有侵权,请联系我们删除。

“【机器学习基础】机器学习的数学基础”的评论:

还没有评论