NLP教程:什么是范数(norm)?以及L1,L2范数的简单介绍

简介: NLP教程:什么是范数(norm)?以及L1,L2范数的简单介绍

什么是范数?


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


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


这里简单地介绍以下几种向量范数的定义和含义


image.png



2、L0范数


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


image.png


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


image.png


表示向量x中非零元素的个数。对于L0范数,其优化问题为:


image.png


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


3、L1范数


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


image.png


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


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


image.png


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


image.png


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


4、L2范数


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


image.png


表示向量元素的平方和再开平方。


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


image.png


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


image.png


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


5、L 范数


当 p=∞时,也就是L范数,它主要被用来度量向量元素的最大值,与L0一样,通常情况下表示为


image.png


以上内容转载于SethChai的博客,再次感谢博主的分享,转载请附上原文链接:
https://blog.csdn.net/a493823882/article/details/80569888


扩展一点:


使用机器学习方法解决实际问题时,我们通常要用L1或L2范数做正则化

(regularization),从而限制权值大小,减少过拟合风险。特别是在使用梯度下降来做目标函数优化时,


L1和L2的区别


L1范数(L1 norm)是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算”(Lasso regularization)。


比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|.


简单总结一下就是:


L1范数: 为x向量各个元素绝对值之和。


L2范数: 为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或者Frobenius范数


Lp范数: 为x向量各个元素绝对值p次方和的1/p次方.


L1正则化产生稀疏的权值, L2正则化产生平滑的权值为什么会这样?


在支持向量机学习过程中,L1范数实际是一种对于成本函数求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化,从而方便提取特征。


L1范数可以使权值稀疏,方便特征提取。 L2范数可以防止过拟合,提升模型的泛化能力。


L1和L2正则先验分别服从什么分布


面试中遇到的,L1和L2正则先验分别服从什么分布,L1是拉普拉斯分布,L2是高斯分布。


知识星球


“星空智能对话研学社”



目录
相关文章
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
48 0
|
机器学习/深度学习 存储 人工智能
NLP教程(7) - 问答系统
本文介绍 NLP 中的问答系统(Question Answering),包括 NLP 中的问答系统场景、动态记忆网络(Dynamic Memory Networks)、问答(QA)、对话、MemNN、DCN、VQA等。
1244 1
NLP教程(7) -  问答系统
|
8月前
|
机器学习/深度学习 自然语言处理 算法
深入NLTK:Python自然语言处理库高级教程
在前面的初级和中级教程中,我们了解了NLTK库中的基本和进阶功能,如词干提取、词形还原、n-gram模型和词云的绘制等。在本篇高级教程中,我们将深入探索NLTK的更多高级功能,包括句法解析、命名实体识别、情感分析以及文本分类。
|
8月前
|
自然语言处理 数据可视化 Python
掌握NLTK:Python自然语言处理库中级教程
在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。
|
8月前
|
自然语言处理 Python
入门NLTK:Python自然语言处理库初级教程
NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务。NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等。在这篇初级教程中,我们将了解NLTK的基础功能。
|
11月前
|
机器学习/深度学习 自然语言处理 算法
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
|
自然语言处理
【NLP最佳实践】Huggingface Transformers实战教程
【NLP最佳实践】Huggingface Transformers实战教程
660 0
【NLP最佳实践】Huggingface Transformers实战教程
|
机器学习/深度学习 存储 人工智能
NLP教程(9) - 句法分析与树形递归神经网络
本文介绍了 NLP 句法分析与树形递归神经网络,主要讲解树形递归神经网络、句法分析 (Constituency Parsing )、Recursive Neural Networks (RNN)、成分句法分析、SU-RNN、MV-RNN、RNTN等。
678 1
NLP教程(9) - 句法分析与树形递归神经网络
|
机器学习/深度学习 人工智能 自然语言处理
NLP教程(8) - NLP中的卷积神经网络
本文介绍 NLP 中的卷积神经网络(CNN),讲解卷积神经网络的卷积层、池化层、多卷积核、多通道、卷积核、N-gram、filter、k-max pooling、文本分类等。
537 1
NLP教程(8) - NLP中的卷积神经网络
|
机器学习/深度学习 存储 人工智能
NLP教程(6) - 神经机器翻译、seq2seq与注意力机制
本文介绍了序列到序列模型(seq2seq)及其在翻译系统中的应用,以及注意力机制、序列解码器、神经翻译系统、基于字符级别的翻译模型等。
1126 1
NLP教程(6) - 神经机器翻译、seq2seq与注意力机制