Come facciamo a sapere se un modello di machine learning risponde come ci aspettiamo risponda? Quali tecniche esistono? Come facciamo a capire quali devo applicare? Nel seguente articolo cercheremo di rispondere a questi quesiti.
Indice dei contenuti
Ogni volta che viene creato qualcosa c’è il rischio che possa non funzionare come ci si aspetti: d’altronde essendo gli umani creature fallibili, tutto ciò che nasce dalle loro mani, e menti, lo è di conseguenza.
Gli oggetti possono presentare difetti funzionali e/o estetici, i sistemi errori più o meno subdoli e il codice dei bug la cui esistenza non è nemmeno presa in considerazione.
Come ci si comporta dopo una tale presa di coscienza?
L’industria del software negli anni ha sviluppato numerose tecniche e approcci per ridurre la probabilità di avere un codice con bug annidati al suo interno.
Tutte questa tecniche vanno sotto il termine “Testing”
e hanno come scopo quello di rendere facile e veloce l’individuazione di eventuali problemi nel codice che fa girare i nostri software, validando sia i singoli moduli che lo compongono sia il modo in cui questi interagiscono tra loro.
Se avete letto l’articolo prima di questo, in caso contrario vi invito a farlo (qui), lì veniva evidenziato come un modello di machine learning possa essere paragonato a un sistema informatico dove, a differenza del primo, vengono generate regole a partire da dati (input) e output attesi. Ciò che non è stato mostrato è come viene validato.
La strategia di validazione dei modelli di machine learning
/ [ torna al menu ]
La scelta della strategia di validazione dovrebbe essere la prima cosa da fare se si decide di sviluppare un modello di machine learning a partire dai propri dati.
Il motivo è semplice: questa non dipende dall’algoritmo di apprendimento che utilizzeremo (reti neurali, alberi di decisione, etc..) ma dipende dal comportamento che vogliamo ottenere dal modello, qualunque esso sia.
Prima di addentrarci in quali strategie vengono comunemente adottate esplicitiamo un paio di concetti che ci torneranno utili per prendere decisioni più consapevoli su come gestire tutto il processo di validazione
Apprendimento vs. Memorizzazione
/ [ torna al menu ]
Lo sviluppo di soluzioni basate sul machine learning ha un aspetto fondamentale, poiché questo genere di approcci è data centrico:
tutto ruota attorno ai dati, dalla loro forma, passando per la loro numerosità fino ad arrivare alla loro qualità.
Tutti questi aspetti concorrono alla buona riuscita del progetto, ovvero ottenere un modello che sia in grado di generalizzare. Per generalizzare si intende la capacità del modello di estrarre dai dati le caratteristiche comuni a tutta la famiglia a cui appartengono.
Un buon modello è in grado di generalizzare: per esempio, se lo addestriamo con immagini di cani, dovrebbe riconoscere altri cani, anche se non li ha mai “visti” prima.
Overfitting e Underfitting
Ma cosa succede quando il modello non riesce nello scopo?
Abbiamo due fenomeni contrapposti alla buona riuscita di un addestramento chiamati overfitting e underfitting.
L’overfitting è ciò che accade quando il modello memorizza il dataset di addestramento, ovvero estrae non solo le caratteristiche comuni alla classe di dati che stiamo usando, ma anche le caratteristiche distintive di tutti gli esempi che compongono il set che abbiamo usato.
Questo porta come risultato un modello che performa bene nel riconoscere i dati che ha già visto ma male su dati sconosciuti.
Nel caso del underfitting il modello non riesce a performare bene nemmeno sui dati di addestramento.
Leggi anche: I sistemi di apprendimento del Machine Learning |
Per riassumere:
Overfitting: il modello memorizza troppo i dati di addestramento, ma fallisce su dati nuovi.
Underfitting: il modello non riesce nemmeno a interpretare bene i dati su cui è stato addestrato.
Vuoi scoprire come scegliere la strategia di validazione più adatta al tuo progetto?
Richiedici una consulenza!
Definizione delle metriche
/ [ torna al menu ]
Scegliere le metriche giuste è il primo passo per una buona validazione. Ogni metrica illumina solo un lato del problema: nessuna offre un giudizio completo.
A ragion di ciò, sulla base dei propri obiettivi, è spesso consigliabile scegliere più di una metrica in modo da avere una visione più ampia sul comportamento di quest’ultimo.
Supponiamo di voler addestrare un modello che riconosca le email di SPAM.
Diciamo che scegliamo di utilizzare come sola e unica metrica l’accuratezza, che viene spesso utilizzata nei problemi di classificazione, calcolata come il rapporto tra il numero di esempi classificati correttamente e il numero totale di esempi. Otteniamo un ottimo 95% di accuratezza. Perfetto, no?
Non proprio.
Se il 95% delle email nel dataset sono “normali” e solo il 5% SPAM, allora il modello potrebbe semplicemente ignorare le email di SPAM e classificare tutto come “normale”, ottenendo comunque il 95%.
Ciò accade perché l’accuratezza è una metrica molto sensibile al fatto che il dataset sia bilanciato e, visto che non è sempre possibile ottenere un dataset bilanciato, avremmo dovuto optare per altre metriche come, ad esempio, precision e recall.
Per ora ci fermiamo qui e vi diamo appuntamento al prossimo articolo, in cui approfondiremo le tecniche più usate (come hold-out e cross-validation) e quando applicarle.

Non hai ancora pensato a come integrare l’intelligenza artificiale nei tuoi processi?
Scopri cosa facciamo con l’Intelligenza Artificiale
Leggi altri articoli pubblicati nel nostro blog.
Questo articolo ha 0 commenti