深度学习基础 - 叉积、点积、余弦相似性、马氏距离

flyfish

叉积(Cross product)、向量积(Vector product)、叉乘

是对三维空间中的两个向量的二元运算,使用符号 ×​\times​×​。与点积不同,它的运算结果是向量。对于线性无关的两个向量a\mathbf{a}a 和b\mathbf{b}b,它们的叉积写作写作a×b​\mathbf{a} \times \mathbf{b}​a×b​

是 a\mathbf{a}a 和b\mathbf{b}b 所在平面的法线向量,与a\mathbf{a}a 和b\mathbf{b}b 都垂直。

叉积的模长等于以两个向量为边的平行四边形的面积,叉积可以定义为:
a×b=∥a∥∥b∥sin⁡(θ)n \mathbf{a} \times \mathbf{b}=\|\mathbf{a}\|\|\mathbf{b}\| \sin (\theta) \mathbf{n} a×b=∥a∥∥b∥sin(θ)n

其中 θ\thetaθ 表示a\mathbf {a}a 和 b\mathbf {b}b 在它们所定义的平面上的夹角
(0∘≤θ≤180∘)\left(0^{\circ} \leq \theta \leq 180^{\circ}\right)(0∘≤θ≤180∘)
∥a∥\|\mathbf{a}\|∥a∥和∥b∥\|\mathbf{b}\|∥b∥是向量a\mathbf {a}a 和 b\mathbf {b}b 的模长,而 n 则是一个与 a、b\mathbf {a} 、 \mathbf {b}a、b 所构成的平面垂直的单位向量

如果以向量a 和 b 为边构成一个平行四边形,那么这两个向量叉积的模长与这个平行四边形的正面积相等
∥a×b∥=∥a∥∥b∥sin⁡θ \|\mathbf{a} \times \mathbf{b}\|=\|\mathbf{a}\|\|\mathbf{b}\| \sin \theta ∥a×b∥=∥a∥∥b∥sinθ

点积(Dot Product)、数量积、标量积、点乘

点积的名称源自表示点乘运算的点号(a∙b)(a \bullet b)(a∙b),标量积的叫法则是在强调其运算结果为标量而非向量。
两个向量a⃗=[a1,a2,⋯ ,an]\vec{a}=\left[a_{1}, a_{2}, \cdots, a_{n}\right]a=[a1​,a2​,⋯,an​]和b⃗=[b1,b2,⋯ ,bn]\vec{b}=\left[b_{1}, b_{2}, \cdots, b_{n}\right]b=[b1​,b2​,⋯,bn​]的点积定义为:

a⃗⋅b⃗=∑i=1naibi=a1b1+a2b2+⋯+anbn \vec{a} \cdot \vec{b}=\sum_{i=1}^{n} a_{i} b_{i}=a_{1} b_{1}+a_{2} b_{2}+\cdots+a_{n} b_{n} a⋅b=i=1∑n​ai​bi​=a1​b1​+a2​b2​+⋯+an​bn​

在欧几里得空间中,点积可以直观地定义为

a⃗⋅b⃗=∣a⃗∣∣b⃗∣cos⁡θ \vec{a} \cdot \vec{b}=|\vec{a}||\vec{b}| \cos \theta a⋅b=∣a∣∣b∣cosθ
∣x⃗∣|\vec{x}|∣x∣ 表示 x⃗\vec{x}x的模(长度), θ\thetaθ 表示两个向量之间的角度。
cos⁡θ=a⋅b∣a⃗∣∣b⃗∣ \cos \theta=\frac{\mathbf{a} \cdot \mathbf{b}}{|\vec{a}||\vec{b}|} cosθ=∣a∣∣b∣a⋅b​
以a⃗,b⃗,c⃗\vec{a}, \vec{b}, \vec{c}a,b,c为边构造一个三角形,采用余弦定理,有
∣c⃗∣2=∣a⃗∣2+∣b⃗∣2−2∣a⃗∣∣b⃗∣cos⁡θ​ |\vec{c}|^{2}=|\vec{a}|^{2}+|\vec{b}|^{2}-2|\vec{a}||\vec{b}| \cos \theta​ ∣c∣2=∣a∣2+∣b∣2−2∣a∣∣b∣cosθ​
a⃗⋅b⃗=∣a⃗∣∣b⃗∣cos⁡θ \vec{a} \cdot \vec{b}=|\vec{a}||\vec{b}| \cos \theta a⋅b=∣a∣∣b∣cosθ
余弦相似性(Cosine similarity)有的地方叫余弦距离
余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。

