Sto utilizzando la funzione di perdita di entropia cross sigmoid per un problema di classificazione multilabel come previsto da this tutorial. Tuttavia, in entrambi i risultati sul tutorial e sui risultati, le previsioni di output sono comprese nell'intervallo (-Inf, Inf)
, mentre l'intervallo di un sigmoid è [0, 1]
. Il sigmoid viene elaborato solo nel backprop? Cioè, non dovrebbe un passo avanti schiacciare l'uscita?Caffe sigmoid cross entropy loss
5
A
risposta
5
In questo esempio l'input per il livello "SigmoidCrossEntropyLoss"
è l'output di un livello completamente connesso. Infatti non ci sono vincoli sui valori delle uscite di un layer "InnerProduct"
e possono essere nel range [-inf, inf]
.
Tuttavia, se si esamina attentamente lo "SigmoidCrossEntropyLoss"
, si noterà che include uno "Sigmoid"
layer inside - per garantire una stima del gradiente stabile.
Pertanto, al momento del test, è necessario sostituire lo "SigmoidCrossEntropyLoss"
con un semplice livello "Sigmoid"
per generare previsioni per classe.
Grazie @Shai. Ti stai aggrappato a queste risposte di Caffe – marcman