Che cos'è l'overfitting nella computer vision e come prevenirlo?

Abdelrahman Elgendy

6 minuti di lettura

13 marzo 2025

Imparare cosa sia l'overfitting nella computer vision e come prevenirlo utilizzando l'aumento dei dati, la regolarizzazione e i modelli pre-addestrati.

I modelli di computer vision sono progettati per riconoscere modelli, individuare oggetti e analizzare immagini. Tuttavia, le loro prestazioni dipendono dalla loro capacità di generalizzazione a dati non visti. La generalizzazione è la capacità del modello di funzionare bene su nuove immagini, non solo su quelle su cui è stato addestrato. Un problema comune nell'addestramento di questi modelli è l'overfitting, in cui un modello impara troppo dai dati di addestramento, compreso il rumore non necessario, invece di identificare modelli significativi.

Quando ciò accade, il modello funziona bene con i dati di addestramento, ma fatica con le nuove immagini. Ad esempio, un modello di rilevamento degli oggetti addestrato solo su immagini ad alta risoluzione e ben illuminate può fallire quando gli vengono presentate immagini sfocate o in ombra in condizioni reali. L'overfitting limita l'adattabilità di un modello, limitandone l'uso in applicazioni reali come la guida autonoma, l'imaging medico e i sistemi di sicurezza.

In questo articolo analizzeremo cos'è l'overfitting, perché si verifica e come prevenirlo. Inoltre, vedremo come i modelli di visione artificiale come Ultralytics YOLO11 aiutano a ridurre l'overfitting e a migliorare la generalizzazione.

Che cos'è l'overfitting?

L'overfitting si verifica quando un modello memorizza i dati di addestramento invece di apprendere schemi che si applicano ampiamente a nuovi input. Il modello si concentra troppo sui dati di addestramento, per cui si trova in difficoltà con nuove immagini o situazioni che non ha mai visto prima.

Nella computer vision, l'overfitting può riguardare diversi compiti. Un modello di classificazione addestrato solo su immagini chiare e luminose può avere difficoltà in condizioni di scarsa illuminazione. Un modello di rilevamento degli oggetti che apprende da immagini perfette potrebbe fallire in scene affollate o disordinate. Allo stesso modo, un modello di segmentazione dell'istanza può funzionare bene in ambienti controllati, ma avere problemi con le ombre o la sovrapposizione di oggetti.

Questo diventa un problema nelle applicazioni di IA del mondo reale, dove i modelli devono essere in grado di generalizzare al di là delle condizioni controllate di addestramento. Le auto a guida autonoma, ad esempio, devono essere in grado di rilevare i pedoni in condizioni di luce, tempo e ambienti diversi. Un modello che si adatta troppo al suo set di addestramento non sarà affidabile in questi scenari imprevedibili.

Quando e perché si verifica l'overfitting?

L'overfitting si verifica solitamente a causa di set di dati sbilanciati, eccessiva complessità del modello e sovrallenamento. Ecco le cause principali:

  • Dati di addestramento limitati: I piccoli set di dati fanno sì che i modelli memorizzino gli schemi piuttosto che generalizzarli. Un modello addestrato su sole 50 immagini di uccelli può avere difficoltà a rilevare specie di uccelli al di fuori di quel set di dati.

  • Modelli complessi con troppi parametri: Le reti profonde con un numero eccessivo di strati e di neuroni tendono a memorizzare dettagli fini anziché concentrarsi sulle caratteristiche essenziali.

  • Mancanza di aumento dei dati: Senza trasformazioni come il ritaglio, il capovolgimento o la rotazione, un modello può imparare solo dalle sue esatte immagini di addestramento.

  • Addestramento prolungato: Se un modello esamina i dati di addestramento per un numero eccessivo di volte, dette epoche, memorizza i dettagli invece di apprendere i modelli generali, rendendolo meno adattabile.

  • Etichette incoerenti o rumorose: Dati etichettati in modo errato fanno sì che un modello apprenda modelli sbagliati. Questo fenomeno è comune nei set di dati etichettati manualmente.

Un approccio ben bilanciato alla complessità del modello, alla qualità del set di dati e alle tecniche di addestramento garantisce una migliore generalizzazione.

Overfitting vs. underfitting

