funzione di perdita per classificare quando più di un'uscita può essere 1 alla volta
-
16-10-2019 - |
Domanda
My uscita desiderata non è codifica 1-caldo, ma
come un 10 D vettore: [1, 0, 1, 0, 1, 0, 0, 1, 1, 1]
e l'ingresso è come il normale set di dati MNIST.
Voglio usare tensorflow per costruire un modello per imparare questo, poi che la perdita di funzione devo scegliere?
Soluzione
Se le classi non arre reciprocamente esclusività, quindi basta più uscite del sigma (invece della funzione softmax come si vede nella classificatori esempio MNIST). Ogni uscita sarà una probabilità separata che le assegna rete di membri di quella classe.
Per una funzione di perdita di corrispondenza, in tensorflow, è possibile utilizzare il built-in tf.nn.sigmoid_cross_entropy_with_logits - nota che funziona sulle logit - gli ingressi alla funzione sigma - per l'efficienza. Il collegamento spiega la matematica coinvolti.
Si avrà ancora voglia di una funzione sigmoide sullo strato di uscita troppo, per quando si legge al largo delle previsioni, ma si applica la funzione di perdita sopra per ingresso della funzione sigma. Nota: questo non è un requisito del problema, si può facilmente scrivere una funzione di perdita che le opere dalle uscite sigma, solo il tensorflow built-in è stato scritto in modo diverso per ottenere un piccolo aumento di velocità.