机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化 (4)

机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化

也就是矩阵A的norm乘以它的逆的norm。所以具体的值是多少,就要看你选择的norm是什么了。如果方阵A是奇异的,那么A的condition number就是正无穷大了。实际上,每一个可逆方阵都存在一个condition number。但如果要计算它,我们需要先知道这个方阵的norm(范数)和Machine Epsilon(机器的精度)。为什么要范数?范数就相当于衡量一个矩阵的大小,我们知道矩阵是没有大小的,当上面不是要衡量一个矩阵A或者向量b变化的时候,我们的解x变化的大小吗?所以肯定得要有一个东西来度量矩阵和向量的大小吧?对了,他就是范数,表示矩阵大小或者向量长度。OK,经过比较简单的证明,对于AX=b,我们可以得到以下的结论:

机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化

也就是我们的解x的相对变化和A或者b的相对变化是有像上面那样的关系的,其中k(A)的值就相当于倍率,看到了吗?相当于x变化的界。

对condition number来个一句话总结:conditionnumber是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。

好了,对这么一个东西,已经说了好多了。对了,我们为什么聊到这个的了?回到第一句话:从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。因为目标函数如果是二次的,对于线性回归来说,那实际上是有解析解的,求导并令导数等于零即可得到最优解为:

机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化

然而,如果当我们的样本X的数目比每个样本的维度还要小的时候,矩阵XTX将会不是满秩的,也就是XTX会变得不可逆,所以w*就没办法直接计算出来了。或者更确切地说,将会有无穷多个解(因为我们方程组的个数小于未知数的个数)。也就是说,我们的数据不足以确定一个解,如果我们从所有可行解里随机选一个的话,很可能并不是真正好的解,总而言之,我们过拟合了。

但如果加上L2规则项,就变成了下面这种情况,就可以直接求逆了:

机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化

这里面,专业点的描述是:要得到这个解,我们通常并不直接求矩阵的逆,而是通过解线性方程组的方式(例如高斯消元法)来计算。考虑没有规则项的时候,也就是λ=0的情况,如果矩阵XTX的 condition number 很大的话,解线性方程组就会在数值上相当不稳定,而这个规则项的引入则可以改善condition number。

另外,如果使用迭代优化的算法,condition number 太大仍然会导致问题:它会拖慢迭代的收敛速度,而规则项从优化的角度来看,实际上是将目标函数变成λ-strongly convex(λ强凸)的了。哎哟哟,这里又出现个λ强凸,啥叫λ强凸呢?

当f满足:

机器学习中的范数规则化之 L0、L1与L2范数 http://blog.csdn.net/zouxy09/article/details/24971995/L1正则化及其推导 Laplace(拉普拉斯)先验与L1正则化

时,我们称f为λ-stronglyconvex函数,其中参数λ>0。当λ=0时退回到普通convex 函数的定义。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwgyp.html