Capitolo 16. Il processo di formazione
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Ora sai come creare architetture all'avanguardia per la computer vision, l'elaborazione del linguaggio naturale, l'analisi tabellare e il filtraggio collaborativo e sai come addestrarle rapidamente. Quindi abbiamo finito, giusto? Non ancora. Dobbiamo ancora esplorare un po' di più il processo di addestramento.
Nel Capitolo 4 abbiamo spiegato le basi della discesa stocastica del gradiente: passiamo un mini-batch al modello, lo confrontiamo con il nostro obiettivocon la funzione di perdita, quindi calcoliamo i gradienti di questa funzione di perdita rispetto a ciascun peso prima di aggiornare i pesi con la formula:
new_weight=weight-lr*weight.grad
Abbiamo implementato questo aspetto da zero in un ciclo di addestramento e abbiamo visto che PyTorch fornisce una semplice classe nn.SGD che esegue questo calcolo per ogni parametro. In questo capitolo, costruiremo degli ottimizzatori più veloci, utilizzando una base flessibile. Ma non è tutto ciò che potremmo voler cambiare nel processo di addestramento. Per qualsiasi modifica del ciclo di addestramento, avremo bisogno di un modo per aggiungere del codice alla base dell'SGD. La libreria fastai dispone di un sistema di callback per farlo e noi te lo spiegheremo.
Iniziamo con l'SGD standard per avere una base di partenza; poi introdurremo gli ottimizzatori ...