系列文章目录

参考文献

[1]
[2] [3]
[4] [5]
[6] [7]


文章目录

  • 系列文章目录
  • 参考文献
  • 前言
  • 一、向量范数
  • 二、矩阵范数

前言

列举常用的向量范数和矩阵范数的定义,秃然爱上coding
范数引入是为了防止过拟合,或者是解可逆。凌空,如果从机器学习的角度,可能会更好理解。

从基本的最小二乘线性模型开始,初始,最小二乘的loss(需要优化的目标函数)如下,
E D ( w ) = 1 2 ∑ n = 1 N t n − w T Φ ( X n ) 2 E_D(w)=\frac{1}{2}\sum_{n=1}^N{t_n-w^T\Phi(X_n)}^2 ED​(w)=21​n=1∑N​tn​−wTΦ(Xn​)2
其中,tn是目标变量,xn是观测变量(自变量), Φ \Phi Φ是基函数(后期推导与核化无关),是w参数,解为,
W M L = ( Φ T Φ ) − 1 Φ T t W_{ML}=(\Phi^T\Phi)^{-1}\Phi^Tt WML​=(ΦTΦ)−1ΦTt

上述公式不好求解,因为其实矩阵求逆的病态问题,因此求其近似解。用SGD(梯度下降法)求近似解,或者加入正则项(L2),实际应用中,加入2范数的正则项可以得到闭式解,在实际应用中要比SGD快。因此,加入L2之后的loss,
1 2 ∑ n = 1 N { t n − W T Φ ( x n ) } 2 + λ 2 W T W \frac{1}{2}\sum_{n=1}^N\{{t_n-W^T\Phi(x_n)}\}^2+\frac{\lambda}{2}W^TW 21​n=1∑N​{tn​−WTΦ(xn​)}2+2λ​WTW

闭式解为,

W = ( λ + Φ T Φ ) − 1 Φ T t W=(\lambda+\Phi^T\Phi)^{-1}\Phi^Tt W=(λ+ΦTΦ)−1ΦTt

只要上述 λ ≠ 0 \lambda\neq0 λ​=0总是有解,此时,loss为,
1 2 ∑ n = 1 N { t n − W T Φ ( x n ) } 2 + λ 2 ∑ j = 1 M ∣ w j ∣ q \frac{1}{2}\sum_{n=1}^N\{{t_n-W^T\Phi(x_n)}\}^2+\frac{\lambda}{2}\sum_{j=1}^M\vert w_j\vert^q 21​n=1∑N​{tn​−WTΦ(xn​)}2+2λ​j=1∑M​∣wj​∣q
不同的范数曲线如下,

(图来源于参考书PRML)

上图中,可以明显看到一个趋势,即q越小,曲线越贴近坐标轴,q越大,曲线越远离坐标轴,并且棱角越明显。那么 q=0 和 q=oo 时极限情况如何

就是十字架和正方形。除了图形上的直观形象,在数学公式的推导中,q=0 和 q=oo 时两种极限的行为可以简记为非零元的个数和最大项。那么他们用在机器学习里有什么区别呢?

以1范数和2范数为例:

上图中,蓝色的圆圈表示原问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于2范数解范围是圆,所以相切的点有很大可能不在坐标轴上(感谢评论区@临熙指出表述错误),而由于1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,1范数可以导致稀疏解,2范数导致稠密解。那么为什么不用0范数呢,理论上它是求稀疏解最好的规范项了。然而在机器学习中,特征的维度往往很大,解0范数又是NP-hard问题,所以在实际中不可行。但是用1范数解是可行的,并且也可以得到稀疏解,所以实际稀疏模型中用1范数约束。至此,我们总结一下,在机器学习中,以0范数和1范数作为正则项,可以求得稀疏解,但是0范数的求解是NP-hard问题; 以2范数作为正则项可以得到稠密解,并且由于其良好的性质,其解的定义很好,往往可以得到闭式解,所以用的很多。另外,从距离的角度说一下范数。1范数对应街区距离,2范数对应大家熟知的欧式距离,无穷范数对应棋盘距离(切比雪夫距离)。

  • 欧式距离(Euclidenan Distance,也叫作直线距离)

  • 城市距离(也叫作L1距离):
    不是直线距离,而是按照街区计算的距离,

  • 棋盘距离(切比雪夫距离):

作者:凌空
链接:https://www.zhihu.com/question/20473040/answer/175915374
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