L'overfitting e l'underfitting sono due problemi completamente opposti nel deep learning.

__wf_reserved_inherit
Figura 1. Confronto tra underfitting, apprendimento ottimale e overfitting nei modelli di computer vision.

L'overfitting si verifica quando un modello è troppo complesso e si concentra eccessivamente sui dati di addestramento. Invece di imparare modelli generali, memorizza piccoli dettagli, anche irrilevanti come il rumore di fondo. Questo fa sì che il modello ottenga buone prestazioni sui dati di addestramento ma faccia fatica con le nuove immagini, il che significa che non ha veramente imparato a riconoscere i modelli applicabili in situazioni diverse.

L'underfitting si verifica quando un modello è troppo elementare e quindi non coglie modelli importanti nei dati. Questo può accadere quando il modello ha un numero di livelli troppo basso, un tempo di addestramento insufficiente o i dati sono limitati. Di conseguenza, non riesce a riconoscere modelli importanti e fa previsioni imprecise. Questo porta a prestazioni scarse sia sui dati di addestramento che su quelli di test, perché il modello non ha imparato abbastanza per comprendere correttamente il compito. 

Un modello ben addestrato trova l'equilibrio tra complessità e generalizzazione. Dovrebbe essere abbastanza complesso da apprendere modelli rilevanti, ma non così tanto da memorizzare i dati invece di riconoscere le relazioni sottostanti.

Come identificare l'overfitting

Ecco alcuni segnali che indicano che un modello è in overfitting:

  • Se l'accuratezza di addestramento è significativamente più alta dell'accuratezza di validazione, è probabile che il modello sia in overfitting.
  • Un divario crescente tra la perdita di formazione e la perdita di convalida è un altro forte indicatore.
  • Il modello è troppo sicuro delle risposte sbagliate, dimostrando di aver memorizzato i dettagli invece di capire i modelli.

Per garantire una buona generalizzazione del modello, è necessario testarlo su insiemi di dati diversi che riflettano le condizioni del mondo reale.

Come prevenire l'overfitting nella computer vision

L'overfitting non è inevitabile e può essere evitato. Con le tecniche giuste, i modelli di computer vision possono apprendere modelli generali invece di memorizzare i dati di addestramento, rendendoli più affidabili nelle applicazioni reali. 

Ecco cinque strategie chiave per evitare l'overfitting nella computer vision.

Aumentare la diversità dei dati con l'incremento e i dati sintetici

Il modo migliore per aiutare un modello a funzionare bene su nuovi dati è ampliare il set di dati utilizzando l'incremento dei dati e i dati sintetici. I dati sintetici sono generati al computer invece di essere raccolti da immagini reali. Aiutano a colmare le lacune quando non ci sono abbastanza dati reali.

__wf_reserved_inherit
Figura 2. La combinazione di dati reali e sintetici riduce l'overfitting e migliora l'accuratezza del rilevamento degli oggetti.

L'aumento dei dati modifica leggermente le immagini esistenti capovolgendole, ruotandole, ritagliandole o regolandone la luminosità, in modo che il modello non si limiti a memorizzare i dettagli ma impari a riconoscere gli oggetti in situazioni diverse.

I dati sintetici sono utili quando è difficile ottenere immagini reali. Ad esempio, i modelli di auto a guida autonoma possono allenarsi su scene stradali generate al computer per imparare a rilevare gli oggetti in diverse condizioni atmosferiche e di illuminazione. In questo modo il modello diventa più flessibile e affidabile, senza bisogno di migliaia di immagini reali.

Ottimizzare la complessità e l'architettura del modello

Una rete neurale profonda, che è un tipo di modello di apprendimento automatico con molti strati che elaborano i dati invece di un singolo strato, non è sempre migliore. Quando un modello ha troppi strati o parametri, memorizza i dati di addestramento invece di riconoscere modelli più ampi. Ridurre la complessità non necessaria può aiutare a prevenire l'overfitting.

Per raggiungere questo obiettivo, un approccio è il pruning, che rimuove i neuroni e le connessioni ridondanti, rendendo il modello più snello ed efficiente. 

Un'altra è la semplificazione dell'architettura, riducendo il numero di strati o di neuroni. I modelli pre-addestrati come YOLO11 sono progettati per generalizzare bene tra i vari compiti con un minor numero di parametri, il che li rende più resistenti all'overfitting rispetto all'addestramento di un modello profondo da zero.

