传媒与信息工程学院 欧 新 宇
第02讲 向量的基础知识
第2章 描述空间的工具—向量
✓ 向量的基本知识回顾
✓ 列向量及向量的Python描述
✓ 向量的范数
✓ 常用向量
✓ 向量的加法和数乘
✓ 向量间的乘法
✓ 向量的线性组合
第2章 描述空间的工具—向量
总体说明
空间是贯穿线性代数整个领域的主干和核心 概念,我们所有的概念和应用都会构架在空间这 个逻辑实体上。而向量和矩阵就是我们用来填充 这个实体的工具,包括运算、映射、降维、投影、
近似求解、特征提取等,都将建立在基于矩阵和 向量的空间中实现。
第2章 描述空间的工具—向量
向量的基本知识回顾
向量的定义
⚫ 向量:也称欧几里得向量、几何向量、矢量,它指具有大小和 方向的量。它可以形象化地表示为带箭头的线段。直观地说,
一组排列成行或列的有序数字,就是向量。
⚫ 箭头所指:代表向量的方向;
⚫ 线段长度:代表向量的大小;
⚫ 向量的记法:
• 印刷体,记作小写粗斜体字母,如
a, b, u, v ;
• 手写体,在字母顶上加一小箭头“→”,如
• 给定向量的起点A和终点B,可记作𝑨𝑩;
• 在空间直角坐标系中,以数对形式表示,如 (2, 3)
向量的基本知识回顾
向量的定义
向量的基本知识回顾
二维向量的空间表示
【例2.1】给定二维向量𝒖 = 3
4 ,它有两个分量,其中x分量值 为3,y分量值为4,以原点(0,0)为起点,可以在直角坐标系中构 建一条有向线段。
向量的基本知识回顾
y
x
43 3 4
o
三维向量的空间表示
【例2.2】给定三维向量𝒖 = 4 2 2
,它有三个分量,其中x分量值 为4,y分量值为2,z分量值为2,以原点(0,0,0)为起点,可以在 三阶笛卡尔坐标系中构建一条有向线段。
向量的基本知识回顾
x
4 24 2 2
o z
2
列向量及向量的Python描述
计算机领域主要使用列向量
根据数字的排列方式,向量可以被分为行向量和列向 量。在计算机领域中,我们常使用列向量来表示和处理向 量。例如,将矩阵
A
映射到向量x上时,可以用A x来表示,
最常见的应用是求解方程组。列向量通常由两种表示方法。
⚫ 直观表示:𝛼 = 2
3 ,𝛽 = 2 3 4
⚫ 单行表示(更常用):𝛼 = 2, 3
𝑇
,𝛽 = 2, 3, 4𝑇
列向量
在Python中,最重要,也是最常用的一个库就是数学 计算库 Numpy,它也是本门课中最主要的python工具包。
下面我们将使用numpy库来实现数组(向量、矩阵)的创建。
⚫ 创建numpy数组(向量)
⚫ 获取变量数据类型
基于Python语言的向量表示
在机器学习及大多数计算机任务中,都会以列向量的 方式对数据进行处理,而numpy默认生成的是行向量。所 以,需要事先进行转换。
最容易也是最直接的方法:矩阵转置(Transpose)。
列向量的生成
值得注意的是,在计 算机的存储意识中,向量 是一维的量,它只在一个 维度上具有值。因此,无 法进行转置。
如何处理呢?
列向量的生成
一维向量 二维矩阵
⚫ 当我们使用向量来表示一个数据时,可以表示为:
𝑎=[𝑎 1 ,𝑎 2 ,...,𝑎 𝑛 ],
此时𝑎
是一个维度为 1,长度为 𝑛 的数据(向量);⚫ 当我们使用矩阵来表示这个向量时,则可以表示为: 𝑨
𝟐 =[𝑎 11 ,𝑎 12 ,...,𝑎 1𝑛 ]
,此时 𝑨
𝟐
是一个维度为2的数据(矩阵),第一个维度长度为 1,第 二个维度长度为 𝑛,我们也可以将这样的矩阵理解为一个行向量,一 行 𝑛 列,形态为: (1, 𝑛)。⚫ 在转换为二维矩阵后,就可以通过矩阵的转置实现行向量向列向量的 转换,此时的数据 𝑨
𝟐
将转变为一个列向量 𝑩𝟐
,𝑛 行一列,形态为:(𝑛, 1) ,表示为: 𝑨
𝟑 =[𝑎 11 ; 𝑎 21 ; ...; 𝑎 𝑛1 ]。
使用二维矩阵进行转换
列向量的生成
【结果分析】
⚫ 原始的一维向量𝑎和经过.transpose()或 .T 转换后的向量𝒃和𝒄
,都呈现为相同的形态 (4, 1),并且值也完全相同。这说明 在Python中,转置在向量上是无效的。
⚫ 当我们使用二维矩阵进行转换时,新生成的矩阵𝑨
𝟐
是一个 1×𝑛 的二维矩阵,当经过 .transpose() 和 .T 转换后,两个矩 阵都变成了𝑛×1的矩阵。这说明,原来以二维矩阵显示的行 向量,形态为(1, 4);已经转换为以二维矩阵显示的列向量了,形态为(4, 1)。
列向量的生成
特别注意
在Python中一维向量和二维矩阵的表示非常容易转换,只需 要增加一层中括号"[ ]"就可以实现从一维到二维的转换。
相似地,三维矩阵使用三层中括号表示,𝑛 维矩阵使用𝑛层中 括号表示。
下面给出一维向量和二维向量的表示。
列向量的生成
课堂互动一 Link
向量的范数
范数的定义
范数(norm):数学中的一种基本概念。在线性代数、泛函 分析及相关的数学领域,范数是一个具有“长度”概念的 函数。在泛函分析中,它定义在赋范线性空间中,并满足 一定的条件,即①非负性;②齐次性;③三角不等式。
范数常常被用来度量向量空间(或矩阵)中的某个向 量的长度或大小。例如,在二维的欧氏几何空间R中,元素 被刻画成一个从原点出发的带有箭头的有向线段,每一个 矢量的有向线段的长度即为该矢量的欧氏范数。
向量的范数
范数的定义
对于一个𝑛维向量𝐿
𝑝
= 𝑣1
, 𝑣2
, … , 𝑣𝑛
,其大小可以用 向量𝑣的范数来进行衡量,其一般形式可以表示为𝐿𝑝
:𝐿
𝑝
𝑣 ≡ 𝑣𝑝
= 𝑖=1 𝑛
𝑣
𝑖 𝑝
1 𝑝
其中, 𝑝 ∈ ℜ且𝑝 ≥ 1。
值得注意的是,符号 𝐿
𝑝
也被称为 𝒑-范数(p-norm)。向量的范数
范数的典型性质
范数直观上可以表示为衡量向量长度的函数,相当于求原点o 到点𝑣的距离,因此所有的范数都满足以下三条性质:
⚫ 非负性:函数的值永远都是非负,当且仅当向量为全零向量时,
范数函数值为0.
ቊ𝑓 𝒙 ≥ 0 𝒙 ≠ 0 𝑓 𝒙 = 0 𝒙 = 0 其中, 𝒙是任意向量, 𝑓 𝒙 是𝒙的范数。
⚫ 三角不等式:两个向量范数的和大于等于两个向量和的范数。
𝑓 𝒙 + 𝑓 𝒚 ≥ 𝑓 𝒙 + 𝒚
⚫ 正值齐次性: ∀𝑎 ∈ 𝑹, 𝑓 𝑎𝒙 = 𝑎 𝑓 𝒙
向量的范数
L2范数
对于𝒑-范数,当𝑝等于2时,L
2
范数(L2范数, L2 norm)也被称为欧几里得范数,它表示从源点出发到向 量𝑣的欧几里得距离,简称欧式距离。向量𝑣的欧式距离通 常可以表示为 𝑣2
,也可以省略为: 𝑣 ,即:𝑣
2
= 𝑣 = σ𝑖=1 𝑛
𝑣𝑖 2 1 2
在二维空间中,向量𝑣(𝑥, 𝑦) 的长度可以表示为:
𝑣 = σ
𝑖=1 2
𝑣𝑖 2
1
2
= 𝑥2
+ 𝑦2 1 2
向量的范数
L2范数-向量间的距离
对于空间中的任意两个向量,也可以利用L2范数来求 它们之间的距离。
【例2.3】求向量𝑢=[2,2] 和向量𝑣=[5,3] 之间的距离 𝑑 。
可以表示为:
𝑑 = 𝑥
1
− 𝑥2 2
+ 𝑦1
− 𝑦2 2 1 2
= 2 − 5
2
+ 2 − 32 1 2
= 10
向量的范数
1 2 3 4 5
1 2 3
u
v
L2范数-向量间的距离
L2范数在机器学习和深度学习中被广泛应用,在具体 的应用中,我们可以用两个向量的欧式距离来表达它们之 间的相似性。此外,还可以使用L2范数来对样本的特征或 权重进行约束。
例如,公式𝑎𝑟𝑔𝑚𝑖𝑛 𝑋𝜃 − 𝑦
2
+ Γ𝜃2
,给出了岭回归 算法(一种使用L2正则化的线性模型)的典型形式。如上例所示,为了方便计算,经常会使用平方L2范数 来替代L2范数,省去开平方操作。
向量的范数
L2范数-向量的点积
两个向量的点积 𝑥
𝑇
𝑦可以用范数来表示,具体如下:𝑥
𝑇
𝑦 = 𝑥2
𝑦2
cos 𝜃向量的范数
L1范数
当𝑝等于1时,𝒑-范数就会退化成另外一种常用的特殊范数
L 1
范数(L1范数, L1 norm)。其数学表达为:𝐿
1
𝑣 ≡ 𝑣1
= 𝑖=1 𝑛
𝑣
𝑖
不难看出,它是对向量中的每个元素的绝对值的累加。因 此,L1范数可以用来区分零元素和非零元素。在机器学习和深 度学习中,区分零和非零是非常重要,因此它也可以实现对样 本特征或权重的约束。
例如,公式𝑎𝑟𝑔𝑚𝑖𝑛 𝑋𝜃 − 𝑦
2
+ 𝛼 𝜃1
,给出了套索(Lasso) 回归算法(一种使用L1正则化的线性模型)的典型形式。向量的范数
无穷范数
当𝑝趋近于∞时,𝒑-范数就会变为机器学习中经常出现 的另外一种范数:L
∞
范数,又称为无穷范数或最大范数 (max norm)。L∞
范数表示向量中最大分量的绝对值:𝐿∞ 𝑣 ≡ 𝑣 ∞ = max
𝑖
𝑣𝑖
在数据处理中,有时需要选择出响应最大的分量来进 行处理。此时,就可以使用无穷范数。在深度学习中的卷 积神经网络CNN模型中的最大池化(max-pooling)就是 这种思想最典型的应用。
向量的范数
F-范数
弗罗贝尼乌斯范数(Frobenius范数):简称为F范数,
是一种定义在矩阵上的范数,用于衡量矩阵的大小。F范 数表示矩阵中各元素的平方和开方,其数学表达为:
𝑨
F
= 𝑖,𝑗
𝐴
𝑖,𝑗 2
F范数的计算规则与L2范数非常相似,区别是它是 定义在矩阵上的范数,用于衡量矩阵的大小。
向量的范数
范数的Python描述
⚫ L2范数:
np.linalg.norm(x) # 默认状态为L2范数 np.linalg.norm(x, ord=2)
⚫ L1范数:
np.linalg.norm(x, ord=1)
⚫ 无穷范数:
np.linalg.norm(x, ord=np.inf)
⚫ F范数:
np.linalg.norm(X) # 当X为矩阵时,即为F范数
向量的范数
课堂互动二 Link
常用向量
全0向量和全1向量
全0向量:所有分量都为0的向量,用一个粗体的0表示。
全1向量:所有分量都为1的向量,用一个粗体的1表示。
全0向量和全1向量,通常都是为了保证表达式描述的 正确性或为变量进行初始化使用。
𝟎 = 0 0⋮ 0
, 𝟏 = 1 1⋮ 1
常用向量
One-hot向量
One-Hot向量:又称为独热码(独热编码),有且仅有一 个分量为1,其它分量都为0的向量。其形式如下:
𝑎 = [0,0,1,0,0,0,0,0]
One-Hot向量在编码中使用广泛,例如,在分类应用 中,对于一个有8个类别的场景,通常将分类结果编码为一 个One-Hot向量,元素为1的那个分量对应的类别即为真实
(预测)的分类类别。
One-Hot属于一种稀疏编码,不同分量之间默认没有 关联。并且不同分量间通常是独立同分布(IID)的。
常用向量
One-hot向量的应用一:类别定义
在进行类别编码的时候,经常会使用one-hot变量来 实现多类的编码,例如在一个包含四个类别的任务中,
⚫ 原始的类别为:class=[cat, dog, sheep, fish],
⚫ 常见的编码形式为 [cat: 0, dog: 1, sheep: 2, fish: 3]
⚫ 其one-hot形式为:
[cat: 1000, dog: 0100, sheep: 0010, fish: 0001]
常用向量
One-hot向量的应用二:简化输出
在实际应用中,为了简化结果,我们经常使用 One-hot向量来作为多分类任务预测结果的最终输出.
例如, 给定一个5类的分类器,
✓ 其最终的概率输出为:prob = [0.2, 0.25, 0.5, 0.1, 0.05].
✓ 则经过简化后的最终输出为:pred = [0,0,1,0,0]
常用向量
单位向量
单位向量(Unit Vector):L2范数为1的向量。
𝑣 = 1
单位向量将向量的长度约束为1,这样很好地屏蔽了模 长带来的影响,使向量只用于表达方向一种量。例如常用 的余弦相似性(cosine similarity)就通过比较两个向量的 夹角大小来确定向量间的相似性。
cos 𝜃 = 𝑢
𝑇
𝑣 = 𝑣𝑇
𝑢其中,𝜃为两个向量的夹角,𝑢和𝑣为两个单位向量。
常用向量
课堂互动三 Link
读万卷书 行万里路 只为最好的修炼
QQ:14777591 (宇宙骑士)
Email:ouxinyu@alumni.hust.edu.cn Tel:18687840023