影像分類
獨熱標籤編碼 (one-hot label encoding)
獨熱(one-hot)編碼是把一個類別標籤表示成向量以供訓練的標準做法。對一個有 C 個類別的問題,類別 j 的標籤會變成一個長度為 C 的向量,在位置 j 為 1、其餘各處皆為 0,因此「4 個類別中的第 2 類」會變成 [0, 1, 0, 0]。這把一個任意、無序的類別,轉成一個網路輸出層與交叉熵損失可以直接消化的數值目標。
之所以用獨熱而非單一整數,是為了避免暗示出虛假的次序或距離:把類別編碼成數字 1、2、3 會暗示第 3 類大於或遠於第 1 類,但對貓、狗、車這類類別而言這毫無意義。獨熱向量把所有類別都視為等距且彼此獨立,這正符合名目類別的語意。搭配 softmax 輸出時,以獨熱目標最小化交叉熵,恰恰就是對正確類別做最大概似估計。
獨熱目標是其他幾個術語所修改的基準:標籤平滑把那個 1 與那些 0 朝一個微小、均勻的下限軟化;mixup 與 CutMix 在兩個獨熱向量之間做內插;而階層式或多標籤設定則把那個唯一的 1 換成結構化或多熱(multi-hot)目標。因此,理解單純的獨熱目標,正是理解那些精緻變體的基礎。
在程式中,對於很大的 C,優先使用框架提供、以整數索引為輸入的交叉熵(它在內部自行建構獨熱),而非手動實體化獨熱矩陣;這能節省記憶體並避免細微的錯誤,但在概念上目標仍然是那個獨熱向量。
又稱