WBCE
WBCE 即 weighted binary cross entropy,是 [1] 的公式 1,改版的 binary cross entropy。
Lwbce(y,z,w)=−i=1∑c[wi⋅yilogzi+(1−yi)log(1−zi)]
其中,y 是真實 label 向量,z 是預測 label 向量,w 是權重向量,wi=#1{i}#0{i},#0{i} 是 training set 中不屬於第 i 類的樣本個數,#1{i} 類似地表示屬於的。
wi 是乘在中括號裏面的。
Reformulation
當 z 是 sigmoid 的輸出(如 [1] 的公式 4),記 z=σ(x)(σ(⋅) 表示 sigmoid 函數),參照 [2],修改公式防溢出。
先按 y、z、w 都是標量的情況考慮:
Lwbce(y,z,w)=−[w⋅ylogz+(1−y)log(1−z)]=−wylogσ(x)−(1−y)log[1−σ(x)]=wylog(1+e−x)+(1−y)[x+log(1+e−x)]=(wy+1−y)log(1+e−x)+(1−y)x
因爲 e−x 在 x<0 時很爆炸:
對 x<0 的情況特殊處理,變形:
Lwbce(y,z,w)=(wy+1−y)log(1+e−x)+(1−y)x=(wy+1−y)log(1+e−x)+(wy+1−y)x−wyx=(wy+1−y)[log(1+e−x)+logex]−wyx=(wy+1−y)log(1+ex)−wyx(1)(2)
(1) 式適用 x≥0 的情況,(2) 適用在 x<0,於是:
Lwbce(y,z,w)={(wy+1−y)log(1+e−x)+(1−y)x,(wy+1−y)log(1+ex)−wyx,x≥0x<0=(wy+1−y)log(1+e−∣x∣)+max{(1−y)x,0}−min{wyx,0}
後面 max 和 min 兩項是因爲 y∈{0,1}、w≥0,所以 (1−y)x 和 wyx 的符號看 x。
References
- Semi-Supervised Cross-Modal Retrieval with Label Prediction
- tf.nn.sigmoid_cross_entropy_with_logits
- Giving reasons on each line of a sequence of equations