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