关于L0和L1范数的知识:
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。这也就是实现了“稀疏”。
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。我们知道任何的规则化算子,如果他在Wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。
L1是如何产生稀疏性的呢?
等高线与 norm ball 首次相交的地方就是最优解,如图所示的二维情况,在w1=0的地方相交,当维数继续扩展,大部分时候会在有角的地方相交就会产生稀疏性。所以L1会趋向于产生少量的特征,而其他的特征都是0。
而L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。
什么是稀疏编码?
通俗的说,就是将一个信号表示为一组基的线性组合,而且要求只需要较少的几个基就可以将信号表示出来。
一般优化问题是,O = a1Φ1 + a2Φ2+….+ an*Φn, Φi是基,ai是系数,
我们希望得到:
Min |I – O|,其中I表示输入,O表示输出。
而在稀疏编码中,我们寻找的是“超完备”基向量来表示样本数据,也就是向量的维数比I大。一个向量究竟稀疏到什么程度最合适是需要我们自己设计的,所以我们一般通过保证所有的a之和必须优化到我们设置的很小的一个数就认为是稀疏表示了。
因此可以得到稀疏编码的算法:Min |I – O| + u*(|a1| + |a2| + … + |an |)
参数稀疏的好处
①特征选择(Feature Selection):
稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
②可解释性(Interpretability):通过学习,如果最后学习到的w*就只有很少的非零元素,那么这些特征就是重要的。