mozzicone Cos'è l'overfitting? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Cos'è l'overfitting?

mm
aggiornato on

Cos'è l'overfitting?

Quando si addestra una rete neurale, è necessario evitare l'overfitting. sovradattamento è un problema nell'ambito dell'apprendimento automatico e delle statistiche in cui un modello apprende troppo bene i modelli di un set di dati di addestramento, spiegando perfettamente il set di dati di addestramento ma non riuscendo a generalizzare il suo potere predittivo ad altri set di dati.

Per dirla in un altro modo, nel caso di un modello di overfitting spesso mostrerà un'accuratezza estremamente elevata sul set di dati di addestramento ma una bassa accuratezza sui dati raccolti ed eseguiti attraverso il modello in futuro. Questa è una rapida definizione di overfitting, ma esaminiamo il concetto di overfitting in modo più dettagliato. Diamo un'occhiata a come si verifica l'overfitting e come può essere evitato.

Comprendere "adattamento" e sottoadattamento

È utile dare un’occhiata al concetto di underfitting e “in forma" generalmente quando si parla di overfitting. Quando addestriamo un modello, stiamo cercando di sviluppare una struttura in grado di prevedere la natura, o la classe, degli elementi all'interno di un set di dati, in base alle caratteristiche che descrivono tali elementi. Un modello dovrebbe essere in grado di spiegare un modello all'interno di un set di dati e prevedere le classi di punti dati futuri basati su questo modello. Quanto meglio il modello spiega la relazione tra le caratteristiche del training set, tanto più “adatto” è il nostro modello.

La linea blu rappresenta le previsioni di un modello con un adattamento insufficiente, mentre la linea verde rappresenta un modello con un adattamento migliore. Foto: Pep Roca via Wikimedia Commons, CC BY SA 3.0, (https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)

Un modello che spiega male la relazione tra le caratteristiche dei dati di addestramento e quindi non riesce a classificare accuratamente gli esempi di dati futuri è inadeguato i dati di allenamento Se dovessi tracciare un grafico della relazione prevista di un modello di sottoadattamento rispetto all'effettiva intersezione delle caratteristiche e delle etichette, le previsioni devierebbero dal segno. Se avessimo un grafico con i valori effettivi di un set di addestramento etichettati, un modello gravemente inadeguato mancherebbe drasticamente la maggior parte dei punti dati. Un modello con un adattamento migliore potrebbe tagliare un percorso attraverso il centro dei punti dati, con i singoli punti dati che si discostano solo di poco dai valori previsti.

L'underfitting può spesso verificarsi quando non ci sono dati sufficienti per creare un modello accurato o quando si tenta di progettare un modello lineare con dati non lineari. Più dati di allenamento o più funzioni spesso aiutano a ridurre l'underfitting.

Allora perché non dovremmo semplicemente creare un modello che spieghi perfettamente ogni punto nei dati di addestramento? Sicuramente è desiderabile una precisione perfetta? La creazione di un modello che ha appreso troppo bene i modelli dei dati di addestramento è ciò che causa l'overfitting. Il set di dati di addestramento e altri set di dati futuri che eseguirai attraverso il modello non saranno esattamente gli stessi. Probabilmente saranno molto simili sotto molti aspetti, ma differiranno anche per aspetti fondamentali. Pertanto, progettare un modello che spieghi perfettamente il set di dati di addestramento significa finire con una teoria sulla relazione tra le caratteristiche che non si generalizza bene ad altri set di dati.

Comprensione dell'overfitting

L'overfitting si verifica quando un modello apprende troppo bene i dettagli all'interno del set di dati di addestramento, causando problemi al modello quando vengono effettuate previsioni su dati esterni. Ciò può verificarsi quando il modello non solo apprende le caratteristiche del set di dati, ma apprende anche le fluttuazioni casuali o rumore all'interno del set di dati, dando importanza a questi eventi casuali/non importanti.

È più probabile che si verifichi overfitting quando si utilizzano modelli non lineari, poiché sono più flessibili durante l'apprendimento delle funzionalità dei dati. Gli algoritmi di machine learning non parametrici hanno spesso vari parametri e tecniche che possono essere applicati per limitare la sensibilità del modello ai dati e quindi ridurre l'overfitting. Come esempio, modelli ad albero decisionale sono molto sensibili all'overfitting, ma è possibile utilizzare una tecnica chiamata potatura per rimuovere in modo casuale alcuni dei dettagli che il modello ha appreso.

Se dovessi rappresentare graficamente le previsioni del modello sugli assi X e Y, avresti una linea di previsione che zigzaga avanti e indietro, il che riflette il fatto che il modello ha provato troppo a far rientrare tutti i punti nel set di dati in la sua spiegazione.

Controllo dell'overfitting

Quando addestriamo un modello, idealmente vogliamo che il modello non commetta errori. Quando le prestazioni del modello convergono verso l'esecuzione di previsioni corrette su tutti i punti dati nel set di dati di addestramento, l'adattamento migliora. Un modello con un buon adattamento è in grado di spiegare quasi tutto il set di dati di addestramento senza overfitting.

Man mano che un modello si allena, le sue prestazioni migliorano nel tempo. Il tasso di errore del modello diminuirà con il passare del tempo di addestramento, ma diminuirà solo fino a un certo punto. Il punto in cui le prestazioni del modello sul set di test ricominciano a salire è in genere il punto in cui si verifica l'overfitting. Per ottenere il miglior adattamento per un modello, vogliamo interrompere l'addestramento del modello nel punto di perdita più bassa sul set di addestramento, prima che l'errore ricominci ad aumentare. Il punto di arresto ottimale può essere accertato rappresentando graficamente le prestazioni del modello per tutto il tempo di addestramento e interrompendo l'addestramento quando la perdita è minima. Tuttavia, un rischio con questo metodo di controllo dell'overfitting è che specificare l'endpoint per l'addestramento basato sulle prestazioni del test significa che i dati del test vengono in qualche modo inclusi nella procedura di addestramento e perdono il loro status di dati puramente "non toccati".

Ci sono un paio di modi diversi in cui si può combattere l'overfitting. Un metodo per ridurre l'overfitting consiste nell'utilizzare una tattica di ricampionamento, che opera stimando l'accuratezza del modello. Puoi anche usare un convalida set di dati oltre al set di test e tracciare l'accuratezza dell'addestramento rispetto al set di convalida anziché al set di dati di test. Ciò mantiene invisibile il set di dati di test. Un metodo di ricampionamento popolare è la convalida incrociata di K-fold. Questa tecnica consente di dividere i dati in sottoinsiemi su cui viene addestrato il modello, quindi vengono analizzate le prestazioni del modello sui sottoinsiemi per stimare le prestazioni del modello sui dati esterni.

L'uso della convalida incrociata è uno dei modi migliori per stimare l'accuratezza di un modello su dati invisibili e, se combinato con un set di dati di convalida, l'overfitting può spesso essere ridotto al minimo.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.