Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Overfitting

L'overfitting si verifica quando un modello memorizza i dati di addestramento, compreso il rumore, e non funziona con dati nuovi. Scopri come individuarlo e quali metodi lo prevengono.

L’overfitting si verifica quando un modello di machine learning si adatta così strettamente ai dati di addestramento da apprendere il rumore e le particolarità di quegli esempi specifici insieme ai pattern reali. Un modello in overfitting ottiene buoni risultati sui dati su cui è stato addestrato e risultati nettamente peggiori sui nuovi dati; l’entità di questa differenza misura la gravità dell’overfitting. In termini di bias-varianza, l’overfitting è una varianza elevata: le previsioni del modello dipendono troppo dai campioni specifici che ha visto.

Riconoscere l’overfitting#

Il segnale rivelatore è un divario crescente tra le prestazioni sui dati di addestramento e le prestazioni sui dati di validazione. Nelle curve di apprendimento tracciate per epoca, la perdita di addestramento continua a diminuire, mentre la perdita di validazione si appiattisce e poi aumenta; le metriche di validazione, come la media della precisione media (mAP), stagnano o diminuiscono. La classica dimostrazione su piccola scala adatta polinomi di due gradi diversi a 12 punti rumorosi campionati da un'onda sinusoidale:

import numpy as np
from numpy.polynomial import Polynomial

rng = np.random.default_rng(0)

# 12 noisy training points from a sine wave, plus clean test points
x_train = rng.uniform(0, 1, 12)
y_train = np.sin(2 * np.pi * x_train) + rng.normal(0, 0.2, 12)
x_test = np.linspace(0, 1, 200)
y_test = np.sin(2 * np.pi * x_test)

for degree in (3, 9):
    fit = Polynomial.fit(x_train, y_train, degree)
    train_mse = np.mean((fit(x_train) - y_train) ** 2)
    test_mse = np.mean((fit(x_test) - y_test) ** 2)
    print(f"Degree {degree:2d}: train MSE {train_mse:.4f}, test MSE {test_mse:.4f}")

Il polinomio di grado 9 ha flessibilità sufficiente per adattarsi al rumore: questo riduce il suo errore di addestramento da 0.0356 a 0.0148, ma aumenta di dieci volte l’errore di test, da 0.0182 a 0.1859.

Sovradattamento e sottoadattamento#

L’underfitting è il problema opposto: un modello troppo semplice, o addestrato troppo brevemente, per cogliere i pattern nei dati, che quindi ottiene risultati scarsi sia sui dati di addestramento sia su quelli di convalida. Confrontare i due errori permette di distinguere i casi e suggerisce rimedi diversi.

Cause comuni#

  • Capacità eccessiva rispetto ai dati: Una rete neurale con milioni di parametri può memorizzare alla lettera poche centinaia di immagini.
  • Dati rumorosi o etichettati in modo errato: Riquadri mancanti, classi errate e valori anomali forniscono al modello errori da apprendere che non esistono nel mondo reale.
  • Addestramento troppo lungo: Una volta appresi i pattern utili, le epoche aggiuntive si limitano perlopiù ad adattarsi al rumore residuo.
  • Dati di addestramento limitati: Un rilevatore addestrato solo su immagini diurne provenienti da una sola telecamera può agganciarsi allo sfondo e all’illuminazione di quella telecamera, mancando gli oggetti in una nuova sede.

Prevenire il sovradattamento#

  • Più dati e più vari: Aggiungere esempi reali è il rimedio più diretto, mentre l’aumento dei dati moltiplica la varietà ribaltando, ridimensionando, ricolorando e combinando le immagini esistenti.
  • Regolarizzazione: Il decadimento dei pesi penalizza i pesi elevati, mentre il dropout disattiva casualmente alcune unità durante l’addestramento, affinché nessuna singola caratteristica diventi indispensabile.
  • Modelli più piccoli o preaddestrati: Un modello più piccolo ha meno capacità di memorizzare i dati, mentre l’apprendimento per trasferimento con i primi layer congelati riduce il numero di pesi da apprendere da un piccolo dataset.
  • Arresto anticipato: Valutare i dati di convalida dopo ogni epoca e interrompere l’addestramento quando il punteggio smette di migliorare evita che il modello si adatti al rumore.
  • Valutazione imparziale: La convalida incrociata fornisce una stima più affidabile dell’errore di generalizzazione sui dataset piccoli, mentre un set di test separato rileva l’overfitting ai dati di convalida durante l’ottimizzazione degli iperparametri.

L’addestramento di Ultralytics YOLO applica l’arresto anticipato tramite l’argomento patience, che termina un’esecuzione dopo quel numero di epoche senza miglioramenti nella fitness di convalida (mAP50-95 per il rilevamento), e salva i pesi dell’epoca migliore come best.pt anche quando l’addestramento prosegue fino alla fine.

from ultralytics import YOLO

# Carica un modello YOLO26n preaddestrato
model = YOLO("yolo26n.pt")

# Consenti fino a 100 epoche, ma interrompi dopo 20 epoche senza miglioramenti nella convalida
results = model.train(data="coco8.yaml", epochs=100, patience=20)

Il valore predefinito è patience=100; per i dataset con meno di 1.000 immagini, le indicazioni di YOLO26 per il fine-tuning suggeriscono epochs=50 con patience=20.

  • Dispersione dei dati: sovrapposizione tra i dati di addestramento e quelli di valutazione, che nasconde l'overfitting. Quando fotogrammi quasi duplicati dello stesso video finiscono sia nei dati di addestramento sia nella partizione di validazione, un modello che ha memorizzato i dati di addestramento ottiene comunque buoni risultati in validazione, e il problema emerge solo dopo la distribuzione. Suddividere per video o scena evita questo problema.
  • Apprendimento di scorciatoie: Il modello si basa su un indizio spurio, come una filigrana o lo sfondo, presente sia nei dati di addestramento sia in quelli di convalida. I punteggi di convalida sembrano buoni, ma il modello non funziona sui nuovi dati in cui manca quell’indizio.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning