Negli ultimi anni la scienza dei dati (data science) ha vissuto un periodo di grande fermento ed evoluzione, soprattutto grazie a tecnologie emergenti come i Big Data Analytics, focalizzati sull’analisi di enormi quantità di dati grazie a tecniche di apprendimento base sull’intelligenza artificiale, come nel caso del machine learning. Grazie all’innovazione introdotta da tali strumenti, per i data scientist è diventato più semplice e fattibile comprendere, esplorare ed estrarre valore da una mole crescente di dati, che i sistemi di aziende sempre più digitalizzate mettono loro a disposizione ormai in tempo reale.

Il machine learning può inoltre enfatizzare la natura multidisciplinare della scienza dei dati, creando le connessioni tra una quantità di variabili che nessun umano sarebbe mai in grado di combinare e sviluppare, per dare business maker un supporto fondamentale nel prendere decisioni in maniera più consapevole, grazie alle previsioni della Business Analytics.

Machine Learning e analisi dei dati stanno quindi creando un connubio sempre più solido, destinato a supportare applicazioni che nei prossimi anni saranno sempre più presenti nella nostra quotidianità.

Vediamo pertanto in cosa consiste il machine learning, qual è il suo ruolo nell’ambito di quel grande denominatore comune che è l’intelligenza artificiale, ai fini di individuare le ragioni per cui sarà sempre più determinante nell’ambito delle discipline analitiche.

Cos’è e cosa si intende per Machine Learning

Il Machine Learning, altrimenti noto come apprendimento automatico, è una tecnica di intelligenza artificiale che sfrutta il calcolo macchina per eseguire elaborazioni complesse, utili a simulare il modo con cui un umano apprenderebbe nelle medesime circostanze.

A livello di programmazione, un’applicazione Machine Learning non va quindi definita istruendo il sistema su tutte le operazioni da eseguire, come avviene nel caso di un software tradizionale, ma si rende necessario lo sviluppo di un algoritmo in grado di acquisire conoscenza dai dati e diventare progressivamente sempre più efficiente nell’esplorazione e nell’elaborazione dei dati, per formulare analisi predittive piuttosto che, nei casi più evoluti, prendere decisioni in autonomia.

Tale visione non mortifica il ruolo dello sviluppatore ma ne varia sostanzialmente l’operato. La sua missione diventa quella di accompagnare la macchina nel lavoro autonomo che l’intelligenza artificiale richiede. Ciò ha innescato la nascita di varie figure professionali, dotate di competenze relative alla data science e all’informatica, cui si chiede di preparare i dati, monitorare il lavoro della macchina e verificare i risultati delle analisi, mediante l’ausilio di strumenti informatici appositamente predisposti per svolgere tali attività.

Quando nasce il Machine Learning

Nella lunga e affascinante storia dell’intelligenza artificiale, il termine Machine Learning compare per la prima volta nel 1959, con il significato di “apprendimento della macchina”, quando l’informatico Arthur Samuel decise di dilettarsi nella scrittura dell’articolo “Alcuni studi sul Machine Learning usando il gioco della dama”. In tale scritto emergeva chiaramente l’intenzione di configurare un sistema capace dare al computer la possibilità di imparare qualche funzione senza essere programmato per farlo.

In buona sostanza Arthur Samuel prefigurava quello che sarebbe diventato anche di fatto, oltre che di nome, il Machine Learning nel corso dei decenni successivi. Le procedure previste da Samuel prevedevano infatti l’esigenza di alimentare un algoritmo con una serie di dati, in modo che l’elaborazione consentisse alla macchina di apprendere in maniera autonoma. Come vedremo, il Machine Learning si è successivamente evoluto nella sua complessità, ma concettualmente le sue radici continuano tuttora a fondarsi sull’apprendimento automatico.

Prendendo spunto dal gioco della dama, per raggiungere il proprio obiettivo, Samuel ha sviluppato una funzione matematica capace di restituire un punteggio in funzione della posizione delle pedine, in modo da calcolare le probabilità di vincita successiva ad ogni singola mossa. Il software era quindi concepito per acquisire sempre più informazioni dalle partite ed imparare ad essere sempre più efficiente nella previsione delle probabilità di successo.

