Qual è la differenza tra una rete neurale, un sistema di apprendimento profondo e una rete di credenze profonde?


23

Qual è la differenza tra una rete neurale, un sistema di apprendimento profondo e una rete di credenze profonde?

Mentre ricordo che la tua rete neurale di base è una specie di 3 strati, e ho avuto dei sistemi di credenze profonde descritti come reti neurali sovrapposte.

Non ho sentito parlare di recente di un Deep Learning Systems, ma sospetto fortemente che sia sinonimo di Deep Belief System. Qualcuno può confermare questo?



Deep Belief System, è il termine in cui mi sono imbattuto, possono o meno essere sinonimi (una ricerca su Google farà apparire articoli per Deep Belief System)
Lyndon White,

Deep Belief Network è il nome canonico perché derivano da Deep Boltzmann Network (e può essere fonte di confusione con un sistema di propagazione delle credenze che è totalmente diverso poiché si tratta di reti bayesiane e teoria delle decisioni probabilistiche).
Gaborous,

@gaborous Deep Belief Network è il nome corretto (il documento che ho ricevuto anni fa presentandomi a loro doveva avere un refuso). ma per quanto riguarda l'essere derivato da profonde reti boltzman, quel nome stesso non è canonico (AFAIK, felice di vedere una citazione). I DBN derivano da Sigmoid Belief Networks e RBM in pila. Non penso che il termine Deep Boltzmann Network sia mai stato usato. D'altra parte, Deep Boltzmann Machine è un termine usato, ma Deep Boltzmann Machines è stata creata dopo Deep Belief Networks
Lyndon White,

@Oxinabox Hai ragione, ho fatto un refuso, sono Deep Boltzmann Machines, anche se dovrebbe davvero essere chiamato Deep Boltzmann Network (ma poi l'acronimo sarebbe lo stesso, quindi forse è per questo). Non so quale architettura profonda sia stata inventata per prima, ma le macchine Boltzmann sono precedenti al bm semi-limitato. DBN e DBM hanno davvero la stessa struttura, tranne per il fatto che la rete di base utilizzata come layer ripetuto è un SRBM vs BM.
Gaborous,

Risposte:


10

i modelli di reti neurali artificiali erano generalmente limitati a pochi strati, diciamo 3, per decenni, per vari motivi, tra cui una prova matematica chiamata Kolmogorovs che indicava che potevano teoricamente avvicinarsi a funzioni arbitrarie a basso errore (ma solo con molti neuroni).

le reti multistrato oltre a ciò non erano fattibili / efficaci attraverso tecniche di apprendimento precedenti. una svolta simile è arrivata nel 2006 da 3 diversi ricercatori Hinton, Le Cun, Bengio che sono stati in grado di addestrare molti più livelli. il problema principale in quest'area era il riconoscimento della grafia.

il termine "rete di credenze profonde" sembra aver origine da un documento del 2006 di Hinton cui si fa riferimento reti bayesiane , che hanno strette connessioni / analogie concettuali / teoriche con reti neurali. "Un algoritmo di apprendimento rapido per reti di credenze profonde"

vedere la diapositiva 17 in particolare di questa presentazione reti neurali profonde

quindi il campo dell'apprendimento profondo ha solo ~ ½ decennio ed è in fase di rapida ricerca e sviluppo. Google, Facebook, Yahoo hanno annunciato tutte le iniziative basate sull'apprendimento profondo e la R&S è in corso.


sito web dedicato all'apprendimento profondo da parte di ricercatori sul campo
vzn

14

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).

Rete neurale di base come Adaline o Perceptron (nessun livello nascosto) Confine di decisione lineare

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.

Xor rete neurale Percorsi di attivazione di esempi di reti neurali Limite decisionale della rete Xor

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).

Rete neurale N-layer Confine decisionale complesso non lineare che utilizza una rete neurale profonda a n strati

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):

