0


人工智能和机器学习之线性代数(一)

人工智能和机器学习之线性代数(一)

本文Linear Algebra 101 for AI/ML – Part 1将介绍向量和矩阵的基础知识以及开源的机器学习框架

PyTorch

文章目录

基本定义

标量(Scalar)

标量是表示无方向的单个数值,仅仅表示程度或大小。在编程术语中,可以将标量视为包含单个数字的简单变量,例如整数或浮点数。标量的示例包括 温度(temperature)、年龄(age) 和 体重(weight)。

向量(Vector)

向量是标量的有序列表。之所以向量是有序的,因为标量在向量中的位置很重要。如下图所示 向量

y

表示电影《复仇者联盟:终局之战》Avengers: Endgame,向量中的每一个数字描述了影片的一个特定属性,其中

action

表示该电影属于动作类题材的占比为0.99,

comedy

表示属于喜剧题材的占比为0.52,

drama

表示属于戏剧题材的占比为0.45,

horror

表示属于恐怖题材的占比为0.10,

romance

表示属于浪漫题材的占比为0.26。

向量y
这部电影的动作值为 0.99,恐怖值为 0.10。这表明这部电影更像是一部动作片,而不是一部恐怖片。

向量y'
如果将

action 

的值与

horor 

的值交换,则该向量将不再准确表示电影《复仇者联盟:终局之战》,它不是恐怖电影。这就是顺序很重要的原因,即,改变顺序后变成另外一个向量。

向量总是以列或行的形式排列。以下是不同长度的行或列形式的向量。
行向量或列向量
注意,向量要么有一行,要么有一列。如果想要一个具有多行和多列的数学对象,该怎么办?这就是矩阵发挥作用的地方。

矩阵(Matrix)

如果标量是单个数字,向量是标量的一维有序列表,则矩阵是标量的二维数组。下面

X 

是一个示例矩阵(4行2列)。
矩阵X
每行对应于一个家庭的地址,即表示一个家庭。第一列表示家中卧室的数量,第二列表示浴室的数量。故矩阵

X

表示了多个家庭,以及每个家庭的特有属性。

二维矩阵也可以表示为向量的形式:

      X 
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
          
          
            a 
           
          
            ⃗ 
           
          
         
        
       
       
        
         
          
          
            b 
           
          
            ⃗ 
           
          
         
        
       
       
        
         
          
          
            c 
           
          
            ⃗ 
           
          
         
        
       
       
        
         
          
          
            d 
           
          
            ⃗ 
           
          
         
        
       
      
     
       ] 
      
     
    
   
     X=\begin{bmatrix} \vec{a} \\ \vec{b} \\ \vec{c} \\ \vec{d} \end{bmatrix} 
    
   
 X=​abcd​​

向量

a

表示地址为

123 Maple Grove Lane

的家庭:

       a 
      
     
       ⃗ 
      
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           3 
          
         
        
       
       
        
         
         
           3 
          
         
        
       
      
     
       ] 
      
     
    
   
     \vec{a} =\begin{bmatrix} 3\\ 3 \end{bmatrix} 
    
   
 a=[33​]

向量

b

表示地址为

888 Ocean View Terrace

的家庭:

       b 
      
     
       ⃗ 
      
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           4 
          
         
        
       
       
        
         
         
           3 
          
         
        
       
      
     
       ] 
      
     
    
   
     \vec{b} =\begin{bmatrix} 4\\ 3 \end{bmatrix} 
    
   
 b=[43​]

向量

c

表示地址为

100 Birch Street

的家庭:

       c 
      
     
       ⃗ 
      
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           5 
          
         
        
       
       
        
         
         
           3 
          
         
        
       
      
     
       ] 
      
     
    
   
     \vec{c} =\begin{bmatrix} 5\\ 3 \end{bmatrix} 
    
   
 c=[53​]

向量

d

表示地址为

987 Sunflower Court

的家庭:

       d 
      
     
       ⃗ 
      
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           5 
          
         
        
       
       
        
         
         
           4 
          
         
        
       
      
     
       ] 
      
     
    
   
     \vec{d} =\begin{bmatrix} 5\\ 4 \end{bmatrix} 
    
   
 d=[54​]

