高光谱成像(四)最小噪声分数变换 MNF

上一篇中,我们介绍了 PCA ,其通过寻找方差最大的方向来压缩数据维度,在保留主要信息结构的同时减少计算量。

同时,我们也提到,PCA 是数据分析和机器学习领域中一种通用的高维数据降维方法,高光谱成像只是它的一个典型应用场景。

但正如神经网络从最初的前馈网络逐渐发展出针对图像数据的卷积网络 以及针对序列数据的循环网络一样,在不同的细分领域中,通用方法往往会根据具体问题进行一定程度的"本地化"。

因此,在信号处理与遥感数据分析领域(尤其是高光谱成像任务中),人们更常使用另一种与 PCA 密切相关的方法对数据进行变换与降维,那就是 最小噪声分数变换(Minimum Noise Fraction Transform,MNF)


1. 什么是 MNF ?

MNF 的提出要晚于 PCA。1988 年,论文 A transformation for ordering multispectral data in terms of image quality with implications for noise removal 首次提出了一种在降维过程中同时考虑噪声影响 的线性变换方法,即 MNF

值得一提的是,MNF 在原始论文中被称为 Maximum Noise Fraction ,其思想是根据噪声占信号比例对数据进行排序。而后来在高光谱应用中,这种方法通常被解释为最小化信号中的噪声成分,因此在软件实现中常被称为 Minimum Noise Fraction。两种名称在数学上是等价的,只是表述角度不同。

简单了解背景后,我们已经知道了 MNF 能应用于信号处理与遥感数据分析领域的关键词:控制噪声影响

来展开一下:

在我们使用 PCA 处理高光谱图像时,很快会发现一个新的问题:

并不是所有的方差都来源于有效信号。

这是什么意思?

假设我们正在记录某个物体的真实温度,但测量设备存在一定误差。于是我们得到的观测值实际上是:

\[\text{观测值} = \text{真实信号} + \text{噪声} \]

如果测量误差较大,那么数据的波动可能主要来自噪声扰动,而不是真实信号的变化。此时,即使某个分量具有较大的方差,也未必代表其中包含更多有用信息。

打个比方:假设在一个完全安静的房间使用麦克风录音。理论上应该只包含人声,但由于麦克风本身存在底噪,录音中仍会出现轻微的"嘶嘶声"。如果设备质量较差,这种底噪甚至可能掩盖人声。

因此,如果直接使用噪声占比较大的数据进行建模或训练,模型往往会学习到噪声结构,从而显著降低泛化能力。

显然,在高光谱图像中,这种情况并不少见。

由于传感器精度、环境干扰以及大气条件等因素 的影响,一些波段可能包含较强的噪声成分,因此,在存在明显噪声干扰的数据中,仅依赖方差排序可能并不理想。

于是,一个想法自然而然地出现了:

在我们考虑数据的整体方差前,能不能通过变换消除噪声对方差的影响?

这正是 MNF 的核心思想。

2. MNF 的具体过程

简单理解来说,MNF 就是在消除噪声影响之后再进行 PCA。

下面就来具体展开其过程:

2.1 噪声白化(Noise Whitening)

首先,我们仍然从高光谱数据矩阵出发:

\[X = \begin{bmatrix} I_{11} & I_{12} & \dots & I_{1n} \\ I_{21} & I_{22} & \dots & I_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ I_{m1} & I_{m2} & \dots & I_{mn} \end{bmatrix}_{m \times n} \]

同样的:\(m\) 为像素数量,\(n\) 为波段数量。

而在 MNF 中,我们假设观测数据由两部分组成:

\[X = S + N \]

其中: \(S\) 表示真实信号,\(N\) 表示噪声。

(1)构造噪声估计

第一步,我们需要构造噪声估计 :仅仅是假设出噪声是不够的,我们需要通过数据矩阵本身的统计特性,估计出噪声矩阵。

最简单也较常见的方法就是使用空间差分

\[\hat{N} = X(i,j) - X(i+1,j) \]

逻辑不难理解:用相邻行像素做差,近似得到噪声。

这种方法是在多种假设前提下使用的:

  1. 假设真实信号在空间上变化平滑。
  2. 假设噪声是随机扰动。
  3. 假设相邻像素的信号部分相似。

看个实例:

假设我们有一小块高光谱数据:

\[X = \begin{bmatrix} 100 & 102 & 101 \\ 99 & 101 & 100 \end{bmatrix} \]

代入公式计算,得到差分结果为:

\[\hat{N} = \begin{bmatrix} 1 & 1 & 1 \end{bmatrix} \]

这样,信号部分被抵消后,剩下的就是噪声差异。

