參考李宏毅老師與各路大神的整理
Hard Label
一般常見的標記分類方式,以One-Hot-Encoding定義一個長度為N的向量,每個類別以二元碼表示,例如 : 狗 [1, 0, 0] ,貓[0,1,0],其他[0,0,1]
Hard Label = binary encoded e.g. cat is [dog:0, cat:1, others:0]
Soft Label
給定一個長度為N的向量,描述一個樣本同時屬於多個類別,以一個分佈的形式呈現樣本為屬於其他樣本的可能性,例如:
Soft Label = probability encoded e.g. cat is [dog:0.3, cat:0.5, others:0.2]
機率化標籤 (probabilistic label)的所有元素加總為1,每個值為正數。
未限制標籤(unrestricted label)元素沒有限制,可以是任何實數值(含負數)。
應用方面
hard label常用於一般分類任務,而Soft label可用於一些模擬兩可的狀況與知識蒸餾(Knowledge Distillation)的技術上,也有混用的情況。
知識蒸餾簡介 (節錄此文)
通常擁有良好的性能和泛化能力的模型,通常較為複雜或者是若干網絡的集合,而小模型因為規模較小,表達能力有限。知識蒸餾就希望可以利用大模型學習到的知識去指導小模型,使得小模型訓練後具有與大模型相當的性能,但是參數數量大幅降低,從而實現模型壓縮與加速。模型壓縮大體上可以分為:
- 模型剪枝:即移除對結果作用較小的組件,如減少head的數量和去除作用較少的層,共享參數等,ALBERT屬於這種;
- 量化:比如將float32降到float8;
- 知識蒸餾:將teacher的能力蒸餾到student上,一般student會比teacher小。我們可以把一個大而深的網絡蒸餾到一個小的網絡,也可以把集成的網絡蒸餾到一個小的網絡上。
- 參數共享:通過共享參數,達到減少網絡參數的目的,如ALBERT共享了Transformer層
- 參數矩陣近似:通過矩陣低秩分解或其他方法達到降低矩陣參數的目的
參考與延伸閱讀