我的机器学习教程「美团」算法工程师带你入门机器学习  以及 「三分钟系列」数据结构与算法  已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。

欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~

在机器学习和统计学习中,我们总能看到不同的norm(范数)出现在各种模型之中,那么到底什么是范数呢?怎么样更好的理解和应用范数呢?请参考下面的文章

什么是范数?

我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。

在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算AX=B,可以将向量X变化为B,矩阵范数就是来度量这个变化大小的。

这里简单地介绍以下几种向量范数的定义和含义 
1、 L-P范数 
与闵可夫斯基距离的定义一样,L-P范数不是一个范数,而是一组范数,其定义如下:

Lp=∑1nxpi−−−−√p,x=(x1,x2,⋯,xn)

根据P 的变化,范数也有着不同的变化,一个经典的有关P范数的变化图如下: 
 
上图表示了p从无穷到0变化时,三维空间中到原点的距离(范数)为1的点构成的图形的变化情况。以常见的L-2范数(p=2)为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面。

实际上,在0≤p<1时,Lp并不满足三角不等式的性质,也就不是严格意义下的范数。以p=0.5,二维坐标(1,4)、(4,1)、(1,9)为例,(1+4√)−−−−−−−√0.5+(4√+1)−−−−−−−√0.5<(1+9√)−−−−−−−√0.5。因此这里的L-P范数只是一个概念上的宽泛说法。

2、L0范数 
当P=0时,也就是L0范数,由上面可知,L0范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数。用上面的L-P定义可以得到的L-0的定义为:

||x||=∑1nx0i−−−−√0,x=(x1,x2,⋯,xn)

这里就有点问题了,我们知道非零元素的零次方为1,但零的零次方,非零数开零次方都是什么鬼,很不好说明L0的意义,所以在通常情况下,大家都用的是:

||x||0=#(i|xi≠0)

表示向量x中非零元素的个数。

对于L0范数,其优化问题为:

min||x||0 
s.t. Ax=b

在实际应用中,由于L0范数本身不容易有一个好的数学表示形式,给出上面问题的形式化表示是一个很难的问题,故被人认为是一个NP难问题。所以在实际情况中,L0的最优问题会被放宽到L1或L2下的最优化。

3、L1范数 
L1范数是我们经常见到的一种范数,它的定义如下:

||x||1=∑i|xi|

表示向量x中非零元素的绝对值之和。

L1范数有很多的名字,例如我们熟悉的曼哈顿距离、最小绝对误差等。使用L1范数可以度量两个向量间的差异,如绝对误差和(Sum of Absolute Difference):

SAD(x1,x2)=∑i|x1i−x2i|

对于L1范数,它的优化问题如下:

min||x||1 
s.t.Ax=b

由于L1范数的天然性质,对L1优化的解是一个稀疏解,因此L1范数也被叫做稀疏规则算子。通过L1可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的电影爱好做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如身高体重等可能都是无用的,利用L1范数就可以过滤掉。

4、L2范数 
L2范数是我们最常见最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数,它的定义如下:

||x||2=∑ix2i−−−−−√

表示向量元素的平方和再开平方。 
像L1范数一样,L2也可以度量两个向量间的差异,如平方差和(Sum of Squared Difference):

SSD(x1,x2)=∑i(x1i−x2i)2

对于L2范数,它的优化问题如下:

min||x||2 
s.t.Ax=b

L2范数通常会被用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

5、L-∞范数 
当P=∞时,也就是L-∞范数,它主要被用来度量向量元素的最大值。用上面的L-P定义可以得到的L∞的定义为:

||x||∞=∑1nx∞i−−−−−√∞,x=(x1,x2,⋯,xn)

与L0一样,在通常情况下,大家都用的是:

||x||∞=max(|xi|)

来表示L∞

