了解机器学习的人应该都知道,在优化非凸函数的时候,希望用一个凸函数来代替这个非凸函数,以获取凸函数在优化过程中良好的性质。比如RPCA里,sparse部分的L0 norm用L1 norm来代替,low-rank部分的rank用nuclear norm(核范数)来代替。L0和rank是非凸的,L1和nuclear norm是凸函数,但为什么这样的approximation(在某种意义下)是最佳的呢?
之前在网上搜了蛮久没有得到一个完整的答案,前几天课后跟老板谈论起这个问题,给我发了点reference,算是彻底解决了这个问题。简书不太熟(改天查一下怎么在简书上使用markdown or latex),所以先直接贴图吧,最后把reference附上,以便查阅。
首先简单说一下convex function的knowledge和这里的notation。
然后是Convex conjugate的概念:
看到这里就应该明白了为什么the biconjugate of F是F的“最佳凸估计”(convex relaxation)。
也就是说:biconjugate是小于原函数且epi为闭集(lower semicontinuous等价于epi close)的最大的凸函数。实际上就是把原函数的epi 做convex hull+closure(变成闭集),这个性质跟dual cone很像,二次对偶后变成了以前cone做convex hull+closure。
其实L1 norm是L0 norm的biconjugate,nuclear norm是rank的biconjugate,所以很容易理解为什么我们要用L1 norm来代替L0 norm,为什么用nuclear norm来代替rank了。
L1为什么是L0的biconjugate:
在x的L_inf不大于1的情况下(重要!):
nuclear norm是rank的biconjugate其实可以看作是上面的推论。简单说一下idea,任给一个m*n的矩阵M,对M做奇异值分解(其实就是实对称矩阵谱分解的推广),奇异值的个数就是矩阵的rank(是不是很像L0 norm,非0就是1),类似做biconjugate就是所有奇异值绝对值的和,而奇异值本身就是非负的,所以就是奇异值的和(这货就是nuclear norm嘛!)。
Reference:
1. Foucart S, Rauhut H. A mathematical introduction to compressive sensing[M]. Basel: Birkhäuser, 2013.
2. https://www.quora.com/Why-is-L1-norm-the-tightest-convex-relaxation-of-L0-norm-in-convex-optimazation
有兴趣的可以看看:
3. Rockafellar R T. Convex analysis[M]. Princeton university press, 2015. (重点推荐!!!)
4. Boyd S, Vandenberghe L. Convex optimization[M]. Cambridge university press, 2004.