Machine learning: cos’è, come funziona e dove studiarlo

Pubblicato il 19 Mar 2020

Confusion matrix: guida pratica per valutare il modello di classificazione

Cos’è il machine learning (apprendimento automatico)

Il machine learning si definisce come “un modo diverso di programmare una macchina (o un sistema) al fine di farle eseguire un compito”. Prima di chiedersi come funziona il machine learning è molto importante stabilire le giuste aspettative sul potenziale dello stesso per il business, tenendo presente che non vi è nulla di magico o di innovativo. E, sebbene sia facile avere l’impressione (sbagliata) che computer/macchine/sistemi possano diventare rapidamente molto intelligenti (al livello degli esseri umani o oltre, grazie all’intelligenza artificiale), il machine learning ci riporta con i piedi per terra, poiché ha poco a che fare con l’intelligenza umana.

Il machine learning è solo una tecnologia che apprende (esperienza) attraverso la formazione (training), elaborando input specifici per applicare approcci di analisi testuale.

Come funziona il machine learning, le tecniche utilizzate

Sebbene esistano diverse tecniche di machine learning (si veda di seguito), tutte condividono un nucleo simile composto da statistiche e co-occorrenze (combinazioni). In altri termini, il machine learning non ha una conoscenza incorporata, ma richiede un insieme di documenti per la sua “formazione” (più grande è l’insieme di “documenti”, meglio è). Questo training set deve essere preimpostato manualmente da persone fisiche, in modo che l’algoritmo possa registrare ciò che è contenuto nel documento e identificare esempi di come un contenuto specifico sia “accoppiato” con tag specifici. Questo è il motivo per cui il machine learning ha bisogno del costante “contributo umano”.

Per “imparare”, le tecniche di machine learning devono “ingerire” una grande quantità di documenti relativi all’argomento. È richiesta anche l’etichettatura manuale di una grande quantità di documenti che copre questo argomento, nonché l’etichettatura manuale di una quantità simile di documenti che non copre l’argomento. Solo dopo aver elaborato molti documenti guardando le co-occorrenze e la frequenza delle parole chiave il sistema sarà in grado di riconoscere l’argomento. Il livello di accuratezza di un sistema “addestrato” varierà in base al numero di documenti utilizzati durante la fase di formazione e alla copertura del “gergo specifico” in quei documenti. Il sistema deve anche essere riqualificato frequentemente per mantenere lo stesso livello di qualità. Il sovraccarico di informazioni rallenterà l’intero sistema, mentre il suo eccessivo adattamento (troppi documenti dello stesso “genere”) renderà il sistema meno accurato; in altre parole, la selezione sbagliata dei documenti causerà in realtà una diminuzione della qualità.

20OV0130_CTA_streamilineprocesseindustria4.0

Machine learning, la necessità di documenti campione

In un articolo si legge che “con il machine learning, l’ingegnere non sa mai esattamente come il computer svolge i suoi compiti. Il funzionamento della rete neurale è in gran parte opaco e imperscrutabile. Si tratta, in altre parole, di una scatola nera”. Ciò significa che c’è un limite al livello di miglioramento possibile ed è spesso difficile capire perché il sistema sia migliorato o come lo stesso sistema possa migliorare ulteriormente. Per i sistemi di machine learning, semplicemente, non ci sono strumenti con cui perfezionare l’algoritmo. Con il machine learning “puro”, l’unica opzione che si ha è quella di fornire più esempi possibili all’algoritmo. Purtroppo, questo non sempre garantisce il miglioramento dei risultati, ovvero di raggiungere il livello di precisione richiesto. Se si scoprono errori o se il sistema “addestrato” deve essere modificato per qualsiasi motivo, l’intero processo dovrà tornare al punto di partenza.

Possiamo dire che il machine learning supporta facilmente l’organizzazione quando abbiamo un numero significativo di documenti “campione” per addestrare gli algoritmi e dobbiamo affrontare un semplice scenario. Il progetto di analisi del testo, che è un vero candidato per il machine learning puro, è esattamente questo: un caso di bassa complessità e un grande training set con una distribuzione equilibrata di tutti i possibili output. Invece, quando abbiamo scenari che prevedono un piccolo set di campioni non uniformemente distribuito, nonché un’elevata complessità, il machine learning non è sufficiente. Per questi “casi d’uso”, è necessario un “motore linguistico” abbastanza sofisticato da garantire una profonda comprensione dei contenuti e un insieme di strumenti abbastanza potenti da assicurare lo sviluppo e l’applicazione efficace di regole linguistiche avanzate.

Machine learning, caratteristiche e tipologie di apprendimento

Fondamentalmente il machine learning utilizza tre tipi di tecniche:

  • supervised learning, che addestra un modello su dati di input e di output noti, in modo che possa prevedere gli output futuri;
  • unsupervised learning, che trova modelli nascosti o strutture intrinseche nei dati di input;
  • reinforcement learning, che si colloca a metà strada tra i precedenti.

Supervised learning

