Benvenuto nella rubrica Tech Explained!

Un’allegra famigliola vive in una casa di campagna con un grande giardino. Per mantenere il verde in ordine, i genitori decidono di assumere un giardiniere, il quale si presenta due volte alla settimana con un fiammante furgone rosso.

La coppia ha un figlio di 4 anni il quale, durante la merenda, assiste divertito alle operazioni di potatura dell’uomo. Una domenica la famiglia si trova al supermercato per fare la consueta spesa per la settimana e, dirigendosi verso il parcheggio con il carrello pieno di sacchetti, il bambino vede un uomo robusto caricare le borse della spesa dentro un grosso furgone rosso. Preso da un’improvvisa euforia, indicando l’uomo, esclama: “Guarda mamma, un giardiniere!”.

Questa breve storia di fantasia rappresenta un classico esempio di ciò che in ambito statistico e di Machine Learning prende il nome di “sovradattamento”. Comunemente detto, prendendo in prestito la definizione inglese, “overfitting”, tale fenomeno consiste nell’incapacità da parte di un modello statistico di generalizzare quanto “appreso” dai dati di addestramento rispetto a nuove osservazioni. Il bambino, giovanissimo e con poca esperienza, assistendo ogni settimana all’arrivo del possente giardiniere sul suo furgone rosso, ha creato nella sua mente la falsa associazione tra il colore del furgone, la stazza dell’uomo e la professione di giardiniere. Ovviamente, se avesse visto molti altri giardinieri, si sarebbe accorto che non tutti sono uomini robusti e guidano un furgone rosso e probabilmente (come tutti noi facciamo) avrebbe cercato altre caratteristiche più sottili e generali per creare dentro di sé la “definizione di giardiniere”. Imbattendosi così, in un contesto completamente diverso dalla propria casa, in un’osservazione che confermasse le sue convinzioni distorte circa la professione di giardiniere, il bambino ha erroneamente generalizzato, definendo l’ignaro cliente del supermercato, appunto, “un giardiniere”.

L’overfitting è un ostico quanto comune problema nella pratica del Machine Learning ed emerge tipicamente nei seguenti casi. Dunque:

Scarsa eterogeneità dei dati di training: spesso l’overfitting insorge quando i dati di training non rappresentano adeguatamente la varietà del fenomeno in questione. Se i dati sono troppo omogenei il modello imparerà solamente le caratteristiche specifiche del campione, scoprendosi poi incapace di generalizzare su dati non ancora osservati. Ad esempio, addestrando un modello per riconoscere frutti solamente tramite immagini di mele rosse, una volta terminato il training questo potrebbe non essere in grado di riconoscere mele verdi o altre tipologie di frutti.

Scarsità dei dati di training: se la quantità di dati di training è troppo limitata, il modello non dispone di un numero di esempi sufficiente ad “imparare” le diverse caratteristiche e sfumature presenti nei dati. Un esempio può essere il tentativo di prevedere le preferenze dei clienti di un negozio solamente sulla base di un piccolo campione di acquisti. Il modello addestrato su questa piccola e non sufficiente quantità di dati potrebbe essere in grado di effettuare previsioni accurate solamente sulle osservazioni presenti nel campione utilizzato per l’addestramento, fallendo miseramente su un gruppo più ampio e variabile.

Eccessiva specificazione dei dati di training (in rapporto alla quantità): se i dati di training sono molto specifici (ovvero se ciascun esempio dispone di molte variabili esplicative), il modello potrebbe “imparare” dettagli troppo peculiari perdendo la capacità di generalizzare. Se un modello finalizzato al riconoscimento di specie vegetali fosse addestrato con esempi corredati da informazioni eccessivamente precise, potrebbe profilare in maniera troppo dettagliata le caratteristiche dei singoli esempi non riuscendo ad estrarre le caratteristiche più generali necessarie a riconoscere la specie vegetale in questione (due piante della stessa specie non sono mai identiche a livello microscopico!). La presenza di molte variabili esplicative non è di per sé dannosa, anzi, a patto che la quantità di dati a disposizione per l’addestramento sia proporzionalmente adeguata.

Eccessiva potenza del modello utilizzato (in rapporto alla quantità e complessità dei dati): un modello troppo complesso rispetto alla quantità ed alla varietà dei dati disponibili rischia di adattarsi troppo strettamente ai dati di training. Ad esempio, utilizzando una rete neurale troppo potente (ovvero con molti strati e molti nodi) per modellare un problema semplice, si incappa facilmente nel “sovradattamento” ottenendo un predittore che, tipicamente, ha “imparato” relazioni spurie (ovvero relazioni inesistenti tra le variabili indipendenti e la variabile obiettivo della previsione) ed il rumore (ovvero le caratteristiche unicamente imputabili al caso) immancabilmente presente nel dataset.

Procedura di training troppo lunga: se un modello viene addestrato per troppo tempo sui dati di training è più probabile che riesca ad adattarsi eccessivamente a questi, memorizzando anche i dettagli e le anomalie casuali non rappresentative del problema generale.

