CaffeLoss - SigmoidCrossEntropyLossLayer 用于 010101110 类型的 labels

<h2>1. SigmoidLayer</h2>

非线性激活函数 — Sigmoid:

$${y = (1+exp(-x))^{-1} = \frac{1}{1+exp(-x)}}$$

该激活函数随着值远离 0 ,会出现梯度消失.

<h2>2. SigmoidCrossEntropyLossLayer</h2>

计算交叉熵(cross-entropy) loss:

$${E = \frac{-1}{n}\sum_{n=1}^N[p_nlog\hat{p}_n + (1-p_n)log(1-\hat{p}_n]}$$

主要用于以概率形式预测目标值.

交叉熵 loss 用于度量两个概率分布之间的相似性.

该Loss层相比 SigmoidLayer + CrossEntropyLayer,梯度计算具有更好的数值稳定性.

Test 时,该网络层可以替换为 SigmoidLayer.

参数:

  • bottom - 长度为2的输入Blob
    • Size为 (N×X×H×W) ,采用 sigmoid 函数得到的概率预测值 sigmoid(x_n)
    • Size为 (N×X×H×W) ,目标值,targets
  • top - 长度为1的输出Blob
    • Size为 (1×1×1×1) ,计算得到的交叉熵 loss 值.

<h3>2.1 SigmoidCrossEntropyLoss层计算</h3>

计算过程如下:

<h2>Reference</h2>

[1] - caffe::SigmoidCrossEntropyLossLayer

[2] - "caffe里sigmoidCrossEntropyLoss层计算" - CaffeCN深度学习社区

[3] - 如何通俗的解释交叉熵与相对熵? - 知乎

Last modification:October 10th, 2018 at 03:54 pm