机器学习中的范数规则化之L0、L1与L2范数、核范数

规则化项符合奥卡姆剃刀原理:在所有可能选择的模型中,我们应该选择能够很好的解释已知数据并且十分简单的模型。

1.L0范数是指向量中非0元素的个数。使用L0范数来规则化矩阵的话,即希望W的大部分元素都是0,即让参数W是稀疏的。
2.L1范数是指向量中各个元素的绝对值之和。

  • L1范数和L0范数都可以实现稀疏,使用L1而不是L0的原因:1).L0范数难以求解。2)L1范数是L0范数的最优凸近似。

  • 进行参数稀疏的原因?
    1).特征选择:输入的特征有很多和最终的输出结果是没有关系或者不提供信息的。考虑这些特征在训练时使得误差更小,但是在测试时对于正确的结果会造成干扰。通过稀疏将这些特征权值设为0,去掉无意义的特征。
    2).可解释性:如果特征数量过多,在实际问题中对于造成结果的原因进行分析时比较困难

3.L2范数是向量元素的各平方和然后求其平方根。使得L2范数规则项最小,可以使得W的每个元素都很小,都接近于0,但是不等于0。

  • L2范数的优点:
    1.L2范数可以防止过拟合,提升模型的泛化能力。
    2.L2范数有助于处理condition number不好的情况下矩阵求逆困难的问题。
  • 这里引入优化的难题:
    1.局部最小值:所要找的是全局最小值,局部最小值太多,优化算法就容易陷入局部最小不能自拔。
    2.Ill-condition 病态问题:即输入改变很小的情况下,输出发生很大的改变。对于一个非奇异的方阵的condition number如下:K(A)=||A|| ||A的逆||
    Condition number是一个矩阵稳定性或者敏感度的度量,如果一个矩阵的condition number 在1附近,它就是well-conditioned,如果远大于1就是ill-condition的。

L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

4.核范数是指矩阵奇异值得和,作用是用来约束低秩。
矩阵的秩是用来度量矩阵之间的相关性,矩阵的相关性带有矩阵的结构信息。矩阵的相关性很强的话,矩阵就可以投影到更低维的线性子空间。矩阵的秩是非凸的,在优化问题里面难以求解,矩阵的秩的凸近似就是核范数||W||*。
常见应用:
1.矩阵填充:低秩矩阵重构问题,在推荐系统中,利用已有的元素对于空白元素进行填充。
2.鲁棒PCA:PCA是使用另一组基重新描述所得到的数据空间,在这组基下,能尽量的揭示原有数据之间的关系,最大程度的去除冗余和噪音的干扰。鲁棒PCA是指数据包含结构信息和噪声。将矩阵分解为两个矩阵相加:一个是低秩的内部含有一定的结构信息,一个是稀疏的内部含有噪声而噪声是稀疏的。
这里写图片描述
凸函数是一个定义在某个向量空间的凸子集C上的实值函数F,并且对于凸子集C中任意两个向量x1,x2。f((x1+x2)/2)<=(f(x1)+f(x2))/2,则f(x)是定义在凸子集上的凸函数。

你可能感兴趣的:(机器学习算法)