核范数是什么?矩阵奇异值之和,用来逼近低秩
核范数(Nuclear Norm),也叫迹范数,是衡量一个矩阵“大小”的一种方式,它等于这个矩阵所有奇异值的总和。核范数在机器学习和信号处理中有一个非常重要的用途:作为矩阵的秩的替代品,用来寻找低秩的矩阵。
先理解奇异值和秩
任何一个矩阵都可以通过奇异值分解,拆分成三个矩阵的乘积,中间那个对角矩阵上的元素就是奇异值,它们都是非负的数,通常从大到小排列。奇异值反映了矩阵在各个“方向”上的重要程度:大的奇异值对应着矩阵中主要的结构,小的奇异值往往对应着细节或噪声。矩阵的秩等于非零奇异值的个数,它衡量的是矩阵中真正独立的信息有多少。一个低秩的矩阵,意味着它虽然看起来很大,但其中包含的信息可以用很少的几个“基本模式”来概括。
为什么需要核范数
在很多实际问题中,我们希望找到一个尽可能低秩的矩阵,因为现实世界中的很多数据矩阵本质上都是低秩的。一个典型的例子是推荐系统中的矩阵补全问题:把用户对电影的评分排成一个巨大的矩阵,每一行是一个用户,每一列是一部电影,但每个用户只看过、评过很少的几部电影,所以矩阵中绝大部分的位置都是空的。我们希望根据已有的评分,推测出那些空位上的值,从而向用户推荐他可能喜欢的电影。这个问题之所以有可能解决,是因为人们的喜好通常只由少数几个因素决定,比如喜欢什么类型、偏爱哪些演员,所以完整的评分矩阵应该是低秩的。于是,问题就变成了:在与已知评分一致的前提下,找到秩最低的那个矩阵。
但直接最小化矩阵的秩在计算上极其困难:秩是一个离散的、不连续的函数,最小化它是一个组合优化问题,在一般情况下属于计算上非常难的一类问题。核范数提供了一个巧妙的解决办法:秩是非零奇异值的个数,而核范数是所有奇异值的总和。可以证明,在一定的范围内,核范数是秩函数最好的凸近似。用最小化核范数来代替最小化秩,就把一个难以求解的问题,转化成了一个凸优化问题,可以高效地求解,而且在满足一定条件时,能够精确地恢复出真正的低秩矩阵。
和 L1 范数的类比
核范数与秩之间的关系,就像向量的 L1 范数与向量中非零元素个数之间的关系:在稀疏学习中,为了得到非零元素尽量少的向量,人们用最小化 L1 范数,也就是所有元素绝对值之和,来代替最小化非零元素的个数,比如 Lasso 回归。核范数正是把这一思想从向量推广到了矩阵:对奇异值施加 L1 范数,鼓励大部分奇异值变为零,从而得到低秩的矩阵。在优化算法中,核范数的近端算子是对奇异值进行软阈值处理。
理论突破和应用
2009 年前后,Emmanuel Candès、Benjamin Recht 等人证明了:在满足一定条件时,只要已知的元素足够多,并且分布足够随机,通过最小化核范数就能以很高的概率精确地恢复出完整的低秩矩阵。这一理论成果推动了矩阵补全和低秩学习领域的快速发展。核范数被广泛用于推荐系统、鲁棒主成分分析(把一个矩阵分解为低秩部分和稀疏的异常部分,比如从监控视频中分离出静止的背景和移动的前景)、图像和视频的修复与去噪、多任务学习,以及系统辨识等领域。