Casi simili a quelli sperimentati da Samuel vennero adoperati da altri ricercatori, tra cui Marvin Minsky e Frank Rosenblatt, capaci di dare un contributo fondamentale nell’evoluzione dell’intelligenza artificiale, ma l’evoluzione stessa delle AI è stata nel corso dei decenni soggetta ad andamenti ciclici, fatta di periodi di grande effervescenza, cui è puntualmente seguita una naturale disillusione. Si è andati avanti così sostanzialmente fino agli anni Novanta, quando si sono rese più mature due tra le risorse fondamentali per lo sviluppo delle tecniche di intelligenza artificiale: la gestione dei dati e la capacità computazionale.

In particolare, per quanto riguarda il Machine Learning, il suo contributo divenne fondamentale per spostare progressivamente l’attenzione dai problemi legati all’intelligenza artificiale generale a quelli relativi all’intelligenza artificiale ristretta, utile a risolvere concretamente dei problemi specifici, generando finalmente una serie di importanti casi di successo, indispensabili per incoraggiare lo sviluppo generale della disciplina. La nascita di Internet e del Cloud Computing ha reso disponibile quella capacità computazionale che consente finalmente di svolgere entro tempistiche ragionevoli i complessi calcoli richiesti dai sistemi di Machine Learning, la cui natura combinatoria è storicamente nota per essere particolarmente esosa in termini di risorse.

Oggi il machine learning sta vivendo una fase di grande fortuna critica e tecnologica, al punto da vederlo implementato in tantissime applicazioni di analisi dei dati, ma il suo straordinario potenziale è sicuramente ancora largamente da esplorare e rendere disponibile. Per quanto certi risultati possano apparire di straordinaria portata, siamo a tutti gli effetti ancora all’alba di una nuova era.

Tra i molti ambiti in cui potremo vedere protagonista il Machine Learning nel corso dei prossimi anni vi è ad esempio il quantum Machine Learning, che dovrà capitalizzare gli sforzi ottenuti nella ricerca dei computer quantistici, capaci di superare la soglia critica che vede i computer classici andare in crisi di fronte alle più soglie più elevate del calcolo combinatorio. Le applicazioni del Quantum Machine Learning consentiranno di analizzare i dati con approcci totalmente innovativi, risolvendo alcuni problemi attualmente impossibili anche soltanto da affrontare.

Che differenza c’è tra Intelligenza Artificiale e Machine Learning

A prescindere dalla continua evoluzione delle tecnologie informatiche, la domanda fondamentale sul Machine Learning rimane tuttora quella formulata da Tom M. Mitchell, che parafrasando Alan Turing si chiese: “Le macchine possono fare quello che noi (in quanto entità pensanti) possiamo fare?”. Il tentativo di dare una risposta pratica a questa domanda è proprio il motore che guida l’innovazione nell’ambito dell’intelligenza artificiale.

Il Machine Learning è dunque parte dell’ampio universo tecnologico rappresentato dall’intelligenza artificiale, di cui costituisce una delle aree di attività più rilevanti. In particolare, il Machine Learning e la sua sottobranca Deep Learning consentono di occuparsi concretamente delle due principali categorie di AI: l’intelligenza artificiale ristretta (debole) e l’intelligenza artificiale generale (forte).

L’intelligenza artificiale ristretta descrive i sistemi utilizzati per affrontare compiti specifici, a prescindere dalla loro complessità, purché siano adeguatamente contestualizzati, mentre l’intelligenza artificiale generale allarga i propri orizzonti in maniera decisamente più ambiziosa, per indicare quei sistemi capaci di adattarsi in maniera autonoma per risolvere qualsiasi compito a prescindere dal contesto di inserimento, simulando il comportamento della mente umana sin dalla fase dell’apprendimento delle regole relative al problema.

Si tratta di due approcci concettuali radicalmente differenti. La AI generale si basa sul ragionamento logico, che presuppone una base di conoscenza che definisce una serie di regole da cui derivare una nuova conoscenza. La AI ristretta si basa invece sull’apprendimento automatico, che deriva la conoscenza sulla base dei dati di volta in volta disponibili, grazie ai quali si ottiene una conoscenza dell’ambiente specifico in cui andranno orientati i nuovi processi conoscitivi.

Allo stato attuale sono stati raggiunti risultati importanti per quanto concerne lo sviluppo della AI ristretta, mentre per quanto riguarda la AI generale la strada da percorrere è ancora estremamente lunga, in quanto per simulare il comportamento dell’intelligenza umana, occorre acquisire una conoscenza molto più approfondita di quest’ultima, la cui straordinaria complessità è ancora largamente ignota.