Il supervised learning (o apprendimento supervisionato) costruisce un modello di machine learning che effettua previsioni basate sull’evidenza in presenza di incertezza. Un algoritmo di supervised learning prende un insieme noto di dati di input e di risposte note ai dati (output) e addestra un modello per generare previsioni ragionevoli per la risposta ai nuovi dati. Il supervised learning si utilizza se si dispone di dati già noti per l’output che si sta cercando di “prevedere”. Il supervised learning utilizza tecniche di classificazione e regressione per sviluppare modelli predittivi. Le tecniche di classificazione prevedono risposte “discrete”; ad esempio: se un’email è vera o è spam, o se un tumore è cancerogeno o benigno. Tali modelli classificano i dati di input in categorie. Le applicazioni tipiche includono l’imaging medico, il riconoscimento vocale e il credit scoring. Si utilizza tale classificazione se i dati in possesso possono essere etichettati, categorizzati o separati in gruppi o classi specifiche. Ad esempio, le applicazioni per il riconoscimento della scrittura manuale utilizzano la classificazione per riconoscere lettere e numeri. Nell’elaborazione delle immagini e nella visione computerizzata, le tecniche di riconoscimento di modelli unsupervised (non supervisionati) vengono utilizzate per il riconoscimento di oggetti e la segmentazione delle immagini. Algoritmi comuni per eseguire la classificazione includono il supporto di macchine a vettori di supporto (SVM), boosted and bagged decision trees, k-nearest neighbor, Naïve Bayes, l’analisi discriminante, la regressione logistica (o modello Logit) e le Reti Neurali Artificiali. Le tecniche di regressione prevedono risposte continue, come ad esempio le variazioni di temperatura o le fluttuazioni della domanda di energia. Le applicazioni tipiche includono la previsione del carico di elettricità e il trading algoritmico. Tra gli algoritmi di regressione vi sono il modello lineare, il modello non lineare, la regolarizzazione e la regressione graduale.

Unsupervised learning

L’unsupervised learning (apprendimento non supervisionato) trova modelli nascosti o strutture intrinseche nei dati. Viene utilizzato per “risalire” all’input senza che questo sia preventivamente etichettato. Il clustering è la tecnica che rappresenta la punta di diamante dell’unsupervised learning; è la più utilizzata, principalmente per l’analisi esplorativa dei dati col fine di trovare modelli o raggruppamenti nascosti nei dati. Le applicazioni per il clustering includono l’analisi della sequenza genica, la ricerca di mercato e il riconoscimento di oggetti. Per esempio, se una società di telefonia mobile vuole ottimizzare i luoghi in cui costruisce antenne di telefonia mobile, può utilizzare tale tipologia di machine Learning per stimare il numero di cluster (gruppi/raggruppamenti) di utenti che afferiscono alle loro antenne; uno smartphone può “parlare” con una sola antenna alla volta, quindi la società utilizzerà algoritmi di clustering per progettare il miglior posizionamento delle antenne di telefonia mobile così da ottimizzare la ricezione del segnale per i gruppi, o cluster, dei loro clienti. Gli algoritmi comuni di clustering includono i K-means e i K-medoids, il clustering gerarchico, i modelli di mistura “gaussiana”, i modelli di Markov nascosti, le mappe auto-organizzate, il clustering fuzzy c-Means e il clustering subtractive.

Reinforcement learning

La “terza via” tra il supervised e l’unsupervised learning è rappresentata dal reinforcement learning (in italiano, “apprendimento per rinforzo”), ossia quell’addestramento dei modelli di machine learning atti a prendere una sequenza di decisioni. L’agente impara a raggiungere un obiettivo in un ambiente incerto e potenzialmente complesso. Nell’apprendimento per rinforzo, un’intelligenza artificiale affronta una situazione simile a un gioco. La macchina impiega tentativi e svariati errori per trovare una soluzione al problema. Per far sì che tale macchina faccia ciò che il programmatore vuole, l’intelligenza artificiale ottiene premi – oppure penalità – per le azioni che compie. Il suo obiettivo è quello di massimizzare la ricompensa totale. Anche se il progettista stabilisce la “politica di ricompensa” – cioè le regole del gioco – allo stesso tempo non dà al modello alcun suggerimento su come risolvere il gioco. Spetta al modello di machine learning capire come eseguire il compito per massimizzare la ricompensa, partendo da prove totalmente casuali e finendo con tattiche sofisticate e abilità sovrumane. Sfruttando il potere della ricerca, l’apprendimento per rinforzo è attualmente il modo più efficace per sviluppare la “creatività” della macchina. A differenza degli esseri umani, l’intelligenza artificiale può raccogliere l’esperienza di migliaia di giochi paralleli se un algoritmo di apprendimento per rinforzo viene eseguito su un’infrastruttura informatica sufficientemente potente.

Applicazioni di guida autonoma