Al fine di ovviare al problema dell’overfitting si agisce quindi tipicamente come segue. Dunque:

Cross validation: questa tecnica consiste nel suddividere i dati in più porzioni ed addestrare il modello più volte, ogni volta utilizzando una porzione diversa come set di test e le rimanenti come set di training. Questo approccio aiuta nella strutturazione di un modello che sia in grado di non “sovradattare”, in quanto il training ed il test incrociati permettono di verificare che la stessa struttura (ad esempio, la stessa rete neurale), abbia performance comparabili se allenata e testata su diverse porzioni dello stesso insieme di dati.

Early stopping: come accennato precedentemente, una delle possibili cause del “sovradattamento” può essere un tempo eccessivo trascorso dal modello nella fase di addestramento; la cosiddetta tecnica dell’“early stopping” (in italiano traducibile come “interruzione anticipata”) consiste nell’interrompere l’addestramento del modello prima che cominci ad “aderire” eccessivamente ai dati di training. Ma come fare?Durante il processo di training si monitorano contemporaneamente le performance sia sul set di addestramento che sul set di validazione. Ovviamente, ci si aspetta che le predizioni sullo stesso dataset di training migliorino progressivamente (altrimenti significherebbe che il modello non sta “imparando” nulla); fintantoché le conoscenze apprese dal modello risultano generalizzabili ad insiemi di dati non presenti all’interno del dataset di addestramento, durante il training ci si aspetta che anche le performance predittive sul dataset di validazione migliorino progressivamente. Lo stop “forzato” della procedura di training avviene quindi nel momento in cui le performance di validazione cominciano a divergere in modo consistente rispetto a quelle di training, suggerendo che il modello sta cominciando ad adattarsi eccessivamente ai dati di addestramento rendendosi incapace di effettuare previsioni su dati non ancora osservati (ovvero sui dati di validazione).

Regolarizzazione: con il termine “regolarizzazione” si fa riferimento ad un insieme di tecniche atte a “penalizzare” le capacità di adattamento del modello ai dati di training. Tali penalizzazioni tendono a ridurre il potere previsionale, migliorando così le capacità di generalizzazione. Un esempio di tecnica di regolarizzazione applicata alle reti neurali è il cosiddetto “dropout”, il quale consiste nel disattivare casualmente alcuni nodi della rete, rendendola così “monca” e inficiandone le potenzialità predittive. Il dropout nelle reti neurali può essere paragonato ad un “danno cerebrale” intenzionale, volto a ridurre la potenza del modello. In modo del tutto analogo, negli alberi decisionali, si può effettuare la regolarizzazione tramite la tecnica del “pruning”, ovvero elidendo in modo casuale alcune ramificazioni e riducendo così la precisione nella mappatura del dataset di addestramento da parte del modello. Se sono troppo bravo ed abituato a fare un compito molto specifico potrei non essere in grado di risolvere un problema simile, anche se solamente di poco diverso.

In conclusione, un’ultima riflessione sul fenomeno del “sovradattamento”. 

Spesso il Machine Learning viene accostato alla cosiddetta “Intelligenza Artificiale”, il più delle volte in modo improprio e sensazionalistico. L’intelligenza, in particolar modo quella umana, è un fenomeno in gran parte ancora sconosciuto ed estremamente complesso che non deve essere paragonato alle capacità predittive (per quanto alcune volte sbalorditive) di quelli che in fin dei conti sono solamente complicati modelli statistici.

Il fenomeno del “sovradattamento” trova tuttavia notevoli analogie con alcune comuni distorsioni (i più moderni diranno “bias”) della mente umana, rendendo il parallelismo tra intelligenza artificiale ed intelligenza umana, una volta tanto, più digeribile. Tra i comportamenti umani più comuni e socialmente nocivi c’è infatti proprio la “generalizzazione cieca”, spesso semplice frutto dell’ignoranza e della superficialità, tramite la quale vengono ascritte a caratteristiche distintive di un determinato fenomeno semplici peculiarità relative ad un singolo individuo (per dirla in parole semplici, quante volte si vede o sente “fare di tutta l’erba un fascio”) o spesso ad un troppo ristretto numero di osservazioni.

Frasi come “certo che non sa guidare, è una donna!”, oppure “ovvio che è un ladro, è un politico!”, o ancora “certo che è bravo in matematica, è asiatico!”, fanno tutte parte di un comportamento superficiale e distorto tipicamente umano, il quale spesso nasce dalla costruzione di una certezza predittiva sulla base dell’analisi di un campione troppo ristretto o troppo poco eterogeneo (ho conosciuto 3 ragazzi cinesi nel mio viaggio di studio all’estero ed erano tutti molto bravi in matematica!).

Il razzismo, il sessismo ed in generale il qualunquismo sono conseguenze di una mente umana “sovradattata” e “mal-addestrata”?

Francesco