Gli obiettivi attuali dell’intelligenza artificiale vertono quindi in gran prevalenza sulla soluzione di problemi concreti e ben contestualizzati, in cui i sistemi di Machine Learning possono concentrarsi su azioni specifiche, acquisendo conoscenza dal dato storico per implementare una nuova conoscenza, in termini di previsioni utili a prendere decisioni in autonomia (si pensi ad alcune applicazioni nell’ambito della robotica) o a supportare un decisore umano nel suo difficile compito.

Nel suo insieme, grazie alle tecniche di Machine Learning, l’intelligenza artificiale deve essere in grado di assolvere alcune funzioni di base: compiere azioni in maniera autonoma, risolvere un problema attraverso funzioni cognitive, pensare ed agire in modo razionale, ove si intende il fatto di ottenere il miglior risultato possibile sulla base delle informazioni a disposizione.

Che differenza c’è tra Machine Learning e Deep Learning

L’intelligenza artificiale è una disciplina piuttosto complessa per varie ragioni, tra cui il fatto di essere per molti versi intangibile, se non grazie ai risultati delle sue applicazioni. Questo provoca spesso una sovrapposizione tra i termini del suo lessico, rendendo a parole la situazione per certi versi più complessa rispetto a quanto non lo sia in realtà.

Un caso evidente è costituito dalla frequente confusione che riscontriamo tra il Machine Learning e il Deep Learning. Entrambe sono tecniche di intelligenza artificiale ed in particolare il Deep Learning costituisce una sotto-tecnica del Machine Learning, con ogni probabilità la più importante.

Il Deep Learning comprende un insieme di tecniche utili a simulare i processi in analogia al cervello umano, attraverso l’impiego di reti neurali artificiali stratificate che consentono di analizzare i dati e creare dei modelli di apprendimento organizzati su più livelli. L’architettura stratificata su cui si basa il Deep Learning consente di effettuare elaborazioni estremamente complesse in cui il sistema guadagna efficienza proprio grazie le nozioni progressivamente acquisite dai vari livelli della rete neurale, che diventano in grado di autoinfluenzarsi.

Le reti neurali sono dei modelli concepiti per simulare il funzionamento dei neuroni del cervello umano. Il Deep Learning viene anche definito apprendimento automatico gerarchico, proprio perché i livelli più complessi necessitano necessariamente dei modelli più semplici, nella stessa logica con cui potremmo descrivere il processo di crescita di una persona, da bambino ad adulto. Di norma, una rete neurale molto estesa tende ad essere più efficace nel dettagliare i risultati delle proprie analisi, ma necessita al tempo stesso di un enorme sforzo dal punto di vista computazionale.

Machine Learning e Deep Learning si alimentano con la medesima materia prima: i dati, ma li gestiscono in maniera differente, come approfondiremo nel corso del paragrafo successivo, dove analizzeremo anche la differenza tra l’apprendimento supervisionato e l’apprendimento non supervisionato. Il Machine Learning ha bisogno di un set di istruzioni iniziali, basate su dati strutturati, su cui sviluppare una propria autonomia, mentre il Deep Learning riesce ad apprendere anche a partire da dati di tipo non strutturato, il che lo rende particolarmente efficace nel caso in cui i data set siano composti da immagini, video e documenti di natura non tabellare.

Come funziona il Machine Learning (su cosa si basa)

Affinché i dati possano produrre valore in termini di informazione, è necessario analizzarli e pertanto strutturare un vero e proprio progetto di Machine Learning, caratterizzato da alcune fasi fondamentali:

  • Raccolta dei dati: acquisizioni e archiviazione dei set di dati in sistemi quali database, data warehouse o data lake, capaci di renderli disponibili alle applicazioni di business analytics;
  • Preparazione dei dati: operazioni utili a pulire i dati per incrementare la data quality complessiva ed agevolare le successive operazioni in fase di analisi;
  • Esplorazione dei dati: conoscenza finalizzata alle attività di analisi descrittiva, con la possibilità di generare attraverso la data visualization quelle informazioni grafiche utili a comprendere al meglio il significato dei dati, attraverso le loro caratteristiche matematiche;
  • Apprendimento dei dati: costituisce la fase cruciale di un processo di Machine Learning e comprende una ulteriore attività preparatoria, in cui figurano il preprocessing, utile a rielaborare i dati per ottimizzare le proprietà statistiche; la selezione delle features, per comprendere gli aspetti e i fenomeni più significativi; la trasformazione che serve a convertire i dati nel formato più funzionale agli algoritmi che si intende utilizzare. Nella fase di apprendimento vera e propria il modello di Machine Learning analizza i dati seguendo le indicazioni che gli vengono fornite;
  • Validazione del modello, testing e previsione: si tratta di fasi che svolgono esattamente la funzione prevista dalla loro definizione, fino a quando i test non producono dei risultati ritenuti sufficientemente attendibili per entrare di fatto in produzione. In altri termini, quando il sistema di Machine Learning è sufficientemente allenato, è possibile utilizzarlo per eseguire analisi predittive a partire da nuovi data set.

