Skip to main content

Intelligenza Artificiale: dalla fantascienza ad Alexa

Marcelo Andrieu, Technical Product Marketing Manager
March 13, 2018

L'immaginazione degli appassionati di fantascienza come me sempre stata stuzzicata dall'Intelligenza Artificiale (IA). L'IA entrata a far parte dei settori di studio accademici a met‡ degli anni '50.

Da allora, stata osannata come chiave del futuro della civilt‡, o criticata quale mero passatempo da nerd.

Tuttavia, negli ultimi anni ha iniziato a ottenere un seguito significativo, anche grazie alla disponibilit‡ di funzionalit‡ informatiche sempre pi˘ potenti, economiche e rapide, all'emergere dell'Internet of Things e al boom dei dati generati come immagini, testi, messaggi, documenti, transazioni, mappe, ecc.

Molte aziende adottano un approccio aggressivo, applicando l'IA per sganciare i dipendenti pi˘ competenti da compiti ripetitivi, di routine o di basso profilo. International Data Corporation prevede che gli investimenti in intelligenza artificiale e machine learning incrementeranno dagli 8 miliardi di dollari del 2016 a 47 miliardi entro il 2020.

Basta guardarsi attorno per capire quanto siano diffuse le applicazioni dell'IA, tra cui tecnologie ad ampio raggio per la voce e il linguaggio naturale, automazione industriale e robotica. I casi d'uso coprono ambiti molto diversi, come per esempio:

    • Servizi finanziari

    • Customer service

    • Sanit‡

    • Scoperta di farmaci

    • Genomica

Pi˘ di recente, l'IA ha iniziato a trovare un seguito nei cosiddetti lavoratori della conoscenza e negli ambiti creativi come arti visive, musica, immagini e creazione di video e sceneggiature.

In generale, gran parte delle applicazioni di questo tipo vengono classificate nella categoria "Narrow IA". Si tratta di tecnologie che svolgono attivit‡ come la classificazione delle immagini su Pinterest e il riconoscimento facciale su Facebook come gli esseri umani, se non meglio.

Anzi, di fatto presentano sfumature proprie dell'intelligenza umana, che analizzeremo tra un attimo. Ma come fanno? Da dove arriva la loro intelligenza?

Iniziamo dal principio: cos' l'Intelligenza Artificiale?

John McCarthy, uno dei padri dell'IA, l'ha definita:

"La scienza e l'ingegneria necessarie per produrre macchine intelligenti, in particolare programmi informatici intelligenti".

In altre parole, la possibilit‡ di rendere l'hardware o il software di una macchina in grado di pensare in modo intelligente, come gli esseri umani.

Si tratta quindi di comprendere come funziona la nostra mente, come apprendiamo, decidiamo e agiamo nell'affrontare un problema e poi utilizzare queste informazioni per sviluppare software e sistemi "intelligenti".

Cos' l'Intelligenza?

Ai fini di questo articolo, possiamo ricorrere alla definizione di intelligenza riportata in un articolo intitolato Artificial Intelligence - Intelligent Systems:

"L'abilit‡ di un sistema di calcolare, ragionare, percepire i rapporti e le analogie, apprendere dall'esperienza, archiviare e recuperare le informazioni dalla memoria, risolvere problemi, comprendere idee complesse, utilizzare il linguaggio naturale in modo fluentemente, classificare, generalizzare e adattarsi a situazioni nuove".

Quindi, anche quando parliamo di intelligenza nella sua forma pi˘ basilare facciamo riferimento a diverse funzioni complesse:

    • Apprendimento

    • Ragionamento

    • Risoluzione di problemi

    • Percezione

    • Intelligenza linguistica

Insomma, sono parecchie cose. Oggi si tende a parlare di un sistema "artificialmente intelligente" se coinvolge almeno una di queste "intelligenze". Ovviamente, pi˘ sono meglio .

L'apprendimento risulta particolarmente interessanteperchÈ vogliamo che questi sistemi siano in grado di apprendere in modo indipendente.

Machine Learning

La forma pi˘ elementare di Machine Learning la creazione di "modelli". I modelli sono composti da algoritmi che utilizzano i dati per apprendere e generare "deduzioni" o previsioni su un determinato tema.

