Quale modello di apprendimento profondo può classificare categorie che non si escludono a vicenda


9

Esempi: ho una frase nella descrizione del lavoro: "Ingegnere senior Java nel Regno Unito".

Voglio usare un modello di apprendimento profondo per prevederlo in 2 categorie: English e IT jobs. Se uso il modello di classificazione tradizionale, posso solo prevedere 1 etichetta con la softmaxfunzione all'ultimo livello. Quindi, posso usare 2 reti neurali modello per prevedere "Sì" / "No" con entrambe le categorie, ma se ne abbiamo altre, è troppo costoso. Quindi abbiamo qualche modello di deep learning o machine learning per prevedere 2 o più categorie contemporaneamente?

"Modifica": con 3 etichette di approccio tradizionale, sarà codificato da [1,0,0] ma nel mio caso, sarà codificato da [1,1,0] o [1,1,1]

Esempio: se abbiamo 3 etichette e una frase potrebbe essere adatta a tutte queste etichette. Quindi, se l'output della funzione softmax è [0.45, 0.35, 0.2] dovremmo classificarlo in 3 etichette o 2 etichette, o potrebbe essere uno? il problema principale quando lo facciamo è: qual è la buona soglia per classificare in 1, o 2 o 3 etichette?


Dobbiamo usare la funzione sigmoid invece della funzione softmax. Può assegnare più classi ai punti dati.
NITISH MAHAJAN,

Risposte:


6

È possibile ottenere questa classificazione multietichetta sostituendo il softmax con un'attivazione sigmoidea e usando la crossentropia binaria invece della crossentropia categorica come funzione di perdita. Quindi hai solo bisogno di una rete con tutte le unità di output / neuroni quante sono le etichette.

È necessario modificare la perdita in crossentropia binaria poiché l'entropia incrociata categorica ottiene solo la perdita dalla previsione per gli obiettivi positivi. Per capirlo, guarda la formula per la perdita categorica di crossentropia per un esempio (gli indici di classe sono ):ij

Li=jti,jlog(pi,j)

Nella normale impostazione multiclasse, si utilizza un softmax, in modo che la previsione per la classe corretta dipenda direttamente dalle previsioni per le altre classi. Se sostituisci il softmax con sigmoid questo non è più vero, quindi esempi negativi (dove ) non vengono più utilizzati nell'allenamento! Ecco perché è necessario passare alla crossentropia binaria, che utilizza esempi sia positivi che negativi: ti,j=0Li=jti,jlog(pi,j)j(1ti,j)log(1pi,j)


perché dobbiamo usare la crossentropia binaria invece della crossentropia categorica come funzione di perdita? puoi spiegare di più? Ora sto usando l'attivazione sigmoid @robintibor
voxter

Ho aggiunto una spiegazione alla risposta @voxter
robintibor l'

Geniale! Grazie. Inoltre, puoi fornire alcuni documenti o tutorial che spiegano più matematica sulle funzioni nel deep learning come come mi hai spiegato?
voxter,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.