Quella appena descritta costituisce una semplificazione estrema delle attività che i professionisti dei dati effettuano per strutturare un sistema di Machine Learning e renderlo disponibile per le attività analitiche che lo vedono protagonista.

I diversi metodi di apprendimento degli algoritmi

Una premessa è d’obbligo. Gli algoritmi di apprendimento automatico che costituiscono il motore del machine learning risultano perfettamente funzionali ai big data in quanto sono programmati per processare grandi numeriche di dati ai fini di derivare quelle funzioni complesse su cui si basa ad esempio l’elaborazione degli scenari predittivi.

In buona sostanza, maggiore è la quantità e la qualità dei dati a disposizione del sistema di machine learning, più l’algoritmo ha gioco facile nel generalizzare ed approssimare tali funzioni, rendendole di fatto più efficienti.

La relazione tra l’algoritmo e i dati si focalizza soprattutto nella fase di apprendimento, dove il modello di machine learning viene allenato grazie ai data set disponibili. Sulla base delle modalità con cui questo fondamentale processo avviene, si distinguono sostanzialmente quattro metodi di approfondimento.

Apprendimento supervisionato

Consiste in una categorizzazione dei dati di input, in cui si associa un valore numerico al dato stesso. La supervisione risiede nel fatto che sia i dati di input che quelli di output sono noti sin dalla fase iniziale del training del modello di machine learning, in quanto precedentemente strutturati. Agli algoritmi spetta dunque il compito di descrivere nel modo migliore la relazione che intercorre tra i dati di input e quelli di output. L’apprendimento supervisionato si basa su tecniche di classificazione e di regressione. In una ipotetica applicazione di marketing, nel primo caso potremmo classificare la tipologia di clienti in base alle informazioni disponibili, mentre nel secondo caso sarebbe possibile individuare la relazione tra l’età di un utente e il suo interesse nei confronti del brand.

Apprendimento non supervisionato

A differenza dell’apprendimento supervisionato, i dati non sono strutturati quindi l’algoritmo deve identificare in autonomia le relazioni e gli schemi a partire dal data set che si ritrova ad elaborare. I dati sono in genere raggruppati con criteri di similarità, per inserire nella stessa classe i dati tra loro più somiglianti, individuando così quei gruppi di riferimento in base ai quali vengono classificati i nuovi dati, perfezionando progressivamente i risultati di tale procedura. Grazie all’apprendimento non supervisionato l’algoritmo è capace di risalire in autonomia a schemi e modelli inizialmente nascosti, definendo la struttura logica dei dati senza conoscerne l’output. Un esempio di apprendimento senza supervisione è costituito dal clustering, che nel caso di un’ipotetica applicazione di marketing potrebbe coincidere con la creazione di gruppi di utenti dotati di caratteristiche simili, a cui rivolgere una determinata tipologia di offerte.

Apprendimento semi-supervisionato

si tratta di un approccio ibrido, in cui al modello di machine learning viene fornito un data set non del tutto strutturato o incompleto in alcune sue parti. Ne consegue il fatto che per i dati strutturati diventa possibile l’apprendimento supervisionato, mentre per quelli non strutturati si procede secondo l’apprendimento non supervisionato. L’obiettivo ultimo risiede sempre nel creare le funzioni utili a risolvere i problemi, attraverso il perfezionamento dei modelli utili a garantire i risultati attesi dalle elaborazioni.

Apprendimento per rinforzo

il sistema viene predisposto per esplorare un ambiente dati dinamico ai fini di ottenere un output, in base al cui esito riceve una ricompensa, piuttosto che una penalizzazione. Gli errori diventano dunque una parte essenziale del processo di apprendimento, in quanto il sistema per evitarli migliora il proprio livello generale, puntando a raggiungere il miglior livello di ricompensa possibile. Così facendo, il sistema apprende come muoversi nell’ambiente dinamico che a priori non conosce, sulla base delle azioni corrette e di quelle da evitare.

