傳統辨識方法

字典學習

字典學習(dictionary learning)的想法是:一張複雜的影像可以用一個學得的元件庫中少數幾個基本視覺元素的組合來重建——就像任何字詞都是用字母表中的幾個字母拼出來的。每一小塊影像區塊被近似為少數幾個建構元件(稱為原子,atoms)的加權和,而幾乎所有權重都是零。這個原子庫就是字典,那串少數的非零權重就是稀疏編碼(sparse code),而「學習」意指從資料中找出一個字典,使你領域中的區塊能被準確重建,同時每個區塊用到的原子盡可能少。

精確地說,你把字典原子排成矩陣 D 的各個欄,並為每個訊號(區塊)x 尋找一個稀疏係數向量 a,使 D·a 能好好重建 x——也就是最小化重建誤差加上一個把 a 大部分元素推向零的懲罰(非零數的 L0 計數,或其凸鬆弛 L1)。訓練同時最佳化每個區塊的編碼 a 與字典 D 本身,通常用交替法:固定 D 解出稀疏編碼(稀疏編碼,透過匹配追蹤或 LASSO 等方法),再固定編碼更新 D(透過 K-SVD 或線上字典學習等方法)。字典刻意是過完備的(overcomplete)——原子數多於區塊維度——這賦予了用極少原子表示多樣圖樣的自由;學得的原子通常呈現為有方向的邊緣、條帶與紋理,與初級視覺皮層的感受野驚人地相似。

在視覺領域,字典學習有兩大角色。在辨識方面,把詞袋的硬向量量化步驟換成稀疏編碼(每個特徵是少數幾個字典原子的柔性混合,而非被硬塞到一個群集),再對編碼做最大池化,產生了一個強大的影像分類流程(ScSPM 方法),一度是最先進的。在低階視覺方面,在學得字典上的稀疏編碼,在影像去雜訊、補繪、去模糊與超解析度上創下基準,因為自然影像區塊在一個好的字典中確實稀疏,而雜訊不然,所以重建會抑制雜訊。其概念觸及甚廣:稀疏編碼是一種人工設計的非監督式特徵學習器,是深度網路學得特徵的思想先驅。卷積網路最終以「具鑑別力、端到端地學習階層式特徵」超越了它,但「稀疏、以部件為基礎、過完備基底」的觀點仍具影響力,而稀疏編碼的想法也再現於壓縮感知,以及對網路如何表示概念的分析之中。

為何過完備與稀疏相輔相成:當原子數多於維度時,系統是欠定的,有無限多種編碼都能重建一個區塊——稀疏懲罰正是用來從中選出唯一、有意義的那一個(啟用原子最少者)。因此稀疏不是次要的正則化,而是讓過完備編碼有良好定義且可詮釋的關鍵所在。

又称
sparse codingsparse dictionary learning