Indice
1 Introduzione all’intelligenza artificiale 7
1.1 Introduzione all’Intelligenza Artificiale . . . . . . . . . . . . . . . . . 7
1.1.1 Obiettivi del corso . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Macchine intelligenti e macchine stupide . . . . . . . . . . . . . . . . 8
1.2.1 Le macchine stupide . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Le macchine intelligenti . . . . . . . . . . . . . . . . . . . . . 8
1.3 Introduzione alla ricerca nei giochi . . . . . . . . . . . . . . . . . . . 8
1.3.1 Ricerca euristica e funzione di valutazione . . . . . . . . . . . 10
1.4 L’algoritmo A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Euristiche nei puzzle . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 AI e giochi avversari . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 Dal gioco al planning . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 La teoria della complessità e la motivazione alla nascita dell’IA . . . . 11
1.8.1 Il concetto di complessità computazionale . . . . . . . . . . . 11
1.8.2 Esempi di complessità . . . . . . . . . . . . . . . . . . . . . . 12
1.8.3 Rappresentazione grafica della crescita della complessità . . . 13
1.8.4 Perché la complessità ha portato alla nascita dell’IA . . . . . . 13
1.9 Origini e approcci dell’Intelligenza Artificiale . . . . . . . . . . . . . . 14
1.9.1 Modelli antropomorfi e modelli di calcolo . . . . . . . . . . . . 14
1.9.2 L’approccio non simbolico: il modello neurale . . . . . . . . . 14
1.9.3 L’approccio simbolico: il modello cognitivo . . . . . . . . . . . 15
1.9.4 Verso l’unione dei due approcci . . . . . . . . . . . . . . . . . 15
1.10 Le reti neurali artificiali . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.10.1 Il neurone artificiale . . . . . . . . . . . . . . . . . . . . . . . 16
1.10.2 Architettura della rete . . . . . . . . . . . . . . . . . . . . . . 17
1.11 Apprendimento nelle reti neurali . . . . . . . . . . . . . . . . . . . . . 18
1.12 Addestramento nelle reti neurali . . . . . . . . . . . . . . . . . . . . . 18
1.12.1 Apprendimento supervisionato . . . . . . . . . . . . . . . . . . 19
1.13 La discesa del gradiente: intuizione matematica . . . . . . . . . . . . 19
1.13.1 Il caso di una funzione in una variabile . . . . . . . . . . . . . 19
1.13.2 Ruolo del learning rate . . . . . . . . . . . . . . . . . . . . . . 20
1.13.3 Minimi locali e globali . . . . . . . . . . . . . . . . . . . . . . 20
1.13.4 Algoritmo di Backpropagation e discesa del gradiente . . . . . 21
1.13.5 Batch e epoche . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.14 Problemi dell’apprendimento: l’Overfitting . . . . . . . . . . . . . . . 22
1.15 Reti neurali moderne e applicazioni . . . . . . . . . . . . . . . . . . . 23
1.15.1 Limiti e questioni aperte . . . . . . . . . . . . . . . . . . . . . 23
1.15.2 Esempi di applicazione . . . . . . . . . . . . . . . . . . . . . . 23
1
1.15.3 L’IA come processo empirico . . . . . . . . . . . . . . . . . . . 24
1.16 Reti neurali e informazione simbolica . . . . . . . . . . . . . . . . . . 24
1.17 Il problema della rappresentazione numerica del linguaggio . . . . . . 25
1.17.1 Word2Vec: apprendere gli embedding con reti neurali . . . . . 27
1.17.2 Matrici di co-occorrenza e TF-IDF . . . . . . . . . . . . . . . 27
1.18 Kogica e rappresentazione del mondo . . . . . . . . . . . . . . . . . . 28
1.19 Rappresentazione della conoscenza e ragionamento (KR&R) . . . . . 29
1.20 Semantica e interpretazione . . . . . . . . . . . . . . . . . . . . . . . 30
1.20.1 Regole di inferenza e deduzione automatica . . . . . . . . . . . 30
1.21 Modellare la struttura e il comportamento . . . . . . . . . . . . . . . 32
1.22 Strategie di inferenza: forward e backward chaining . . . . . . . . . . 35
1.23 Sistemi a regole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.23.1 Inferenza e strategie di attivazione delle regole . . . . . . . . . 36
1.24 Dal ragionamento categorico al ragionamento approssimato . . . . . . 40
1.24.1 Logica fuzzy: continuità del vero . . . . . . . . . . . . . . . . 41
1.25 La differenza di principio: trasparenza vs. opacità . . . . . . . . . . . 44
1.26 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.26.1 Origini e sviluppo del Machine Learning . . . . . . . . . . . . 46
1.26.2 Principali approcci all’apprendimento automatico . . . . . . . 46
1.26.3 Problemi tipici dell’apprendimento automatico . . . . . . . . . 47
1.26.4 Ambiti applicativi del Machine Learning . . . . . . . . . . . . 48
1.26.5 Fasi del processo di apprendimento . . . . . . . . . . . . . . . 48
1.26.6 Tipi di conoscenza e modelli di apprendimento . . . . . . . . . 48
1.27 Interazione, Dati e Apprendimento nel Machine Learning . . . . . . . 49
1.27.1 Il problema alla base: la creazione del dataset . . . . . . . . . 49
1.27.2 Costruzione del dataset . . . . . . . . . . . . . . . . . . . . . . 49
1.27.3 Il problema del bias nei dati . . . . . . . . . . . . . . . . . . . 50
1.27.4 Generalizzare e il principio di induzione . . . . . . . . . . . . . 51
1.27.5 Apprendimento induttivo . . . . . . . . . . . . . . . . . . . . . 51
1.28 Concept Learning e Classificazione . . . . . . . . . . . . . . . . . . . 52
1.28.1 Concept Learning: un’altra visione dell’induzione . . . . . . . 52
1.28.2 Approcci e forme di generalizzazione . . . . . . . . . . . . . . 52
1.28.3 Una visione concreta del problema: la classificazione . . . . . 53
1.28.4 Classificazione e apprendimento . . . . . . . . . . . . . . . . . 53
1.28.5 Apprendimento supervisionato . . . . . . . . . . . . . . . . . . 53
1.28.6 Apprendimento non supervisionato . . . . . . . . . . . . . . . 54
1.28.7 Rappresentazione grafica dell’apprendimento supervisionato . 54
1.28.8 Rappresentazione grafica dell’apprendimento non supervisionato 55
1.29 Generalizzazione e Alberi Decisionali . . . . . . . . . . . . . . . . . . 55
1.29.1 Il problema della generalizzazione . . . . . . . . . . . . . . . . 55
1.29.2 Il ruolo del bias nella generalizzazione . . . . . . . . . . . . . . 56
1.29.3 Alberi decisionali: una rappresentazione operazionale . . . . . 56
1.29.4 Albero decisionale per concetti booleani . . . . . . . . . . . . 57
1.29.5 Apprendimento di un albero decisionale . . . . . . . . . . . . . 57
1.30 Algoritmi di Apprendimento: ID3, Entropia e Alberi Decisionali Avan-
zati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.30.1 Una soluzione banale e il principio di semplicità . . . . . . . . 58
1.30.2 L’algoritmo ID3 di Quinlan . . . . . . . . . . . . . . . . . . . 58
2
1.30.3 Scelta dell’attributo ideale: la misura di entropia . . . . . . . 58
1.30.4 Digressione: significato intuitivo dell’entropia . . . . . . . . . 59
1.30.5 Esempio di selezione dell’attributo . . . . . . . . . . . . . . . 59
1.30.6 Valutazione delle prestazioni del modello . . . . . . . . . . . . 60
1.30.7 Problemi comuni e metriche di valutazione . . . . . . . . . . . 61
1.30.8 Random Forest . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.31 Apprendimento di Regole . . . . . . . . . . . . . . . . . . . . . . . . 62
1.32 Il Fondamento Probabilistico: Il Teorema di Bayes . . . . . . . . . . . 62
1.33 Esempio Pratico: Caso Ortofrutticolo . . . . . . . . . . . . . . . . . . 63
1.34 Valutazione dell’Interesse della Regola . . . . . . . . . . . . . . . . . 64
1.35 Convolutional Neural Networks (CNN) . . . . . . . . . . . . . . . . . 69
1.35.1 Struttura generale . . . . . . . . . . . . . . . . . . . . . . . . 70
1.35.2 Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.35.3 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.35.4 Perché una rete feed–forward non basta . . . . . . . . . . . . . 70
1.35.5 Addestramento . . . . . . . . . . . . . . . . . . . . . . . . . . 71
1.36 CNN nel Natural Language Processing . . . . . . . . . . . . . . . . . 71
1.37 Introduzione al Natural Language Processing . . . . . . . . . . . . . . 71
1.38 Analisi del Linguaggio Naturale . . . . . . . . . . . . . . . . . . . . . 72
1.38.1 Approccio simbolico . . . . . . . . . . . . . . . . . . . . . . . 72
1.39 Reti Neurali per il Linguaggio Naturale . . . . . . . . . . . . . . . . . 73
1.39.1 Encoding numerico . . . . . . . . . . . . . . . . . . . . . . . . 73
1.39.2 Word Embedding . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.39.3 Document Embedding . . . . . . . . . . . . . . . . . . . . . . 73
1.39.4 Reti Ricorrenti (RNN) . . . . . . . . . . . . . . . . . . . . . . 73
1.39.5 LSTM (Long Short-Term Memory) . . . . . . . . . . . . . . . 73
1.39.6 Modello Encoder-Decoder . . . . . . . . . . . . . . . . . . . . 74
1.40 Transformers e AI Generativa . . . . . . . . . . . . . . . . . . . . . . 74
1.40.1 Idea principale . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.40.2 Architettura Transformer . . . . . . . . . . . . . . . . . . . . . 74
1.40.3 Modelli LLM . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.41 Applicazioni pratiche con Orange . . . . . . . . . . . . . . . . . . . . 74
1.42 Preprocessing e Rappresentazione dei Testi . . . . . . . . . . . . . . . 75
1.42.1 Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.42.2 Bag of Words (BoW) . . . . . . . . . . . . . . . . . . . . . . . 75
1.42.3 TF-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.42.4 Word Embedding . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.43 Sentiment e Topic Modeling . . . . . . . . . . . . . . . . . . . . . . . 76
1.43.1 Sentiment Analysis . . . . . . . . . . . . . . . . . . . . . . . . 76
1.43.2 Topic Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.44 Reinforcement Learning (RL) . . . . . . . . . . . . . . . . . . . . . . 76
1.44.1 Concetto Chiave . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.44.2 Componenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.44.3 Esempio Semplice . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.44.4 Modellazione matematica . . . . . . . . . . . . . . . . . . . . 77
1.45 Architettura ad Agenti . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.45.1 Definizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.45.2 Componenti principali . . . . . . . . . . . . . . . . . . . . . . 78
3
1.45.3 Esempio pratico . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.45.4 Estensioni avanzate . . . . . . . . . . . . . . . . . . . . . . . . 78
1.46 Large Language Models (LLM) . . . . . . . . . . . . . . . . . . . . . 78
1.46.1 Concetti chiave . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.46.2 Architettura Transformer . . . . . . . . . . . . . . . . . . . . . 78
1.46.3 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.46.4 Limiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.47 Business Intelligence e Data Visualization . . . . . . . . . . . . . . . 79
4
Elenco delle figure
1.1 Neurone artificiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 Neurone artificiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Rete neurale semplice e Rete neurale profonda . . . . . . . . . . . . . 17
1.4 Gradient Descent Local Minumum . . . . . . . . . . . . . . . . . . . 21
1.5 Backpropagation process . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.6 Convolutional Neural Network . . . . . . . . . . . . . . . . . . . . . . 71
5
Capitolo 1
Introduzione all’intelligenza
artificiale
1.1 Introduzione all’Intelligenza Artificiale
L’Intelligenza Artificiale (IA) è il ramo dell’informatica che studia e progetta si-
stemi in grado di riprodurre, almeno in parte, comportamenti che consideriamo
tipicamente umani: ragionare, imparare, pianificare, riconoscere schemi, parlare,
comprendere, o perfino creare. L’obiettivo dell’IA non è soltanto costruire macchine
che “funzionino bene”, ma soprattutto macchine che sappiano adattarsi e ragionare,
affrontando problemi in contesti nuovi e mutevoli.
L’IA si distingue quindi dall’informatica tradizionale per il suo tentativo di intro-
durre la flessibilità cognitiva e la capacità di apprendimento. Se i programmi
classici seguono regole fisse, un sistema intelligente è in grado di aggiornare il proprio
comportamento sulla base dell’esperienza o della conoscenza che acquisisce.
1.1.1 Obiettivi del corso
Questo corso si propone di esplorare le quattro grandi aree dell’intelligenza artificiale
contemporanea:
1. Le reti neurali di base, per comprendere la logica del calcolo connessionista
e la sua relazione con il cervello biologico.
2. Il ragionamento simbolico, fondato sulla rappresentazione esplicita della
conoscenza e sulle regole logiche dell’inferenza.
3. Il machine learning, nucleo centrale dell’IA moderna, che consente alle
macchine di imparare da esempi e di adattare il proprio comportamento.
4. I Large Language Models (LLM), come ChatGPT, che rappresentano la
sintesi estrema dell’apprendimento automatico applicato al linguaggio natura-
le.
L’intento finale è duplice: da un lato, comprendere le basi teoriche e computazio-
nali di ciascun approccio; dall’altro, analizzarne la integrazione, poiché la tendenza
più attuale è proprio quella di combinare il simbolico e il neurale in sistemi ibridi.
7
1.2 Macchine intelligenti e macchine stupide
Per comprendere la nascita dell’IA è utile partire da una distinzione concettuale:
quella tra macchine stupide e macchine intelligenti.
1.2.1 Le macchine stupide
Una macchina stupida è un calcolatore che segue in maniera rigida una sequenza
di istruzioni: non comprende ciò che fa, non adatta le proprie azioni al contesto,
non “impara” dall’esperienza. È il paradigma della macchina algoritmica deter-
ministica: dato un input, produce sempre lo stesso output, seguendo regole fissate
dal programmatore.
Esempi tipici sono:
• un algoritmo di ordinamento, come il MergeSort, che riordina una lista secondo
regole predefinite;
• un programma di calcolo aritmetico, che esegue operazioni senza comprendere
il significato dei numeri;
• un automa che riconosce una sequenza, ma non sa “perché” la riconosce.
1.2.2 Le macchine intelligenti
Le macchine intelligenti segnano invece un cambio di paradigma: non vengo-
no più programmate solo per risolvere un caso specifico, ma per ragionare e ap-
prendere. Esse non applicano soltanto regole, ma costruiscono nuove regole e nuo-
ve rappresentazioni del mondo a partire da conoscenze pregresse e da esperienze
acquisite.
La differenza fondamentale è che la macchina intelligente usa la conoscenza
per orientare l’azione, anziché limitarsi a eseguire comandi. In altre parole, la
conoscenza diventa il motore del comportamento.
Questo passaggio – dalla macchina deterministica alla macchina razionale – rap-
presenta il momento di nascita dell’IA: il momento in cui l’obiettivo non è più
calcolare, ma capire.
1.3 Introduzione alla ricerca nei giochi
L’ambito della game search, ossia la ricerca applicata ai giochi, rappresenta uno
dei primi terreni su cui l’Intelligenza Artificiale è stata messa alla prova. In questa
sezione si passa dal concetto di algoritmo classico alla ricerca euristica, un approccio
necessario per affrontare problemi troppo complessi per essere risolti tramite metodi
algoritmici tradizionali.
In molti casi, come nei giochi del 15, nella dama o negli scacchi, si verifica un’e-
splosione combinatoria: il numero di possibili stati o configurazioni cresce in modo
esponenziale, rendendo impossibile scrivere un algoritmo che descriva esplicitamente
tutte le mosse o i passi da compiere in ogni situazione.
Per affrontare questi problemi, si ricorre a strategie di ricerca guidate da una
certa conoscenza del dominio, ossia una forma di informazione che orienta l’esplora-
zione dello spazio delle soluzioni in modo più efficiente. Questa filosofia, basata sul-
l’uso di conoscenza e euristiche, è una delle basi fondanti dell’Intelligenza Artificiale
moderna.
L’obiettivo dell’Intelligenza Artificiale applicata ai giochi è quello di costruire un
sistema in grado di competere e possibilmente battere un giocatore umano.
Dalle strategie ai giochi algoritmicamente intrattabili Nei giochi, l’obiettivo è
vincere o risolvere la partita, ma non possiamo farlo tramite un algoritmo classico:
la complessità del problema è troppo elevata. Ad esempio, nel caso degli scacchi, il
50
numero delle configurazioni possibili della scacchiera è dell’ordine di 10 , rendendo
impossibile scrivere un algoritmo che, per ogni posizione, determini la mossa migliore
analizzando tutte le conseguenze possibili.
Si ricorre quindi a strategie di ricerca, in cui:
• si considerano le mosse possibili a partire da una certa posizione;
• si sceglie la mossa più promettente in base ad una valutazione parziale;
• si limita la profondità dell’analisi delle mosse successive.
Dall’algoritmo alla ricerca euristica
Per affrontare giochi e problemi complessi, è necessario introdurre l’idea di ricerca
euristica (heuristic search). Essa si basa su un concetto fondamentale: la valuta-
zione approssimata della bontà di uno stato o posizione tramite una funzione detta
euristica.
La conoscenza di dominio diventa cosı̀ il motore che guida l’esplorazione del-
lo spazio di ricerca, orientando l’attenzione verso le alternative più promettenti e
ignorando quelle meno utili.
Questo approccio nasce dall’uso di grafi per rappresentare gli spazi di stato:
• i nodi rappresentano configurazioni o stati;
• gli archi rappresentano le azioni o le mosse che portano da uno stato all’altro.
Gli algoritmi di ricerca su grafi, come la ricerca in ampiezza, permettono di
esplorare sistematicamente tutte le possibili soluzioni. Tuttavia, quando lo spazio di
ricerca cresce in modo esponenziale, gli algoritmi “esatti” diventano impraticabili.
Da qui la necessità di approcci intelligenti, cioè guidati da euris
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti di Intelligenza artificiale
-
Appunti di intelligenza artificiale
-
Appunti completi corso Intelligenza Artificiale
-
Appunti completi del corso di Intelligenza artificiale e apprendimento automatico