Come apprende una macchina?
Una panoramica dettagliata del processo di training nel Machine Learning
Programmare un modello di Machine Learning
Finora abbiamo appena accennato al fatto che un modello di Machine Learning debba essere 'addestrato' per produrre il risultato desiderato. In questa lezione imparerai quali sono le fasi del processo di training, attraverso un caso studio specifico.
L'obiettivo è quello di farti capire il modo in cui le macchine apprendono e non già quello di farti riprodurre il processo di programmazione da zero.
Prima di decidere se utilizzare il Machine Learning, chiediti: a quale domanda sto cercando di rispondere? E ho bisogno del Machine Learning per trovare queste risposte?
A quale domanda sto cercando di rispondere?
Immagina che il tuo sito dia ai lettori l'opportunità di commentare gli articoli. Ogni giorno vengono pubblicati migliaia di commenti e, come spesso accade, le interazioni possono diventare sgradevoli.
Sarebbe bello se un sistema automatizzato potesse classificare tutti i commenti pubblicati sulla tua piattaforma, identificare quelli che potrebbero essere "tossici" e segnalarli ai moderatori umani, che potrebbero quindi rivederli per migliorare la qualità della discussione.
Questo è il classico tipo di problema che il Machine Learning può aiutarti a risolvere. E infatti lo sta già facendo. Ad esempio, dai un'occhiata al progetto Jigsaw’s Perspective API per maggiori informazioni.
Questo è l'esempio che useremo per capire come si crea un modello di Machine Learning, tieni però presente che lo stesso procedimento può essere applicato ad altrettanti casi studio diversi.
Imparare a capire quando usare il Machine Learning
Per allenare un modello a riconoscere i commenti tossici occorrono dei dati. Nel caso specifico, serviranno esempi di commenti pubblicati sul tuo sito web. Ma prima ancora di impostare il tuo dataset è importante riflettere sul risultato che intendi ottenere.
Anche per gli esseri umani non è sempre facile valutare se un commento sia tossico e quindi non debba essere pubblicato online. Due moderatori possono avere opinioni diverse sulla 'tossicità' di un commento. Quindi non aspettarti che l'algoritmo 'azzecchi' sempre e al primo colpo.
Il Machine Learning può elaborare un grandissimo numero di commenti in pochi minuti, ma è importante tenere a mente che lo fa 'tirando a indovinare' sulla sola base di ciò che impara. A volte darà risposte sbagliate e, in generale, commetterà degli errori.
Come ottenere i dati
Ora è il momento di preparare il tuo dataset. Per il nostro caso di studio sappiamo già di quali dati abbiamo bisogno e dove trovarli: i commenti pubblicati sul tuo sito web.
Dato che stai chiedendo al modello di Machine Learning di riconoscere quando un commento è tossico, dovrai fornire esempi etichettati e definiti del tipo di elementi testuali che intendi classificare (cioè i commenti) e delle categorie o etichette che il sistema dovrà essere in grado di prevedere ('Tossico' o 'Non tossico').
Per altre finalità i dati potrebbero non essere così prontamente disponibili. Potresti doverli ottenere dalla tua azienda oppure da terze parti. In entrambi i casi, assicurarti di leggere le norme sulla protezione dei dati in vigore nel tuo paese e nelle zone in cui la richiesta verrà elaborata.
Come formattare i dati
Una volta che i dati sono stati raccolti e prima di trasmetterli alla macchina, è necessario analizzarli in profondità. Il risultato del tuo modello di Machine Learning rispecchierà la bontà e la correttezza dei tuoi dati (per avere maggiori informazioni sul concetto di 'correttezza" ed obiettività o equità dei dati vedi la prossima lezione). Inoltre, devi riflettere sugli effetti negativi che il tuo progetto potrebbe avere sulle persone direttamente interessate dalle azioni suggerite dal modello stesso.
In particolare, per costruire un modello efficace, dovrai assicurarti di includere un numero sufficiente di esempi etichettati e definiti, e di distribuirli equamente tra le categorie. Dovresti anche fornire una vasta gamma di esempi, tenendo conto del contesto e del linguaggio utilizzati, in modo che il modello possa tenere conto della variazione nell'area critica (cioè la sezione dei commenti).
Come scegliere un algoritmo
Una volta terminata la preparazione del dataset, è necessario scegliere un algoritmo di Machine Learning da poter istruire. Ogni algoritmo risponde a uno scopo preciso. Di conseguenza, è necessario scegliere il giusto tipo di algoritmo in base al risultato che si desidera ottenere.
Nelle lezioni precedenti abbiamo imparato quali sono i diversi approcci al Machine Learning. Poiché il nostro caso studio richiede dati etichettati per poter classificare i nostri commenti come 'tossici' o 'non tossici', il modello che stiamo mettendo in pratica è quello dell'apprendimento supervisionato.
Google Cloud AutoML Natural Language è uno dei tanti algoritmi che consentono di realizzare l'obiettivo che ci siamo posti. Qualunque algoritmo tu scelga, assicurati di seguire le istruzioni specifiche su come formattare il dataset per renderlo funzionale al modello di apprendimento.
Training, validazione e testing del modello
Passiamo ora alla fase di training vero e proprio, durante la quale utilizziamo i dati per migliorare gradualmente la capacità del nostro modello di prevedere se un determinato commento sia tossico o meno. Inseriamo la maggior parte dei nostri dati nell'algoritmo, aspettiamo qualche minuto e voilà, il nostro modello è pronto.
Ma perché solo "la maggior parte" dei dati? Affinché il modello apprenda correttamente, è necessario dividere i dati in tre set separati:
- Il dataset per il training costituisce la base di informazioni che il tuo modello 'vede' e da cui inizia ad apprendere.
- Anche il set di validazione è parte integrante del processo di training, ma è tenuto separato per regolare gli iperparametri del modello, variabili che specificano la struttura del modello.
- Il dataset per la parte di testing entra in gioco solo dopo il processo di training. Lo usiamo per testare le prestazioni del nostro modello su dati che non ha ancora visto.
Come valutare i risultati
Come fai a sapere se il modello ha imparato correttamente a individuare commenti potenzialmente tossici?
Al termine del training, l'algoritmo fornisce una panoramica delle prestazioni del modello. Come abbiamo già detto, non puoi pretendere che il modello si comporti sempre nel modo corretto nel 100% dei casi. Sta a te decidere quale sia una prestazione 'abbastanza buona', a seconda della situazione.
Gli elementi principali da tenere in considerazione per valutare il tuo modello sono i cosiddetti 'falsi positivi' e 'falsi negativi'. Nel nostro caso, un falso positivo potrebbe essere un commento che non è tossico ma viene contrassegnato come tale. Puoi declassificarlo rapidamente e andare avanti. Un falso negativo potrebbe essere invece un commento tossico che però il sistema non contrassegna come tale. Quindi è facile intuire quale tra i due errori è preferibile che il tuo modello non commetta.
La valutazione giornalistica
La valutazione dei risultati del processo di training non termina con l'analisi tecnica.. A questo punto, i valori e le linee guida giornalistici dovrebbero aiutarti a decidere se e come utilizzare le informazioni fornite dall'algoritmo.
Comincia chiedendoti se adesso disponi di informazioni che prima non erano disponibili e se tali informazioni siano notiziabili. I risultati ottenuti confermano la tua ipotesi esistente o fanno luce su nuove prospettive o aspetti della vicenda che non avevi preso in considerazione finora?
Ora dovresti aver compreso meglio il funzionamento del Machine Learning e potresti essere ancora più stimolato o stimolata a esplorarne il potenziale. Non siamo, però, ancora pronti per lanciarci. La prossima lezione introdurrà il problema numero uno che il Machine Learning porta con sé: il bias o parzialità.