此外,有些实现中会加入一个 \(\frac{1}{\sqrt{2}}\) 的缩放因子 ,使得差分后的噪声方差与原始噪声方差保持一致。

你可能会觉得这种估计方法有些随意,但在高光谱图像中,同一物体区域往往是连续块状结构,而不是随机分布,因此因在"大多数区域"里,差分主要反映噪声。而不同类别的边界虽然会有影响,让差分结果可能同时包含信号差异,但在整体统计中占比较小。

总体来说,这种差分估计噪声的方法仍是可行的,而在要求更高精度的实际任务中,也有更精细的噪声估计方法,如残差估计、稳健统计方法以及在特定区域估计噪声等。

(2)计算噪声协方差矩阵

现在,我们已经有了估计得到的噪声矩阵 \(\hat{N}\) ,下一步就是计算噪声协方差矩阵:

\[C_n = \text{Cov}(\hat{N}) \]

在了解完 PCA 后,这节内容就不难理解了,其公式如下:

\[\text{Cov}(X,Y) = \frac{1}{m-1} \sum_{i=1}^{m} (X_i - \bar{X})(Y_i - \bar{Y}) \]

(3)进行噪声白化变换

现在我们已经得到了噪声协方差矩阵 \(C_n\)

下一步,是构造一个线性变换,使得噪声在新的空间中满足:

\[\text{Cov}(N_{white}) = I \]

在这里,\(N_{white}\) 就是变换后的噪声矩阵,而 \(I\) 是单位矩阵。

单位矩阵是对角线原始全是 1,非对角线元素全是 0 的矩阵。 就像这样:

\[I = \begin{bmatrix} 1 & 0 & \dots & 0 \\ 0 & 1 & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & 1 \end{bmatrix} \]

根据协方差矩阵中的元素语义,现在我们知道:变换后的噪声各个方向方差相等,噪声之间不再相关。

解释一下这段逻辑:MNF 并没有设法去消除噪声本身,而是通过变换让数据中任何方向的噪声强度都一样,这样噪声就不会影响数据方差间的相对大小,如果某个方向的方差更大,那就几乎可以认为是信号贡献,这就叫噪声白化

了解了白化的结果后,现在再来看看其变换的过程:

因为 \(C_n\) 是一个对称正定矩阵,根据线代中的实对称矩阵的谱定理,我们有这个式子:

\[C_n = U \Lambda U^T \]

其中: \(U\) 是特征向量矩阵, \(\Lambda\) 是特征值对角矩阵。

解这个方程的过程其实还是上一篇中特征值分解,在PCA 中了解了其逻辑后我们就能直接用结论了。

现在,我们就知道了噪声主要分布在哪些方向上,在每个方向上噪声有多强。

接下来,我们构造一个变换矩阵

\[W = \Lambda^{-1/2} U^T \]

其中, \(\Lambda^{-1/2}\) 是对角线上每个元素取平方根倒数,因为方差是平方量,这么算是让所有方向的噪声方差都变成 1。

最后,我们用变换矩阵对噪声进行变换:

