从零起步学习深度学习1

本文介绍了深度学习所需的基础数学概念,特别是线性代数中的核心概念,如标量、向量、矩阵和张量,以及转置操作。解释了矩阵和向量的乘法,点积的性质,并展示了线性方程组如何表示。内容适合初学者理解深度学习的数学基础。
摘要由CSDN通过智能技术生成

前期准备

前期需理解深度学习所需的基本数学概念。我们从应用数学的一般概念开始,这能使我们定义许多变量的函数,找到这些函数的最高和最低点,并量化信念度。

线性代数

1. 标量、向量、矩阵和张量

标量 (scalar)

一个标量就是一个单独的数,不同于线性代数中大多数概念会涉及到多个数。我们用斜体表示标量。标量通常赋予小写的变量名称。当我们介绍标量时,会明确它们是哪种类型的数。
比如,在定义实数标量时,我们可能会说,S表示一条线的斜率
s ∈ R . s ∈ R. sR.
在定义自然数标量时,我们可能会说,n表示元素的数目
n ∈ R . n ∈ R. nR.

向量 (vector)

一个向量是一列数。这些数是有序排列的。通过次序中的索引,我们可以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如 x 。向量中的元素可以通过带脚标的斜体表示。向量 x 的第一个元素是 x 1 x_1 x1,第二个元素是 x 2 x_2 x2,等等。我们也会注明存储在向量中的元素是什么类型的。如果每个元素都属于 R,并且该向量有 n 个元素,那么该向量属于实数集 R 笛卡尔乘积 n 次,表示为 R n R_n Rn。当我们需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的纵柱:
x = [ X 1 X 2 . . . x n ] x = \left[ \begin{matrix} X_1\\ X_2 \\ ... \\ x_n \end{matrix} \right] x=X1X2...xn
我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。有时我们需要指定向量中某个集合的元素。在这种情况下,我们定义一个包含这些索引的集合,然后将该集合写在脚标处。比如,指定 x 1 , x 3 和 x 6 x_1,x_3 和 x_6 x1x3x6,我们定义集合 S = {1, 3, 6},然后写作 x S x_S xS。我们用符号 - 表示集合的补集中的索引。比如 x − 1 x_{-1} x1 表示 x 中除 x1 外的所有元素, x − S x_-{S} xS 表示 x 中除 x 1 , x 3 , x 6 x_1,x_3,x_6 x1x3x6 外所有元素构成的向量。

矩阵 (matrix)

矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如 A A A。如果一个实数矩阵高度为 m,宽度为 n,那么我们说 A ∈ R m × n A∈ R_{m×n} ARm×n。我们在表示矩阵中的元素时,通常使用其名称以不加粗的斜体形式,索引用逗号间隔。比如, A 1 , 1 A_{1,1} A1,1 表示 A 左上的元素, A m , n A_{m,n} Am,n 表示 A 右下的元素。我们表示垂直坐标 i 中的所有元素时,用 : : : 表示水平坐标。比如, A i , : A_{i,:} Ai,: 表示 A 中垂直坐标 i 上的一横排元素。这也被称为 A 的第 i行 (row)。同样地, A : , i A_{:,i} A:,i 表示 A 的第 i 列 (column)。当我们需要明确表示矩阵中的元素时,我们将它们写在用方括号包围起来的数组中:
[ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2 ] \left[ \begin{matrix} A_{1,1} & A_{1,2} \\ A_{2,1} & A_{2,2} \end{matrix} \right] [A1,1A2,1A1,2A2,2]

张量 (tensor)

在某些情况下,我们会讨论不只两维坐标的数组。一般地,一组数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。我们使用这种字体 A 来表示张量 “A’’。张量 A 中坐标为 (i, j, k) 的元素记作 A i , j , k 。 A_{i,j,k}。 Ai,j,k

转置 (transpose)

是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称为主对角线 (main diagonal)。我们将矩阵 A 的转置表示为 A⊤,定义如下 ( A ⊤ ) i , j = A j , i . (A^⊤)_{i,j} = A_{j,i} . (A)i,j=Aj,i.

总结

向量可以看作是只有一列的矩阵。对应地,向量的转置可以看作是只有一行的矩阵。有时,我们将向量表示成行矩阵的转置,写在行中,然后使用转置将其变为标准的列向量,比如 x = [ x 1 , x 2 , x 3 ] ⊤ . x = [x_1, x_2, x_3]^⊤. x=[x1,x2,x3].
标量可以看作是只有一个元素的矩阵。因此,标量的转置等于它本身, A = A ⊤ A = A^⊤ A=A只要矩阵的形状一样,我们可以把两个矩阵相加。两个矩阵相加是指对应位置的元素相加,比如 C i , j = A i , j + B i , j 。 C_{i,j} = A_{i,j} + B_{i,j}。 Ci,j=Ai,j+Bi,j标量和矩阵相乘,或是和矩阵相加时,我们将其与矩阵的每个元素相乘或相加,比如 D i , j = a ⋅ B i , j + c . D_{i,j} = a · B_{i,j} + c. Di,j=aBi,j+c.在深度学习中,我们也使用一些不那么常规的符号。我们允许矩阵和向量相加,产生另一个矩阵: C i , j = A i , j + b j C_{i,j} = A_{i,j} + b_j Ci,j=Ai,j+bj换言之,向量 b 和矩阵 A 的每一行相加。

