浅谈Label Smoothing技术
目錄
- 一、從 One-Hot 到 Label Smoothing
- 二、Label Smoothing 的簡(jiǎn)單實(shí)現(xiàn)
- 三、Label Smoothing 的優(yōu)缺點(diǎn)
- 四、什么時(shí)候使用 Label Smoothing?
一、從 One-Hot 到 Label Smoothing
考慮單個(gè)樣本的交叉熵?fù)p失
H(p,q)=?∑i=1Cpilog?qiH(p,q)=-\sum_{i=1}^C p_i\log q_i H(p,q)=?i=1∑C?pi?logqi?
其中 CCC 代表類別個(gè)數(shù),pip_ipi? 是真實(shí)分布(即 target),qiq_iqi? 是預(yù)測(cè)分布(即神經(jīng)網(wǎng)絡(luò)輸出的 prediction)。
如果真實(shí)分布采用傳統(tǒng)的 One-Hot 向量,則其分量非 000 即 111。不妨設(shè)第 kkk 個(gè)位置是 111,其余位置是 000,此時(shí)交叉熵?fù)p失變?yōu)?/p>
H(p,q)=?log?qkH(p,q)=-\log q_k H(p,q)=?logqk?
從上面的表達(dá)式不難發(fā)現(xiàn)一些問題:
- 真實(shí)標(biāo)簽跟其他標(biāo)簽之間的關(guān)系被忽略了,一些有用的知識(shí)無法學(xué)到;
- One-Hot 傾向于讓模型過度自信(Overconfidence),容易造成過擬合,進(jìn)而導(dǎo)致泛化性能降低;
- 誤標(biāo)注的樣本(即 target 錯(cuò)誤)更容易對(duì)模型的訓(xùn)練產(chǎn)生影響;
- One-Hot 對(duì) “模棱兩可” 的樣本表征較差。
緩解這些問題的方法就是采用 Label Smoothing 的技術(shù),它也是一種正則化的技巧,具體如下:
pi:={1??,i=k?/(C?1),i≠kp_i:= \begin{cases} 1-\epsilon,& i=k \\ \epsilon/(C-1),&i\neq k\\ \end{cases} pi?:={1??,?/(C?1),?i=ki=k?
其中 ?\epsilon? 是一個(gè)小正數(shù)。
例如,設(shè)原始 target 為 [0,0,1,0,0,0][0,0,1,0,0,0][0,0,1,0,0,0],取 ?=0.1\epsilon=0.1?=0.1,則經(jīng)過 Label Smoothing 后 target 變?yōu)?[0.02,0.02,0.9,0.02,0.02,0.02][0.02,0.02,0.9,0.02,0.02,0.02][0.02,0.02,0.9,0.02,0.02,0.02]。
📌 原始的 One-Hot 向量通常稱為 Hard Target(或 Hard Label),經(jīng)過標(biāo)簽平滑后通常稱為 Soft Target(或 Soft Label)
二、Label Smoothing 的簡(jiǎn)單實(shí)現(xiàn)
import torchdef label_smoothing(label, eps):label[label == 1] = 1 - epslabel[label == 0] = eps / (len(label) - 1)return labela = torch.tensor([0, 0, 1, 0, 0, 0], dtype=torch.float) print(label_smoothing(a, 0.1)) # tensor([0.0200, 0.0200, 0.9000, 0.0200, 0.0200, 0.0200])三、Label Smoothing 的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 一定程度上可以緩解模型 Overconfidence 的問題,此外也具有一定的抗噪能力;
- 提供了訓(xùn)練數(shù)據(jù)中類別之間的關(guān)系(數(shù)據(jù)增強(qiáng));
- 可能在一定程度上增強(qiáng)了模型的泛化能力。
缺點(diǎn):
- 單純地添加隨機(jī)噪音,也無法反映標(biāo)簽之間的關(guān)系,因此對(duì)模型的提升有限,甚至有欠擬合的風(fēng)險(xiǎn);
- 某些場(chǎng)景下 Soft Label 并不能幫助我們構(gòu)建更好的神經(jīng)網(wǎng)絡(luò)(表現(xiàn)不如 Hard Label)。
四、什么時(shí)候使用 Label Smoothing?
- 龐大的數(shù)據(jù)集難免存在噪音(即標(biāo)注錯(cuò)誤),為了避免模型學(xué)到這些噪音可以加入 Label Smoothing;
- 對(duì)于模糊的 case 而言可以引入 Label Smoothing(比如貓狗分類任務(wù)中,可能存在一些圖片既像狗又像貓);
- 防止模型 Overconfidence。
總結(jié)
以上是生活随笔為你收集整理的浅谈Label Smoothing技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 手机摇一摇
- 下一篇: Mysql : 对于表数据处理增删改的内