数学符号表示

实数集合

R

是数学家对在日常生活中使用的所有数字的表示方式:实数数轴线上的所有整数(whole numbers)、负数(negative numbers,)、分数(fractions)、小数(decimal numbers)和无理数( irrational numbers)。
实数R
下面的

x

表示任意一个实数

标量

      x 
     
    
      ∈ 
     
    
      R 
     
    
   
     x\in R 
    
   
 x∈R

下面的表示任意一个

m

维的

向量

       [ 
      
      
       
        
         
          
          
            x 
           
          
            0 
           
          
         
        
       
       
        
         
          
          
            x 
           
          
            1 
           
          
         
        
       
       
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
       
       
        
         
          
          
            x 
           
           
           
             m 
            
           
             − 
            
           
             1 
            
           
          
         
        
       
      
     
       ] 
      
     
    
      ∈ 
     
     
     
       R 
      
     
       m 
      
     
    
   
     \begin{bmatrix} x_{0} \\ x_{1}\\ \vdots \\ x_{m-1} \end{bmatrix}\in R^{m} 
    
   
 ​x0​x1​⋮xm−1​​​∈Rm

下面表示任意

m x n

矩阵

       [ 
      
      
       
        
         
          
          
            x 
           
           
           
             0 
            
           
             , 
            
           
             0 
            
           
          
         
        
        
         
          
          
            x 
           
           
           
             0 
            
           
             , 
            
           
             1 
            
           
          
         
        
        
         
         
           … 
          
         
        
        
         
          
          
            x 
           
           
           
             0 
            
           
             , 
            
           
             n 
            
           
             − 
            
           
             1 
            
           
          
         
        
       
       
        
         
          
          
            x 
           
           
           
             1 
            
           
             , 
            
           
             0 
            
           
          
         
        
        
         
          
          
            x 
           
           
           
             1 
            
           
             , 
            
           
             1 
            
           
          
         
        
        
         
         
           … 
          
         
        
        
         
          
          
            x 
           
           
           
             1 
            
           
             , 
            
           
             n 
            
           
             − 
            
           
             1 
            
           
          
         
        
       
       
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
        
         
          
          
            ⋮ 
           
           
            
           
          
         
        
       
       
        
         
          
          
            x 
           
           
           
             m 
            
           
             − 
            
           
             1 
            
           
             , 
            
           
             0 
            
           
          
         
        
        
         
          
          
            x 
           
           
           
             m 
            
           
             − 
            
           
             1 
            
           
             , 
            
           
             1 
            
           
          
         
        
        
         
         
           … 
          
         
        
        
         
          
          
            x 
           
           
           
             m 
            
           
             − 
            
           
             1 
            
           
             , 
            
           
             n 
            
           
             − 
            
           
             1 
            
           
          
         
        
       
      
     
       ] 
      
     
    
      ∈ 
     
     
     
       R 
      
      
      
        m 
       
      
        × 
       
      
        n 
       
      
     
    
   
     \begin{bmatrix} x_{0,0} & x_{0,1} & \dots & x_{0,n-1} \\ x_{1,0} & x_{1,1} & \dots & x_{1,n-1}\\ \vdots & \vdots& \vdots& \vdots\\ x_{m-1,0}& x_{m-1,1} & \dots & x_{m-1,n-1} \end{bmatrix} \in R^{m\times n} 
    
   
 ​x0,0​x1,0​⋮xm−1,0​​x0,1​x1,1​⋮xm−1,1​​……⋮…​x0,n−1​x1,n−1​⋮xm−1,n−1​​​∈Rm×n

使用 PyTorch 进行操作

上面章节已经建立了向量和矩阵的定义及其数学符号,本节将在代码中简单尝试一下,加深一下印象。为此,将使用 PyTorch开源机器学习框架。

PyTorch

在整个学术界和工业界广泛用于

 OpenAI

Amazon

Meta

Salesforce

、斯坦福大学等机构和公司的尖端

AI