2. 矩阵和向量相乘

矩阵乘法是矩阵运算中最重要的操作之一。两个矩阵 AB 的矩阵乘积 (matrixproduct) 是第三个矩阵 C。为了使乘法定义良好,矩阵 A 的列数必须和矩阵 B 的行数相等。如果矩阵 A 的形状是 m × n , m × n, m×n矩阵 B 的形状是 n × p n × p n×p,那么矩阵 C 的形状是 m × p m × p m×p。矩阵乘积可以作用于两个或多个并在一起的矩阵,例如
C = A B . 可 以 表 示 为 : C i , j = ∑ k A i , k B k , j . (1) C = AB.\\ \\ 可以表示为:C_{i,j} = ∑_k A_{i,k}B_{k,j} . \tag{1} C=AB.Ci,j=kAi,kBk,j.(1)两个相同维数的向量 x 和 y 的点积 (dot product) 可看作是矩阵乘积 x ⊤ y x^⊤y xy。我们可以把矩阵乘积 C = A B C = AB C=AB 中计算 C i , j C_{i,j} Ci,j 的步骤看作是 A 的第 i 行和 B 的第 j 列之间的点积。

矩阵乘积运算有许多有用的性质,从而使矩阵的数学分析更加方便。比如,矩阵乘积服从分配律:
A ( B + C ) = A B + A C . (2) A(B + C) = AB + AC. \tag{2} A(B+C)=AB+AC.(2)
矩阵乘积也服从结合律:
A ( B C ) = ( A B ) C . (3) A(BC) = (AB)C. \tag{3} A(BC)=(AB)C.(3)
不同于标量乘积,矩阵乘积并不满足交换律(AB = BA 的情况并非总是满足)。
然而,两个向量的点积 (dot product) 满足交换律:
x ⊤ y = y ⊤ x . (4) x^⊤y = y^⊤x. \tag{4} xy=yx.(4)
矩阵乘积的转置有着简单的形式:
( A B ) ⊤ = B ⊤ A ⊤ . (5) (AB)^⊤ = B^⊤A^⊤. \tag{5} (AB)=BA.(5)
利用向量乘积是标量,标量转置是自身的事实,我们可以证明式(4):
x ⊤ y = x ⊤ y ) ⊤ = y ⊤ x . (6) x⊤y = x⊤y)⊤ = y⊤x. \tag{6} xy=xy)=yx.(6)
由于重点不是线性代数,我们并不试图展示矩阵乘积的所有重要性质,但应该知道矩阵乘积还有很多有用的性质。
现在我们已经知道了足够多的线性代数符号,可以表达下列线性方程组:
A x = b (7) Ax = b \tag{7} Ax=b(7)
其中 A ∈ R m × n A ∈ R_{m×n} ARm×n 是一个已知矩阵,b 是一个已知向量,x 是一个我们要求解的未知向量。向量 x 的每一个元素 xi 都是未知的。矩阵 A 的每一行和 b 中对应的元素构成一个约束。我们可以把式(7)重写为
A 1 , : x = b 1 A 2 , : x = b 2 ⋅ ⋅ ⋅ A m , : x = b m A_{1,:x} = b_1 \\ A_{2,:x} = b_2 \\ · · · \\ A_{m,:x} = b_m A1,:x=b1A2,:x=b2Am,:x=bm
或者,更明确地,写作
A 1 , 1 x 1 + A 1 , 2 x 2 + ⋅ ⋅ ⋅ A 1 , n x n = b 1 A 2 , 1 x 1 + A 2 , 2 x 2 + ⋅ ⋅ ⋅ A 2 , n x n = b 2 ⋅ ⋅ ⋅ A m , 1 x 1 + A m , 2 x 2 + ⋅ ⋅ ⋅ A m , n x n = b m . A_{1,1}x_1 + A_{1,2}x_2 + · · · A_{1,nxn} = b_1 \\ A_{2,1}x_1 + A_{2,2}x_2 + · · · A_{2,nxn} = b_2 \\ · · · \\ A_{m,1}x_1 + A_{m,2}x_2 + · · · A_{m,nxn} = b_m. A1,1x1+A1,2x2+A1,nxn=b1A2,1x1+A2,2x2+A2,nxn=b2Am,1x1+Am,2x2+Am,nxn=bm.
矩阵向量乘积符号为这种形式的等式提供了更紧凑的表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值