sabato 5 febbraio 2022

La nuova rivoluzione digitale, il deep learning

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:

  1. Estrazione delle caratteristiche peculiari (chiamate features) come, ad esempio, le parole del testo, il mittente della mail, indirizzo ip sorgente, etc.

  2. 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.)

  3. Eseguire una funzione matematica, che prendendo in input delle features (parole, mittente, etc.) e i loro rispettivi pesi restituiscano un valore numerico

  4. 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

Nessun commento:

Posta un commento