Esiste una regola del pollice per la progettazione di reti neurali?


12

So che un'architettura di rete neurale si basa principalmente sul problema stesso e sui tipi di input / output, ma comunque - ce n'è sempre uno "quadrato" quando si inizia a costruirne uno. Quindi la mia domanda è - dato un set di dati di input di MxN (M è il numero di record, N è il numero di caratteristiche) e una C possibili classi di output - c'è una regola del pollice con quanti layer / unità dovremmo iniziare?


Le possibili risposte a questa domanda sono molto specifiche del problema. Potrebbero esserci alcune regole utili per il riconoscimento di oggetti immagine, ma queste regole potrebbero non funzionare su un set di dati diverso.
OrazioT

Risposte:


10

A questa domanda è stata data una risposta dettagliata su CrossValidated: come scegliere il numero di strati e nodi nascosti in una rete neurale feedforward?

Tuttavia, vorrei aggiungere i miei due centesimi:

Non esiste una regola magica per scegliere la migliore architettura di rete neurale, ma se riesci a trovare un'architettura che qualcuno ha usato per risolvere un problema simile, questo è spesso un ottimo punto di partenza.

I posti migliori in cui cercare sono esempi ufficiali o non ufficiali che utilizzano librerie di reti neurali popolari come Keras, PyTorch o Tensorflow e architetture descritte nella letteratura accademica. keras / esempi su github è una grande risorsa.

Queste architetture sono state probabilmente scelte dopo molte prove ed errori, quindi la maggior parte del lavoro sarà stata fatta per te.


5
Un avvertimento alla risposta CrossValidated è che ora ha più di 7 anni e punta a una FAQ di oltre 15 anni per un "eccellente riepilogo" della configurazione dei livelli nascosti. Dire che c'è stato molto lavoro sulla configurazione di NN negli ultimi 7-15 anni è un eufemismo. C'è un numero crescente di applicazioni che non rientrano nel regime " un livello nascosto è sufficiente ". - Detto questo, per una serie di problemi un approccio di apprendimento profondo può essere eccessivo. Iniziare con un singolo livello nascosto e approfondire solo se necessario è una solida strategia.
RM

1
Aspetti positivi, RM - La seconda risposta è molto più recente, tuttavia.
Imran,

@Imran Penso che tu non abbia mai risposto alla domanda OP. La scelta di nodi e architetture nascoste è una domanda molto profonda che non è ancora stata ben compresa. Testimone ResNet e wide ResNet con connessioni cross layer.
OrazioT

Grazie per il tuo commento, @horaceT. La mia tentata risposta voleva dire "Non esiste una regola empirica, ma ci sono euristiche che possono essere applicate". Sono a conoscenza delle reti di res. Per favore fatemi sapere come posso migliorare la mia risposta.
Imran,

3

Ho letto un documento che esplora l'idea di utilizzare le reti neurali per progettare altre reti neurali, esplorando quale configurazione di nodi e layer era la più efficiente. Ecco la pagina in cui è possibile scaricare un PDF https://arxiv.org/abs/1611.02120


2

Seguendo la risposta di @ Imran, ho trovato questo documento in uno dei commenti del post di CrossValidated a cui ha collegato. Oltre al tentativo di trovare la giusta architettura usando i Modelli genetici (invece di usare una regola empirica), la sezione 2.1 fornisce alcuni limiti teorici al numero di unità nascoste in un sistema a uno / due strati nascosti.

EDIT: ho testato questo teorema e ho scoperto che usare i modelli genetici è altrettanto buono quanto selezionare un'architettura casuale.

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.