8

Secondo Wikipedia (che è una cattiva fonte, so) Una rete neurale comprendeQualcuno può spiegare le reti neurali artificiali?

  • Uno strato di ingresso A neuroni

  • multiple (B) I livelli nascosti ciascuno costituiti da neuroni C .

  • Uno strato di output di neuroni "D".

Capisco cosa significano i livelli di input e output.

La mia domanda è come determinare una quantità ottimale di strati e di neuroni per strato?

  • Qual è il vantaggio/svantaggio di una "B" crescente?
  • Qual è il vantaggio/svantaggio di una "C" crescente?
  • Qual è la differenza tra aumentare "B" e "C"?

È solo la quantità di tempo (limiti di potenza di elaborazione) o la rete che limita la qualità dei risultati e dovrei concentrarmi maggiormente sulla profondità (più livelli) o sull'ampiezza (più neuroni per strato)?

+0

Possibile duplicato di questo? http://stackoverflow.com/questions/9436209/how-to-choose-number-of-hidden-layers-and-nodes-in-neural-network – Tim

+1

@Tim Non parla della "larghezza" del strato e i vantaggi/svantaggi di profondità/larghezza. –

+1

In realtà, la risposta accettata copre quanti livelli nascosti (profondità) e quante unità nascoste (larghezza) – Tim

risposta

8

Risposta 1. Un livello modellerà la maggior parte dei problemi OPPURE a massimo due livelli può essere utilizzato.

Risposta 2. Se viene utilizzato un numero inadeguato di neuroni, la rete non sarà in grado di modellare dati complessi e l'adattamento risultante sarà scadente. Se vengono utilizzati troppi neuroni, il tempo di allenamento può essere eccessivamente lungo e, peggio, la rete potrebbe sovrapporsi ai dati. Quando si verifica overfitting $, la rete inizierà a modellare il rumore casuale nei dati. Il risultato è che il modello si adatta molto bene ai dati di addestramento, ma si generalizza male a nuovi dati non visibili. La convalida deve essere utilizzata per verificarlo.

$ Cos'è il sovralimentazione?

Nelle statistiche, il sovradattamento si verifica quando un modello statistico descrive un errore casuale o un rumore anziché la relazione sottostante. L'overfitting si verifica generalmente quando un modello è eccessivamente complesso, come avere troppi parametri relativi al numero di osservazioni. Un modello che è stato overfit avrà generalmente una performance predittiva scarsa, in quanto può esagerare le fluttuazioni minori dei dati. Il concetto di sovralimentazione è importante nell'apprendimento automatico. Solitamente un algoritmo di apprendimento viene addestrato usando alcuni esempi di addestramento, cioè situazioni esemplificative per le quali è noto l'output desiderato. Si presuppone che lo studente raggiunga uno stato in cui sarà anche in grado di prevedere l'output corretto per altri esempi, generalizzando così le situazioni non presentate durante l'allenamento (in base al suo bias induttivo). Tuttavia, specialmente nei casi in cui l'apprendimento è stato eseguito troppo a lungo o in cui gli esempi di formazione sono rari, lo studente può adattarsi a caratteristiche casuali molto specifiche dei dati di allenamento, che non hanno alcuna relazione causale con la funzione obiettivo. In questo processo di sovradattamento, le prestazioni degli esempi di allenamento aumentano mentre le prestazioni dei dati invisibili peggiorano.

risposta 3. Leggi Risposta 1 & 2.

articolo apprendimento supervisionato su wikipedia (http://en.wikipedia.org/wiki/Supervised_learning) vi darà un quadro più chiaro su quali sono i fattori che sono terribilmente importanti rispetto a qualsiasi sistema di apprendimento supervisionato, inclusi Neural Netowrks. L'articolo parla di dimensionalità dello spazio di input, quantità di dati di allenamento, rumore, ecc.

+0

Questa è la migliore spiegazione dell'overfitting che abbia mai letto, e ne ho letti molti. Grazie. –

3

Il numero di livelli/nodi dipende dall'attività di classificazione e da ciò che ci si aspetta da NN. Teoricamente, se si dispone di una funzione/decisione separabile linearmente (ad esempio, la funzione AND booleana), 1 layer (vale a dire solo il livello di input senza layer nascosto) sarà in grado di formare un iperpiano e sarebbe sufficiente. Se la tua funzione non è separabile linearmente (ad esempio, il XOR booleano), hai bisogno di livelli nascosti.

Con 1 livello nascosto, è possibile formare qualsiasi area convessa, eventualmente illimitata. È possibile rappresentare qualsiasi funzione continua limitata con una mappatura finita. Maggiori informazioni su questo here.

2 livelli nascosti, al contrario, sono in grado di rappresentare i limiti decisionali arbitrariamente complessi. L'unica limitazione è il numero di nodi. In una tipica rete a livelli 2 nascosti, il primo strato calcola le regioni e il secondo strato calcola un'operazione AND (una per ciascun ipercubo). Infine, lo strato di output calcola un'operazione OR.

Secondo Kolmogorov's Theorem, tutte le funzioni possono essere apprese da una rete a 2 livelli nascosti e non è mai necessario disporre di più di 2 livelli nascosti. Tuttavia, in pratica, lo strato 1-hidden fa quasi sempre il lavoro.

In sintesi, correggere B = 0 per le funzioni separabili linearmente e B = 1 per tutto il resto.

Per quanto riguarda C e il rapporto di B e C, dare un'occhiata The Number of Hidden Layers. Fornisce informazioni generali e menziona underfitting, sovralimentazione.

L'autore suggerisce uno dei seguenti come regola generale:

  • dimensioni del livello di input < C < dimensioni del livello di uscita.
  • C = 2/3 la dimensione del livello di input, più la dimensione del livello di output.
  • C < due volte la dimensione del livello di input.