博客 / 詳情

返回

高光譜成像(四)最小噪聲分數變換 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 後,這節內容就不難理解了,其公式如下:

\[\mathbf{C}_n = \frac{1}{m-1} \hat{N}^\top \hat{N} \]

(3)進行噪聲白化變換

現在我們已經得到了噪聲協方差矩陣 \(C_n\)

下一步,是構造一個線性變換,使得噪聲在新的空間中滿足:

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

在這裏,$N' $ 就是變換後的噪聲矩陣,而 \(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 \hat{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} \]

假設噪聲向量為:

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

現在進行白化:

\[N'=W \hat{N}= \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 已成為常用的預處理和降維方法之一。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.