Invito alla lettura di Tom Taulli, Artificial Intelligence Basics: A Non-Technical Introduction, New York, Apress Media, 2019
Soprattutto a chi ha una formazione umanistica il libro di Tom Taulli spiega in modo chiaro i principi base dell’intelligenza artificiale: dalla preparazione dei dati al machine learning, dal deep learning alle reti neurali artificiali, dal natural language processing all’automazione robotica dei processi, dai robot/cobot fisici a come implementare un progetto di AI, fino ai cenni sul futuro dell’intelligenza artificiale.
I dati sono il carburante della AI. Ma, per poter alimentare gli algoritmi, i dati vanno anzitutto preparati.
Tom Taulli sottolinea che, al crescere del numero di caratteristiche da considerare (es. elaborazione di immagini in bianco e nero vs. a colori), cresce il volume dei dati necessari per allenare la AI a generalizzare accuratamente.
Dato che l’inclusione o meno di determinate caratteristiche può influire sull’allenamento e sulle capacità previsionali dell’algoritmo, è necessario conoscere bene il settore per definire il data set da utilizzare.
La pulizia preliminare dei dati va a vantaggio della loro qualità: eliminare i duplicati; rendere i dati coerenti, facendo sì che a etichette uguali corrispondano uguali tipi di dati; formattare e validare alcuni tipi di dati in base a regole, es. date, luoghi, età; convertire e fondere in una colonna tipi di dati assimilabili, es. misure in pollici e in mm… ecco alcuni degli stratagemmi illustrati dall’autore.
Per verificare preliminarmente se i dati disponibili sono adatti ad alimentare processi di machine learning è infine opportuno visualizzarli e vedere se, già a occhio nudo, emergono pattern.
La struttura della AI può essere basata su machine learning o su deep learning.
Il machine learning è la tecnica, basata su uno o più algoritmi, che permette alla macchina di apprendere e migliorare, cioè di costruire e raffinare il suo modello interpretativo, processando i dati, senza essere programmata esplicitamente.
I concetti statistici che entrano in gioco sono soprattutto la deviazione standard, la distribuzione normale, la correlazione (distinta dalla causalità), l’estrazione di caratteristiche (la selezione delle variabili da considerare nella costruzione del modello) e il teorema di Bayes.
Vi sono quattro categorie principali di machine learning:
- Apprendimento supervisionato: ha lo scopo di apprendere una funzione che, dato un campione di dati e di output desiderati, si avvicina a una funzione che mappa gli input sugli output
- Apprendimento non supervisionato: diversamente dall’apprendimento supervisionato, non ha output etichettati, quindi il suo obiettivo è dedurre la struttura presente all’interno di punti dati. Usa algoritmi di deep learning e segue un approccio basato su clustering (per individuare iterativamente insiemi di elementi simili, es. per segmentare i clienti o il sentiment dei post sui social network), associazioni (per ipotizzare che se accade X è probabile che accada anche Y, es. nei recommendation engine degli e-shop) e rilevazione di anomalie
- Apprendimento per rinforzo: procede per prova ed errore, in base alla ricezione di feedback positivo o negativi (es. per apprendere autonomamente giochi basandosi sulle loro regole oppure, nel caso di robot, per imparare a muoversi nello spazio di azione)
- Apprendimento semi-supervisionato: mira a etichettare i punti dati senza etichetta, utilizzando le conoscenze apprese da un piccolo numero di punti dati etichettati.
Il deep learning è un sottoinsieme del machine learning, utilizzato soprattutto per risolvere problemi di classificazione in presenza di volumi di dati molto elevati.
Qual è la differenza fra machine e deep learning? Ipotizziamo di voler creare un algoritmo che riconosca immagini di cavalli. Usando il machine learning dovremmo etichettare un campione di foto di cavalli per “dimostrare” all’algoritmo in fase di allenamento le varie manifestazioni del concetto di cavallo oppure far analizzare all’algoritmo le immagini pixel per pixel dopo avergli “spiegato” attraverso attributi/valori quali sono le caratteristiche che permettono di riconoscere le varie manifestazioni del concetto di cavallo. In entrambi i casi il problema sta nella varietà delle manifestazioni del concetto di cavallo, difficilmente dimostrabili/spiegabili in modo computabile. Usando il deep learning l’approccio cambia: l’algoritmo scansiona direttamente le immagini pixel per pixel e, imitando il funzionamento del cervello umano, elabora in modo autonomo il modello necessario per classificare e organizzare in cluster i dati velocemente, senza avere bisogno di concettualizzazioni a priori.
Il deep learning imita il funzionamento del cervello umano usado reti neurali artificiali. Il termine “profondo” (deep) in deep learning si riferisce proprio alla profondità, ovvero al numero dei livelli di una data rete neurale. Le reti neurali artificiali sono composte da livelli di nodi (neuroni artificiali) che contengono un livello di input, uno o più livelli nascosti e un livello di output. Ciascun nodo si connette ad un altro e ha un peso e una soglia associati. I pesi aiutano a determinare l’importanza dell’input e quindi il suo contributo più o meno significativo all’output. Tutti gli input vengono moltiplicati per i rispettivi pesi e sommati. Il valore ottenuto passa poi attraverso una funzione di attivazione, che determina l’output. Se supera una determinata soglia, il valore attiva il nodo, passando i dati al livello successivo nella rete. L’output di un nodo diventa quindi l’input del nodo successivo.
Vi sono vari tipi di reti neurali:
- Feedforward: sono reti neurali che fluiscono in una sola direzione, dall’input all’output, attraverso uno o più livelli nascosti
- Reti neurali ricorrenti: sono caratterizzate da loop di feedback, processando quindi non solo l’input, ma anche input precedenti nel tempo. Sono usate es. per far funzionare i suggerimenti nelle app di messaggistica
- Reti neurali convolutive: imitano il funzionamento dei neuroni nella corteccia visiva, che prendono in carico l’immagine dalla retina e la processano per stadi di raffinamento progressivo, identificando es. prima le linee e gli angoli, poi le forme, infine l’oggetto. Sono usate es. per riconoscere immagini
- Reti generative avversarie: si basano sull’addestramento competitivo di due reti neurali nel contesto di un gioco a somma zero, con l’obiettivo di permettere alla rete di apprendere come generare nuovi dati (es. video, audio, immagini) aventi la stessa distribuzione di quelli usati in fase di addestramento
Al di là delle criticità tecniche (es. capacità di astrazione, nessi causali, ambiguità, senso comune, effetto farfalla, funzionamento del mondo fisico, cambiamenti nei dati, ambiti caotici, voracità di risorse sono ancora aspetti problematici), a livello sociale la spinosità del deep learning sta dal fatto di essere tendenzialmente una black-box, a causa dell’autonomia e del dinamismo del suo processo di apprendimento. Di qui la necessità di realizzare sistemi in grado di rendere più trasparenti gli algoritmi basati sul deep learning, spiegando il percorso che li porta a un determinato output.
Il natural language processing è un sottoinsieme della AI.
Senza addentrarsi nelle peculiarità di riconoscimento vocale, riconoscimento delle emozioni del parlante per migliorare la comprensione del parlato grazie all’interpretazione del linguaggio del corpo, chatbot, assistenti vocali e commercio conversazionale, è interessante soffermarsi sulle principali fasi necessarie per il riconoscimento testuale.
L’algoritmo anzitutto pulisce e prepara il testo, svolgendo attività di:
- Tokenizzazione: suddivisione del testo nei suoi elementi costitutivi e normalizzazione del testo (es. trasformazione del testo in lettere minuscole, eliminazione dei segni di interpunzione, svolgimento delle forme contratte, ecc. Ma questo può portare ad altri problemi, es.: gestione di più termini che devono formare un solo token, es. New York, parole/frasi del linguaggio scientifico che senza segni diventano indecifrabili; parole puntate es. Mr. che causano l’interruzione non corretta della frase)
- Stemming: è il processo di riduzione della forma flessa di una parola alla sua forma radice, detta tema, che non corrisponde necessariamente alla radice morfologica (lemma) della parola
- Lemmatizzazione: è il processo di riduzione della forma flessa di una parola alla sua forma canonica, detta lemma, cioè della forma di riferimento con cui si cerca il termine sul dizionario.
L’algoritmo passa poi alla comprensione (ed eventualmente alla generazione) del testo:
- Esegue l’analisi logica e corrispondente etichettatura del testo
- Suddivide in parti del testo per favorirne la comprensione (chunking)
- Riconosce le entità nominate che identificano persone, luoghi, organizzazioni, espressioni temporali, ma anche entità più specifiche come gli ingredienti di una ricetta, le medicine in una prescrizione, ecc. Appoggiandosi a una knowledge base, l’obiettivo del riconoscimento delle entità nominate è trasformare un dato da non strutturato a strutturato, dotato di valore semantico
- Esegue il topic modelling, la modellazione statistica necessaria per scoprire gli argomenti astratti presenti nel testo.
Tom Taulli sottolinea che non sempre un’applicazione AI è la scelta migliore.
In particolare in ambito aziendale l’automazione robotica dei processi – che impiega robot software programmati esplicitamente, non in grado di apprendere e migliorare nel tempo -, permette comunque di rendere efficienti processi aziendali ripetitivi, preventivamente strutturati e ottimizzati, integrandosi in una più ampia strategia di gestione dei processi di business.
L’automazione robotica dei processi, che può completare compiti in modo autonomo o assistere l’operatore umano, è indicata soprattutto per lavori che richiedono molto tempo, che hanno elevati margini di errore, che richiedono l’uso di più applicativi, che sono esternalizzabili.
Se integrata con algoritmi di AI, l’automazione robotica dei processi è detta cognitiva.