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.