机器学习的数学(三)范数的简单介绍相关推荐

  1. 机器学习排序之Learning to Rank简单介绍

     机器学习排序之Learning to Rank简单介绍 标签: Learning to Rank学习排序PointwisePairwiseListwise 2015-01-03 21:50 23 ...

  2. Android Fragment(三)ListFragment简单介绍以及Fragment之间通信

    一.Fragment通信简单介绍:Fragments之间是不能够直接通信的,他们之间的通信是通过Activity这个中间件来通信的, 为了让Fragment跟它的Activity通信,我们可以在Fra ...

  3. 什么是范数(norm)?以及L1,L2范数的简单介绍

    什么是范数? 范数,是具有"距离"概念的函数.我们知道距离的定义是一个宽泛的概念,只要满足非负.自反.三角不等式就可以称之为距离.范数是一种强化了的距离概念,它在定义上比距离多了一 ...

  4. 范数(norm) 几种范数的简单介绍

    什么是范数? 我们知道距离的定义是一个宽泛的概念,只要满足非负.自反.三角不等式就可以称之为距离.范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则.有时候为了便于理解,我们可以把范数 ...

  5. Hadoop自学笔记(三)MapReduce简单介绍

    1. MapReduce Architecture MapReduce是一套可编程的框架,大部分MapReduce的工作都能够用Pig或者Hive完毕.可是还是要了解MapReduce本身是怎样工作的 ...

  6. Spring Cloud Alibaba (三)Sentinel 简单介绍和使用

    前言 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统自适应保护等多个维度来帮助您保障微服务 ...

  7. 三、uboot简单介绍

    1.boot loader的介绍 操作系统的启动,首先我们要知道,操作系统在开发板上电之后是存在存储器里面的EMMC/SD卡,而操作系统是跑在内存中的,这时我们需要一个东西,将我们的操作系统搬运到内存 ...

  8. 《机器学习的数学》出版了,彻底解决程序员学机器学习的数学问题

    如何解决机器学习领域的数学问题,打下坚实的数学基础?是很多初学者乃至进阶者关心的话题.我们把这个问题拆解成下面几个问题: 1. 为什么需要数学? 2. 机器学习中究竟用到了哪些数学知识? 3. 如何掌 ...

  9. 简单介绍RESTful风格

    文章目录 前言 一.RESTful风格是什么? 二.搭建环境: 1. get.html 2. post.html 3. Controller.java 三.@PathVariable简单介绍 前言 学 ...

  10. 一文介绍机器学习中的三种特征选择方法

    作者 | luanhz 来源 | 小数志 导读 机器学习中的一个经典理论是:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.也正因如此,特征工程在机器学习流程中占有着重要地位.广义的特征 ...

最新文章

  1. 8位无符号和8位有符号转化为更高字节类型的问题
  2. (DCA)Decision Curve Analysis画图及意义
  3. clear arp-cache作用_肇庆Sylvin-2900-75-Clear
  4. [密码学] 离散对数比特安全性
  5. 阿里巴巴创新研究计划 AIR2018 正式发布 邀全球学者共创未来
  6. iOS iphone屏幕分析(岂止而大)
  7. java转换汇编,请问如何把JAVA程序转为汇编?
  8. 前端学习(1674):前端系列实战课程之手风琴效果
  9. php多个地方ping,同时ping多个ip找了最快的ip网的php实例-PHP源码
  10. 解决mac使用svn: E170000: Unrecognized URL scheme for h
  11. 动态滑窗-python
  12. api wke_GitHub - kertL/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
  13. Swift开发:使用SwiftyJSON解析JSON数据
  14. python贴吧-贴吧python登录
  15. 日语 N2 考试 时间分配、分值
  16. 非常全面的概念数据模型概述-PD下画E-R图
  17. workbench设置单元坐标系_浅谈Ansys中的几种坐标系
  18. 关于C++报错:“表达式必须含有常值”的解决办法
  19. 基于iPhone 上的运动协处理器M7判断用户当前的运动(姿态)类型
  20. 电脑艺术设计是否属计算机专业,电脑艺术设计属于计算机专业吗

热门文章

  1. linux软链接和硬链接的区别
  2. 夺命雷公狗---无限级分类NO2
  3. .Net 数据类型转化
  4. Magento显示多货币,Magento 多货币设置
  5. PE文件格式详解(下)
  6. [工作习惯]一种管理文献的方法,抛弃EndNote
  7. Keil3/4/5 For C51安装教程(附Baidu 云链接)
  8. CentOS7学习笔记--PHP环境安装
  9. iOS 25个性能优化/内存优化常用方法
  10. weixin-api生成二维码