稀疏编码(头发稀疏如何改善)

80酷酷网    80kuku.com

稀疏编码(头发稀疏如何改善)

人工智能操作系统 会用到世界知识图谱 (内容摘取整理来至网络)

知识图谱 包含稀疏表示和稀疏字典 稀疏会用到范式。

人工智能操作系统基础(一) 稀疏和范式

稀疏表示和字典学习的简单理解

  • 特征分类

  • 稀疏表示

  • 字典学习

特征分类

  • 相关特征:对当前有用的属性

  • 冗余特征:所包含的信息有时能从其他特征中推演出来。如若某个冗余特征恰好对应了学习任务所需“中间概念”,有时可以降低学习任务的难度。

稀疏表示

  • 稀疏性:数据集D对应的矩阵中存在很多零元素,且并不是以整列、整行的形式存在。

  • 稀疏表示:用较少的基本信号的线性组合来表达大部分或者全部的原始信号。寻找一个系数矩阵A(KN)以及一个字典矩阵B(MK),使得B*A尽可能的还原X,且A尽可能的稀疏。A便是X的稀疏表示。

  • 优势

  • 实质上是对于庞大数据集的一种降维表示。稀疏表示的本质:用尽可能少的资源表示尽可能多的知识

  • 自然信号的regularizer(约束器),我们在解决inverse problem(逆问题)的时候,例如要想从一切损坏或者噪声中把他们提取出来,如果不加约束的话,会出现很多满足条件的解,并且你无法判断某一个解比其他解更加合适。

  • 稀疏表达被广泛地使用来作为自然信号的regularizer:认为这些信号都具有某个域(domian)或者某组基(bases, 或者dictionary)下的sparse representation。

  • 不具备如此特性的认为是noise, distortion, non-desirable solution…等这些可以被排除掉。
    摘自知乎:https://www.zhihu.com/question/26602796/answer/33431062

字典学习

为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表达形式,从而使学习任务得以简化,模型复杂度得以降低,通常称为‘字典学习’(dictionary learning),亦称‘稀疏编码’(sparse coding)。
字典学习的最简单形式为:

人工智能操作系统基础(一) 稀疏和范式


其中B(d*k)为字典矩阵,k称为字典的词汇量,通常由用户指定,αi是样本xi的稀疏表示。式中第一项是希望αi能很好地重构xi,第二项则是希望αi尽量稀疏。 其中样本为d维,稀疏表示为k维。之所以用L1范式是因为L1范式正则化更容易获得稀疏解。

人工智能操作系统基础(一) 稀疏和范式

————————————————

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

L0、L1、L2范数定义 具体就是:

(1)L0范数是指向量中非0的元素的个数。其作用可以提高模型参数的稀疏性,但是L0范数很难优化求解。

(2)L1范数是指向量中各个元素绝对值之和。其作用也是可以提高模型参数的稀疏性,效果没有L0范数好,但是更容易求解,更常用。

(3)L2范数是指向量各元素的平方和然后求平方根。其作用是减小模型所有参数大小,可以防止模型过拟合,也很常用。

什么是范数?

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

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

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式

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

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式

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

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

人工智能操作系统基础(一) 稀疏和范式

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

人工智能操作系统基础(一) 稀疏和范式


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

人工智能操作系统基础(一) 稀疏和范式


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

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

人工智能操作系统基础(一) 稀疏和范式

以上内容转载于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是高斯分布。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: