architettura multi-layer perceptron (MLP): criteri per scegliere il numero di livelli nascosti e la dimensione del livello nascosto?

Se disponiamo di 10 autovettori, possiamo avere 10 nodes neurali nello strato di input. Se abbiamo 5 classi di output, allora possiamo avere 5 nodes nello strato di output. Ma qual è il criterio per scegliere il numero di layer nascosto in un MLP e quanti neurali nodes in 1 livello nascosto?

È molto difficile scegliere il numero di neuroni in un livello nascosto e scegliere il numero di livelli nascosti nella rete neurale.

Di solito, per la maggior parte delle applicazioni, uno strato nascosto è sufficiente. Inoltre, il numero di neuroni in quello strato nascosto deve essere compreso tra il numero di ingressi (10 nel tuo esempio) e il numero di uscite (5 nel tuo esempio).

Ma il modo migliore per scegliere il numero di neuroni e livelli nascosti è la sperimentazione. Formare diverse reti neurali con un diverso numero di livelli nascosti e neuroni nascosti e misurare le prestazioni di tali reti utilizzando la convalida incrociata . È ansible attenersi al numero che produce la rete migliore.

Per automatizzare la selezione del miglior numero di strati e il miglior numero di neuroni per ciascuno dei livelli, è ansible utilizzare l’ottimizzazione genetica .

I pezzi chiave sarebbero:

  1. Cromosoma : vettore che definisce quante unità in ogni livello nascosto (ad esempio [20,5,1,0,0] significa 20 unità nel primo livello nascosto, 5 in secondo, …, con i livelli 4 e 5 mancanti). È ansible impostare un limite per il numero massimo di livelli da provare e il numero massimo di unità in ogni livello. Dovresti anche porre delle restrizioni su come vengono generati i cromosomi. Ad esempio [10, 0, 3, …] non dovrebbe essere generato, perché qualsiasi unità dopo un livello mancante (il ‘3, …’) sarebbe irrilevante e sprecherebbe cicli di valutazione.
  2. Funzione Fitness : una funzione che restituisce il reciproco dell’errore di allenamento più basso nel set di convalida incrociata di una rete definita da un dato cromosoma. Puoi anche includere il numero di unità totali o il tempo di calcolo se vuoi trovare la “rete più piccola / più veloce e più precisa”.

Puoi anche considerare:

  • Potatura : iniziare con una rete di grandi dimensioni, quindi ridurre i livelli e le unità nascoste, mentre si tiene traccia delle prestazioni dell’insieme di convalida incrociata.
  • In crescita : inizia con una rete molto piccola, quindi aggiungi unità e livelli, e di nuovo tieni traccia delle prestazioni del set di CV.