L1、L2 distance and norm
L1-distance
L1-distance
: (曼哈顿距离),
d
1
d_{1}
d1 表示为:
d 1 ( p , q ) = ∣ ∣ p − q ∣ ∣ 1 = ∑ i = 1 n ∣ p i − q i ∣ , d_{1}(p, q) = ||\boldsymbol p - \boldsymbol q||_{1} = \sum_{i=1}^{n}|p_{i} - q_{i}|, d1(p,q)=∣∣p−q∣∣1=∑i=1n∣pi−qi∣,
这里的(p, q)
是向量
p = (
p
1
,
p_{1},
p1,
p
2
,
p_{2},
p2, …,
p
n
p_{n}
pn) and q = (
q
1
,
q_{1},
q1,
q
2
,
q_{2},
q2, …,
q
n
q_{n}
qn)
L2-distance
L2-distance
又称为欧式距离、欧几里得距离
d 2 ( p , q ) = ∣ ∣ p − q ∣ ∣ 2 2 = ∑ i = 1 n ( p i − q i ) 2 , d_{2}(p, q) = ||\boldsymbol p - \boldsymbol q||_{2}^{2} = \sqrt {\sum_{i=1}^{n}(p_{i} - q_{i})^{2}}, d2(p,q)=∣∣p−q∣∣22=∑i=1n(pi−qi)2,
这里的(p, q)
是向量
p = (
p
1
,
p_{1},
p1,
p
2
,
p_{2},
p2, …,
p
n
p_{n}
pn) and q = (
q
1
,
q_{1},
q1,
q
2
,
q_{2},
q2, …,
q
n
q_{n}
qn)
L2-norm
The l 2 − n o r m \boldsymbol l^{2}-norm l2−norm , ∣ ∣ X ∣ ∣ 2 2 ||{\boldsymbol X }||^{2}_{2} ∣∣X∣∣22 is a vector norm defined for a complex vector
X = [ x 1 x 2 : x n ] \boldsymbol X = \begin{bmatrix} x_{1} \\x_{2} \\:\\x_{n} \end{bmatrix} X=⎣⎢⎢⎡x1x2:xn⎦⎥⎥⎤
by
∣ ∣ X ∣ ∣ 2 2 = ∑ k = 1 n ∣ x k ∣ 2 ||\boldsymbol X||^{2}_{2} = \sqrt {\sum_{k=1}^{n}|x_{k}|^{2}} ∣∣X∣∣22=k=1∑n∣xk∣2
L2-normalization(L2 正则化)
求解l2-正则化的方法
import torch
import torch.nn.functional as F
x = torch.tensor([1, 2, 3, 4], dtype=torch.float32)
print(x / torch.norm(x, 2)) # 方式一
print(x / torch.pow(x, 2).sum(dim=0).sqrt()) # 方式二
# 方式三
A = torch.tensor([[1, 2, 3, 4], [4, 3, 2, 1]], dtype=torch.float)
print(F.normalize(A, dim=-1))
## 其中 torch.norm(x, 2)为x的L2-norm
结果为:
tensor([0.1826, 0.3651, 0.5477, 0.7303]) # 方式一的结果
tensor([0.1826, 0.3651, 0.5477, 0.7303]) # 方式二的结果
tensor([[0.1826, 0.3651, 0.5477, 0.7303], # 方式三的结果
[0.7303, 0.5477, 0.3651, 0.1826]])
Appendix A
Cosine similarity for two vectors, x , y ∈ R D \boldsymbol x, \boldsymbol y \in \mathbb{R}^{D} x,y∈RD is defined as :
c o s ( x , y ) = ∑ i = 1 D x i y i ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ cos(x, y) = \frac {\sum_{i=1}^{D}x_{i}y_{i}}{||\boldsymbol x||||\boldsymbol y||} cos(x,y)=∣∣x∣∣∣∣y∣∣∑i=1Dxiyi,
where ∣ ∣ x ∣ ∣ ||\boldsymbol x|| ∣∣x∣∣ is the l 2 l_{2} l2 norm of vector x \boldsymbol x x.If the vectors are l 2 l_{2} l2 normalized, cosine similarity
and Euclidean distance have a monotonic relation(单调关系), therefore, they can be interchanged
to provide idendical ordering /ranking of the results.
∣ ∣ x − y ∣ ∣ = 2 − 2 c o s ( x , y ) ||\boldsymbol x - \boldsymbol y|| = \sqrt{2-2cos(\boldsymbol x, \boldsymbol y)} ∣∣x−y∣∣=2−2cos(x,y)
注意: 如果 x 和 y \boldsymbol x 和\boldsymbol y x和y都被l2-正则化,则 ∣ ∣ x ∣ ∣ ||\boldsymbol x|| ∣∣x∣∣和 ∣ ∣ y ∣ ∣ ||\boldsymbol y|| ∣∣y∣∣都为1。
Appendix A 参考:http://cmp.felk.cvut.cz/~radenfil/publications/Radenovic-TR-2019-01.pdf