我是靠谱客的博主 悲凉招牌,最近开发中收集的这篇文章主要介绍向量范数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

声明: 仅个人小记
前言:范数在不同场合下可以有不同的解释,利用范数优良的抽象性质,在不同的场合下可以解释为不同的东西。于我而言,学习范数概念使我意会到 “高度抽象的距离” 这个概念。而“距离”这个概念在机器学习等领域随处可见

一、向量范数总体定义

∥ 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=(v1p+v2p+...+vnp)p1

二、向量范数效果展示

绘制 ∥ v ⃗ ∥ p = 1 left | vec{v}right |_p = 1 v p=1的图像如下

  1. 当 p = 0
  2. 当 p = 1
3. 当 p = 2
  1. 当 p = + ∞ infty
  2. 随着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=(v11+v21+...+vn1)1=v1+v2+...+vn1范数可以用来表示曼哈顿距离,示意图如下,规定:只允许上下左右移动,不允许斜着移动,在这种情景下,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=((maxviv1+maxviv2)+...+maxvivn)maxvi)1=(maxviv1+maxviv2)+...+maxvivn)1maxvi=k1maxvik为正整数,所以 ∣ ∣ v ⃗ ∣ ∣ ∞ = m a x ∣ v i ∣ ||vec{v}||_infty=max|v_i| v =maxvi无穷范数可以表示向量的最大元素

最后

以上就是悲凉招牌为你收集整理的向量范数的全部内容,希望文章能够帮你解决向量范数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(94)

评论列表共有 0 条评论

立即
投稿
返回
顶部