Cos'è il machine learning?

Una forma di intelligenza artificiale (AI) che consente a un sistema di apprendere dai dati in modo iterativo, utilizzando vari algoritmi per descrivere e prevedere i risultati, e imparando dai dati che producono modelli precisi.

Introduzione al machine learning

Avere computer che capiscono cosa fare senza che gli venga detto esplicitamente è stato un desiderio irrealizzato per molto tempo.

L'idea di un'auto su cui si possa viaggiare (ovviamente al posto di guida) e che si occupi di tutto il viaggio, identificando pedoni e buche e rispondendo in modo rapido ed efficiente ai cambiamenti nell'ambiente per portare i passeggeri in sicurezza a destinazione: questo è il machine learning (ML) nella pratica.

Come funziona? Iniziamo con l'analizzare solo i dati aziendali.

Il machine learning è un tipo di intelligenza artificiale che consente alle aziende di dare un senso a enormi quantità di dati e di acquisire conoscenze da essi. Consideriamo, ad esempio, Twitter. Secondo Internet Live Stats, gli utenti di Twitter inviano circa 500 milioni di tweet ogni giorno, il che equivale a circa 200 miliardi di tweet all'anno. Non è umanamente possibile analizzare, classificare, ordinare, apprendere e prevedere nulla con un tale numero di tweet.

Ulteriori informazioni

Il machine learning richiede alle aziende un lavoro considerevole affinché queste possano ottenere delle informazioni preziose. Per ottenere il massimo dal machine learning, bisogna disporre di dati puliti e sapere quali domande si intende porre. A questo punto è possibile selezionare il modello e l'algoritmo migliori per la propria azienda. Il machine learning non è un processo semplice o facile. Il successo del suo impiego richiede un lavoro diligente.

Esiste un ciclo di vita per il machine learning:

  • Comprensione. Perché ci si sta rivolgendo al machine learning e cosa si sta cercando di fare o imparare.
  • Raccolta dati e pulizia. Si dispone della quantità di dati di cui c'è bisogno e questi sono sufficientemente puliti per offrire le informazioni che servono.
  • Selezione delle caratteristiche del dato.  Implica la selezione dei dati da inserire in un sistema di machine learning per creare un modello. A seconda del tipo di algoritmo utilizzato, sono disponibili diversi metodi per assistere nella selezione delle caratteristiche del dato. Ad esempio, supponiamo di utilizzare un algoritmo ad albero decisionale. In tal caso, l'analista o lo strumento di modellazione può applicare un "punteggio di interesse", ad esempio, alle colonne in un database per determinare se tali dati devono essere utilizzati per costruire il modello.
  • Selezione del modello. La scelta del file (modello) che è stato addestrato per elaborare e individuare specifici elementi nei dati. A un modello viene fornito un algoritmo con cui operare e i dati di test combineranno i due elementi e svilupperanno le sue conclusioni.
  • Addestramento e ottimizzazione. Le conclusioni che il modello ha individuato per permettere di ottenere risposte alle domande.
  • Valutazione del modello e dell'algoritmo per determinare se è pronto per l'uso o se è necessario tornare indietro di un paio di passaggi e perfezionare il modello, la caratteristica del dato, l'algoritmo o i dati per raggiungere gli obiettivi prefissati.
  • Distribuzione del modello addestrato in produzione.
  • Analisi dell'output del modello esistente in produzione 

 

Per cosa viene usato il machine learning? Applicazioni di machine learning

Il machine learning è uno strumento che permette alle aziende di comprendere e imparare dai propri dati. Un'azienda può usarlo in un vasto numero di settori. Il caso d'uso dipende dal fatto che un'azienda stia cercando di migliorare le vendite, fornire una funzione di ricerca, integrare comandi vocali nel proprio prodotto o creare un'auto a guida autonoma.

Settori di applicazione del machine learning

