向量的各种积,都有哪些,分别如何表示

本文深入探讨了向量运算在机器学习中的应用,包括标量乘向量、向量点积、向量外积和矩阵向量积的概念及实例演示。通过numpy库的使用,详细解释了每种运算的操作方式及其在高维空间中的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


向量是线性代数中的基本概念,也是机器学习的基础数据表示形式。例如计算机阅读文本的过程首先就会将文本分词,然后用向量表示。这是因为向量很适合在高维空间中表达和处理。在机器学习中会接触到的诸如投影、降维的概念,都是在向量的基础上做的。这篇文章我们谈谈向量的各种积。

标量乘向量

标量 乘以向量 定义为:

在数学中,标量乘法是由线性代数中的向量空间定义的基本运算(更一般地说,它是抽象代数中的一个模块)。在通常的几何概念中,通过正实数的欧几里德向量的标量乘法将矢量的幅值相乘而不改变它的方向。 术语“标量”本身来自于这种用法:标量是向量的幅值。 标量乘法是向量乘以标量(乘积是向量),并且必须与两个向量的内积(乘积是标量)进行区分。

一个向量向量 乘以一个标量得到 :

import numpy as np
a = np.array([-1, 2])
print a * 3 #[-3, 6]

向量点积

向量的点积(又叫点乘)定义如下:

点积在数学中,又称数量积(dot product; scalar product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。

可见点积得到的是一个标量。

例如:

[ 3 5 2 1 4 7 ] \left[ \begin{matrix} 3 & 5 & 2 \\ 1 & 4 & 7 \end{matrix} \right] [315427] = 3 ⋅ 1 + 5 ⋅ 4 + 2 ⋅ 7 = 37 3⋅1+5⋅4+2⋅7=37 31+54+27=37

import numpy as np
a = np.array([3, 5, 2])
b = np.array([1, 4, 7])
print a.dot(b)  # 37
print np.dot(a, b)  # 37(另一种等价写法)

容易证明点积满足乘法交换律、分配律和结合律。

关于点积还有一个非常重要的性质,称为 柯西不等式 :

  • 对两个非 0 向量 x ⃗ , y ⃗ ∈ R n , ∣ x ⃗ ⋅ y ⃗ ∣ ≤ ∥ x ⃗ ∥ ∥ y ⃗ ∥ x⃗ ,y⃗ ∈Rn,|x⃗ ⋅y⃗ |≤∥x⃗ ∥∥y⃗ ∥ x,yRnxyxy
  • 当且仅当 x ⃗ = c y ⃗ x⃗ =cy⃗ x=cy 时,等式成立。

向量外积

向量的(又叫叉乘、向量积、叉积)只在 R 2 R^2 R2 R 3 R^3 R3 中定义:

R 2 R^2 R2 的向量外积:

[ a 1 a 2 ] \left[ \begin{matrix} a1 \\ a2 \end{matrix} \right] [a1a2] * [ b 1 b 2 ] \left[ \begin{matrix} b1 \\ b2 \end{matrix} \right] [b1b2] = [ a 1 ⋅ b 2 − a 2 ⋅ b 1 ] [a1⋅b2−a2⋅b1] [a1b2a2b1]

R 3 R^3 R3 的向量外积:

[ a 1 a 2 a 3 ] \left[ \begin{matrix} a1 \\ a2 \\ a3 \end{matrix} \right] a1a2a3 * [ b 1 b 2 b 3 ] \left[ \begin{matrix} b1 \\ b2 \\ b3\end{matrix} \right] b1b2b3 = [ a 2 ⋅ b 3 − a 3 ⋅ b 2 a 3 ⋅ b 1 − a 1 ⋅ b 3 a 1 ⋅ b 2 − a 2 ⋅ b 1 ] \left[ \begin{matrix} a2⋅b3−a3⋅b2 \\ a3⋅b1−a1⋅b3 \\ a1⋅b2−a2⋅b1 \end{matrix} \right] a2b3a3b2a3b1a1b3a1b2a2b1

可见向量间外积的结果会得到一个新的向量。

import numpy as np
a = np.array([3, 5, 2])
b = np.array([1, 4, 7])
print np.cross(a, b)  # [27, -19, 7]

矩阵向量积

矩阵的向量积可以当成是矩阵的所有列向量的线性组合:
例如矩阵 A = [ 4 1 3 2 1 5 ] A=\left[ \begin{matrix} 4 & 1 & 3 \\ 2 & 1 & 5 \end{matrix} \right] A=[421135]乘以向量 x ⃗ x⃗ x = [ 5 2 7 ] \left[ \begin{matrix} 5 \\ 2 \\ 7 \end{matrix} \right] 527 的结果为:

[ 4 ⋅ 5 + 3 ⋅ 2 + 1 ⋅ 7 1 ⋅ 5 + 2 ⋅ 2 + 5 ⋅ 7 ] \left[ \begin{matrix}4⋅5+3⋅2+1⋅7 \\ 1⋅5+2⋅2+5⋅7 \end{matrix} \right] [45+32+1715+22+57] = [ 33 44 ] \left[ \begin{matrix}33 \\ 44 \end{matrix} \right] [3344]

例如:

a = np.matrix('4 3 1;1 2 5')
x = np.array([[5], [2], [7]])
print a*x  # [[33] [44]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值