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