0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。

从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。

两个向量有相同的指向时,余弦相似度的值为1;

两个向量夹角为90°时,余弦相似度的值为0;

两个向量指向完全相反的方向时,余弦相似度的值为-1。

两个向量间的余弦值可以通过点积公式求出
a⋅b=∥a∥∥b∥cos⁡θ \mathbf{a} \cdot \mathbf{b}=\|\mathbf{a}\|\|\mathbf{b}\| \cos \theta a⋅b=∥a∥∥b∥cosθ

给定两个属性向量, A 和B,其余弦相似性θ\thetaθ由点积和向量长度给出

=cos⁡(θ)=A⋅B∥A∥∥B∥=∑i=1nAi×Bi∑i=1n(Ai)2×∑i=1n(Bi)2 =\cos (\theta)=\frac{A \cdot B}{\|A\|\|B\|}=\frac{\sum_{i=1}^{n} A_{i} \times B_{i}}{\sqrt{\sum_{i=1}^{n}\left(A_{i}\right)^{2}} \times \sqrt{\sum_{i=1}^{n}\left(B_{i}\right)^{2}}} =cos(θ)=∥A∥∥B∥A⋅B​=∑i=1n​(Ai​)2​×∑i=1n​(Bi​)2​∑i=1n​Ai​×Bi​​

这里的AiA_{i}Ai​和 BiB_{i}Bi​分别代表向量 A和B的各分量。

马哈拉诺比斯距离(Mahalanobis distance)、马氏距离

对于一个均值为
μ=(μ1,μ2,μ3,…,μp)T\mu=\left(\mu_{1}, \mu_{2}, \mu_{3}, \dots, \mu_{p}\right)^{T}μ=(μ1​,μ2​,μ3​,…,μp​)T ,协方差矩阵为 Σ\SigmaΣ的多变量向量x=(x1,x2,x3,…,xp)Tx=\left(x_{1}, x_{2}, x_{3}, \dots, x_{p}\right)^{T}x=(x1​,x2​,x3​,…,xp​)T
其马氏距离为
DM(x)=(x−μ)TΣ−1(x−μ) D_{M}(x)=\sqrt{(x-\mu)^{T} \Sigma^{-1}(x-\mu)} DM​(x)=(x−μ)TΣ−1(x−μ)​

马哈拉诺比斯距离也可以定义为两个服从同一分布并且其协方差矩阵为 Σ\SigmaΣ的随机变量 x⃗\vec {x}x与 y⃗\vec {y}y​的差异程度:
d(x⃗,y⃗)=(x⃗−y⃗)TΣ−1(x⃗−y⃗) d(\vec{x}, \vec{y})=\sqrt{(\vec{x}-\vec{y})^{T} \Sigma^{-1}(\vec{x}-\vec{y})} d(x,y​)=(x−y​)TΣ−1(x−y​)​

如果协方差矩阵为单位矩阵,马哈拉诺比斯距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。

d(x⃗,y⃗)=∑i=1p(xi−yi)2σi2 d(\vec{x}, \vec{y})=\sqrt{\sum_{i=1}^{p} \frac{\left(x_{i}-y_{i}\right)^{2}}{\sigma_{i}^{2}}} d(x,y​)=i=1∑p​σi2​(xi​−yi​)2​​

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