Importanza delle tecniche di ottimizzazione

Mar 10 2023
Nel mio viaggio di apprendimento delle tecniche di machine learning e deep learning che è ancora in corso, ho compreso l'importanza delle tecniche di ottimizzazione. Ho solo sentito che è molto importante documentarlo per mio riferimento in modo che sia un promemoria regolare ogni volta che lo vedo.
Foto di Zoran Borojevic su Unsplash

Nel mio viaggio di apprendimento delle tecniche di machine learning e deep learning che è ancora in corso, ho compreso l'importanza delle tecniche di ottimizzazione. Ho solo sentito che è molto importante documentarlo per mio riferimento in modo che sia un promemoria regolare ogni volta che lo vedo. Non si tratta solo di addestrare il modello o ottenere un risultato dopo aver passato il set di dati al modello. Riguarda l'indagine e la comprensione delle sfumature dell'ottimizzazione che sta avvenendo sullo sfondo del modello per ottenere il miglior risultato.

Che si tratti di un modello di machine learning o di una rete neurale di deep learning, entrambi devono raggiungere o convergere ai minimi globali. Ora è possibile eseguire l'ottimizzazione degli iperparametri per trovare il miglior risultato (bassa perdita o alta precisione). Ma l'arte della messa a punto degli iperparametri può essere eseguita con la massima efficienza solo se la teoria dell'ottimizzazione viene compresa in larga misura.

In termini generali, lo scopo di eseguire l'ottimizzazione è trovare la migliore soluzione possibile per un dato insieme di problemi insieme ai vincoli forniti. Pertanto un problema di ottimizzazione è costituito da 3 componenti di base: funzione obiettivo, variabili e vincoli.

Funzione obiettivo - Una funzione che dovrebbe essere massimizzata o minimizzata a seconda della dichiarazione del problema e dell'applicazione. Un problema che ha una sola funzione obiettivo è detto problema di ottimizzazione a singolo obiettivo . Un problema che ha più funzioni obiettivo è detto problema di ottimizzazione multiobiettivo .
Variabili: questi sono valori sconosciuti che rappresentano sia la funzione obiettivo che i vincoli. L'obiettivo dell'ottimizzazione è trovare valori appropriati per queste variabili. Un problema che ha una sola variabile si chiama problema di ottimizzazione a variabile singola . Un problema che ha più variabili è detto problema di ottimizzazione multivariabile .
Vincoli —Queste sono restrizioni fornite dalla dichiarazione del problema e sono rappresentate da un insieme di variabili. La soluzione ottimizzata dovrebbe essere ottenuta entro i vincoli. L'insieme delle soluzioni soddisfatte da tutti i vincoli è detto soluzioni ammissibili . Un problema che ha vincoli è detto problema di ottimizzazione vincolata . Un problema che non ha vincoli è detto problema di ottimizzazione non vincolato .

Per saperne di più sui tipi di algoritmi di ottimizzazione e sui diversi metodi basati sui problemi sopra indicati in corsivo, ho fatto riferimento al libro Optimization for Engineering Design di Kalyanmoy Deb. Questo mi ha dato un'idea di come pensare da una prospettiva di ottimizzazione. Ho compreso la procedura di vari algoritmi e metodi di ottimizzazione e l'ho implementata in Python, che può essere trovata qui .

Formulare la funzione obiettivo è uno degli aspetti importanti mentre si affronta qualsiasi problema, che potrebbe anche provenire dal dominio dell'apprendimento automatico o del deep learning. Questa funzione obiettivo può anche essere chiamata funzione di costo ed è talvolta difficile da sviluppare. La conversione di un dato problema in un problema di ottimizzazione è importante anche per comprendere e interpretare il problema da una prospettiva diversa. Questo ci aiuterà a raggiungere sistematicamente l'obiettivo desiderato e ad ottenere anche i migliori risultati.

Esempio: formulazione di un problema di ottimizzazione

Vediamo un esempio di formulazione di un problema di ottimizzazione nel dominio del deep learning. L'applicazione presa qui è veicoli autonomi.

Foto di Nathalia Segato su Unsplash

Uno dei compiti di un veicolo autonomo è controllare lo sterzo. Pertanto, è fondamentale per il veicolo o il modello di deep learning prevedere l'angolo di sterzata in un dato istante di tempo.

L'affermazione del problema è prevedere l'angolo di sterzata di un veicolo autonomo utilizzando tecniche di deep learning. Quindi, ad alto livello, addestreremo un modello di deep learning che prevede l'angolo di sterzata, data un'immagine di input della strada.

Supponiamo che questo sia un problema di ottimizzazione. Qui la funzione obiettivo sarebbe-

Funzione obiettivo

Dove Yi(cap) è l'angolo di sterzata previsto dal modello di deep learning e Yi è l'angolo di sterzata effettivo. L'obiettivo è ridurre al minimo l'errore tra questi due valori. Qui l'errore è noto come errore quadratico medio.

Le variabili sarebbero-

Yi(cap) e Yi che sono già stati indicati sopra.

Ora la formazione dei vincoli dipenderà dal tipo di veicolo utilizzato. Dipende anche se utilizziamo un simulatore o un veicolo reale per raggiungere il nostro obiettivo. Supponendo che l'angolo di sterzata possa compiere una rotazione completa sia in senso orario che antiorario,

I vincoli sarebbero-

Vincoli

Dove Yi è l'angolo di sterzata effettivo nell'intervallo sopra indicato. Questo, tuttavia, dipenderà dal tipo di veicolo utilizzato e varierà anche se si utilizza un simulatore.

Pertanto, abbiamo formulato il nostro problema di ottimizzazione. Ora possiamo scoprire la tecnica di ottimizzazione adatta per ottenere il risultato desiderato, ovvero minimizzare il nostro errore. È possibile utilizzare vari algoritmi, qui Gradient Descent sarebbe un algoritmo di ottimizzazione adatto per ridurre al minimo il nostro errore. Questo algoritmo è ampiamente utilizzato nel dominio del deep learning.

Conclusione

In questo articolo è stata discussa l'importanza delle tecniche di ottimizzazione e un esempio di conversione di un problema in un problema di ottimizzazione. Puoi esaminare le mie implementazioni di diversi algoritmi di ottimizzazione qui . Sentiti libero di dare il tuo feedback e commenti in modo che io possa migliorare. Spero ti sia piaciuto leggere questo tanto quanto io ho scritto questo.

Riferimenti

[1] Ottimizzazione per la progettazione ingegneristica
[2] Guida autonoma
[3] Apprendimento end-to-end per auto a guida autonoma
[4] Risorse