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

Validation Data

I dati di validazione sono una suddivisione tenuta da parte e valutata durante lo sviluppo per regolare gli iperparametri, scegliere i checkpoint e rilevare l’overfitting prima del test finale.

I dati di validazione sono una parte dei dati etichettati esclusa dal training e valutata ripetutamente durante lo sviluppo per confrontare i modelli, ottimizzare gli iperparametri, scegliere i checkpoint e rilevare l'overfitting. I pesi del modello non vengono mai aggiornati su questi dati, quindi il punteggio di validazione mostra quanto bene ciò che il modello ha appreso dai dati di training si generalizza a immagini mai viste. «Validation set» e «development set» («dev set») sono sinonimi. Ogni decisione basata sui punteggi di validazione adatta un po' di più il modello a quella specifica suddivisione: per questo si tiene da parte un test set separato per la stima finale e imparziale.

Suddivisioni in set di addestramento, convalida e test#

Un dataset etichettato viene solitamente diviso in tre parti:

  • Insieme di training: Gli esempi su cui l'ottimizzatore adatta i pesi, in genere il 70-80% dei dati.
  • Insieme di validazione: Viene valutato dopo le esecuzioni di training o al termine di ogni epoca, per orientare scelte come il tasso di apprendimento, le dimensioni del modello, l'intensità dell'aumento dei dati e il momento in cui interrompere il training.
  • Insieme di test: Viene valutato una sola volta, dopo aver fissato tutte le scelte, per stimare le prestazioni attese nel mondo reale.

Per dataset di migliaia di immagini sono comuni suddivisioni 70/15/15 o 80/10/10. I dataset molto grandi richiedono una quota inferiore per ottenere stime affidabili: ImageNet-1k riserva 50.000 immagini per la validazione, a fronte di 1.281.167 immagini di training. Poiché le etichette del test set non sono pubbliche, l'accuratezza su ImageNet viene convenzionalmente riportata su questo insieme di validazione, che funge quindi da test set.

Un buon set di validazione corrisponde ai dati che il modello incontrerà in produzione e non condivide alcun elemento con il set di addestramento. Le suddivisioni casuali a livello di immagine causano perdite di informazioni quando più immagini provengono dallo stesso video, paziente o luogo, perché il modello può riconoscere la scena anziché l'oggetto. Suddividere per gruppo, ad esempio per paziente o sessione di registrazione, impedisce questa fuga di dati.

Ottimizzazione degli iperparametri e selezione del modello#

I pesi si apprendono tramite discesa del gradiente, mentre gli iperparametri si scelgono addestrando diversi candidati e mantenendo quello con il miglior punteggio di validazione. I punteggi di training non possono guidare questa scelta, perché i modelli più grandi e addestrati più a lungo si adattano quasi sempre meglio ai dati di training. Lo script scikit-learn qui sotto ottimizza la profondità di un albero decisionale sul dataset di cifre incluso:

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

# Split 1,797 digit images 60/20/20 into training, validation, and test sets
X, y = load_digits(return_X_y=True)
X_train, X_rest, y_train, y_rest = train_test_split(X, y, test_size=0.4, random_state=0, stratify=y)
X_val, X_test, y_val, y_test = train_test_split(X_rest, y_rest, test_size=0.5, random_state=0, stratify=y_rest)

# Fit one model per candidate tree depth and score each on the validation set
val_scores = {}
for depth in (2, 4, 8, 16):
    model = DecisionTreeClassifier(max_depth=depth, random_state=0).fit(X_train, y_train)
    val_scores[depth] = model.score(X_val, y_val)
    print(f"depth {depth}: train {model.score(X_train, y_train):.3f}, validation {val_scores[depth]:.3f}")

# Refit the winner and score the test set exactly once
best = max(val_scores, key=val_scores.get)
final = DecisionTreeClassifier(max_depth=best, random_state=0).fit(X_train, y_train)
print(f"Chosen depth {best}: test accuracy {final.score(X_test, y_test):.3f}")

L'accuratezza di training continua a crescere con la profondità e raggiunge 1.000 alla profondità 16, mentre quella di validazione tocca il massimo di 0.836 alla profondità 8 e scende a 0.825 alla profondità 16, quando l'albero inizia a memorizzare i dati. La validazione seleziona la profondità 8, che ottiene un punteggio di 0.853 sul test set mai utilizzato.

Early stopping e selezione dei checkpoint#

I cicli di training del deep learning valutano di solito l'insieme di validazione al termine di ogni epoca. La loss di training continua a diminuire man mano che la rete si adatta sempre meglio ai dati di training, ma la loss o l'accuratezza di validazione alla fine si stabilizzano e poi peggiorano. L'early stopping interrompe il training quando il punteggio di validazione non migliora per un numero prestabilito di epoche, detto pazienza, e conserva i pesi dell'epoca migliore.

Per impostazione predefinita, il training di YOLO26 in Ultralytics esegue questo ciclo: valuta la suddivisione val del file YAML del dataset dopo ogni epoca, salva l'epoca con il valore più alto di fitness di validazione (mAP50-95 per il rilevamento) come best.pt e si interrompe dopo patience epoche senza miglioramenti, 100 per impostazione predefinita.

from ultralytics import YOLO

# Carica un rilevatore nano YOLO26 pretrained
model = YOLO("yolo26n.pt")

# Valida sulla suddivisione val dopo ogni epoca e interrompi dopo 10 epoche senza miglioramenti
results = model.train(data="coco8.yaml", epochs=50, patience=10)

Cross-validation per dataset piccoli#

Quando i dati sono scarsi, una singola suddivisione tenuta da parte spreca esempi e produce un punteggio instabile. La cross-validation K-fold divide i dati in K fold, addestra K modelli ciascuno dei quali tiene da parte un fold diverso per la validazione e calcola la media dei K punteggi: ogni esempio viene così usato sia per il training sia per la validazione. Sono comuni cinque e dieci fold; le varianti stratificate e raggruppate mantengono bilanciate le proporzioni delle classi o raggruppano immagini correlate all'interno di ciascun fold. Un test set rimane comunque separato da tutti i fold.

  • Dati di test: Vengono valutati una sola volta alla fine. Riutilizzarli per prendere decisioni li trasforma in un secondo insieme di validazione e il loro punteggio non è più una stima imparziale.
  • Dati di training: L'unica suddivisione da cui l'ottimizzatore apprende i pesi.
  • Cross-validation: Procedura che alterna gli esempi usati come dati di validazione, ottenendo K punteggi di validazione da un unico dataset.
  • Validazione nella documentazione clinica e normativa: In medicina e nei settori regolamentati, validare un modello spesso significa valutare il modello finito su dati esterni indipendenti, equivalenti al test set nella terminologia del machine learning.

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