Il machine learning ha una fantastica gamma di utilizzi nelle aziende di oggi e tale varietà può solo aumentare e migliorare nel tempo. I settori di applicazione del machine learning includono social media e consigli sui prodotti, riconoscimento delle immagini, diagnosi in campo medico, traduzione linguistica, riconoscimento vocale e data mining, solo per citarne alcuni.

Le piattaforme di social media, come Facebook, Instagram o LinkedIn, utilizzano il machine learning per suggerire pagine da seguire o gruppi a cui partecipare in base ai post apprezzati da uno specifico utente. Utilizza i dati storici di ciò che è piaciuto ad altri o di quali post sono simili a ciò che è piaciuto all'utente e li offre come suggerimenti o li aggiunge al suo feed.  

È anche possibile utilizzare il ML su un sito di e-commerce per fornire consigli sui prodotti basati su acquisti precedenti, ricerche e azioni di altri utenti simili a quelle dell'utente.

Un uso significativo del machine learning avviene oggi nel campo del riconoscimento delle immagini. Le piattaforme di social media consigliano di taggare le persone nelle foto in base ai risultati del machine learning. La polizia ha avuto occasione di usarlo nella ricerca di sospetti in immagini o video. Con la pletora di telecamere installate in aeroporti, negozi e citofoni, è possibile capire chi ha commesso un crimine o in quale direzione è andato il criminale.

Anche le diagnosi in campo medico sono un buon campo di applicazione del ML. Dopo un evento come un infarto, è possibile tornare indietro e visualizzare eventuali segnali di allarme che sono stati trascurati. Un sistema a uso di medici o ospedali potrebbe essere alimentato da cartelle cliniche del passato e addestrato a evidenziare le connessioni tra l'input (comportamento, risultato del test o sintomo) e l'output (ad esempio, un infarto). Quindi, quando in futuro il medico inserisce i suoi appunti e i risultati dei test nel sistema, la macchina potrebbe individuare i sintomi dell'infarto in modo molto più affidabile rispetto agli umani, in modo che il paziente e il medico possano agire per prevenirlo.

La traduzione linguistica su pagine Web o app per piattaforme mobili è un altro esempio di uso del machine learning. Alcune app fanno un lavoro migliore di altre, il che dipende dal modello di machine learning, dalla tecnica e dagli algoritmi che utilizzano.

Un'applicazione quotidiana del machine learning è oggi quella nel campo delle carte bancarie e di credito. Ci sono segnali di frode che il machine learning è in grado di rilevare rapidamente laddove agli esseri umani servirebbe molto tempo per scoprirli o addirittura passerebbero del tutto inosservati. La pletora di transazioni che sono state esaminate ed etichettate (frode o meno) può consentire al machine learning di imparare a individuare le frodi in una specifica transazione futura. La tecnica di machine learning ideale per questo scopo è il data mining.

Data mining

Il data mining è un tipo di machine learning che analizza i dati per fare previsioni o scoprire modelli all'interno dei big data. Il termine è un po' fuorviante in quanto non richiede a nessuno, che si tratti di un cattivo attore o dipendente, di rovistare nei dati per trovarne uno che sia utile. Il processo implica invece l'individuazione nei dati di modelli utili per prendere decisioni in futuro.

Prendiamo, ad esempio, una società di carte di credito. A chi ha una carta di credito, è probabilmente capitato a un certo punto di essere informato dalla banca di un'attività sospetta sulla carta. Come fa la banca a individuare tale attività così rapidamente, inviando un avviso quasi istantaneo? È il data mining continuo che consente questa protezione dalle frodi. All'inizio del 2020, solo negli Stati Uniti, sono state emesse oltre 1,1 miliardi di carte. Il numero di transazioni eseguite con queste carte produce moltissimi dati usati per il mining, la ricerca di modelli e l'apprendimento allo scopo di identificare le transazioni sospette future.

Ulteriori informazioni

Deep learning