一、向量范数

  • L0范数
    L0范数是指向量中非零元素的个数,如果使用L0规则化一个参数矩阵W,就是希望W中大部分元素是0,实现稀疏。

  • 1-范数:
    ∥ x ∥ 1 = ∑ i = 1 N ∣ x i ∣ \Vert x\Vert _1=\sum_{i=1}^N\vert x_i\vert ∥x∥1​=i=1∑N​∣xi​∣,向量元素绝对值之和,MATLAB调用函数

normal(x, 1)
  • 2-范数
    ∥ x ∥ 2 = ∑ i = 1 N x i 2 \Vert x\Vert_2=\sqrt{\sum_i=1^N{x_i}^2} ∥x∥2​=i∑​=1Nxi​2 ​,也是Euclid范数(欧几里得范数,常用计算向量长度),也就是向量的平方和再开方,MATLAB调用函数;
normal(x,2)
  • ∞ \infty ∞-范数
    ∥ x ∥ ∞ = m a x i ∣ x i ∣ \Vert x\Vert_{\infty}=max_i\vert x_i\vert ∥x∥∞​=maxi​∣xi​∣,也就是所有向量元素绝对值中的 最大值 ,MATLAB调用函数,
normal(x, inf)
  • − ∞ -\infty −∞-范数
    ∥ x ∥ − ∞ = m i n i ∣ x i ∣ \Vert x\Vert_{-\infty}=min_i\vert x_i \vert ∥x∥−∞​=mini​∣xi​∣

也就是所有向量元素绝对值中的最小值 ,matlab 调用函数为,

normal(x, -inf)
  • P范数
    ∥ x ∥ p = ( ∑ i = 1 N ∣ x i ∣ p ) 1 p \Vert x\Vert_p = (\sum_{i=1}^N \vert x_i\vert ^p)^{\frac{1}{p}} ∥x∥p​=(i=1∑N​∣xi​∣p)p1​,也就是向量元素绝对值的p次方和的1/p次幂,MATLAB的调用函数,
normal(x,p)

二、矩阵范数

  • 1-范数:
    A 1 = m a x j ∑ i = 1 m ∣ a i , j ∣ A_1=max_j\sum_{i=1}^m\vert a_{i,j}\vert A1​=maxj​i=1∑m​∣ai,j​∣
    列和范数,也就是所有矩阵列向量的绝对值之和的最大值,MATLAB的调用函数,
normal(A, 1)
  • 2-范数:
    ∥ A ∥ 2 = λ 1 , λ < b r / > 为 A T A 的 最 大 特 征 值 \Vert A\Vert_2=\sqrt{\lambda_1},\lambda<br/>为A^TA的最大特征值 ∥A∥2​=λ1​ ​,λ<br/>为ATA的最大特征值,谱范数,也就是 A ′ A A'A A′A矩阵的最大特征值的开平方,MATLAB调用函数是,
normal(x, 2)
  • ∞ \infty ∞-范数
    ∥ A ∥ − ∞ = m a x i ∑ j = i N ∣ a i , j ∣ \Vert A\Vert_{-\infty}=max_i \sum_{j=i}^N\vert a_{i,j}\vert ∥A∥−∞​=maxi​j=i∑N​∣ai,j​∣,行和范数,也就是所有的矩阵行向量绝对值之和的最大值,MATLAB调用函数,
normal(A, inf)
  • F-范数:
    A F = ( ∑ i = 1 m ∑ j = 1 n ∣ a i , j ∣ 2 ) 1 2 A_F=(\sum_{i=1}^m\sum_{j=1}^n\vert a_{i,j}\vert^2)^{\frac{1}{2}} AF​=(i=1∑m​j=1∑n​∣ai,j​∣2)21​
    也就是矩阵元素的绝对值的平方和再开方,MATLAB调用函数为,
normal(A, 'fro')
  • 核范数:
    A ∗ = ∑ i = 1 n λ i A_*=\sum_{i=1}^n\lambda_i A∗​=i=1∑n​λi​
    其中 λ i \lambda_i λi​是A的奇异值。也就是奇异值之和。