Pertanto, una macchina intelligente non ha bisogno di essere programmata a livello di funzioni del software per svolgere un'attivit‡, ma viene "allenata" sulla base di dati e modelli che le permettono di imparare come arrivare a una data deduzione, decisione o previsione.

Tra le applicazioni pi˘ raffinate del machine learning troviamo la rilevazione e classificazione di immagini. In passato, queste attivit‡ richiedevano un enorme lavoro di codifica manuale. I programmatori creavano dei "classificatori" che, pensate un po', aiutavano a classificare le immagini!

Per esempio, utilizzavano codici di rilevazione dei contorni per individuare l'inizio e la fine di un oggetto, codici di rilevazione della forma per stabilire se l'oggetto avesse un certo numero di lati o segmenti e altri classificatori per il riconoscimento di lettere, numeri o simboli.

Grazie a tutti questi classificatori, i programmatori riuscivano a scrivere algoritmi in grado di dare un senso a un'immagine e a stabilire "questo oggetto un segnale di STOP". I risultati erano buoni, ma non ottimi. Un esempio di un risultato mediocre? In una giornata di nebbia, quando il segnale di STOP non era ben visibile, o se era parzialmente coperto da un albero, il sistema non forniva il risultato atteso. Spaventoso, no?

La situazione, perÚ, stava per cambiare drasticamente.

Deep Learning: neuroni a strati

Le reti neurali si basano sul modo in cui abbiamo interpretato i collegamenti tra i neuroni nel nostro cervello. Mentre i neuroni cerebrali sono in grado di collegarsi a qualsiasi neurone nelle vicinanze, in qualsiasi direzione, le reti neurali prevedono strati, collegamentie direzioni di movimento specifiche.

In una rete neurale, i dati vengono inseriti nel primo strato, da cui ciascun neurone trasmette i dati di output a un secondo strato. Il secondo strato fa lo stesso e cosÏ via, fino ad arrivare all'ultimo strato e al prodotto finale. Ogni neurone nella rete assegna un "peso" al proprio input, in base a quanto preciso o impreciso in relazione all'attivit‡ eseguita.Il risultato finale determinato dall'aggregazione di tutti questi pesi. La rete neurale quindi genera un "vettore di probabilit‡", un'ipotesi, basata sui pesi.

La rete impara dall'esperienza, secondo le risposte giuste o sbagliate che elabora. Nell'esempio del segnale di STOP presentato sopra, avr‡ bisogno di vedere migliaia o milioni di immagini prima che gli input neuronali siano affinati al punto da dare quasi sempre la risposta giusta, con la pioggia come con la nebbia. A quel punto, la rete neurale avr‡ imparato a riconoscere da sola le caratteristiche di un segno di STOP, o un viso su Facebook, un cane, un gatto o un pesce, che proprio quello di cui si occupato Andrew Ng per Google.

https://www.youtube.com/watch?v=IHZwWFHWa-w

Ng ha reso le sue reti neurali particolarmente estese e profonde, ampliando il numero di neuroni e di strati e sottoponendogli grosse quantit‡ di dati (pi˘ di 10 milioni di immagini di YouTube) per la formazione del sistema. Da qui il concetto di "Deep Learning". Risultato? Una capacit‡ di riconoscere le immagini che corrisponde e a volte supera quella umana.

Il lavoro sulle immagini, tuttavia, solo la punta dell'iceberg. L'apprendimento profondo ha molte altre applicazioni pratiche nel campo della tecnologia "smart", dalle auto senza conducente al miglioramento della medicina preventiva, a consigli sui film da vedere, sistemi esperti, chat box e molto altro ancora.

L'IA si basa sui dati, moltissimi dati

Sta tutto nei dati. Il valore del Deep Learning, nell'IA, deriva dalla sua capacit‡ di ricavare dei modelli di comportamento da grandi quantit‡ di dati. Un aspetto fondamentale nella comprensione dei dataset.

