Ogni esempio di rete neurale per il riconoscimento di immagini che ho letto produce una semplice risposta "sì" o "no". Un nodo di uscita corrisponde a "Sì, questo è un volto umano" e uno corrisponde a "No, questo non è un volto umano".
Capisco che questo sia probabilmente per semplicità di spiegazione, ma mi chiedo come una tale rete neurale possa essere programmata per dare un output più specifico. Ad esempio, diciamo che stavo classificando gli animali. Invece di dire "Animale" o "Non un animale", vorrei risposte come "Cane", "Pesce", "Uccello", "Serpente", ecc., Con un nodo di uscita finale "Non un animale / I non riconoscerlo ".
Sono sicuro che ciò deve essere possibile, ma ho difficoltà a capire come. Sembra che sia dovuto all'algoritmo di addestramento di backpropogation dell'errore, mentre ti alleni su un nodo di uscita (cioè "Questo è un cane") e i pesi dei neuroni sono cambiati, quindi lo stato ideale per un altro nodo di uscita che hai precedentemente addestrato (cioè, "Questo è un uccello") inizierà a deviare, e viceversa. Quindi addestrare la rete a riconoscere una categoria potrebbe sabotare qualsiasi allenamento fatto per un'altra categoria, limitandoci quindi a un semplice "Sì" o "No".
Questo rende impossibile riconoscere un simile riconoscimento? O sto fraintendendo l'algoritmo? Le uniche due cose che posso pensare sono:
-
O potremmo addestrare una rete neurale per ogni cosa che vogliamo classificata e in qualche modo usarla per costruire una più grande, super-rete (quindi, per esempio, una rete per "cane", una rete per "uccello", ecc., che in qualche modo aggiungiamo insieme per creare la super-rete per "animali"); o,
-
Crea una sorta di metodologia formativa ridicolmente complicata che richiederebbe una matematica incredibilmente avanzata e produrrebbe in qualche modo uno stato di peso neurone ideale per tutti i possibili output (in altre parole,
insert math magic here
).
(Nota a margine 1: sto osservando specificamente i percettroni multistrato come una sorta di rete neurale.)
(Nota a margine 2: per la prima "possibile soluzione" puntata, avere ciascuna rete neurale specifica e scorrere attraverso di esse fino a ricevere una risposta "Sì" non è abbastanza buona. So che questo potrebbe essere fatto abbastanza facilmente, ma che è semplice programmazione funzionale piuttosto che apprendimento automatico. Voglio sapere se è possibile avere una rete neurale per alimentare le informazioni e ricevere la risposta appropriata.)