Un utilizzo sempre più massivo delle tecniche di machine learning riguarda indubbiamente il settore automobilistico. Le potenziali applicazioni includono la classificazione degli scenari di guida e la valutazione delle condizioni del guidatore attraverso la “fusione” dei dati provenienti da diversi sensori interni ed esterni, come telecamere, radar, lidar (simile al radar, ma con diverso funzionamento) o IoT (Internet of Things). Le applicazioni che eseguono il sistema di infotainment di un’automobile possono ricevere informazioni dai sistemi di “fusione” dei dati dei sensori e hanno, ad esempio, la possibilità di dirigere il veicolo verso un ospedale se l’auto percepisce che c’è qualcosa che non va con il conducente. Queste applicazioni basate sul machine learning possono essere reattive persino a un gesto del conducente, alla sua voce (riconoscimento vocale) e al linguaggio utilizzato (es. riconoscimento vocale con traduzione). Come abbiamo esaminato in precedenza, gli algoritmi possono essere classificati – mettendo un attimo da parte il reinforcement learning – come supervisionati (supervised) e non supervisionati (unsupervised). La differenza tra i due, come detto, è il modo in cui essi imparano. A titolo di “rimando”, gli algoritmi supervisionati imparano utilizzando un set di dati di formazione (data training), e continuano ad apprendere fino a raggiungere il livello di “confidenza” desiderato (minimizzazione dell’errore di probabilità). Possono essere ripartiti in classificazione, regressione e riduzione delle dimensioni o rilevamento di anomalie. Gli algoritmi non supervisionati cercano di dare “un senso” ai dati disponibili. Ciò significa che un algoritmo sviluppa una relazione all’interno dell’insieme di dati disponibili per identificare i modelli, oppure divide l’insieme di dati in sottogruppi in base al livello di somiglianza tra di essi.

Gli algoritmi non supervisionati possono essere in gran parte ripartiti in clustering e apprendimento delle regole di associazione. Nell’apprendimento supervisionato, c’è un’etichetta (label) di destinazione per ogni esempio di formazione; nell’apprendimento non supervisionato, non ci sono etichette; e l’apprendimento di rinforzo ha etichette sparse e ritardate nel tempo, ossia le “ricompense” future. Basandosi solo su queste ricompense, l’agente deve imparare a comportarsi in un dato modo nell’ambiente dove opera. Per quello che attiene il “terzo tipo”, ossia il reinforcement learning, l’obiettivo è quello di sviluppare algoritmi di apprendimento efficienti, così come quello di comprendere i meriti e i limiti dell’algoritmo. L’apprendimento per rinforzo è di grande interesse a causa del gran numero di applicazioni pratiche che può potenzialmente affrontare, che vanno dai problemi nell’intelligenza artificiale, alla ricerca operativa o all’ingegneria di controllo – tutte rilevanti per lo sviluppo di un’auto a guida autonoma. Questo può essere classificato come apprendimento diretto e indiretto. Uno dei compiti principali di qualsiasi algoritmo di machine learning nell’auto con guida autonoma è la resa continua dell’ambiente circostante e la previsione di possibili cambiamenti in tale ambiente. Questi compiti sono principalmente suddivisi in quattro sottocompiti: rilevamento di oggetti; identificazione o riconoscimento dell’oggetto; classificazione dell’oggetto; localizzazione dell’oggetto e previsione del movimento.

Gli algoritmi di machine learning possono essere suddivisi in quattro categorie: algoritmi di regressione, riconoscimento di pattern, algoritmi di cluster e algoritmi di matrice decisionale. Una categoria di algoritmi di machine learning può essere utilizzata per eseguire due o più sottocompiti diversi. Ad esempio, gli algoritmi di regressione possono essere usati per il riconoscimento di oggetti, così come per la localizzazione di oggetti o la previsione del movimento.

Dove si studia il machine learning

Con forti radici nella statistica, il machine learning sta diventando uno dei campi informatici più interessanti e veloci in cui specializzarsi e – in genere – affermarsi. Vi è un’infinità di campi in cui il machine learning può trovare applicazione: i chatbot, il filtraggio dello spam, il servizio di annunci, i motori di ricerca il rilevamento delle frodi ecc. Questi sono solo alcuni esempi di come i modelli di machine learning siano alla base della vita quotidiana (basti pensare a un semplice utilizzo dello smartphone o del Pc). Il machine learning è ciò che permette di trovare e creare modelli matematici per cose che a volte sarebbero impossibili da fare per gli esseri umani. A differenza dei corsi di Data science, che trattano argomenti come l’analisi esplorativa dei dati, la statistica, la comunicazione e le tecniche di visualizzazione, i corsi di machine learning si concentrano sull’insegnamento dei soli algoritmi di machine learning, su come funzionano matematicamente e su come utilizzarli in un linguaggio di programmazione (ad esempio, Python). Il sito LearnDataSci (un esempio, tra gli altri) indica quelle che sono le caratteristiche che deve avere un buon corso di machine learning. Il corso dovrebbe concentrarsi rigorosamente sul machine learning; utilizzare linguaggi di programmazione gratuiti e open-source, ovvero Python, R, o Octave; utilizzare library gratuite e open-source per questi linguaggi; deve contenere molta pratica; deve spiegare come funzionano matematicamente gli algoritmi; deve essere autosufficiente, su richiesta o disponibili ogni mese circa; deve avere istruttori coinvolgenti e lezioni interessanti; infine, deve avere valutazioni e recensioni superiori alla media

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati