Le reti neurali artificiali sono una classe di algoritmi che includono molti tipi diversi di algoritmi basati su grafici, quindi non dettagliamo qui oltre a quello che hai chiesto perché c'è troppo da dire, poiché ci sono così tanti tipi di ANN.
Il primo tipo di reti neurali artificiali, i famosi neuroni di McCulloch-Pitts, erano lineari , il che significa che potevano risolvere solo problemi di decisione lineari (ovvero set di dati che potevano essere separati in modo lineare tracciando una linea). Nel tempo, questo modello di rete neurale lineare è diventato noto come Perceptron o Adaline (a seconda di come si calcola l'aggiornamento dei pesi).
Le reti neurali lineari sono semplicemente composte da un grafico bipartito, in cui i nodi del lato sinistro sono gli input e il nodo destro l'output. Vengono appresi solo i pesi dei bordi tra questi nodi (la soglia di attivazione dei nodi può anche essere regolata, ma ciò avviene raramente).
Un grande passo è stato fatto quando sono state inventate reti neurali poco profonde : invece di avere solo un grafico bipartito, usiamo un grafico a 3 parti: lo "strato" di input, lo "strato" di output e uno "strato nascosto" tra di loro. Grazie al livello nascosto, la rete può ora prendere decisioni non lineari e risolvere problemi come l'XOR canonico.
Si noti che il termine "superficiale" è stato coniato retroattivamente quando sono state inventate reti neurali profonde (chiamate anche reti neurali a strati n ). Questo per contrastare le reti neurali con un solo livello nascosto, con reti neurali profonde con n livelli nascosti . Come puoi immaginare, l'utilizzo di più livelli nascosti consente di decidere su set di dati più complessi poiché ci sono più livelli per modulare la decisione (cioè, in altre parole, stai aumentando la dimensionalità del confine decisionale, che può portare a un overfitting).
Potresti chiedere: perché nessuno ha mai provato a utilizzare reti neurali multistrato (profonde) prima? In effetti, lo fecero già nel 1975 da Fukushima con il Cognitron e il Neocognitron (che in realtà è una rete neurale convoluzionale, ma questa è un'altra storia). Tuttavia, il problema era che nessuno sapeva come imparare in modo efficiente tali reti, il problema principale era la regolarizzazione . Gli AutoEncoder di Hinton hanno aperto la strada e in seguito le Unità lineari rettificate di LeCun hanno risolto definitivamente il problema.
Che dire di Deep Beliefs Networks (DBN)? Sono solo macchine Boltzmann semi restrittive multistrato. Quindi sono una specie di rete neurale profonda, ma con un diverso modello di rete di base (cioè: il livello, questo è il modello che si ripete): le macchine Boltzmann sono diverse dalle altre reti in quanto generative , nel senso che sono di solito usato per imparare dai tuoi dati per riprodurli ("generarli"), mentre le solite reti neurali profonde sono usate per separare i tuoi dati (disegnando un "confine decisionale").
In altre parole, DNN è ottimo per classificare / prevedere un valore dal set di dati, mentre DBN è ottimo per "riparare" un dato danneggiato (quando dico riparazione, non è solo da dati danneggiati, può anche essere su dati perfettamente perfetti che vuoi solo correggere un po 'per essere più stereotipato da riconoscere più facilmente con un'altra rete neurale, come le cifre scritte a mano).
In effetti, per riassumere in modo chiaro, puoi dire che gli AutoEncoder sono una forma più semplice di Deep Belief Network. Ecco un esempio di DBN addestrato a riconoscere facce ma NON numeri, i numeri vengono automaticamente sbiaditi (questo è l'effetto "fissaggio" di DBN):
Quindi, alla fine, DBN e DNN non sono opposti: sono complementari. Ad esempio, puoi immaginare un sistema per riconoscere i caratteri scritti a mano che prima alimenteranno l'immagine di un personaggio a un DBN per renderlo più stereotipato e quindi alimentare l'immagine stereotipata a un DNN che quindi produrrà quale personaggio rappresenta l'immagine.
Un'ultima nota: le reti Deep Belief sono molto vicine alle macchine Deep Boltzmann: le macchine Deep Boltzmann usano strati di macchine Boltzmann (che sono reti neurali bidirezionali, dette anche reti neurali ricorrenti), mentre le reti Deep Belief utilizzano macchine Boltzmann semi-limitate (semi- limitato significa che vengono cambiati in unidirezionali, quindi consente di utilizzare la backpropagation per apprendere la rete che è molto più efficiente dell'apprendimento di una rete ricorrente. Entrambe le reti sono utilizzate per lo stesso scopo (rigenerazione del set di dati), ma il costo computazionale è diverso (le macchine Deep Boltzmann sono significativamente più costose da imparare a causa della sua natura ricorrente: è più difficile "stabilizzare" i pesi).
Bonus: sulle reti neurali convoluzionali (CNN), troverai molte affermazioni contraddittorie e confuse e di solito scoprirai che sono solo reti neurali profonde. Tuttavia, sembra che il consenso sia quello di utilizzare la definizione originale del Neocognitron di Fukushima: una CNN è un DNN che è costretto a estrarre diverse funzionalità a diversi livelli gerarchici imponendo una convoluzione prima dell'attivazione (cosa che un DNN può fare naturalmente, ma forzandolo impostando una diversa convoluzione / funzione di attivazione su diversi strati della rete può produrre risultati migliori, almeno questa è la scommessa della CNN):
E infine, per una cronologia più rigorosa dell'intelligenza artificiale, vedi qui .