Trovare il giusto equilibrio tra profondità ed efficienza del modello consente di apprendere modelli utili senza limitarsi a memorizzare i dati di addestramento.

Applicare tecniche di regolarizzazione

Le tecniche di regolarizzazione impediscono ai modelli di diventare troppo dipendenti da caratteristiche specifiche nei dati di addestramento. Ecco alcune tecniche comunemente utilizzate:

  • Il dropout disattiva parti casuali del modello durante l'addestramento, in modo che impari a riconoscere diversi modelli invece di affidarsi troppo a poche caratteristiche.

  • Il decadimento del peso (regolarizzazione L2) scoraggia i valori estremi del peso, mantenendo sotto controllo la complessità del modello.

  • La normalizzazione dei lotti aiuta a stabilizzare l'addestramento, garantendo che il modello sia meno sensibile alle variazioni del set di dati.

Queste tecniche aiutano a mantenere la flessibilità e l'adattabilità di un modello, riducendo il rischio di overfitting e preservando l'accuratezza.

Monitorare la formazione con la convalida e l'arresto precoce

Per evitare l'overfitting, è importante monitorare l'apprendimento del modello e assicurarsi che si generalizzi bene a nuovi dati. Ecco un paio di tecniche che aiutano in questo senso:

  • Arresto anticipato: Termina automaticamente l'addestramento quando il modello smette di migliorare, per evitare che continui ad apprendere dettagli inutili.

  • Convalida incrociata: Divide i dati in parti e addestra il modello su ciascuna di esse. In questo modo il modello apprende modelli invece di memorizzare immagini specifiche.

Queste tecniche aiutano il modello a rimanere bilanciato, in modo che impari abbastanza da essere accurato senza concentrarsi troppo solo sui dati di addestramento.

Utilizzare modelli pre-addestrati e migliorare l'etichettatura del dataset

Invece di addestrare da zero, l'uso di modelli pre-addestrati come YOLO11 può ridurre l'overfitting. YOLO11 è stato addestrato su set di dati su larga scala, il che gli consente di generalizzare bene tra diverse condizioni.

__wf_reserved_inherit
Figura 3. I modelli di visione artificiale pre-addestrati migliorano l'accuratezza e prevengono l'overfitting.

La messa a punto di un modello pre-addestrato lo aiuta a mantenere ciò che già conosce durante l'apprendimento di nuovi compiti, in modo che non si limiti a memorizzare i dati di addestramento.

Inoltre, è essenziale garantire un'etichettatura di alta qualità dei set di dati. I dati non etichettati o sbilanciati possono indurre i modelli ad apprendere modelli errati. La pulizia dei dataset, la correzione delle immagini mal etichettate e il bilanciamento delle classi migliorano l'accuratezza e riducono il rischio di overfitting. Un altro approccio efficace è quello dell'addestramento contraddittorio, in cui il modello viene esposto a esempi leggermente modificati o più impegnativi, per metterne alla prova i limiti.

Punti di forza

L'overfitting è un problema comune nella computer vision. Un modello potrebbe funzionare bene sui dati di addestramento, ma avere difficoltà con le immagini del mondo reale. Per evitare questo problema, tecniche come l'aumento dei dati, la regolarizzazione e l'uso di modelli pre-addestrati come YOLO11 aiutano a migliorare l'accuratezza e l'adattabilità.

Applicando questi metodi, i modelli di IA possono rimanere affidabili e funzionare bene in ambienti diversi. Con il miglioramento del deep learning, assicurarsi che i modelli generalizzino correttamente sarà fondamentale per il successo dell'IA nel mondo reale.

Unisciti alla nostra comunità in crescita! Esplorate il nostro repository GitHub per saperne di più sull'intelligenza artificiale. Siete pronti ad avviare i vostri progetti di computer vision? Scoprite le nostre opzioni di licenza. Scoprite l'IA nella guida autonoma e l'IA nell'assistenza sanitaria visitando le nostre pagine dedicate alle soluzioni!

Costruiamo insieme il futuro
dell'IA!

Iniziate il vostro viaggio nel futuro dell'apprendimento automatico

Iniziare gratuitamente
Link copiato negli appunti