Algoritmo di discesa graduale: metodologia, varianti e migliori pratiche
Pubblicato: 2020-07-28L'ottimizzazione è parte integrante dell'apprendimento automatico. Quasi tutti gli algoritmi di apprendimento automatico hanno una funzione di ottimizzazione come segmento cruciale. Come suggerisce la parola, l'ottimizzazione nell'apprendimento automatico consiste nel trovare la soluzione ottimale a un'affermazione del problema.
In questo articolo, leggerai uno degli algoritmi di ottimizzazione più utilizzati, la discesa del gradiente. L' algoritmo di discesa del gradiente può essere utilizzato con qualsiasi algoritmo di apprendimento automatico ed è facile da comprendere e implementare. Quindi, cos'è esattamente la discesa del gradiente? Entro la fine di questo articolo, avrai una comprensione più chiara dell'algoritmo di discesa del gradiente e di come può essere utilizzato per aggiornare i parametri del modello.
Sommario
Discesa graduale
Prima di approfondire l' algoritmo di discesa del gradiente, dovresti sapere qual è la funzione di costo. La funzione di costo è una funzione utilizzata per misurare le prestazioni del modello per un determinato set di dati. Trova la differenza tra il valore previsto e il valore atteso, quantificando così il margine di errore.
L'obiettivo è ridurre la funzione di costo in modo che il modello sia accurato. Per raggiungere questo obiettivo, è necessario trovare i parametri richiesti durante l'addestramento del modello. La discesa del gradiente è uno di questi algoritmi di ottimizzazione utilizzato per trovare i coefficienti di una funzione per ridurre la funzione di costo. Il punto in cui la funzione di costo è minima è noto come minimi globali.
Fonte
L'intuizione dietro l'algoritmo Gradient Descent
Supponiamo di avere una grande ciotola simile a qualcosa in cui hai la tua frutta. Questa ciotola è il grafico per la funzione di costo. Il fondo della ciotola è il miglior coefficiente per il quale la funzione di costo è minima. Valori diversi vengono utilizzati come coefficienti per calcolare la funzione di costo. Questo passaggio viene ripetuto fino a trovare i coefficienti migliori.

Puoi immaginare la discesa in pendenza come una palla che rotola giù per una valle. La valle è il grafico per la funzione di costo qui. Vuoi che la pallina raggiunga il fondovalle, dove il fondovalle rappresenta la funzione di minor costo. A seconda della posizione di partenza della palla, può poggiare su molti fondovalle. Tuttavia, questi minimi potrebbero non essere i punti più bassi e sono noti come minimi locali.
Fonte
Leggi: Potenziamento dell'apprendimento automatico: cos'è, funzioni, tipi e caratteristiche
Algoritmo di discesa del gradiente - Metodologia
Il calcolo della discesa del gradiente inizia con i valori iniziali dei coefficienti per la funzione impostati come 0 o un piccolo valore casuale.
coefficiente = 0 (o un valore piccolo)
- La funzione di costo viene calcolata inserendo questo valore del coefficiente nella funzione.
Funzione di costo = f(coefficiente)
- Sappiamo dal concetto di calcolo che la derivata di una funzione è la pendenza della funzione. Il calcolo della pendenza ti aiuterà a capire la direzione per spostare i valori del coefficiente. La direzione dovrebbe essere tale da ottenere un costo inferiore (errore) nell'iterazione successiva.
del = derivata (funzione di costo)
- Dopo aver conosciuto la direzione della discesa dal pendio, aggiorni di conseguenza i valori del coefficiente. È possibile selezionare una velocità di apprendimento (alfa) per controllare quanto questi coefficienti cambieranno in ogni iterazione. È necessario assicurarsi che questo tasso di apprendimento non sia né troppo alto né troppo basso.
coefficiente = coefficiente – (alfa * del)

- Questo processo viene ripetuto fino a quando la funzione di costo diventa 0 o molto vicina a 0.
f(coefficiente) = 0 (o vicino a 0)
La selezione del tasso di apprendimento è importante. La selezione di un tasso di apprendimento molto elevato può superare i minimi globali. Al contrario, un tasso di apprendimento molto basso può aiutarti a raggiungere i minimi globali, ma la convergenza è molto lenta e richiede molte iterazioni.
Fonte
Varianti dell'algoritmo di discesa graduale
Discesa gradiente batch
La discesa del gradiente in batch è una delle varianti più utilizzate dell'algoritmo di discesa del gradiente. La funzione di costo viene calcolata sull'intero set di dati di addestramento per ogni iterazione. Un batch viene indicato come un'iterazione dell'algoritmo e questo modulo è noto come discesa del gradiente batch.

Discesa a gradiente stocastico
In alcuni casi, il training set può essere molto grande. In questi casi, il calcolo della discesa del gradiente batch richiederà molto tempo poiché un'iterazione richiede una previsione per ogni istanza nel set di addestramento. È possibile utilizzare la discesa del gradiente stocastico in queste condizioni in cui il set di dati è enorme. Nella discesa stocastica del gradiente, i coefficienti vengono aggiornati per ogni istanza di addestramento e non alla fine del batch di istanze.
Discesa gradiente mini batch
Sia la discesa del gradiente batch che la discesa del gradiente stocastico hanno i loro pro e contro. Tuttavia, può essere utile utilizzare una miscela di discesa gradiente batch e discesa gradiente stocastica. Nella discesa del gradiente mini-batch, non viene utilizzato né l'intero set di dati né una singola istanza alla volta. Prendi in considerazione un gruppo di esempi di formazione. Il numero di esempi in questo gruppo è inferiore all'intero set di dati e questo gruppo è noto come mini-batch.
Migliori pratiche per l'algoritmo di discesa graduale
- Mappare il costo rispetto al tempo: tracciare il costo rispetto al tempo aiuta a visualizzare se il costo sta diminuendo o meno dopo ogni iterazione. Se vedi che il costo rimane invariato, prova ad aggiornare il tasso di apprendimento.
- Tasso di apprendimento: il tasso di apprendimento è molto basso ed è spesso selezionato come 0,01 o 0,001. Devi provare a vedere quale valore funziona meglio per te.
- Riscala input: l' algoritmo di discesa del gradiente minimizzerà la funzione di costo più velocemente se tutte le variabili di input vengono ridimensionate allo stesso intervallo, come [0, 1] o [-1, 1].
- Meno passaggi: di solito, l' algoritmo di discesa del gradiente stocastico non richiede più di 10 passaggi per trovare i coefficienti migliori.
Dai un'occhiata a: 25 domande e risposte per l'intervista sull'apprendimento automatico
Avvolgendo
Conoscerai il ruolo della discesa del gradiente nell'ottimizzazione di un algoritmo di apprendimento automatico. Un fattore importante da tenere a mente è la scelta del giusto tasso di apprendimento per l' algoritmo di discesa del gradiente per una previsione ottimale.
upGrad fornisce un diploma PG in Machine Learning e AI e un Master of Science in Machine Learning e AI che potrebbero guidarti verso la costruzione di una carriera. Questi corsi spiegheranno la necessità dell'apprendimento automatico e ulteriori passaggi per raccogliere conoscenze in questo dominio che coprono vari concetti che vanno dagli algoritmi di discesa del gradiente alle reti neurali.