0范数、1范数、2范数相关推荐

  1. 人工智能-范数 norm:L1范数和L2范数【L0范数:向量中非0的元素的个数; L1范数:向量各元素的绝对值之和(曼哈顿距离);L2范数:向量各元素的平方和的开方值(欧氏距离)】

    范数是衡量某个向量空间(或矩阵)中的每个向量的长度或大小. ∥x∥p:=(∑i=1n∣xi∣p)1p\left \| x\right \|_p := \left( \sum_{i=1}^{n}\lef ...

  2. L1范数,L2范数,L2,1范数(向量范数、矩阵范数、正则化)

    参考文章如下:https://blog.csdn.net/lqzdreamer/article/details/79676305 https://blog.csdn.net/lqzdreamer/ar ...

  3. OpenCV-Python教程:统计函数~L1、L2、无穷范数、汉明范数(norm,NORM_HAMMING2,NORM_HAMMING)

    原文链接:http://www.juzicode.com/opencv-python-statistics-norm 返回Opencv-Python教程 1.什么是范数 下图是百度百科关于范数的定义: ...

  4. 向量和矩阵的各种范数比较(1范数、2范数、无穷范数等等

    向量和矩阵的各种范数比较(1范数.2范数.无穷范数等等 范数 norm 矩阵 向量  一.向量的范数 首先定义一个向量为:a=[-5,6,8, -10] 1.1 向量的1范数 向量的1范数即:向量的各 ...

  5. 向量和矩阵的各种范数比较(1范数、2范数、无穷范数等等)

    在刚入门机器学习中的低秩,稀疏模型时,被各种范数搅得一团糟,严重延缓了学习进度,经过一段时间的学习,现在将其完整的总结一下,希望遇到同样麻烦的同学能有所帮助... 一.向量的范数 首先定义一个向量为: ...

  6. 核范数和l1范数_向量和矩阵的各种范数比较(1范数、2范数、无穷范数等等

    向量和矩阵的各种范数比较(1范数.2范数.无穷范数等等 范数 norm 矩阵 向量 一.向量的范数 首先定义一个向量为:a=[-5,6,8, -10] 1.1 向量的1范数 向量的1范数即:向量的各个 ...

  7. 一范数L1和二范数L2

    范数是具有"长度"概念的函数.在向量空间内,为所有的向量的赋予非零的增长度或者大小.不同的范数,所求的向量的长度或者大小是不同的. 举个例子,2维空间中,向量(3,4)的长度是5, ...

  8. 0、1、2范数与损失函数正则化

  9. ax的范数最大_各类范数定义

    范数的定义 设 X 是数域 K 上线性空间,称 ║˙║ 为 X 上的范数 (norm) ,若它满足: 1. 正定性: ║x║≥0 ,且 ║x║=0 <=> x=0 : 2. 齐次性: ║c ...

  10. 范数计算(一范数、二范数、无穷范数)

    概念 多维数据度量方式:0范数,向量中非零元素的个数. 1范数(曼哈顿距离.城市距离):为绝对值之和. 2范数(欧氏距离):就是通常意义上的模. 无穷范数,就是取向量的最大值. 计算题实例

最新文章

  1. HD-ACM算法专攻系列(3)——Least Common Multiple
  2. dijkstra最短路径算法视频_java实现Dijkstra算法求最短路径
  3. SAP HR信息类型
  4. java 中适配器原理_Java经典设计模式中关于适配器模式原理以及用法详解
  5. node 根据图片img url 获取 base64
  6. c语言第一章节测试,计算机二级C语言教程章节测试:字符串
  7. jaegeropentracing的Java-client
  8. Atitit 登录票据安全法 目录 1.1. cookie对象规范 1 1.2. Cookie加解密 1 1.3. Cookie密文动态更换,根据一个时间3天比如 1 1.4. 服务端撤销key 1
  9. 微信8.0.0中的[烟花]\[炸弹]原来还可以这样玩(JAVA脚本)程序员的快乐,很简单,快来看!!!
  10. 夏普电视账号服务器异常,夏普电视故障通病维修案例,你中了几个?
  11. android rat工具,Android远程控制工具——AndroRat
  12. 波形发生器——方波三角波正弦波
  13. 初恋失败让我学会推销自己
  14. Spring启动,constructor,@PostConstruct,afterPropertiesSet,onApplicationEvent执行顺序 原创 2016年09月29日 11:39:2
  15. da2 Android版本固件,OPPOAce2官方系统刷机包(完整固件最新升级包ColorOS 7)
  16. C语言 单引号 双引号问题
  17. MATLAB信号与系统
  18. 365天挑战LeetCode1000题——Day 012 每日一题
  19. Intellij IDEA 初学入门图文教程(一) —— 介绍、下载和安装
  20. 2021文都最新数学考研讲义(数学一、数学二、数学三)

热门文章

  1. pyqt5初级:打造个性化简易计算器
  2. Python---re.findall的用法
  3. 数据库——外键的作用
  4. 树之深度优先遍历算法详解(DFS实现) LeetCode94
  5. qt编译报大量错误“error: C2065: “xxx”: 未声明的标识符”
  6. 11种常用的设计模式
  7. Faster RCNN原理篇(三)——区域候选网络RPN(Region Proposal Network)的学习、理解
  8. java多态,如何理解父类引用指向子类对象
  9. java上传文件常见几种方式
  10. 解决visudo: command not found错误