Il fatto che l’intelligenza artificiale emuli in vari modi l’intelligenza umana è percepibile anche dal lessico che viene utilizzato nei vari contesti di informazione, che spaziano dalla letteratura scientifica alla divulgazione sulla stampa generalista. Non bisogna tuttavia fare confusione. Sarebbe infatti poco accorto e decisamente fuorviante identificare le intelligenze artificiali come sistemi senzienti. È pertanto corretto utilizzare termini come apprendere o allenare un sistema, ma non sarebbe corretto pensare che un’intelligenza artificiale proceda in maniera cosciente nelle sue attività. La valenza antropica che mette in relazione le due tipologie di intelligenza in questione va pertanto limitata anche per quanto concerne gli aspetti puramente metaforici, per non rischiare di scadere nella disinformazione.

I linguaggi di programmazione per il Machine Learning

Il machine learning non è vincolato all’utilizzo di un linguaggio di programmazione specifico e considerato che al momento ne esistono oltre 700, per chi parte da zero, la scelta potrebbe rivelarsi piuttosto ardua. Ragion per cui ci sentiamo di concentrare, per ragioni differenti, la nostra attenzione su Python e R, pur considerando che è frequente avere a che fare con linguaggi molto diffusi come C++ e Java oppure con tecnologie di più recente implementazione come Julia.

Python

E’ al momento senza alcun dubbio il linguaggio di programmazione più diffuso nell’ambito del data science e del machine learning. Concepito e scritto da Guido van Rossum nel 1991, Python si è dimostrato sin da subito flessibile verso vari utilizzi e dotato di una sintassi semplice ed intuitiva, anche se meno scalabile rispetto ad un linguaggio come C. Il supporto di Python in termini di risorse e librerie è incredibilmente esteso. Nel caso del data science e del machine learning possiamo citare ad esempio Panda, TensorFlow, Pytorch, Numpy e scikit-learn.

Tali aspetti e il supporto di una community tra le più attive e partecipate in assoluto rendono Python un vero e proprio punto di riferimento tra i linguaggi di programmazione per il machine learning, potendo inoltre contare su molte funzionalità e su un ecosistema di grande valore per quanto riguarda nello specifico le applicazioni della scienza dei dati.

R

Un linguaggio decisamente noto ai data scientist è certamente R, che dà luogo ad un ambiente di sviluppo specifico per l’analisi statistica dei dati. Concepito e scritto da Robert Gentleman e Ross Ihaka, si tratta di un software libero non open source disponibile per tutti i principali sistemi operativi.

R è un linguaggio orientato agli oggetti diventato decisamente popolare grazie alla disponibilità di vari moduli che consentono ad esempio di implementare moltissime feature, oltre a garantire le connessioni con database e sistemi GIS. Nella sua versione di base R è reso disponibile come software con interfaccia a riga di comando, ma esistono diverse GUI di terze parti in grado di rendere più immediata la sua fruizione, tra cui la celebre RStudio.

Quando usare il Machine Learning, esempi e applicazioni

Il machine learning è sempre più utilizzato anche quando noi non ce ne accorgiamo, in quanto la sua azione tende spesso ad aggiungere funzionalità a quelle applicazioni già da tempo esistenti e che sono state oggetto di una più recente modernizzazione. Il machine learning è tuttavia sempre più centrale se parliamo di business model aziendali, in quanto consente di sviluppare delle attività che altrimenti sarebbero addirittura impensabili. A titolo esemplificativo, vediamo alcune tra le applicazioni più diffuse del machine learning in ambito enterprise.

Guida autonoma

L’universo della guida autonoma include un’incredibile varietà tecnologica, che vede le reti neurali impegnate in vari ambiti, tra cui apprendere l’interpretazione degli oggetti e degli ostacoli presenti nell’ambiente. Le camere e i sensori integrati nei sistemi IoT dei veicoli acquisiscono in tempo reale i dati che l’elaboratore deve interpretare ai fini di prendere una decisione corretta, per garantire una navigazione sicura in tutte le situazioni previste ed impreviste. In tali situazioni il veicolo deve assumere un comportamento simile a quello umano, cercando di apprendere nel miglior modo possibile dai dati in tempo reale che definiscono l’ambiente reale.

Chatbot