Gran parte dei progressi compiuti nel campo dell'intelligenza artificiale negli ultimi anni sono stati guidati dalla disponibilit‡ di una potenza di elaborazione sempre maggiore, dall'espansione di modelli e algoritmi e dal grande miglioramento dei dataset. Ormai abbiamo accesso a incredibili quantit‡ di dati. E questa la buona notizia.

La cattiva? Nel contesto di specifici casi d'uso e applicazione dell'IA ci sono dati corretti e dati sbagliati (e, nel caso ve lo steste chiedendo, anche dati "falsi"...). Il punto che la raccolta, la classificazione e la catalogazione dei dataset utilizzati per formare i modelli si sta dimostrando la parte pi˘ difficile e costosa del percorso dell'IA.

Esistono tool come Facets, uno strumento open source per la visualizzazione dei dati, che aiutano a comprendere i dataset a disposizione per il machine learning, le loro caratteristiche e il modo in cui i diversi elementi relativi ai dati interagiscono tra loro.

Spesso, le aziende iniziano i loro progetti IA senza tener presente quanto sia importante disporre di set di dati validi, che non vuol dire avere un sacco di dati a disposizione. Pi˘ il progetto va avanti, pi˘ il problema puÚ diventare difficile da risolvere e portare a errori o fallimenti, come successo anche ad aziende importanti.

Sporcarsi le mani

Il classico processo di IA puÚ essere suddiviso in diverse fasi:

    • Acquisizione dei dati

    • Preparazione dei dati

    • Scelta del modello

    • Formazione del modello

    • Valutazione

    • Regolazione dei parametri

    • Deduzione o previsione

Di seguito c' un ottimo video di Yufeng G che descrive questo processo suddividendolo in 7 passaggi, in termini di facile comprensione. Non perdetevelo! Anche il suo articolo sul Machine Learning (con video incluso) molto interessante.

https://www.youtube.com/watch?v=nKW8Ndu7Mjw

Tools e Frameworks

TensorFlow is probably the most popular deep learning framework today. TensorFlow is an open source library originally developed by the Google Brain Team, and the TensorFlow team has created a large number of models, many of which include trained model weights. Some great examples are the Object Detection API or tf-seq2sec for translation services. The Tensorflow Image Recognition Tutorial and Tensorflow Playground are good places where to start pulling AI strings.

There are other powerful frameworks, of course, like Caffe, PyTorch, and BigDL. They keep getting better and are quickly gaining users and use cases.

New Deep Learning tools are being developed to simplify neural network architecture definition and parameter tuning, distributed training, and model deployment and management.

