Riconoscere
una foto, una canzone, un’abitudine di un utente. Con
l’intelligenza artificiale è già possibile. Ma perché è
importante, e come sta influenzando il nostro modo di vivere?
Prima
di rispondere a questa domanda dobbiamo fare un passo indietro per
spiegare la differenza tra Artificial Intelligence (AI), Machine
Learning (ML) e Deep Learning (DL), termini spesso confusi ma dal
significato ben preciso.
Per
spiegare l’idea di base serviamoci di un’immagine presa dal sito
di NVIDIA:
Dall’immagine
appare evidente come la nozione di AI sia un concetto generale di ML
che a sua volta è un concetto più generale del DL. Ma non solo.
Infatti come vediamo i primi algoritmi di deep learning sono nati
poco più di 10 anni fa a differenza dell’Intelligenza artificiale
che nasce intono agli anni ‘50 con i primi linguaggi come LISP e
PROLOG con l’intento di imitare le capacità dell’intelligenza
umana.
I
primi algoritmi di intelligenza artificiale si limitavano a eseguire
un certo numero possibile di azioni secondo una certa logica definita
dal programmatore (come nel gioco di dama o scacchi).
Attraverso
il machine learning, l’intelligenza artificiale si è evoluta
attraverso i cosiddetti algoritmi di apprendimento supervisionato e
non supervisionato con l’obiettivo di creare modelli matematici di
apprendimento automatico basandosi su una grossa mole di dati in
input che costituiscono “l’esperienza” dell’intelligenza
artificiale.
Nell’apprendimento
supervisionato, per poter creare il modello, è necessario addestrare
(training) l’AI assegnando a ogni elemento un’etichetta: ad
esempio se voglio classificare la frutta, farò foto di tante mele
diverse e assegnerò al modello l’etichetta “mela” così per
pera, banana, etc.
Nell’apprendimento
non supervisionato il processo sarà inverso: si dovrà creare un
modello a partire da immagini differenti di frutta, e il modello
dovrà estrarre le etichette secondo caratteristiche che accomunano
le mele, le pere e le banane.
I
modelli di machine learning supervisionati sono già utilizzati da
antivirus, filtri per lo spam, ma anche nel campo del marketing come
i prodotti suggeriti da amazon.
L’esempio
del filtro antispam
L’idea
alla base di un filtro antispam per la posta elettronica è quella di
addestrare un modello che “apprenda” da centinaia di migliaia (se
non milioni) di email, etichettando ogni mail come spam o legittima.
Una volta addestrato il modello, l’operazione di classificazione
prevede:
Estrazione
delle caratteristiche peculiari (chiamate features) come, ad
esempio, le parole del testo, il mittente della mail, indirizzo ip
sorgente, etc.
Considerare
un “peso” per ogni feature estratta (ad esempio se nel testo ci
sono 1000 parole, alcune di esse potranno essere più discriminanti
di altre come ad esempio la parola “viagra”, “porn”, etc.
avranno un peso diverso da buongiorno, università, etc.)
Eseguire
una funzione matematica, che prendendo in input delle features
(parole, mittente, etc.) e i loro rispettivi pesi restituiscano un
valore numerico
Verificare
se tale valore è al di sopra o al di sotto di una certa soglia per
determinare se la mail è legittima o da considerare spam
(classificazione)
Neuroni
artificiali
Come
detto, il Deep learning è una branca del machine learning. La
differenza col machine learning è la complessità computazionale che
mette in gioco enormi quantità di dati con una struttura di
apprendimento “a strati” fatta di reti neurali artificiali. Per
comprendere questo concetto si parta dall’idea di replicare il
singolo neurone umano come nella figura sotto.
Come
visto in precedenza per il machine learning abbiamo una serie di
segnali di input (a sinistra dell’immagine) a cui associamo dei
pesi (Wk)
differenti, aggiungiamo un “bias” congnitivo (bk)
cioè una sorta di distorsione, applichiamo infine una funzione di
attivazione cioè una funzione matematica come una funzione
sigmoidea, tangente iperbolica, ReLU, etc. che prendendo una serie di
input pesati e tenendo conto di un bias, resituisce un output (yk).
Questo
è il singolo neurone artificiale. Per creare una rete neurale si
collegano gli output del singolo neurone a uno degli input del
neurone successivo formando una fitta rete di collegamenti come
mostrato nella figura in basso che rappresenta la vera e propria Deep
Neural Network.
Il
Deep Learning
Come
possiamo vedere dalla figura sopra abbiamo un insieme di input da
fornire alla rete neurale (input layer), poi dei livelli intermedi
chiamati layer nascosti (hidden layers) che rappresentano gli
“strati” del modello e infine un livello di output in grado di
discriminare (o riconoscere) un oggetto rispetto a un altro. Possiamo
pensare a ogni livello nascosto (hidden layers) come alla capacità
di apprendimento: più alto è il numero di strati intermedi (cioè
più profondo è il modello), più accurata sarà la comprensione ma
anche più complessi i calcoli da svolgere.
Da
notare che l’output layer rappresenta un insieme di valori in
uscita con un certo grado di probabilità, ad esempio al 95% una
mela, al 4,9% una pera e allo 0,1% una banana e così via.
Immaginiamo
un modello DL nel campo della computer vision: il primo strato è in
grado di riconoscere i bordi dell’oggetto, il secondo strato a
partire dai bordi può riconoscere le forme, il terzo strato a
partire dalle forme può riconoscere oggetti complessi composti da
più forme, il quarto strato a partire da forme complesse può
riconoscere dettagli e così via. Nel definire un modello non c’è
un numero preciso di hidden layer, ma il limite è imposto dalla
potenza richiesta per addestrare il modello in un certo tempo.
Senza
entrare troppo nello specifico l’addestramento di una rete neurale
ha come obiettivo il calcolo di tutti i pesi e bias da applicare a
tutti i singoli neuroni presenti nel modello: risulta quindi evidente
come la complessità aumenti esponenzialmente all’aumentare degli
strati intermedi (hidden layer). Per questo motivo ormai da anni si
utilizzano processori di schede grafiche (GPU) per il training:
queste schede sono adatte a carichi di lavoro più impegnativi in
quanto, a differenza delle CPU, sono in grado di svolgere migliaia di
operazioni in parallelo utilizzando architetture SIMD (Single
Instruction Multiple Data) oltre a moderne tecnologie come i Tensor
Core che consentono operazioni matriciali in hardware.
Applicazioni
del Deep Learning
Processando
enormi quantità di dati, questi modelli hanno un’alta tolleranza
ai guasti e al rumore nonostante dati incompleti o imprecisi.
Forniscono quindi un supporto ormai fondamentale in ogni campo della
scienza. Vediamone qualcuno.
Classificazione
delle immagini e sicurezza
In
caso di crimini permette il riconoscimento di un volto a partire
dall’immagine catturata da una videocamera di sorveglianza e
confrontandolo con database di milioni di volti: tale operazione se
fatta manualmente dall’uomo potrebbe impiegare giorni se non mesi o
addirittura anni. Inoltre, attraverso la ricostruzione di immagini
alcuni modelli permettono di colorare parti mancanti delle stesse,
con accuratezza ormai prossima al 100% del colore originale.
Natural
Language Processing
La
capacità di un computer di capire testo scritto e parlato nello
stesso modo di come farebbe l’uomo. Tra i sistemi più famosi Alexa
e Siri in grado non solo di capire ma di rispondere a domande di
diversa natura.
Altri
modelli sono in grado di fare sentiment analysis, utilizzando sempre
sistemi di estrazione ed opinioni dal testo o dalle parole.
Diagnosi
mediche
In
campo medico questi modelli vengono ormai utilizzati per eseguire
diagnosi, inclusa l’analisi di TAC o risonanze magnetiche. I
risultati che nell’output layer hanno una confidenza del 90-95%, in
alcuni casi, possono prevedere una terapia per il paziente senza
l’intervento umano. Capaci di lavorare 24 ore al giorno, tutti i
giorni, possono dare supporto anche nella fase di triage dei pazienti
diminuendo notevolmente i tempi di attesa in un pronto soccorso.
Guida
autonoma
Sistemi
a guida autonoma necessitano di monitoraggio continuo in tempo reale.
Modelli più evoluti prevedono veicoli in grado di gestire ogni
situazione di guida indipendentemente da un conducente la cui
presenza a bordo non è prevista, prevedendo la presenza di soli
passeggeri trasportati.
Previsioni
e Profilazione
Modelli
di deep learning finanziario permettono di avanzare ipotesi
sull’andamento dei mercati nel futuro o conoscere il rischio di
insolvenza di un istituto in maniera più accurata di quanto oggi può
fare l’uomo con interviste, studi, questionari e calcoli manuali.
Questi
modelli utilizzati nel marketing permettono di conoscere i gusti
delle persone per proporre ad esempio prodotti nuovi basandosi su
associazioni fatte con altri utenti che hanno una storia di acquisti
simile.
Evoluzioni
adattive
In
base alle “esperienze” caricate, il modello è in grado di
adattarsi a situazioni che si verificano nell’ambiente o dovute
all’input di un utente. Gli algoritmi adattivi causano un
aggiornamento di tutta la rete neurale in base alle nuove interazioni
col modello. Ad esempio immaginiamo a come Youtube propone video di
un certo tema a seconda del periodo, adattandosi giorno dopo giorno e
mese dopo mese a nostri nuovi gusti personali e interessi.
Per concludere, il
Deep Learning è un campo di ricerca ancora in forte espansione.
Anche le università stanno aggiornando i propri programmi di
insegnamento su questa materia che richiede comunque solide basi di
matematica.
Sono
indubbi i vantaggi dati dall’applicazione del DL all’industria,
alla ricerca, alla salute e alla vita di tutti i giorni.
Non
dobbiamo però dimenticare che questo deve fornire un supporto
all’uomo e che solo in alcuni casi ristretti e ben specifici ciò
può sostituire l’uomo. Ad oggi, infatti, non esistono modelli
“general purpose” ovvero in grado di risolvere qualunque tipo di
problema.
Un
altro aspetto è l’utilizzo di questi modelli per fini non leciti
come ad esempio creare video DeepFake (vedi articolo), cioè tecniche usate per
sovrapporre altre immagini e video con immagini o video originali con
lo scopo di creare fake news, truffe o revenge porn.
Un
altro modo illecito di usare questi modelli è quello di creare una
serie di tecniche volte a compromettere un sistema informatico come
l’adversarial machine learning. Attraverso tali tecniche è
possibile causare la classificazione errata del modello (e quindi
indurre il modello a prendere una scelta sbagliata), ricavare
informazioni sul set di dati usato (introducendo problemi di privacy)
o clonare il modello (causando problemi di copyright).
Andrea Piras
Riferimenti
https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/
https://it.wikipedia.org/wiki/Lisp
https://it.wikipedia.org/wiki/Prolog
https://it.wikipedia.org/wiki/Apprendimento_supervisionato
https://www.enjoyalgorithms.com/blog/email-spam-and-non-spam-filtering-using-machine-learning
https://foresta.sisef.org/contents/?id=efor0349-0030098
https://towardsdatascience.com/training-deep-neural-networks-9fdb1964b964
https://hemprasad.wordpress.com/2013/07/18/cpu-vs-gpu-performance/
https://it.wikipedia.org/wiki/Analisi_del_sentiment
https://www.ai4business.it/intelligenza-artificiale/auto-a-guida-autonoma-cosa-sono-e-come-funzionano/
https://www.linkedin.com/posts/andrea-piras-3a40554b_deepfake-leonardodicaprio-deepfacelab-activity-6886983215253336065-2VMu
https://arxiv.org/abs/1712.03141