
2.1 方法论述
2.1.1 非负矩阵分解原理
关于非负矩阵分解(Nonnegative Matrix Factorization,NMF)问题的讨论可以追溯到20世纪70年代,然而这并没有激起学术界的广泛共鸣。在接下来的20年后,学者们才把非负矩阵分解的一些结论应用到卫星遥感等领域,尽管如此,也很少有人真正重视这一研究,仅仅得到少数学者的关注并真正理解其价值。直到1999年Lee和Seung两人将非负矩阵研究成果在Nature上发表[1,2],迅速引起了各个领域中科学研究人员的重视。首先,在许多领域中都会涉及庞大的数据处理,而通常将数据放在数组里以提高运算效率,而NMF正好可以给人们提供新的思路和方法,并且NMF分解有着比传统算法更为突出的优点,其操作简单、更容易被人们理解,以及占用存储空间少,目前已经被大量应用于数据降维、特征选择、图像融合、文本聚类、语音增强等方面[3-5]。
非负矩阵分解是指对于任意的一个高维非负矩阵,将其分解成左右两个低维非负矩阵之积。NMF可以实现数组的降维运算,可以胜任庞大的数据处理,能够很好地体现人脑处理信息时将局部还原成整体的思想,如将NMF应用在文本类数据中,能够得到比传统算法更为快速的结果,且操作简单易懂。NMF的分解思路大体概括为:对任意的非负矩阵,NMF算法可以找到两个非负矩阵
和
,使得
,如图2-1所示。

图2-1 非负矩阵分解原理
根据分解后两个矩阵的乘积与原矩阵之间的代价函数不同,分为了两种经典NMF模型,分别是基于欧氏距离和基于KL散度的模型。
(1)基于欧氏距离[6]:

(2-1)
式中,||·||F表示Frobenius范数。
(2)基于KL散度[7]:

(2-2)
因为NMF不允许基图像或中间的权重矩阵里存在负数,这种对矩阵非负的限制使得这种分解能够达到用部分表达整体的效果。
在NMF处理GPR数据时,像素强度矩阵看作是目标成分和杂波成分的组合结构:

(2-3)
将矩阵进行非负矩阵分解得到[2]:

(2-4)
式中,,
为基矩阵,
为系数矩阵,且
和
都具有非负约束条件,即
。高频杂波的强度很大,一般选取前
个分量对应于杂波成分,
,从而实现了对原矩阵
的稀疏表示。为了迭代更新出最优的
和
,式(2-4)可以进一步转化为对以下问题的优化:

(2-5)
式中,表示距离度量函数,用来度量
分解为
和
后与
的距离。
为了衡量矩阵分解前后的相似性,使用KL散度(Kullback-Leibler divergence)作为度量指标进行拉格朗日乘子法进行求解,此时的参数W和H的更新规则如下:

(2-6)
在每次迭代中,数据矩阵和重构矩阵之间的误差被约束,如果它低于预定的阈值,迭代过程被终止。