Risposte:
Non esiste un modo diretto per trovarne il numero ottimale: le persone cercano empiricamente di vedere (ad es. Usando la validazione incrociata). Le tecniche di ricerca più comuni sono ricerche casuali, manuali e di griglia.
Esistono tecniche più avanzate come i processi gaussiani, ad esempio l' ottimizzazione degli iperparametri della rete neurale con i processi gaussiani per la classificazione del Dialog Act , IEEE SLT 2016 .
Per un approccio più intelligente delle ricerche casuali o esaustive, potresti provare un algoritmo genetico come NEAT http://nn.cs.utexas.edu/?neat . Tuttavia, questo non ha alcuna garanzia per trovare un optima globale, è semplicemente un algoritmo di ottimizzazione basato sulle prestazioni ed è quindi vulnerabile a rimanere bloccato in un optima locale.
Paper Szegedy C, Vanhoucke V, Ioffe S, et al. Ripensare l'architettura iniziale per la visione artificiale [J]. arXiv prestampa arXiv: 1512.00567, 2015. fornisce alcuni principi generali di progettazione:
Evita i colli di bottiglia rappresentativi, specialmente all'inizio della rete;
Bilancia la larghezza e la profondità della rete. È possibile raggiungere prestazioni ottimali della rete bilanciando il numero di filtri per fase e la profondità della rete. Aumentare sia la larghezza che la profondità della rete può contribuire a reti di qualità superiore. Tuttavia, il miglioramento ottimale per una quantità costante di calcolo può essere raggiunto se entrambi sono aumentati in parallelo. Il bilancio computazionale dovrebbe quindi essere distribuito in modo equilibrato tra la profondità e la larghezza della rete.
Tuttavia, questi suggerimenti non possono portare il numero ottimale di neuroni in una rete.
Tuttavia, esistono ancora alcune ricerche sulla compressione dei modelli, ad esempio Structured Sparsity Learning (SSL) di Deep Neural Networks , SqueezeNet , Potun network che potrebbero far luce su come ottimizzare i neuroni per singolo strato.
Soprattutto nell'apprendimento strutturato della sparsità delle reti neurali profonde , aggiunge un Group Lasso
termine di regolarizzazione nella funzione di perdita per regolarizzare le strutture (vale a dire filtri, canali, forme di filtro e profondità dello strato) dei DNN, che è cioè azzerare alcuni componenti ( vale a dire filtri, canali, forme di filtro e profondità dello strato) della struttura della rete e raggiunge una notevole compattezza e accelerazione della rete, mantenendo una perdita di precisione della classificazione ridotta.
Sai quando hai troppi neuroni è quando ti alleni. Ciò significa che non funziona bene perché NN sta cercando di attivare la corrispondenza più perfetta che è impossibile. Come due diversi gatti con la stessa quantità di atomi, o per dire, è un rivelatore NN che si attiva solo su una foto del tuo gatto domestico e nient'altro. Volete un intervallo più ampio per l'attivazione di nn. Come su qualsiasi foto di gatto.
L'overfitting è un problema che non ha una vera soluzione rapida. Puoi iniziare con troppo pochi e poi continuare ad aggiungerne altri. O inizia con un sacco e poi rimuovendoli fino a quando non funziona correttamente.