Intelligenza Artificiale
Intelligenza Artificiale e le sue basi
Intelligenza Artificiale
L’Intelligenza Artificiale (AI) è un campo dell’informatica dedicato allo sviluppo di sistemi intelligenti in grado di eseguire compiti che normalmente richiedono l’intelligenza umana:
- Percezione (riconoscimento di immagini, suoni)
- Ragionamento
- Apprendimento
- Problem solving
- Decision-making
Il termine AI è generico e racchiude al suo interno diverse sotto-discipline:
1
2
3
4
5
6
7
8
9
10
11
12
┌──────────────────────────────────────────┐
│ Artificial Intelligence │
│ ┌────────────────────────────────────┐ │
│ │ Machine Learning │ │
│ │ ┌──────────────────────────────┐ │ │
│ │ │ Deep Learning │ │ │
│ │ │ ┌────────────────────────┐ │ │ │
│ │ │ │ Generative AI │ │ │ │
│ │ │ └────────────────────────┘ │ │ │
│ │ └──────────────────────────────┘ │ │
│ └────────────────────────────────────┘ │
└──────────────────────────────────────────┘
Casi d’uso dell’AI
Tra i principali ambiti di applicazione dell’AI troviamo:
- Computer Vision (riconoscimento e analisi di immagini)
- Facial Recognition (riconoscimento facciale)
- Fraud Detection (rilevamento di frodi)
- Intelligent Document Processing (IDP) (elaborazione intelligente di documenti)
Componenti dell’AI
Un sistema di AI è composto da diversi livelli:
- Data Layer - raccolta di grandi quantità di dati
- ML Framework e Algorithm Layer - data scientist e ingegneri collaborano per comprendere i casi d’uso, i requisiti e i framework in grado di risolverli
- Model Layer - implementazione e addestramento del modello, con la sua struttura, i parametri, le funzioni e l’ottimizzatore
- Application Layer - come servire il modello e rendere disponibili le sue capacità agli utenti
Machine Learning
Il Machine Learning (ML) è un tipo di AI che costruisce metodi che permettono alle macchine di imparare dai dati.
Le caratteristiche principali sono:
- I dati vengono sfruttati per migliorare le prestazioni su un determinato compito
- Il modello effettua predizioni basate sui dati con cui è stato addestrato
- Non è necessaria la programmazione esplicita di regole: il modello impara autonomamente
I due approcci principali del ML sono:
- Regressione - predizione di un valore numerico continuo (es. prezzo di una casa)
- Classificazione - predizione di una categoria discreta (es. “spam” o “non spam”)
Deep Learning
Il Deep Learning (DL) è un sottoinsieme del Machine Learning che utilizza reti neurali (ispirate al funzionamento del cervello umano) per addestrare modelli in grado di elaborare pattern molto più complessi rispetto al ML tradizionale.
Il termine “Deep” si riferisce al fatto che il modello ha più livelli (layer) di apprendimento.
Caratteristiche principali:
- Richiede grandi quantità di dati in input
- Necessita di GPU (Graphical Processing Unit) per l’elaborazione
- È alla base di applicazioni come Computer Vision (classificazione immagini, rilevamento oggetti) e Natural Language Processing - NLP (classificazione testi, analisi del sentimento, traduzione, generazione di linguaggio)
Reti Neurali
Le reti neurali sono composte da nodi o neuroni (unità di calcolo) collegati tra loro e organizzati in livelli:
- Input Layer - riceve i dati in ingresso
- Hidden Layers - livelli intermedi dove avviene l’elaborazione. Quando la rete vede molti dati, identifica pattern e modifica le connessioni tra i nodi
- Output Layer - produce il risultato finale
Le reti neurali possono avere miliardi di nodi. Ogni nodo “comunica” con gli altri passando (o meno) dati al livello successivo.
Esempio: riconoscimento di cifre scritte a mano
Intuitivamente, ogni layer della rete impara a riconoscere un diverso “pattern” nei dati:
- Un layer potrebbe imparare a riconoscere linee verticali (utili per 1, 4, 7)
- Un altro potrebbe imparare a riconoscere curve nella parte inferiore (utili per 6, 8, 0)
Tutto questo viene appreso autonomamente dalla rete neurale durante l’addestramento, senza che nessuno programmi esplicitamente queste regole.
Generative AI
La Generative AI (Gen-AI) è un sottoinsieme del Deep Learning, basata su Foundation Model multi-purpose supportati da reti neurali.
Questi modelli possono essere ulteriormente personalizzati (fine-tuned) per adattarsi meglio a casi d’uso specifici.
Un Foundation Model viene addestrato su dati non etichettati (unlabeled data) e può svolgere un’ampia gamma di compiti generali:
- Generazione di testo
- Riassunti
- Estrazione di informazioni
- Generazione di immagini
- Chatbot
- Risposta a domande
Il modello Transformer (LLM)
I Large Language Model (LLM) basati su architettura Transformer sono tra i modelli più potenti della Generative AI.
A differenza dei modelli precedenti, un Transformer è in grado di processare un’intera frase contemporaneamente anziché parola per parola, risultando più veloce ed efficiente.
Il Transformer assegna un’importanza relativa a specifiche parole all’interno di una frase, producendo frasi più coerenti.
Esempi di LLM basati su Transformer:
- Google BERT (Bidirectional Encoder Representations from Transformers)
- OpenAI ChatGPT (Chat Generative Pre-trained Transformer)
Questi modelli sono addestrati su enormi quantità di dati testuali (internet, libri, articoli) e imparano pattern e relazioni tra parole e frasi.
Modelli di Diffusione
I Diffusion Model (es. Stable Diffusion) sono utilizzati per la generazione di immagini a partire da testo.
Il processo si basa su due fasi:
- Forward diffusion (addestramento) - si parte da un’immagine e si aggiunge progressivamente del rumore fino a ottenere rumore puro
- Reverse diffusion (generazione) - si parte dal rumore e, guidati da un prompt testuale (es. “a cat with a computer”), si ricostruisce un’immagine coerente
Modelli Multi-modali
Un modello multi-modale (es. GPT-4o) non si affida a un singolo tipo di input o output.
Può ricevere in ingresso un mix di:
- Audio
- Immagini
- Testo
E produrre in uscita un mix di:
- Video
- Testo
- Immagini
Ad esempio, può ricevere un’immagine di un gatto e un file audio, e generare un video in cui il gatto “parla” con quella voce.
L’analogia umana
In realtà, anche gli esseri umani utilizzano tutti e quattro i livelli dell’AI nella vita quotidiana:
- A volte sappiamo che “se succede X, allora fai Y” - questo è AI (regole esplicite)
- A volte abbiamo visto molte cose simili prima e le classifichiamo - questo è Machine Learning
- A volte non abbiamo mai visto qualcosa, ma abbiamo “imparato” molti concetti simili e prendiamo una decisione - questo è Deep Learning
- A volte diventiamo creativi e, basandoci su ciò che abbiamo imparato, generiamo contenuti nuovi - questo è Generative AI
Training Data
Per addestrare un modello di ML è fondamentale avere dati di buona qualità.
Il principio chiave è: “Garbage in => Garbage out” (dati scadenti in ingresso producono risultati scadenti in uscita).
La fase di preparazione dei dati è la fase più critica nella costruzione di un buon modello.
I dati possono essere classificati secondo due dimensioni:
- Labeled vs. Unlabeled (Etichettati vs. Non etichettati)
- Structured vs. Unstructured (Strutturati vs. Non strutturati)
Dati Etichettati vs. Non Etichettati
Dati Etichettati (Labeled Data)
- I dati includono sia le feature di input che le corrispondenti etichette di output
- Esempio: un dataset di immagini di animali dove ogni immagine è etichettata con il tipo di animale (es. “cane”, “gatto”)
- Caso d’uso: Supervised Learning, dove il modello impara a mappare gli input su output noti
Dati Non Etichettati (Unlabeled Data)
- I dati includono solo le feature di input, senza alcuna etichetta di output
- Esempio: una collezione di immagini senza etichette associate
- Caso d’uso: Unsupervised Learning, dove il modello cerca di trovare pattern o strutture nei dati autonomamente
Dati Strutturati vs. Non Strutturati
Dati Strutturati (Structured Data)
Dati organizzati in un formato strutturato, spesso in righe e colonne (come un foglio Excel):
- Dati Tabulari - dati organizzati in una tabella con righe (record) e colonne (feature). Esempio: database clienti con campi come nome, età, importo acquisti
- Serie Temporali (Time Series) - punti dati raccolti in sequenza temporale. Esempio: prezzi delle azioni registrati giornalmente
Dati Non Strutturati (Unstructured Data)
Dati che non seguono una struttura specifica, spesso contenuto testuale o multimediale:
- Dati Testuali - testo non strutturato come articoli, post sui social media, recensioni clienti
- Dati Immagine - immagini di vario formato e contenuto, utilizzate ad esempio per il riconoscimento di oggetti
Tipi di Apprendimento
Il modo in cui il modello impara dai dati definisce il tipo di apprendimento. I principali sono quattro.
Supervised Learning (Apprendimento Supervisionato)
Il modello impara una funzione di mappatura che predice l’output per nuovi dati in ingresso mai visti prima.
Richiede dati etichettati: molto potente, ma difficile da applicare su milioni di datapoint (bisognerebbe averli tutti etichettati).
I due sotto-tipi principali sono:
Regressione
- Predice un valore numerico continuo basato sui dati in input
- La variabile di output può assumere qualsiasi valore in un intervallo
- Esempi: predizione del prezzo di una casa, previsione del prezzo di un’azione, previsione meteo
Classificazione
- Predice l’etichetta categorica dei dati in input
- La variabile di output è discreta (cade in una categoria specifica)
- Esempi:
- Classificazione binaria - email “spam” o “non spam”
- Classificazione multiclasse - animale classificato come “mammifero”, “uccello”, “rettile”
- Classificazione multi-label - un film etichettato come “azione” e “commedia”
Training Set, Validation Set e Test Set
Per l’addestramento supervisionato, il dataset viene suddiviso in tre parti:
| Set | Percentuale | Scopo |
|---|---|---|
| Training Set | 60-80% | Addestramento del modello |
| Validation Set | 10-20% | Tuning degli iperparametri e validazione delle prestazioni |
| Test Set | 10-20% | Valutazione finale delle prestazioni del modello |
Feature Engineering
Il Feature Engineering è il processo di utilizzo della conoscenza del dominio per selezionare e trasformare i dati grezzi in feature significative, migliorando le prestazioni del modello.
Le tecniche principali sono:
- Feature Extraction - estrarre informazioni utili dai dati grezzi (es. derivare l’età dalla data di nascita)
- Feature Selection - selezionare un sottoinsieme di feature rilevanti (es. scegliere i predittori importanti in un modello di regressione)
- Feature Transformation - trasformare i dati per migliorare le prestazioni (es. normalizzare i dati numerici)
Su dati strutturati (es. previsione prezzo case) si possono creare nuove feature come “prezzo al metro quadro”, selezionare le feature importanti (posizione, numero di stanze) e normalizzare i valori.
Su dati non strutturati (es. analisi del sentimento su recensioni) si convertono i testi in feature numeriche tramite tecniche come TF-IDF o word embeddings, oppure si estraggono caratteristiche da immagini tramite reti neurali convoluzionali (CNN).
Unsupervised Learning (Apprendimento Non Supervisionato)
L’obiettivo è scoprire pattern, strutture o relazioni nei dati in input, senza avere etichette predefinite.
Il modello deve individuare autonomamente i gruppi, anche se poi le etichette vengono assegnate dall’uomo ai gruppi risultanti.
Le tecniche principali sono:
Clustering
- Raggruppa dati simili in cluster basandosi sulle loro feature
- Esempio: segmentazione dei clienti di un e-commerce in base al comportamento d’acquisto, usando l’algoritmo K-means
- Risultato: l’azienda può mirare ogni segmento con strategie di marketing personalizzate
Association Rule Learning
- Identifica associazioni tra elementi
- Esempio: analisi del carrello (Market Basket Analysis) per capire quali prodotti vengono acquistati insieme (es. pane e burro), usando l’algoritmo Apriori
- Risultato: il supermercato può posizionare i prodotti associati vicini per aumentare le vendite
Anomaly Detection
- Identifica dati che deviano significativamente dal comportamento tipico
- Esempio: rilevamento di transazioni fraudolente con carte di credito, usando l’algoritmo Isolation Forest
- Risultato: il sistema segnala le transazioni potenzialmente fraudolente per ulteriori indagini
Semi-supervised Learning (Apprendimento Semi-Supervisionato)
Utilizza una piccola quantità di dati etichettati insieme a una grande quantità di dati non etichettati per addestrare il modello.
Il processo funziona così:
- Il modello viene addestrato inizialmente sui pochi dati etichettati
- L’algoritmo parzialmente addestrato etichetta autonomamente i dati non etichettati (pseudo-labeling)
- Il modello viene ri-addestrato sull’intero mix di dati risultante
Self-supervised Learning (Apprendimento Auto-Supervisionato)
Il modello genera autonomamente delle pseudo-label per i propri dati, senza che un essere umano etichetti nulla in anticipo.
Successivamente, utilizzando queste pseudo-label, risolve problemi tradizionalmente affrontati dal Supervised Learning.
Il processo prevede la creazione di pre-text task: compiti semplici che insegnano al modello a creare una “rappresentazione” del dataset. Ad esempio:
- Predire una parte dell’input a partire da un’altra parte
- Predire il futuro a partire dal passato
- Predire una parola mascherata a partire dal contesto visibile
Dopo aver risolto questi pre-text task, il modello è pronto per affrontare il compito finale (downstream task).
Questo approccio è ampiamente utilizzato nel NLP ed è alla base della creazione di modelli come BERT e GPT.