I chatbot esistevano ben prima della loro implementazione con i moderni sistemi di machine learning, ma erano basati su script preconfezionati, che istruivano il bot in merito alle azioni da intraprendere quando si verificava la presenza di alcune parole chiave. Per quanto automatizzato, tale sistema garantiva una scarsa empatia con gli utenti chiamati ad interagire, situazioni in cui il bot non sapeva trovare una risposta o si sbizzarriva in soluzioni decisamente improbabili.

Grazie all’impiego dei sistemi di apprendimento automatico e all’elaborazione del linguaggio naturale (NLP) oggi è possibile programmare dei chatbot decisamente più efficienti e simili all’uomo nel dialogo interattivo con gli utenti. I migliori chatbot di nuova generazione sono per larghi tratti non distinguibili rispetto ad un interlocutore umano. Molte delle tecnologie basate sull’intelligenza artificiale che animano i vari Cortana, Siri, Alexa, Watson e Google Assistant le ritroviamo oggi disponibili per sviluppare chatbot avanzati per il customer care. I chatbot intelligenti sono in grado di integrare la propria attività con quella di altri strumenti digitali, come i configuratori di prodotto, ai fini di suggerire azioni utili per soddisfare le aspettative dei clienti.

Supporto decisionale

Le analisi predittive svolte dai sistemi di apprendimento automatico possono aiutare le aziende a prendere decisioni migliori, trasformando la grande quantità di dati grezzi di cui dispongono in informazioni capaci di generare valore aggiunto per il business. Le attività di business analytics consentono di rendere disponibili una quantità di raccomandazioni basate su una combinazione di variabili molto elevata, ad una velocità al di fuori della portata di qualsiasi decisore umano. L’obiettivo del supporto decisionale non è quello di sostituire l’uomo, ma di consentirgli di effettuare scelte più consapevoli, grazie alla miglior visibilità e comprensione degli scenari passati, presenti e futuri del contesto in cui si trova chiamato ad operare.

I sistemi di supporto alle decisioni vengono utilizzati in vari settori industriali:

  • – Nella manifattura consentono di migliorare l’efficienza dei sistemi di manutenzione, basando su logiche predittive anziché preventive, riducendo il numero complessivo degli interventi ed i relativi costi collegati alla gestione degli impianti;
  • – Nel settore sanitario, gli strumenti di supporto alle decisioni cliniche aiutano i medici nella redazione delle diagnosi e delle terapie, grazie ad una visione più ampia e consapevole sui dati relativi ai pazienti;
  • – In agricoltura, i sistemi abilitati all’apprendimento automatico analizzano in tempo reali i dati relativi a clima, energia, acqua e altri variabili che possono supportare gli agricoltori a prendere decisioni sulla gestione delle colture.

In generale, i sistemi di supporto decisionale basati sul machine learning aiutano il management ad anticipare le tendenze e cogliere le opportunità che il mercato presenta. Tali sistemi si avvalgono infatti di strumenti di data visualization avanzati, che consentono di sintetizzare in un un’unica dashboard moltissime informazioni, rendendole disponibili in maniera immediata ed intuitiva, a prescindere dalla complessità analitica che l’applicazione è chiamata a svolgere in backend.

Raccomandatori per e-commerce e servizi on-demand

Quando utilizziamo un servizio e-commerce è assolutamente frequente vedere dei suggerimenti relativi agli acquisti. Amazon in tal senso ha fatto scuola, ma la tendenza si è ben presto diffusa negli store online di tantissimi vendor. Questi sistemi sono basati sull’apprendimento automatico sulla base dei dati costituiti dalla cronologia di navigazione dei clienti, per suggerire, come si suol dire, il prodotto giusto al momento giusto, aumentando in maniera decisiva le probabilità di convertire un acquisto. Maggiori sono le informazioni che il sistema riesce ad acquisire in relazione ai dati comportamentali del cliente, migliori saranno le sue analisi predittive e di conseguenza i suggerimenti di prodotto forniti ai consumatori.

I sistemi di raccomandazione vengono usati in tantissimi altri ambiti, basti pensare ai servizi di streaming on demand di contenuti multimediali come Netflix che in base allo storico di visione e navigazione degli utenti è capace di proporre film e serie tv che potrebbero risultare di gradimento agli spettatori, selezionando ad esempio prodotti simili per genere, attori protagonisti ed altre variabili influenzate dalle preferenze individuali. Una logica simile è utilizzata da Youtube nella classica colonna di destra, che individua i prossimi contenuti da visualizzare sulla base delle preferenze di navigazione e visione dei suoi utenti. In questo caso, l’obiettivo non è condurre alla vendita di quel determinato prodotto, ma migliorare la user experience, dal momento che una ricerca manuale nell’infinito catalogo multimediale sarebbe di fatto molto dispendiosa in termini di tempo e potenzialmente infruttuosa quando non si sa già di preciso cosa cercare.