Also, simulators, such as digital twins, allow developers to accelerate development of AI systems and the reinforcement learning libraries that integrate with them (check out the RL library that's part of RISE Lab's Ray - it's an awesome example).

Attivit‡ di Machine Learning

In generale, le principali attivit‡ di machine learning sono classificabili in quattro gruppi:

    • Apprendimento supervisionato: utilizzato per dedurre una funzione da dati con label. L'obiettivo trovare i migliori parametri per i modelli in modo da prevedere con precisione label sconosciute su altri oggetti. Se la label un numero, si parla di azione di regressione. Se la label deriva da una serie di valori relativamente limitata e definita, si parla di classificazione.

    • Apprendimento non supervisionato: utilizzato se le informazioni o label sugli oggetti sono limitate. In questo caso, gli oggetti sono raggruppati in cluster in base alle analogie riscontrate.

    • Apprendimento parzialmente supervisionato: utilizzato se sono disponibili oggetti etichettati e non. Questo approccio puÚ migliorare significativamente l'accuratezza, grazie al mix dei dati di training.

    • Reinforcement learning o Apprendimento per rinforzo o "imparare adattandosi": consideralo come un gioco in cui si guadagnano punti per ogni mossa. Si compie la prima mossa cercando di ottenere il massimo di punti possibile, cosa che influisce sull'ambiente circostante e ci spinge ad "adattarci", compiendo la mossa successiva sempre nel tentativo di ottenere pi˘ punti possibile. E avanti cosÏ fino al raggiungimento di un determinato punteggio. Un concetto piuttosto complesso, che prevede notevoli approfondimenti. Se vuoi saperne di pi˘ sull'argomento, fai clic sul link, ma poi non dire che non ti avevo avvertito!

Algoritmi

Nel corso degli anni, sono stati sviluppati diversi algoritmi per risolvere vari casi d'uso e inserire, ad esempio, l'apprendimento secondo un albero di decisione, la programmazione logica induttiva, l'apprendimento per rinforzo, le reti Bayesiane e il clustering.

Tra gli algoritmi pi˘ frequenti troviamo:

    • Regressione lineare e classificatore lineare: semplici e molto utili in casi in cui algoritmi pi˘ complessi sarebbero eccessivi.

    • Regressione logistica: il pi˘ semplice dei modelli non lineari, combina parametri lineari e funzioni sigmoidee non lineari.

    • Albero di decisione: questo approccio algoritmico simile, come principio, al modo in cui gli esseri umani prendono decisioni.

    • K-means: un algoritmo di facile comprensione, originariamente derivato dall'elaborazione di segnali, che divide una serie di oggetti in cluster, in modo che ciascun oggetto appartenga al cluster con il significato pi˘ vicino.

Per chi interessato alla codifica, ecco due letture interessanti (in inglese): Machine Learning Algorithms and Sample Code e AI Tools, Platforms, Libraries.

Applicazioni dell'IA

L'IA viene integrata sempre pi˘ spesso nei processi aziendali, in vari settori. Tra questi:

    • Vendite e Applicazioni CRM

    • Pagamenti e servizi di pagamento

    • Logistica e delivery

    • Consigli per i clienti

    • Manufacturing

Esempio: Northface utilizza IBM Watson per aiutare i clienti a stabilire quale sia il migliore abbigliamento per loro, in base a posizione geografica, sesso e attivit‡ preferite. L'ideale, se pensate di compiere un'escursione in Norvegia settentrionale in novembre!

PayPal ha sfruttato i modelli di rilevazione delle frodi per tutelare le transazioni digitali dei clienti. Utilizzando il deep learning per la sicurezza delle transazioni, PayPal ha ridotto la percentuale di frodi allo 0,32%, circa l'1% in meno rispetto alla media di settore.

L'applicazione dell'IA in ascesa quasi ovunque, ma vale la pena soffermarsi su alcuni ambiti:

    • Vista: questi sistemi "vedono", comprendono e interpretano gli input visivi. Alcuni esempi sono la diagnosi di patologie o il riconoscimento facciale per l'identificazione di "persone di interesse".

    • Riconoscimento verbale: ascoltare e comprendere il linguaggio naturale, capire diversi accenti, rumori, inflessioni, ecc. Si pensi alla traduzione automatica, alla conversione di parlato in scritto, agli input vocali per dispositivi.

    • Riconoscimento della grafia.

    • Sistemi esperti: le applicazioni che integrano IA e dati offrono spiegazioni e consulenza agli utenti finali.

Cosa ci aspetta

» innegabile che l'IA stia vivendo un momento di forte ascesa, soprattutto grazie alla confluenza di fattori favorevoli come l'incredibile potenza di elaborazione a basso costo, l'accesso a enormi volumi di dati, l'archiviazione virtualmente illimitata e i progressi compiuti da modelli e algoritmi.

I tutti i settori, ci sono sempre pi˘ ambiti in cui applicarla con successo.

Tuttavia, sembra che nel breve termine le applicazioni e i casi d'uso che hanno il tasso di successo pi˘ alto siano quelli con un effetto diretto e misurabile sul ritorno dell'investimento. "Aumentare il coinvolgimento dei clienti" un risultato importante, ma porta vantaggi inferiori rispetto alla "riduzione del 5-10% dei pacchi persi" o a un "aumento delle probabilit‡ di up-selling dell'8%".» evidente che l'IA ha fatto grandi progressi, e che aziende e clienti ne traggono gi‡ vantaggi significativi, anche se c' ancora molta strada da fare prima di arrivare al livello della fantascienza.

Scusate, devo scappare. Alexa mi chiama.

Nel frattempo, se siete tra i primi utilizzatori dell'IA o volete diventarlo, date un'occhiata a questo webinar on-demand

Come aiutare la tua azienda a diventare Early Adopter dell'IA

Buon Deep Learning.