Scoprite come la Gradient Descent ottimizza i modelli di intelligenza artificiale come Ultralytics YOLO, consentendo previsioni accurate in attività che vanno dall'assistenza sanitaria alle auto a guida autonoma.
La discesa del gradiente è un algoritmo iterativo fondamentale utilizzato per minimizzare una funzione muovendosi nella direzione della discesa più ripida. Nel contesto del apprendimento automatico (ML) e apprendimento profondo (DL), agisce come meccanismo guida che addestra i modelli a fare previsioni accurate. L'obiettivo primario è quello di trovare l'insieme ottimale di pesi del modello che minimizza la funzione di perdita, che rappresenta la differenza tra le previsioni del modello e i valori reali. È possibile visualizzare questo processo come un escursionista che cerca di di trovare il fondo di una valle in una fitta nebbia; muovendo ripetutamente passi nella direzione del pendio più ripido, l'escursionista alla fine raggiunge il punto più basso. Questo concetto fondamentale viene approfondito nel Google Machine Learning Crash Course.
La meccanica di base del Gradient Descent prevede il calcolo del gradiente - un vettore di derivate parziali - della funzione di perdita rispetto a ciascun parametro. della funzione di perdita rispetto a ciascun parametro. Questo calcolo è gestito in modo efficiente dall'algoritmo algoritmo di retropropagazione. Una volta determinato il gradiente Una volta determinato il gradiente, il modello aggiorna i suoi parametri facendo un passo nella direzione opposta a quella del gradiente. La dimensione di questo di questo passo è controllata da un parametro cruciale noto come il tasso di apprendimento. Se il tasso di apprendimento è troppo alto, l'algoritmo Se il tasso di apprendimento è troppo alto, l'algoritmo potrebbe superare il minimo; se è troppo basso, l'addestramento potrebbe richiedere un tempo eccessivamente lungo. Questo ciclo si ripete per molti passaggi attraverso il set di dati, chiamati epoche, finché la perdita non si stabilizza. Per una prospettiva matematica, Khan Academy offre una lezione sulla discesa del gradiente che illustra i calcoli necessari.
Esistono diverse varianti dell'algoritmo per bilanciare l'efficienza computazionale e la velocità di convergenza:
Ecco un esempio conciso di come configurare un ottimizzatore per l'addestramento di un Ultralytics YOLO11 modello Ultralytics YOLO11:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using the SGD optimizer with a specific learning rate
# The 'optimizer' argument allows you to select the gradient descent variant
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
La discesa dei gradienti è il motore di molte applicazioni trasformative di AI nelle applicazioni sanitarie e industriali.
Per comprendere appieno il concetto di discesa graduale, è necessario distinguerlo dai termini correlati. Mentre Backpropagation calcola i gradienti (determinando la "direzione"), Gradient Descent è il metodo di il algoritmo di ottimizzazione che aggiorna effettivamente i parametri (facendo il "passo"). Inoltre, mentre l'algoritmo di discesa del gradiente standard utilizza in genere utilizza un tasso di apprendimento fisso, gli algoritmi adattivi, come il metodo ottimizzatoreAdam regolano il tasso di apprendimento dinamicamente il tasso di apprendimento per ogni parametro, spesso portando a una convergenza più rapida, come descritto nel documento di ricerca originale di Adam. Adam . Sfide come il problema del problema del gradiente che svanisce può ostacolare la Gradient Descent in reti molto profonde, rendendo necessarie soluzioni architettoniche come la normalizzazione dei lotti o le connessioni residue. normalizzazione dei lotti o connessioni residue. Una panoramica completa di queste sfide di ottimizzazione è disponibile sul blog di Il blog di Sebastian Ruder.