Ricerche di mercato in ambito retail

Le aziende di prodotto utilizzato le applicazioni di machine learning per produrre e rifornire gli store al momento giusto, grazie alla pianificazione predittiva dell’inventario e alla segmentazioni dei clienti. Si tratta di informazioni che i sistemi di apprendimento automatico sono in grado di elaborare a partire dai set dei stati storici, per capire come inventario può rivelarsi più efficace in termini di vendite sulla base di un’ampia serie di variabili, che vanno dall’ubicazione dello store al periodo dell’anno preso in considerazione, passando per le caratteristiche demografiche del luogo e dell’attitudine ai consumi dei potenziali clienti.

Il funzionamento di tali sistemi ricorda piuttosto da vicino quello dei raccomandatori, anche se adattati al contesto della vendita al dettaglio, soprattutto quando si tratta di comprendere i segmenti specifici all’interno della base clienti, attraverso l’analisi dei dati relativi a età, redditi, livello di istruzione, alle loro interazioni con il brand e a tutte quelle informazioni utili a profilare al meglio le loro possibili esigenze.

Trading finanziario

Nell’ambito del trading gli algoritmi di apprendimento automatico vengono utilizzati per analizzare grandi quantità di dati storici e presenti, per effettuare analisi predittive in merito al comportamento dei titoli in futuro. Ogni giorno i mercati azionari muovono migliaia di miliardi, per cui una previsione azzeccata può comportare un vantaggio enorme per le attività degli investitori.

Sistemi anti frode

Le banche e le società che gestiscono i sistemi di pagamento online ricorrono al machine learning per individuare i tentativi di frode, mediante un sistema di apprendimento automatico piuttosto semplice, che individua le operazioni legittime e ne identifica le routine. Questo consente di supportare l’azione dei sistemi di monitoraggio delle transazioni, individuando gli eventuali comportamenti sospetti, che vengono successivamente segnalati ai sistemi deputati a svolgere indagini più approfondite. Nati in ambito finance, i sistemi antifrode basati sul machine learning oggi vengono utilizzati in molti settori, tra cui il gaming ed il retail.

Sistemi di videosorveglianza

Strumenti simili ai sistemi antifrode possono essere implementati anche per i sistemi di videosorveglianza, che effettuano un apprendimento automatico basato sul flusso di immagini in tempo reale che le camere installate, interconnesse con sistemi IoT, sono in grado di acquisire. Quando il sistema si accorge di eventuali anomalie può facilmente identificare un comportamento sospetto ed azionare le procedure di sicurezza previste.

Sistemi di riconoscimento delle immagini

I sistemi di apprendimento automatico sono utilizzati in maniera crescente nell’ambito delle applicazioni chiamate a dare un significato alle immagini per effettuare determinate operazioni. Un esempio classico è presente da tempo sui nostri smartphone, con la capacità delle applicazioni fotografiche di riconoscere i volti delle persone, oggetti particolari o di applicare dei filtri capaci di adattarsi in maniera molto accurata alle immagini di base.

Nella grande distribuzione organizzata (GDO) e nel retail sono da tempo attivi dei robot in grado di visualizzare le merci presenti sugli scaffali, per capire quali articoli sono in esaurimento, piuttosto che in una posizione errata all’interno dei magazzini. Sono stati inoltre implementati degli scanner capaci di assicurare che gli articoli presenti nei carrelli vengano passati in cassa, prevenendo in questo modo le attività di taccheggio. L’integrazione con i sistemi di videosorveglianza consente ad esempio di rilevare comportamenti sospetti in materia di frode o sicurezza.

Sistemi di pricing dinamico

Le funzionalità predittive dei sistemi di machine learning consentono alle aziende di adottare strategie di pricing dinamico. Grazie all’analisi dello storico dei dati e di molte altre variabili relative alle condizioni di vendita, possono essere elaborate delle analisi utili a capire quali dinamiche favoriscono ad esempio la domanda di determinati beni piuttosto che di altri. Tali informazioni consentono di supportare la decisione dei prezzi di vendita, automatizzando una serie di valutazioni che consentono alle aziende di massimizzare i profitti. Una variazione dinamica del prezzo consente ad esempio di adeguarsi alle offerte presenti sul mercato da parte di altri vendor in modo da non perdere clientela, piuttosto che aumentare i prezzi nelle condizioni di particolare incremento della domanda, come avviene ad esempio negli alberghi quando nei pressi della loro ubicazione si prevede una maggior affluenza per seguire un evento sportivo.

