La sproporzionata efficacia del Gradient Descent stocastico (SGD) è probabilmente la scoperta più rilevante del machine learning degli anni 2010. L’SGD alimenta quasi tutte le recenti innovazioni nel machine learning. Concettualmente, l’SGD è notevolmente semplice: elabora il tuo dataset un punto dati alla volta e, per ogni punto, spinge i parametri del modello nella direzione indicata da quel punto. In termini più tecnici, la “direzione” è data come gradiente, e il “piccolo spostamento” comporta un ridotto coefficiente di scala solitamente denominato learning rate.

Anche se la tecnica SGD risale agli anni ‘50, è rimasta per lo più un metodo oscuro e poco utilizzato fino a quando non è emersa con l’avvento del deep learning. Non era chiaro, e in una certa misura non lo è ancora, il motivo per cui questa tecnica funzioni. Poiché l’obiettivo è minimizzare l’errore del modello sull’intero dataset, non è ovvio che selezionare i punti in isolamento rigoroso debba produrre altro che spazzatura numerica.

Al giorno d’oggi, è generalmente compreso che l’efficacia dell’SGD – ovvero, perché funziona – derivi da due fattori. In primo luogo, mentre il gradiente ottenuto dall’SGD è molto rumoroso – ogni passo considera un singolo dato – questo gradiente ha un costo computazionale molto basso. Risulta infatti che, per un determinato budget di risorse computazionali, applicare numerosi aggiornamenti di gradiente di bassa qualità superi di gran lunga l’utilizzo di un singolo aggiornamento di alta qualità. In secondo luogo, gli aggiornamenti rumorosi stessi aiutano il modello a uscire dai vasti plateau di indifferenza numerica che esistono in dimensioni maggiori. Infatti, in dimensioni superiori, il nocciolo dell’ottimizzazione non è, come si pensava a lungo, fuggire dai minimi locali, ma uscire dai plateau locali - aree in cui la perdita varia molto poco.

An abstract and a figure from an article titled Selective Path Automatic Differentiation: Beyond Uniform Distribution on Backpropagation Dropout.

Alcuni di noi, inclusi Paul Peseux e Victor Nicollet, hanno deciso di portare ulteriormente avanti queste idee. Se l’SGD funziona sacrificando la qualità del gradiente per l’efficienza computazionale, che dire di estendere ulteriormente questo principio? Che dire di un gradiente a sotto-punto che sarebbe ancora più economico da calcolare, sebbene anche più rumoroso? Questo è esattamente ciò che è stato fatto con il Selective Path Automatic Differentiation (SPAD). SPAD rivede uno dei pilastri del moderno paradigma del machine learning con un tocco di originalità: un punto dati può essere “diviso” a livello di gradiente tramite i suoi percorsi di valutazione.

Il seguente articolo presenta un contributo di Paul Peseux (Lokad), Victor Nicollet (Lokad), Maxime Berar (Litis) e Thierry Paquet (Litis).


Titolo: Differenziazione Automatica del Percorso Selettivo: Oltre la Distribuzione Uniforme sul Backpropagation Dropout

Autori: Paul Peseux, Maxime Berar, Thierry Paquet, Victor Nicollet

Abstract: Questo articolo introduce il Selective Path Automatic Differentiation (SPAD), un approccio innovativo per ridurre il consumo di memoria e mitigare l’overfitting nei modelli basati su gradienti per l’intelligenza artificiale embedded. SPAD estende il già esistente Randomized Automatic Differentiation, proposto da Oktay et al, che traccia percorsi casuali attraverso il grafo del backpropagation con iniezione matriciale, abilitando distribuzioni di probabilità alternative sul grafo del backpropagation, migliorando così le performance di apprendimento e la gestione della memoria. In una specifica iterazione, SPAD valuta e classifica molteplici percorsi all’interno del grafo del backpropagation. In iterazioni successive, segue preferenzialmente questi percorsi di ranking più elevato. Questo lavoro presenta inoltre una tecnica basata sulla compilazione che permette un accesso agnostico al modello per percorsi casuali, garantendo la generalizzabilità attraverso varie architetture di modelli, non limitate ai modelli profondi. Valutazioni sperimentali condotte su varie funzioni di ottimizzazione dimostrano una migliore performance nella minimizzazione quando si impiega SPAD. Inoltre, esperimenti di deep learning con SPAD mitigano notevolmente l’overfitting, offrendo benefici simili a quelli dei metodi tradizionali di dropout, ma con una concomitante riduzione dell’uso della memoria. Concludiamo discutendo le uniche implicazioni della stochasticità del nostro lavoro e il potenziale per aumentare altre tecniche nel campo.

Scarica l’articolo (PDF)