L1L2-distance_and_norm

本文介绍了向量的L1距离(曼哈顿距离)和L2距离(欧式距离),以及它们在机器学习中作为度量标准的重要性。L2范数用于正则化,防止过拟合。通过Python的PyTorch库展示了L2正则化的实现。同时,文章提到了余弦相似性和欧氏距离之间的单调关系,说明了在特定条件下两者可以互换使用。
摘要由CSDN通过智能技术生成

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)=pq1=i=1npiqi

这里的(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)=pq22=i=1n(piqi)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 l2norm , ∣ ∣ X ∣ ∣ 2 2 ||{\boldsymbol X }||^{2}_{2} X22 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}} X22=k=1nxk2

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,yRD 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)=xyi=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)} xy=22cos(x,y)

注意: 如果 x 和 y \boldsymbol x 和\boldsymbol y xy都被l2-正则化,则 ∣ ∣ x ∣ ∣ ||\boldsymbol x|| x ∣ ∣ y ∣ ∣ ||\boldsymbol y|| y都为1。

Appendix A 参考:http://cmp.felk.cvut.cz/~radenfil/publications/Radenovic-TR-2019-01.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值