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

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

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=absin(θ)n

其中 θ \theta θ 表示 a \mathbf {a} a b \mathbf {b} b 在它们所定义的平面上的夹角
( 0 ∘ ≤ θ ≤ 18 0 ∘ ) \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} ab 所构成的平面垂直的单位向量

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

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

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

a ⃗ ⋅ b ⃗ = ∑ i = 1 n a i b i = a 1 b 1 + a 2 b 2 + ⋯ + a n b n \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=1naibi=a1b1+a2b2++anbn

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

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 ab
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 22a 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 ab=abcosθ

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

= cos ⁡ ( θ ) = A ⋅ B ∥ A ∥ ∥ B ∥ = ∑ i = 1 n A i × B i ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 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(θ)=ABAB=i=1n(Ai)2 ×i=1n(Bi)2 i=1nAi×Bi

这里的 A i A_{i} Ai B i B_{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 = ( x 1 , x 2 , x 3 , … , x p ) T x=\left(x_{1}, x_{2}, x_{3}, \dots, x_{p}\right)^{T} x=(x1,x2,x3,,xp)T
其马氏距离为
D M ( 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 = 1 p ( x i − y i ) 2 σ i 2 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=1pσi2(xiyi)2

你可能感兴趣的:(深度学习基础,TensorFlow)