Logit Adjust
Logit Adjust
BER
我們?cè)诜诸?lèi)問(wèn)題中常用的誤分類(lèi)函數(shù)使得分類(lèi)器最終學(xué)到的分布:
P(y∣x)∝P(y)P(x∣y)P(y|x) \propto P(y)P(x|y) P(y∣x)∝P(y)P(x∣y)
假設(shè)在一個(gè)不平衡貓狗二分類(lèi)問(wèn)題中,狗是一個(gè)小類(lèi),只有整個(gè)數(shù)據(jù)集的1%的數(shù)據(jù)量。則P(y)=0.01P(y)=0.01P(y)=0.01,這樣無(wú)論P(x∣y)P(x|y)P(x∣y)有多大,右邊這一項(xiàng)都會(huì)很小。所以作者使用BER即banlance error rate,
首先舉一個(gè)例子方便快速理解BER的思想:
源地址
根據(jù)上面這個(gè)混淆矩陣有BER=0.5?(ba+b+cc+d)BER = 0.5 * (\frac{b}{a+b}+\frac{c}{c+d})BER=0.5?(a+bb?+c+dc?)通常的誤差計(jì)算公式則為ER=b+ca+b+c+dER=\frac{b + c}{a+b+c+d}ER=a+b+c+db+c?再看原文中給出的BER的公式:
BER(f)=1L∑y∈[L]Px∣y(y?argmaxy′∈y^fy′(x))BER(f) = \frac{1}{L}\sum_{y \in [L]}P_{x|y} (y \notin argmax_{y^{\prime} \in \hat{y}}f_{y^{\prime}}(x)) BER(f)=L1?y∈[L]∑?Px∣y?(y∈/?argmaxy′∈y^??fy′?(x))
y^\hat{y}y^?等價(jià)于原文中的花體y,有y^=[L]=1,2,…L.\hat{y}=[L]={1, 2, \dots L}.y^?=[L]=1,2,…L.上式右邊用人話(huà)翻譯過(guò)來(lái)就是“把所有(類(lèi)別)yyy被分類(lèi)器fy′(x)f_{y^\prime}(x)fy′?(x)誤分類(lèi)的概率加起來(lái),最后對(duì)類(lèi)別數(shù)做平均”。精髓就在于誤差的計(jì)算是class-wise的,想想我們通常評(píng)估誤差率,都是用一個(gè)batch中,用誤分類(lèi)樣本數(shù)batchsize\frac{誤分類(lèi)樣本數(shù)}{batchsize}batchsize誤分類(lèi)樣本數(shù)?來(lái)表示,這個(gè)時(shí)候分類(lèi)器就可以偷懶,只要把所有樣本都預(yù)測(cè)為大類(lèi)就可以在誤差率這個(gè)評(píng)價(jià)指標(biāo)上表現(xiàn)良好。一個(gè)問(wèn)題在于,為甚么上式積分符號(hào)下面有一個(gè)”x∣yx|yx∣y”,這個(gè)條件函數(shù)的假設(shè)是怎么回事? 在我的理解中x是樣本,再結(jié)合最開(kāi)始舉得例子,P(x∣y)=ba+bP(x|y) = \frac{b}{a+b}P(x∣y)=a+bb?左邊翻譯過(guò)來(lái)是“已知為類(lèi)別y,則其為樣本x的概率”,右邊翻譯過(guò)來(lái)是“類(lèi)別y的準(zhǔn)確率”,這兩者要怎么畫(huà)上等號(hào)呢?還請(qǐng)讀者不吝賜教。
BER鼓勵(lì)分類(lèi)器學(xué)到的分布:
P(y∣x)∝1LP(x∣y)P(y|x) \propto \frac{1}{L}P(x|y) P(y∣x)∝L1?P(x∣y)
這樣分類(lèi)器分類(lèi)時(shí)就不會(huì)再受到不平衡數(shù)據(jù)集的影響。但是考慮另一個(gè)問(wèn)題,如果狗這個(gè)小類(lèi)中全部都是二哈,只有一個(gè)泰迪,那么分類(lèi)器很可能會(huì)學(xué)到P(二哈∣狗)→1P(二哈|狗) \to 1P(二哈∣狗)→1,這相當(dāng)于一個(gè)不平衡子集的問(wèn)題。
Logit Adjustment
最小化BER可以表述為f?∈argminf:x→RLBER(f)f^* \in argmin_{f:x \to R^{L}}BER(f)f?∈argminf:x→RL?BER(f),原文提到這個(gè)問(wèn)題的一個(gè)典型的解是:“the best posible or Bayes-optimal score as following:”
上式右邊的等式與上一節(jié)中分析BER鼓勵(lì)分類(lèi)器學(xué)習(xí)的分布的形式是一致的。文章中進(jìn)一步闡述,當(dāng)類(lèi)別條件概率P(x∣y)P(x|y)P(x∣y)固定的時(shí)候,無(wú)論P(y)P(y)P(y)怎么變,模型都是無(wú)視的,這就直觀的解釋了,為什么BER可以用于解決類(lèi)別不平衡的問(wèn)題。
接著作者假設(shè)P(y∣x)∝exp(sy?(x))P(y|x) \propto exp(s^*_y(x))P(y∣x)∝exp(sy??(x)),其中s?:x→RLs^*:x \to R^Ls?:x→RL是一個(gè)記分器(scorer),用來(lái)把樣 本x映射為一個(gè)長(zhǎng)度為L(zhǎng)向量,向量中的每個(gè)元素表示分類(lèi)器認(rèn)為該樣本屬于某一類(lèi)的分?jǐn)?shù)。使用指數(shù)函數(shù)一是因?yàn)樗旧硎?span id="ze8trgl8bvbq" class="katex--inline">RnR^nRn上單調(diào)增的二是因?yàn)樵谕饷嫣咨蠈?duì)數(shù)函數(shù)之后可以把它消掉。同時(shí)根據(jù)定義有Pbal(y∣x)∝P(y∣x)/p(y)P^{bal}(y|x) \propto P(y|x)/p(y)Pbal(y∣x)∝P(y∣x)/p(y)。因此上面的長(zhǎng)等式又可以表示為:
上式最后一項(xiàng)就是作者所謂的logit adjust。作者提出可以有兩種形式來(lái)執(zhí)行,其一是整合在loss函數(shù)中,其二是在測(cè)試的時(shí)候做后處理。第一種方式定義的損失函數(shù)如下:
tau默認(rèn)是1,也就是不起任何作用,作者給的推薦配置中也沒(méi)有對(duì)這個(gè)參數(shù)進(jìn)行修改。加1e-12應(yīng)該是為了數(shù)值穩(wěn)定性。
最后作者認(rèn)為自己的方法相對(duì)于之前的方法的優(yōu)勢(shì)之一是有堅(jiān)實(shí)的統(tǒng)計(jì)學(xué)基礎(chǔ):最小化平衡誤差時(shí)保證了費(fèi)雪一致性(Fisher consistent)。關(guān)于這個(gè)性質(zhì)我的淺薄理解就是在一個(gè)采樣上{X}求得的函數(shù)f:X→θf(wàn):{X} \to \thetaf:X→θ,對(duì)于真實(shí)分布仍然適用。用人話(huà)來(lái)說(shuō)就是,我這個(gè)函數(shù)可以根據(jù)這個(gè)采樣求得這個(gè)分布的一個(gè)未知參數(shù)θ\thetaθ,把這個(gè)函數(shù)放到真實(shí)分布上仍然是正確的,這樣我求的這個(gè)函數(shù)就可以以偏概全。
總結(jié)
以上是生活随笔為你收集整理的Logit Adjust的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DBNet详解
- 下一篇: docker镜像包制作