从优化或者数值计算的角度来说,L2 范数有助于处理 condition number 不好的情况下矩阵求逆很困难的问题。
κ(A)=∥A∥∥A−1∥
如果方阵 A 是奇异的,那么 A 的 condition number 就是正无穷大了。实际上,每一个可逆方阵都存在一个 condition number。
对condition number来个一句话总结:condition number 是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的 condition number 在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是 ill-conditioned 的,如果一个系统是 ill-conditioned 的,它的输出结果就不要太相信了。
应用
w^=(XTX)−1XTb
如果当我们的样本 X 的数目比每个样本的维度还要小的时候,矩阵 XTX 将会不是满秩的,也就是 XTX 会变得不可逆,所以 w^ 就没办法直接计算出来了。
如果加上L2规则项,就变成了下面这种情况,就可以直接求逆了:
w^=(XTX+λI)−1XTb
matlab 相关实现
c = cond(X,p)
% norm(X,p) * norm(inv(X),p)