Ottimizzazione e apprendimento automatico


13

Volevo sapere quanta parte dell'apprendimento automatico richiede ottimizzazione. Da quello che ho sentito la statistica è un argomento matematico importante per le persone che lavorano con l'apprendimento automatico. Allo stesso modo, quanto è importante che qualcuno che lavora con l'apprendimento automatico apprenda l'ottimizzazione convessa o non convessa?


2
"lavorare con l'apprendimento automatico" è un concetto vago: lavorare per sviluppare metodi ML migliori significherà una risposta, lo sviluppo di sistemi ML che utilizzano metodi noti è una cosa completamente diversa.
Peteris,

Risposte:


28

Il modo in cui lo guardo è che le statistiche / l'apprendimento automatico ti dicono cosa dovresti ottimizzare e l'ottimizzazione è come lo fai realmente.

Ad esempio, si consideri la regressione lineare con dove E ( ε ) = 0 e V a r ( ε ) = σ 2 I . Le statistiche ci dice che questo è (spesso) un modello di buona, ma abbiamo trovato la nostra stima attuale β risolvendo un problema di ottimizzazioneY=Xβ+εE(ε)=0Vun'r(ε)=σ2ioβ^

β^=argminBRp||Y-XB||2.

Le proprietà di β sono noti a noi attraverso le statistiche in modo sappiamo che questo è un buon problema di ottimizzazione da risolvere. In questo caso si tratta di una facile ottimizzazione ma questo mostra ancora il principio generale.β^

Più in generale, gran parte di machine learning può essere visto come risolvere f = argmin f F 1 dove sto scrivendo questo senza regolarizzazione ma che potrebbe essere facilmente aggiunto.

f^=argminfF1nΣio=1nL(yio,f(Xio))

Un'enorme quantità di ricerche nella teoria dell'apprendimento statistico (SLT) ha studiato le proprietà di questi argminima, indipendentemente dal fatto che siano asintoticamente ottimali, in che modo si relazionano con la complessità di e molte altre cose del genere. Ma quando si vuole realmente ottenere f , spesso si finisce con un'ottimizzazione difficile ed è tutta una serie separata di persone che studiano il problema. Penso che la storia di SVM sia un buon esempio qui. Abbiamo le persone SLT come Vapnik e Cortes (e molte altre) che hanno dimostrato come SVM sia un buon problema di ottimizzazione da risolvere. Ma poi furono altri come John Platt e gli autori di LIBSVM a renderlo possibile nella pratica.Ff^

Per rispondere alla tua domanda esatta, conoscere qualche ottimizzazione è sicuramente utile, ma generalmente nessuno è un esperto in tutte queste aree, quindi impari il più possibile, ma alcuni aspetti saranno sempre una sorta di scatola nera per te. Forse non hai studiato correttamente i risultati SLT alla base del tuo algoritmo ML preferito, o forse non conosci il funzionamento interno dell'ottimizzatore che stai utilizzando. È un viaggio che dura tutta la vita.


3
Vale la pena menzionare esplicitamente en.wikipedia.org/wiki/Empirical_risk_minimization
Emre

13

In pratica, molti pacchetti si occupano dell'ottimizzazione e della maggior parte dei dettagli matematici per te. Ad esempio, TensorFlow può eseguire backprop + discesa gradiente stocastica per allenare automaticamente le reti neurali (devi solo specificare il tasso di apprendimento). Gli strumenti ML di scikit-learn generalmente non richiedono che tu sappia effettivamente cose su come si verifica effettivamente l'ottimizzazione, ma forse imposti solo alcuni parametri di ottimizzazione e si occuperà del resto (ad esempio il numero di iterazioni per cui l'ottimizzatore esegue). Ad esempio, puoi addestrare un SVM senza conoscere la matematica in scikit-learn: basta inserire i dati, il tipo di kernel e andare avanti.

Detto questo, conoscere l'ottimizzazione di base (ad esempio a livello di ottimizzazione convessa di Boyd e Vandenberghe / programmazione non lineare di Bertsekas) può essere utile nella progettazione e analisi di algoritmi / problemi, specialmente se si sta lavorando su argomenti teorici. Oppure implementando tu stesso gli algoritmi di ottimizzazione.

Si noti che i metodi di ottimizzazione dei libri di testo hanno spesso bisogno di modifiche per funzionare effettivamente in contesti moderni; ad esempio, potresti non utilizzare la classica discesa gradiente stocastica di Robbins-Munroe, ma una variante con accelerazione più rapida. Tuttavia, è possibile ottenere alcuni approfondimenti lavorando con i problemi di ottimizzazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.