Il deep learning è un tipo specifico di machine learning basato su reti neurali. Una rete neurale funziona emulando il modo in cui i neuroni di un cervello umano funzionano per prendere una decisione o comprendere un argomento. Ad esempio, un bambino di sei anni può guardare una faccia e distinguere sua madre dall'addetto al traffico davanti alla scuola perché il cervello analizza rapidamente molti dettagli: colore dei capelli, lineamenti del viso, cicatrici, ecc., tutto in un batter d'occhio. Il machine learning replica questo processo sotto forma di deep learning.

Una rete neurale è costituita da un numero di livelli che va da 3 a 5: un livello di input, da uno a tre livelli nascosti e un livello di output. All'interno di ognuno dei livelli nascosti avvengono le decisioni che portano verso il livello di output o la conclusione. Di che colore sono i capelli? Di che colore sono gli occhi? C'è una cicatrice? Nel momento in cui i livelli aumentano fino a essere centinaia, si parla di deep learning.

Tipi di machine learning

Esistono fondamentalmente 4 tipi di algoritmi di machine learning: supervisionato, semi-supervisionato, non supervisionato e con rinforzo. Gli esperti di machine learning ritengono che circa il 70% degli algoritmi di machine learning in uso oggi siano supervisionati. Funzionano con set di dati noti o etichettati, ad esempio immagini di cani e gatti. I due tipi di animali sono noti, quindi gli amministratori possono etichettare le immagini prima di sottoporle all'algoritmo.

Gli algoritmi di machine learning non supervisionati apprendono da set di dati sconosciuti. Consideriamo, ad esempio, i video di TikTok. Ci sono così tanti video con così tanti argomenti che è impossibile utilizzarli per addestrare un algoritmo in modo supervisionato. I dati non sono ancora etichettati.

Gli algoritmi di machine learning semi-supervisionati vengono inizialmente addestrati con un piccolo set di dati noto ed etichettato. Vengono quindi applicati a un set di dati non etichettati etichetta più grande per proseguire con il loro addestramento.

Gli algoritmi di machine learning con rinforzo non vengono inizialmente addestrati. Imparano per mezzo di tentativi ed errori durante il funzionamento. Pensiamo a un robot che stai imparando a navigare tra un mucchio di rocce. Ogni volta che cade, impara cosa non funziona e altera il suo comportamento finché non ha successo. Pensiamo all'addestramento del cane e all'uso di dolcetti per insegnare i vari comandi. Con il rinforzo positivo, il cane continuerà a eseguire i comandi e cambierà il comportamento che non genera una risposta favorevole.  

Machine learning supervisionato vs. non supervisionato

Machine learning supervisionato

Utilizza set di dati noti, stabiliti e classificati per individuare i modelli. Espandiamo l'idea precedente delle immagini di cani e gatti. Si potrebbe disporre di un enorme set di dati pieno di migliaia di animali diversi racchiusi in milioni di immagini. Poiché i tipi di animali sono noti, questi potrebbero essere stati raggruppati ed etichettati prima di sottometterli all'algoritmo di machine learning supervisionato affinché impari a capire.

L'algoritmo supervisionato ora confronta l'input con l'output e l'immagine con l'etichetta del tipo di animale. Alla fine imparerà a riconoscere un certo tipo di animale nelle nuove foto che incontra.

Machine learning senza supervisione

Gli algoritmi di machine learning non supervisionati sono usati oggi come filtri SPAM. Inizialmente, gli amministratori potevano programmare i filtri per cercare parole specifiche nell'email al fine di individuare le email di SPAM. Questo non è più possibile, quindi in questo caso l'uso del machine learning non supervisionato è ideale. L'algoritmo di machine learning non supervisionato riceve email che non sono state etichettate per iniziare a cercare modelli. Quando individua tali modelli, imparerà a individuare l'aspetto dello SPAM e lo identificherà nell'ambiente di produzione. 

