Ogni esempio di rete neurale per il riconoscimento di immagini di cui 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 è probabilmente per semplicità di spiegazione, ma mi chiedo come una tale rete neurale possa essere programmata per fornire un output più specifico. Ad esempio, supponiamo che stia 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 questo deve essere possibile, ma ho difficoltà a capire come. Sembra dovuto all'algoritmo di addestramento della backpropogation dell'errore, mentre ti alleni un nodo di uscita (cioè "Questo è un cane") e i pesi dei neuroni vengono cambiati, quindi lo stato ideale per un altro nodo di uscita che in precedenza addestrato (cioè "Questo è un uccello") inizierà a deviare e viceversa. Quindi addestrare la rete a riconoscere una categoria significherebbe sabotare qualsiasi addestramento fatto per un'altra categoria, limitandoci così a un semplice design "Sì" o "No".
Questo rende impossibile un simile riconoscimento? O sto fraintendendo l'algoritmo? Le uniche due cose che mi vengono in mente sono:
O potremmo formare una rete neurale per ogni cosa che vogliamo classificata e in qualche modo usarla per costruire una super-rete più grande (quindi, ad esempio, una rete per "cane", una rete per "uccello", ecc., Che in qualche modo aggiungere insieme per creare la super-rete per "animali"); o,
Crea una sorta di metodologia di allenamento ridicolmente complicata che richiederebbe una matematica incredibilmente avanzata e in qualche modo produrrebbe uno stato di peso neurone ideale per tutte le possibili uscite (in altre parole
insert math magic here
).
(Nota a margine 1: guardo in particolare ai percetroni multistrato come una specie di rete neurale.)
(Nota a margine 2: per la prima "possibile soluzione" puntata, avere ogni specifica rete neurale e iterare attraverso di esse fino a quando non riceviamo una risposta "Sì" non è abbastanza buona. So che potrebbe essere fatto abbastanza facilmente, ma è semplice funzionale programmazione piuttosto che apprendimento automatico. Voglio sapere se è possibile avere una rete neurale per alimentare le informazioni e ricevere la risposta appropriata.)