Esempio di Deep Belief Network sul riconoscimento facciale

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):

Funzionalità della rete neurale profonda Funzionalità della rete neurale convoluzionale

E infine, per una cronologia più rigorosa dell'intelligenza artificiale, vedi qui .


1
Bella risposta! Un aspetto chiave (forse l'aspetto che definisce) delle reti profonde convoluzionali è che ogni livello corrisponde all'applicazione di una convoluzione quindi all'applicazione di una funzione di attivazione: c'è un kernel e tutti i nodi in un livello applicano lo stesso kernel. Immagina che l'input sia un'immagine. In genere, hai un nodo per ogni pixel e ha connessioni provenienti da pixel vicini. Una rete ordinaria consentirebbe a ciascun pixel di avere il proprio modello di pesi sui bordi in entrata. Una rete convoluzionale impone il requisito aggiuntivo che si tratti della stessa sequenza di pesi per ogni pixel dell'immagine.
DW

Sì, in effetti hai ragione, ed è da lì che viene il nome. Ma personalmente, penso che questo sia spesso usato come hack per specializzare una rete neurale profonda rispetto a qualsiasi altra cosa (quando la caratteristica che definisce una rete neurale profonda deve essere generale e agnostica all'insieme di dati). Ad esempio, HMAX, una specie di CNN, usa la convoluzione per calcolare le mappe di salienza, che è chiaramente un hack quando la mappa di salienza in una rete neurale biologica non viene ovviamente calcolata usando la programmazione dinamica ...
gaborous

3

Le reti neurali profonde sono reti neurali che hanno una profondità relativamente elevata. Sono una sottoclasse di reti neurali. L'idea in realtà risale a decenni e non è nuova. La novità è che abbiamo capito come addestrarli nella pratica. Il motivo per cui è diventato molto popolare di recente è che l'addestramento è diventato fattibile e le persone li hanno usati per battere algoritmi all'avanguardia. DNN ha bisogno di molti dati e molta potenza computazionale che non erano disponibili decenni fa. Geoff Hinton e i suoi studenti e colleghi hanno scoperto come addestrarli nella pratica negli ultimi dieci anni e li hanno usati per battere gli algoritmi di machine learning all'avanguardia in diversi campi in cui la maggior parte dei ricercatori ha rinunciato all'idea di usarli completamente in quel momento.

Le reti di credenze sono una classe di modelli grafici probabilistici, modellano un gruppo di variabili casuali e le loro dipendenze usando un grafico (ci sono vari modi per farlo). Queste stesse variabili possono provenire da distribuzioni parametrizzate e potrebbero essere modellate da reti neurali (o da qualche altro modello per rappresentare distribuzioni parametrizzate). Le reti di credenze profonde sono reti di credenze che hanno una profondità relativamente elevata.

Le reti di credenze tendono ad essere generative, ovvero possiamo usare un modello addestrato per generare campioni dalla distribuzione che rappresenta.

Le reti neurali tendono ad essere discriminanti, possiamo usarle per calcolare la probabilità di un dato input (è questa una foto di un gatto? Qual è la probabilità che questa sia una foto di un gatto?) Ma di solito non per il campionamento (genera un foto di un gatto).


Non sono un esperto di ML, quindi prendi quello che ho scritto con un granello di sale.
Kaveh,

-1

Le reti neurali sono normalmente implementate dove sono richiesti strati nascosti ed equazioni quadratiche. Dove sono utilizzate reti di apprendimento profondo e credenze profonde dove sono richiesti più livelli nascosti per la manipolazione dei dati proprio come le reti profonde di Boltzmann.


Quindi entrambi richiedono livelli nascosti? Potresti fare più livelli nascosti in NN normale? Questa rete Boltzmann, intendevi macchine Boltzmann? Quindi qual è la differenza? Non risponde alla domanda (o forse lo fa, ma è troppo poco chiaro).
Evil
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.