Tecniche di machine learning

Le tecniche di machine learning risolvono i problemi. A seconda del problema da affrontare, bisogna scegliere una tecnica di machine learning specifica. Ecco 6 tecniche comuni.

La tecnica della regressione

La regressione può essere utilizzata per prevedere i prezzi del mercato immobiliare o determinare il prezzo di vendita ottimale di una pala da neve in Minnesota a dicembre. La regressione si basa sull'assunto che, anche se i prezzi oscillano, torneranno sempre al prezzo medio. Anche se nel tempo i prezzi delle case aumentano, c'è una media che si ripresenterà sempre. È possibile tracciare i prezzi nel tempo su un grafico e individuare la media mentre passa il tempo. La proiezione della linea rossa sul grafico consente le previsioni future.

Classificazione

La classificazione viene utilizzata per raggruppare i dati in categorie note. Si potrebbero voler individuare clienti che siano prevedibilmente buoni clienti (che tornano sempre e spendono più soldi) o che prevedibilmente inizieranno a fare acquisti altrove. Se si riesce a guardare indietro nel tempo e individuando i predittori per ogni classificazione di clienti, è possibile applicarli ai clienti attuali e prevedere a quale gruppo appartengono. In questo modo sarà possibile eseguire azioni di marketing più efficaci e magari trasformare il cliente potenzialmente perso in un eccellente cliente abituale. Questo è un buon esempio di machine learning supervisionato.

Clustering

A differenza della tecnica di classificazione, il clustering è una tecnica di machine learning non supervisionato. Nel clustering, il sistema individua il modo in cui raggruppare dati che non si sa come raggruppare. Questo tipo di machine learning è eccellente per valutare immagini mediche, analizzare social network o individuare anomalie.

Google utilizza il clustering per la generalizzazione, la compressione dei dati e la tutela della privacy in prodotti come i video di YouTube, le app di Play e i brani musicali.

Rilevazione delle anomalie

Il rilevamento delle anomalie viene utilizzato quando si cercano valori anomali, analogamente all'individuazione della pecora nera in un gregge. Quando si esamina una quantità enorme di dati, queste anomalie sono impossibili da rilevare per gli esseri umani. Ma, ad esempio, se un data scientist fornisse a un sistema i dati di fatturazione medica di molti ospedali, il rilevamento delle anomalie troverebbe un modo per raggruppare la fatturazione. Potrebbe scoprire una serie di valori anomali che si rivelano essere le occasioni in cui si verificano le frodi.

Analisi del paniere di mercato

La logica dell'analisi del paniere di mercato consente previsioni future. Un semplice esempio: se i clienti aggiungono carne macinata, pomodori e tacos al loro carrello, potresti prevedere che aggiungeranno formaggio e panna acida. Queste previsioni possono essere utilizzate per generare vendite extra offrendo preziosi suggerimenti agli acquirenti online per gli articoli che potrebbero dimenticare o per aiutare a raggruppare i prodotti in un negozio.

Due professori del MIT hanno usato questo approccio per scoprire "araldi del fallimento". A quanto pare, ad alcuni clienti piacciono i prodotti che non hanno successo. Se si riesce a individuarli, è possibile determinare se continuare a vendere un prodotto e che tipo di azioni di marketing attuare per aumentare le vendite verso i clienti giusti.

Dati di serie temporali

Molti di noi raccolgono serie temporali di dati attraverso i sensori per il fitness indossati al polso. Questi possono raccogliere informazioni sui battiti cardiaci al minuto, sui passi al minuto o all'ora effettuati e alcuni misurano ora persino la saturazione di ossigeno nel corso del tempo. Con questi dati, potrebbe essere possibile prevedere quando una persona correrà in futuro. Potrebbe anche essere possibile raccogliere dati sui macchinari e prevedere i guasti grazie ai dati legati al tempo relativi a livello di vibrazione, livello di rumore in dB e pressione.

