Perché l'ottimizzazione nel ML?

Come i modelli imparano davvero, dalla discesa del gradiente vanilla ad Adam

Il machine learning ha l'aspetto della previsione, della classificazione, della generazione, della raccomandazione. Sotto il cofano è un unico atto matematico che si ripete: scegliere dei numeri, misurare quanto sono cattivi, poi modificarli per rendere quella cattiveria più piccola. Questa è l'ottimizzazione.

I numeri sono i parametri del modello, di solito raccolti in un unico enorme vettore θ. Il punteggio di cattiveria è la loss, scritta L(θ). Addestrare significa cercare nello spazio dei parametri un'impostazione che renda quella loss piccola. La notazione qui sotto dice esattamente questo: argmin restituisce l'ingresso vincente (il θ che rende la loss più piccola), non il punteggio vincente, e la stellina su θ⋆ lo segna come quella migliore impostazione.

Un pannello di irrigazione per serra può avere migliaia di piccole zone di irrigatori. Ogni impostazione cambia quanto sane diventano le piante, ma vedi il punteggio finale del raccolto solo dopo che l'acqua è passata. Una rete neurale è simile: i parametri sono le impostazioni degli irrigatori, la loss è il punteggio del raccolto che vuoi migliorare, e l'ottimizzazione è la regola per cambiare molte impostazioni insieme.

Dove si trova nel MLEcco perché l'ottimizzazione sta al centro del ML. La backpropagation calcola ∇L. SGD, momentum, RMSProp e Adam decidono come usarlo. Gli schedule controllano la dimensione del passo, e la regolarizzazione rimodella l'obiettivo. Una volta che addestrare significa minimizzare L(θ), la domanda principale diventa semplice: come dovrebbero muoversi i parametri?
▶ Perché l'ottimizzazione nel ML?
← Disuguaglianze di Concentrazione (breve)Il Learning Rate →