Ottima domanda, in quanto non esiste ancora una risposta esatta a questa domanda. Questo è un campo di ricerca attivo.
In definitiva, l'architettura della tua rete è legata alla dimensionalità dei tuoi dati. Poiché le reti neurali sono approssimatori universali, purché la tua rete sia abbastanza grande, ha la capacità di adattare i tuoi dati.
L'unico modo per sapere veramente quale architettura funziona meglio è provarle tutte, quindi scegliere quella migliore. Ma ovviamente, con le reti neurali, è abbastanza difficile in quanto ogni modello richiede un po 'di tempo per allenarsi. Quello che fanno alcune persone è prima di addestrare un modello "troppo grande" di proposito, e poi potarlo rimuovendo pesi che non contribuiscono molto alla rete.
E se la mia rete fosse "troppo grande"
Se la tua rete è troppo grande, potrebbe non adattarsi o fare fatica a convergere. Intuitivamente, ciò che accade è che la tua rete sta cercando di spiegare i tuoi dati in un modo più complicato di quanto dovrebbe. È come cercare di rispondere a una domanda a cui si potrebbe rispondere con una frase con un saggio di 10 pagine. Potrebbe essere difficile strutturare una risposta così lunga e potrebbero esserci molti fatti non necessari. ( Vedi questa domanda )
E se la mia rete fosse "troppo piccola"
D'altra parte, se la tua rete è troppo piccola, non sarà adatta ai tuoi dati e quindi. Sarebbe come rispondere con una frase quando avresti dovuto scrivere un saggio di 10 pagine. Per quanto la tua risposta possa essere, ti mancheranno alcuni dei fatti rilevanti.
Stima delle dimensioni della rete
Se conosci la dimensionalità dei tuoi dati, puoi dire se la tua rete è abbastanza grande. Per stimare la dimensionalità dei tuoi dati, puoi provare a calcolare il suo rango. Questa è un'idea chiave su come le persone stanno cercando di stimare la dimensione delle reti.
Tuttavia, non è così semplice. Infatti, se la tua rete deve essere a 64 dimensioni, crei un singolo strato nascosto di dimensioni 64 o due livelli di dimensione 8? Qui, ti darò alcune intuizioni su cosa accadrebbe in entrambi i casi.
Andando più in profondità
Andare in profondità significa aggiungere più livelli nascosti. Ciò che fa è che consente alla rete di calcolare funzionalità più complesse. Nelle reti neurali convoluzionali, ad esempio, è stato spesso dimostrato che i primi pochi livelli rappresentano caratteristiche di "basso livello" come i bordi e gli ultimi livelli rappresentano caratteristiche di "alto livello" come facce, parti del corpo ecc.
In genere è necessario approfondire se i dati non sono strutturati (come un'immagine) e devono essere elaborati un po 'prima che possano essere estratte informazioni utili da esso.
Allargando
Andare più in profondità significa creare funzionalità più complesse e "allargare" significa semplicemente creare più di queste funzionalità. È possibile che il tuo problema possa essere spiegato con funzionalità molto semplici, ma ce ne devono essere molte. Di solito, i livelli stanno diventando più stretti verso la fine della rete per la semplice ragione che le funzionalità complesse trasportano più informazioni rispetto a quelle semplici, e quindi non ne servono tante.