Algoritmi di machine learning

Se si suppone che il machine learning impari dai dati, come si progetta un algoritmo per l'apprendimento e la ricerca di dati statisticamente significativi? Gli algoritmi di machine learning supportano il processo di machine learning supervisionato, non supervisionato o con rinforzo.

Gli ingegneri dei dati scrivono pezzi di codice che sono gli algoritmi che consentono a una macchina di apprendere o individuare un significato nei dati.

Diamo un'occhiata ad alcuni algoritmi specifici tra i più comuni. Ecco i 5 principali in uso oggi.

  • Gli algoritmi di regressione lineare stabiliscono una relazione adattando variabili indipendenti e dipendenti a un grafico e tracciando una linea retta che rappresenta la media o la tendenza. Il dizionario Merriam-Webster definisce la regressione come "una funzione che fornisce il valore medio di una variabile casuale a condizione che una o più variabili indipendenti assumano i valori specificati". Questa definizione si applica anche alla regressione logistica.
  • Anche la regressione logistica (nota anche come logit) adatta le variabili a un grafico, così come la regressione lineare, ma il grafico tracciato non è lineare. La linea qui diventa una funzione sigmoidea.
  • Un albero decisionale è un algoritmo molto comunemente usato all'interno del machine learning supervisionato. Viene utilizzato per classificare i dati per variabili categoriali e continue.
  • Support Vector Machine disegna un iperpiano basato sui due punti dati più vicini. Questo separa i dati definendo le classi. Classifica i dati in base a uno spazio n-dimensionale. N rappresenta il numero di diverse caratteristiche del dato di cui si dispone.
  • Naïve Bayes calcola la probabilità di uno specifico risultato. È molto efficace e supera i modelli di classificazione più sofisticati. Un modello classificatore bayesiano comprenderà che una specifica caratteristica del dato non è correlata alla presenza di altre caratteristiche particolari.

Modelli di machine learning  

Dopo aver combinato il tipo di machine learning (supervisionato, non supervisionato, ecc.), le tecniche e gli algoritmi, il risultato è un file che è stato addestrato. Questo file può ora ricevere nuovi dati e sarà in grado di riconoscere i modelli e fare previsioni o suggerire decisioni per l'azienda, il manager o il cliente, se necessario.

I migliori linguaggi per il machine learning

I linguaggi per il machine learning sono lo strumento con cui vengono scritte le istruzioni per l'apprendimento del sistema. Ogni linguaggio ha una comunità di utenti in grado di fungere da supporto per l'apprendimento e l'assistenza. Ogni linguaggio include librerie per l'utilizzo nel campo del machine learning.

Ecco i primi 10 secondo il sondaggio GitHub Top 10 nel 2019.

  • Python
  • C++
  • JavaScript
  • Java
  • C#
  • Julia
  • Shell
  • R
  • TypeScript
  • Scala: un linguaggio utilizzato per le interazioni con i big data


Machine learning con Python

Poiché Python è il linguaggio più comune per il machine learning, ecco qualche informazioni più approfondita su di esso.

Python è un linguaggio interpretato, open source e orientato agli oggetti che prende il nome dai Monty Python. Poiché è un linguaggio interpretato, viene convertito in bytecode prima di essere eseguibile da una macchina virtuale Python.

Ci sono una varietà di funzionalità che rendono Python la scelta ideale per il machine learning.

  • Un ampio set di potenti pacchetti che subito disponibili per l'uso. Esistono pacchetti specifici per il machine learning come numpy, scipy e panda.
  • Prototipazione facile e veloce.
  • Esistono diversi strumenti che facilitano la collaborazione.
  • Python può continuare a essere il linguaggio preferito da un data scientist in tutte le fasi, dall'estrazione, alla modellazione e fino all'aggiornamento della propria soluzione di machine learning. Il data scientist non deve cambiare linguaggio quando opera seguendo il ciclo di vita.