概述
声明: 仅个人小记
前言:范数在不同场合下可以有不同的解释,利用范数优良的抽象性质,在不同的场合下可以解释为不同的东西。于我而言,学习范数概念使我意会到 “高度抽象的距离” 这个概念。而“距离”这个概念在机器学习等领域随处可见
一、向量范数总体定义
∥ v ⃗ ∥ p = ( ∣ v 1 ∣ p + ∣ v 2 ∣ p + . . . + ∣ v n ∣ p ) 1 p left | vec{v}right|_p = {({|v_1|}^{p}+{|v_2|}^{p}+...+{|v_n|}^{p})}^{frac{1}{p}} ∥v∥p=(∣v1∣p+∣v2∣p+...+∣vn∣p)p1
二、向量范数效果展示
绘制 ∥ v ⃗ ∥ p = 1 left | vec{v}right |_p = 1 ∥v∥p=1的图像如下
- 当 p = 0
- 当 p = 1


- 当 p = +
∞
infty
∞
- 随着p的大小的演变过程,如下
上述绘图编制的python代码
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,10000)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_aspect('equal')
P = 5
for p in np.arange(0.3,P,0.2):
y = np.power(1-np.power(np.abs(x),p),1/p)
# 注意plot 是连点绘图方法,所以注意避免额外的连线产生
ax.plot(np.hstack([x,x[::-1]]),np.hstack([y,-y[::-1]]))
plt.title('p = '+str(p))
plt.pause(0.8)
三、向量范数细究
根据总体定义具体分析几个特殊定义
(1) 0范数
∣
∣
v
⃗
∣
∣
0
=
非
零
元
素
个
数
||vec{v}||_0=非零元素个数
∣∣v∣∣0=非零元素个数
(2) 1范数
∥
v
⃗
∥
1
=
(
∣
v
1
∣
1
+
∣
v
2
∣
1
+
.
.
.
+
∣
v
n
∣
1
)
1
=
∣
v
1
∣
+
∣
v
2
∣
+
.
.
.
+
∣
v
n
∣
left| vec{v}right|_1 = (|v_1|^1+|v_2|^1+...+|v_n|^1)^1 \=| v_1|+|v_2|+...+|v_n|
∥v∥1=(∣v1∣1+∣v2∣1+...+∣vn∣1)1=∣v1∣+∣v2∣+...+∣vn∣1范数可以用来表示曼哈顿距离,示意图如下,规定:只允许上下左右移动,不允许斜着移动,在这种情景下,1范数就可以很好的用来作为两点之间的距离的测度。




图中AB两点的曼哈顿距离为8,即
∣
∣
A
B
⃗
∣
∣
1
=
8
||vec{AB}||_1=8
∣∣AB∣∣1=8,图(1)、(2)和(4)的虚线都是A到B点的最短距离轨迹。
(3) 2范数
∥
v
⃗
∥
2
=
(
v
1
2
+
v
2
2
+
.
.
.
+
v
n
2
)
1
2
left|vec{v}right|_2={(v_1^2+v_2^2+...+v_n^2)}^{frac{1}{2}}
∥v∥2=(v12+v22+...+vn2)21显然,2范数可以用来表示欧式距离
(4)无穷范数 ∥ v ⃗ ∥ ∞ = ( ∣ v 1 ∣ ∞ + ∣ v 2 ∣ ∞ + . . . + ∣ v n ∣ ∞ ) 1 ∞ = ( ( ∣ v 1 ∣ ∞ m a x ∣ v i ∣ ∞ + ∣ v 2 ∣ ∞ ) m a x ∣ v i ∣ ∞ + . . . + ∣ v n ∣ ∞ m a x ∣ v i ∣ ∞ ) m a x ∣ v i ∣ ∞ ) 1 ∞ = ( ∣ v 1 ∣ ∞ m a x ∣ v i ∣ ∞ + ∣ v 2 ∣ ∞ ) m a x ∣ v i ∣ ∞ + . . . + ∣ v n ∣ ∞ m a x ∣ v i ∣ ∞ ) 1 ∞ m a x ∣ v i ∣ = k 1 ∞ m a x ∣ v i ∣ left|vec{v}right|_infty={(|v_1|^infty+|v_2|^infty+...+|v_n|^infty )}^{frac{1}{infty}}\={((frac{|v_1|^infty}{max|v_i|^infty}+frac{|v_2|^infty)}{max|v_i|^infty}+...+frac{|v_n|^infty}{max|v_i|^infty}){max|v_i|^infty})}^{frac{1}{infty}}\={(frac{|v_1|^infty}{max|v_i|^infty}+frac{|v_2|^infty)}{max|v_i|^infty}+...+frac{|v_n|^infty}{max|v_i|^infty})^{frac{1}{infty}}{max|v_i|}}=k^frac{1}{infty }max|v_i| ∥v∥∞=(∣v1∣∞+∣v2∣∞+...+∣vn∣∞)∞1=((max∣vi∣∞∣v1∣∞+max∣vi∣∞∣v2∣∞)+...+max∣vi∣∞∣vn∣∞)max∣vi∣∞)∞1=(max∣vi∣∞∣v1∣∞+max∣vi∣∞∣v2∣∞)+...+max∣vi∣∞∣vn∣∞)∞1max∣vi∣=k∞1max∣vi∣k为正整数,所以 ∣ ∣ v ⃗ ∣ ∣ ∞ = m a x ∣ v i ∣ ||vec{v}||_infty=max|v_i| ∣∣v∣∣∞=max∣vi∣无穷范数可以表示向量的最大元素。
最后
以上就是悲凉招牌为你收集整理的向量范数的全部内容,希望文章能够帮你解决向量范数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复