Cosa studiare

Lo sviluppo dei sistemi basati sul machine learning vede l’azione di diverse professionalità, che devono avere competenze generali in fatto di scienza dei dati ed informatica, oltre ad eventuali specializzazioni. Una delle professioni più richieste è attualmente quella del machine learning engineer, per certi versi simile al data scientist ma prevalentemente orientato alla creazione e alla gestione dei sistemi di intelligenza artificiale e dei modelli predittivi. Un compito che richiede una varietà di competenze tutt’altro che indifferente e che accomuna almeno in parte il percorso formativo del machine learning engineer e del data scientist, due figure complementari e sempre più ricercate nel mercato del lavoro.

Tra le principali skill richieste ai professionisti del machine learning ritroviamo:

  • – Laurea in informatica, matematica, statistica o simili;
  • – Master in discipline comprendenti machine learning, reti neurali, deep learning e tecniche correlate;
  • – Conoscenze avanzate nelle discipline matematiche e statistiche;
  • – Conoscenza nella scienza dei dati;
  • – Conoscenza delle principali strutture dei dati e della modellazione dei dati;
  • – Conoscenza dei più diffusi linguaggi di programmazione nell’ambito del machine learning, in particolare Python, ma anche R, C++, C, Java e Javascript costituiscono una competenza molto apprezzata;
  • – Esperienza con i principali framework e librerie per lo sviluppo di modelli di machine learning

Cosa fa il Machine Learning Engineer

Il Machine Learning Engineer è una figura professionale specializzata nella ricerca, sviluppo e progettazione di sistemi di intelligenza artificiale capaci di automatizzare i modelli predittivi. Il loro compito principale prevede la progettazione e la creazione degli algoritmi di intelligenza artificiale capaci di apprendere e generare previsioni. Complessivamente, tra i ruoli che il Machine Learning Engineer è chiamato ad esercitare ritroviamo:

  • – Progettazione dei sistemi di machine learning capaci di soddisfare le esigenze dei clienti;
  • – Ricerca, selezione, modifica e creazione degli algoritmi di machine learning;
  • – Selezione dei data set utili all’apprendimento automatico;
  • – Selezione dei metodi di data visualization;
  • – Verifica della data quality dei sistemi di dati da sottoporre all’analisi;
  • – Capacità di produrre analisi di tipo statistico;
  • – Preparazione delle fasi di apprendimento automatico;
  • – Sviluppo del training dei sistemi di machine learning;
  • – Esecuzione dei test dei sistemi di machine learning per verificare il loro livello di apprendimento;
  • – Interpretazione dei risultati dei test e pianificazione delle azioni migliorative dei sistemi di machine learning.

Si tratta dunque di un ventaglio di attività molto ampio, il cui impegno varia sensibilmente in funzione dei progetti da sviluppare, che godono di caratteristiche molto specifiche. Il machine learning engineer deve quindi possedere un’innata predisposizione al problem solving, all’analisi caso per caso e al lavoro in team.

ARGOMENTI CORRELATI
Categoria: INTELLIGENZA ARTIFICIALE

Dati sintetici: cosa sono, tipologie e quando utilizzarli

L’intelligenza artificiale dispone di una serie di tecniche in grado di rivoluzionare le attività in tantissimi settori, sia in ambito… Leggi tutto

OVerfitting e Underfitting cosa sono e come gestirli

Overfitting e Underfitting: cosa sono e come gestirli

Il machine learning (apprendimento automatico) è una delle discipline dell’intelligenza artificiale più diffuse, grazie alla sua capacità di analizzare i… Leggi tutto

Industria 4.0 e strategie di manutenzione: le differenze tra manutenzione reattiva, preventiva e predittiva. Immagine che raffigura due chiavi inglesi posate sulla tastiera di un computer.

Manutenzione nell’Industria 4.0: cosa cambia 

L’Industria 4.0 ha ridefinito vari aspetti della fabbrica tradizionale, non soltanto quelli tipicamente legati alla produzione, coinvolgendo tutte le fasi… Leggi tutto