研究和生产级软件,以及数千家初创公司,因此积累该框架的经验将是实用的。请访问官方

PyTorch

安装说明页面以开始使用。

张量(Tensors)

向量具有1 维,矩阵具有2 个维度,那么涵盖 3 个或更多维度的通用术语是什么?答案:张量。实际上,向量和矩阵也是张量,因为张量是任何N 维数字数组。张量是

PyTorch

中的基本单位。使用 PyTorch 函数

torch.tensor(...)

创建向量和矩阵。

import torch
>>> a = torch.rand((3,4,2))# Create a three
tensor([[[0.8856,0.9232],# dimensional tensor[0.0250,0.2977],# with random values[0.4745,0.2243],[0.3107,0.9159]],[[0.3654,0.3746],[0.4026,0.4557],[0.9426,0.0865],[0.3805,0.5034]],[[0.3843,0.9903],[0.6279,0.2222],[0.0693,0.0140],[0.6222,0.3590]]])>>> a.shape
torch.Size([3,4,2])# the tensor's dimensions

定义变量

定义向量

a

和矩阵

m

import torch
a = torch.tensor([[3],[4],[5],[5]])
m = torch.tensor([[3,4],[5,6]])
      a 
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           3 
          
         
        
       
       
        
         
         
           4 
          
         
        
       
       
        
         
         
           5 
          
         
        
       
       
        
         
         
           5 
          
         
        
       
      
     
       ] 
      
     
    
      ∈ 
     
     
     
       R 
      
      
      
        4 
       
      
        × 
       
      
        1 
       
      
     
    
   
     a=\begin{bmatrix} 3\\ 4\\ 5\\ 5 \end{bmatrix}\in R^{4\times 1} 
    
   
 a=​3455​​∈R4×1


  
   
    
    
      m 
     
    
      = 
     
     
     
       [ 
      
      
       
        
         
         
           3 
          
         
        
        
         
         
           4 
          
         
        
       
       
        
         
         
           5 
          
         
        
        
         
         
           6 
          
         
        
       
      
     
       ] 
      
     
    
   
     m=\begin{bmatrix} 3 & 4\\ 5 & 6 \end{bmatrix} 
    
   
 m=[35​46​]

四则运算

简单的加减乘除四则运算
四则运算

>>>import torch
>>> a = torch.tensor([1.0,2.0,4.0,8.0])>>> b = torch.tensor([1.0,0.5,0.25,0.125])>>> a + b # element-wise addition
tensor([2.00,2.50,4.25,8.125])>>> a - b # element-wise subtraction
tensor([0.0,1.5,3.75,7.8750])>>> a * b # element-wise multiplication
tensor([1.,1.,1.,1.])>>> a / b # element-wise division
tensor([1.,4.,16.,64.])

Sigmoid运算

sigmoid(x)

函数将x压缩到范围(0,1), 请注意,只有具有任意较大的值并且希望将它们压缩为介于 0 和 1 之间的值范围时,这非常有用。有时将

sigmoid

的输出解释为概率很有用。

      σ 
     
     
     
       ( 
      
     
       x 
      
     
       ) 
      
     
    
      = 
     
     
     
       1 
      
      
      
        1 
       
      
        + 
       
       
       
         e 
        
        
        
          − 
         
        
          x 
         
        
       
      
     
    
   
     \sigma \left ( x \right ) =\frac{1}{1+e^{-x} } 
    
   
 σ(x)=1+e−x1​

sigma函数图像

sigmoid

>>> torch.sigmoid(a)
tensor([0.7311,0.8808,0.9820,0.9997])>> torch.sigmoid(torch.tensor(239))
tensor(1.)>>> torch.sigmoid(torch.tensor(0))
tensor(0.5000)>>> torch.sigmoid(torch.tensor(-0.34))
tensor(0.4158)

ReLU运算

ReLU

函数充当过滤器。任何正输入都保持不变,但任何负输入都变为零。

>>> c = torch.tensor([4,-4,0,2])>>> torch.relu(c)
tensor([4,0,0,2])

relu
relu函数图像


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

“人工智能和机器学习之线性代数(一)”的评论:

还没有评论