In un post sul blog di Ilya Sutskever, A brief overview of Deep Learning, descrive come è importante scegliere la giusta dimensione minibatch per addestrare in modo efficiente una rete neurale profonda. Dà il consiglio "usa il minibatch più piccolo che funziona in modo efficiente sulla tua macchina". Vedi la citazione completa qui sotto.Scelta della dimensione minibatch per l'apprendimento approfondito
Ho visto dichiarazioni simili di altri ben noti ricercatori di deep learning, ma non mi è ancora chiaro come trovare la dimensione minibatch corretta. Visto che un minibatch più grande può consentire un maggiore tasso di apprendimento, sembra che sia necessario un sacco di esperimenti per determinare se una certa dimensione di minibatch produce prestazioni migliori in termini di velocità di allenamento.
Ho una GPU con 4 GB di RAM e uso le librerie Caffe e Keras. Che cosa è in questo caso un'euristica pratica per scegliere una buona dimensione del minibatch dato che ogni osservazione ha un certo ingombro di memoria M
?
Minibatch: utilizzare minibatch. I computer moderni non possono essere efficienti se lo elabora un caso di addestramento alla volta. È molto più efficiente addestrare la rete su minibatch di 128 esempi, perché così facendo si otterrà un throughput sempre maggiore. Sarebbe bello se lo usasse minibatch di dimensioni 1, e probabilmente si otterrebbero prestazioni migliorate e un overfitting inferiore; ma il vantaggio di fare è quindi superato i massicci guadagni computazionali forniti dai minibatch da . Ma non usare minibatch molto grandi perché tendono a a lavorare meno bene e più a più. Quindi la raccomandazione pratica è: usa il minibatch più piccolo che funziona in modo efficiente sulla tua macchina.