\[N' = W N \]

\(N'\) 即为白化后的噪声矩阵,可以证明:

\[\text{Cov}(N') = I \]

而通过用变换矩阵对原数据进行变换:

\[X' = W X \]

我们便能得到最终噪声白化后的数据。

从语义上解释这一过程,其实是先把原数据矩阵通过 \(U^T\) 旋转到噪声协方差矩阵的特征向量坐标系中,使噪声在该坐标系下彼此独立,再按特征值 \(\Lambda^{-1/2}\) 缩放,使所有方向上的噪声方差统一为 1。

这部分展开推导过程较为繁琐,实际上还是对协方差性质、正交矩阵性质 的应用,这里补充一个实例:

假设噪声协方差矩阵为

\[C_n = \begin{bmatrix} 4 & 0 \\ 0 & 1 \end{bmatrix} \]

这代表第一个方向噪声方差 = 4,第二个方向噪声方差 = 1 。

因为它已经是对角矩阵,所以:

\[U = I \]

\[\Lambda = \begin{bmatrix} 4 & 0 \\ 0 & 1 \end{bmatrix} \]

继续,构造变换矩阵:

\[W = \Lambda^{-1/2} = \begin{bmatrix} \frac{1}{\sqrt{4}} & 0 \\ 0 & \frac{1}{\sqrt{1}} \end{bmatrix} = \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & 1 \end{bmatrix} \]

假设噪声向量为:

\[N = \begin{bmatrix} 2 \\ 1 \end{bmatrix} \]

现在进行白化:

\[N'=WN= \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} \]

验证白化后的协方差:

\[C_n'=W C_n W^T = \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 4 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \frac{1}{2} & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = I \]

至此,我们就完成对高光谱数据的噪声白化。

2.2 PCA

完成了噪声白化后,我们得到了变换后的数据矩阵 \(X'\),这时再对它做 PCA ,噪声已经被标准化,在各个方向上贡献相同,就不再影响方差排序。

而且此时:

\[\text{Cov}(X') = \text{Cov}(S') + I \]

因此,特征值可以理解为:

\[\lambda = \text{信号能量} + 1 \]

所以:

  • 特征值越大,信号越强,信噪比越大。
  • 特征值接近 1 ,主要是噪声,信噪比越小。

所以也有这样的常见说法:MNF 是按信噪比排序的降维方法。

在上一篇我们使用的是特征值分解来进行提取主成分,同时我们提到了可以使用另一种方法:奇异值分解,来省去显式计算协方差矩阵,在这部分,我们就来简单展开一下:

奇异值分解的英文全称是 Singular Value Decomposition,缩写为SVD.

在实际计算中,我们通常不直接计算协方差矩阵再做特征分解,主要是因为协方差矩阵维度为 \(n \times n\),当波段数较大时计算成本较高

因此可以使用 SVD 直接对数据矩阵进行分解。

PCA 的特征分解可以由 SVD 公式推导出来,这涉及到线代中的矩阵分解定理

对于任意矩阵 \(X' \in \mathbb{R}^{m\times n}\),都可以分解为:

\[X' = U \Sigma V^T \]

其中:

  • \(U\) 为左奇异向量。
  • \(\Sigma\) 为奇异值对角矩阵。
  • \(V\) 为右奇异向量。

其推导过程较繁琐,就不再展开了,直接摆出结论如下:

  1. PCA 的特征向量 = SVD 的右奇异向量 \(V\)
  2. PCA 的特征值 = \(\frac{\Sigma^2}{m-1}\)

因此,通过 SVD,我们可以直接从高维数据本身得到其各个成分并进行排序。

这样,我们就实现了对存在噪声影响的高维数据的降维,不仅保留了数据结构,同时还消除了噪声对方差排序的影响。

3.MNF 的优缺

MNF 是在 PCA 的基础上引入噪声建模得到的一种改进方法,因此它在高噪声数据场景下往往比 PCA 更有效。但与此同时,它也带来了新的假设条件和计算成本。

3.1 MNF 的优势

优点 说明
能考虑噪声影响 MNF 在降维前先对噪声进行白化处理,使噪声在各个方向上的方差一致,从而减少噪声对主成分排序的干扰。
更适合高光谱数据 高光谱图像通常波段多、噪声大,MNF 能有效分离噪声主导的波段,因此在高光谱处理软件中被广泛使用。
具有一定降噪效果 在保留前几个 MNF 分量时,可以自动丢弃主要由噪声组成的分量,因此在降维的同时往往具有一定的降噪作用。

3.2 MNF 的不足

缺点 说明
依赖噪声估计 MNF 的效果很大程度依赖噪声协方差矩阵的估计,如果噪声估计不准确,降维效果可能明显下降。
计算过程更复杂 相比 PCA,MNF 需要额外进行噪声估计与白化变换,通常涉及两次特征分解,计算成本更高。
仍然是线性方法 MNF 本质上仍然是线性变换,因此对于存在复杂非线性结构的数据,其表达能力依然有限。
同样解释性较弱 MNF 分量还是多个波段的线性组合,其物理意义往往不如原始波段直观,这和 PCA 仍是相同的问题。

总的来说,MNF 可以看作是在 PCA 基础上引入噪声建模的一种改进降维方法。它通过噪声白化和主成分分析,将数据按照信噪比进行排序,从而更有效地分离真实信号与噪声。在高光谱图像处理领域,MNF 已成为常用的预处理和降维方法之一。

相关推荐
哥布林学者1 天前
高光谱成像(三)主成分分析 PCA
机器学习·高光谱成像
OpenBayes贝式计算1 天前
边看、边听、边说,MiniCPM-0-4.5 全双工全模态模型;Pan-Cancer scRNA-Seq 涵盖三种生物学状态单细胞转录数据集
人工智能·深度学习·机器学习
OpenBayes贝式计算1 天前
教程上新丨基于500万小时语音数据,Qwen3-TTS实现3秒语音克隆及精细调控
人工智能·深度学习·机器学习
小黎14757789853643 天前
OpenClaw 连接飞书完整指南:插件安装、配置与踩坑记录
机器学习
哥布林学者3 天前
高光谱成像(二)光谱角映射 SAM
机器学习·高光谱成像
哥布林学者4 天前
高光谱成像(一)高光谱图像
机器学习·高光谱成像
罗西的思考4 天前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx4 天前
CART决策树基本原理
算法·机器学习