Agenti intelligenti - ambienti, PEAS e tipi di agente
In questa pagina 6
Dopo aver scelto "agire razionalmente" come definizione di IA (Intelligenza artificiale - definizioni, test di Turing e storiaL'IA si può intendere in quattro modi (pensare o agire, come gli umani o in modo razionale). Il modello oggi standard è l'agire razionalmente: un agente razionale sceglie l'azione che massimizza il raggiungimento dei propri obiettivi date le informazioni disponibili. Il test di Turing (Imitation Game) definisce operativamente "agire come un umano" e richiede elaborazione del linguaggio, rappresentazione della conoscenza, ragionamento automatico e apprendimento; la versione "totale" aggiunge visione e robotica. L'IA nasce da filosofia, matematica, economia, neuroscienze, psicologia, linguistica, teoria del controllo e ingegneria dei calcolatori; la sua storia alterna entusiasmi e due "inverni". Rischi e benefici portano al problema dell'allineamento dei valori.Intelligenza artificiale - definizioni, test di Turing e storia →), questa nota la rende precisa: che cos'è un agente, quando è razionale, in che tipo di ambiente opera e con quali architetture si costruisce (slide del corso di Intelligenza Artificiale, Ing. dell'Informazione UniPD).
Agente e funzione agente
Definizione. Un agente è un'entità che percepisce il proprio ambiente tramite sensori e agisce su di esso tramite attuatori. Astrattamente è una funzione dalle sequenze di percezioni (percept sequences, la storia di tutto ciò che ha percepito) alle azioni:
La funzione è il comportamento (la funzione agente); il codice che la calcola su una macchina concreta è il programma agente. Non vanno confusi: due programmi molto diversi possono realizzare la stessa funzione.
Esempio: il mondo dell'aspirapolvere
Due quadrati, e , ciascuno pulito o sporco; l'agente si trova in uno dei due e percepisce la propria posizione e se il quadrato è sporco. Azioni: Left, Right, Suck (aspira), NoOp (non fa nulla). La funzione agente si può tabulare, sequenza per sequenza:
| sequenza di percezioni | azione |
|---|---|
Right |
|
Suck |
|
Left |
|
Suck |
|
Right |
|
Suck |
|
Qui l'azione dipende solo dall'ultima percezione: sporco Suck, pulito si sposta. Ma non è l'unica scelta possibile: se il quadrato può restare sporco anche dopo l'aspirazione, l'agente potrebbe aspirare due volte prima di spostarsi, indipendentemente dal risultato.
La tabella completa non si può memorizzare: con percezioni possibili e un orizzonte di passi servono righe. Per l'aspirapolvere, (due posizioni per pulito/sporco) e : Per questo si cercano programmi compatti che calcolino la stessa funzione (le architetture nel seguito).
Agente razionale e misura di prestazione
Definizione (agente razionale). Per ogni possibile sequenza di percezioni, un agente razionale seleziona un'azione da cui ci si aspetta di massimizzare la propria misura di prestazione (performance measure), date le evidenze fornite dalla sequenza di percezioni e la conoscenza incorporata nell'agente.
Quattro cose determinano la razionalità: la misura di prestazione, la conoscenza pregressa dell'ambiente, le azioni possibili, la sequenza di percezioni (che sono le quattro lettere di PEAS, sotto).
Due precisazioni:
- Razionale non significa onnisciente né perfetto. Incertezza e limiti di calcolo rendono irraggiungibile l'agente perfettamente razionale: l'obiettivo è il miglior programma possibile date le informazioni e le risorse della macchina.
- La misura di prestazione la sceglie chi progetta l'agente, e cambia quale agente è razionale. Si misura sul risultato nell'ambiente, non su come ragiona l'agente.
Esempio: stessa funzione, misure diverse. Misura: per ogni quadrato pulito a ogni passo, per ogni spostamento. Partenza: e sporchi, agente in , orizzonte 10 passi.
- Agente reattivo (aspira se sporco, altrimenti cambia quadrato):
Suck(1),Right(1 pulito mossa ),Suck(2), poi per 7 passiLeft/Rightalternati, ciascuno : totale . - Agente che ricorda di aver visto entrambi i quadrati puliti e poi si ferma con
NoOp: gli stessi primi tre passi (3) e poi : totale .
Con una misura che non penalizza il movimento l'agente reattivo andrebbe bene: è la misura, non il programma, a decidere. Il calcolo è verificato da questo codice, che vale anche come schema di simulazione:
def reflex(percept, memory):
loc, status = percept
if status == 'Dirty': return 'Suck'
return 'Right' if loc == 'A' else 'Left'
def model_based(percept, memory): # memory = quadrati visti puliti
loc, status = percept
if status == 'Clean': memory.add(loc)
if len(memory) == 2: return 'NoOp' # tutto pulito: ci si ferma
if status == 'Dirty': return 'Suck'
return 'Right' if loc == 'A' else 'Left'
def run(agent, steps=10):
world = {'A': 'Dirty', 'B': 'Dirty'}; loc = 'A'; score = 0; memory = set()
for _ in range(steps):
a = agent((loc, world[loc]), memory)
if a == 'Suck': world[loc] = 'Clean'
elif a == 'Right': loc = 'B'
elif a == 'Left': loc = 'A'
score += sum(v == 'Clean' for v in world.values()) - (a in ('Left', 'Right'))
return score
print(run(reflex), run(model_based)) # 10 17PEAS: descrivere il problema
Per una classe di ambienti e compiti si cerca l'agente (o la classe di agenti) con la miglior prestazione. Il task environment, cioè il problema a cui l'agente razionale cerca di dare una soluzione, si definisce con PEAS:
- Performance: la misura di prestazione;
- Environment: l'ambiente (e la conoscenza che l'agente ne ha);
- Actuators: le azioni possibili;
- Sensors: i sensori con cui percepisce.
(Nel riepilogo finale delle slide la S è scritta "sequence of percepts": a slide 8 e nell'uso corrente è Sensors, e la sequenza delle percezioni è ciò che i sensori producono.)
Esempio: taxi a guida autonoma.
- Performance: arrivare alla destinazione giusta; ridurre i costi (carburante, pedaggi, usura); massimizzare i profitti, ma anche sicurezza e comfort.
- Environment: strade rurali, vicoli urbani o autostrade a più corsie? Regole del traffico, pedoni, lavori in corso; destinazioni dei passeggeri.
- Actuators: acceleratore, sterzo, freni; schermo o sintetizzatore vocale per parlare ai passeggeri; un modo di comunicare con altri veicoli.
- Sensors: GPS, telecamere, sensori di distanza; tachimetro, accelerometro; sensori del motore, del carburante e dell'impianto elettrico; touchscreen o ingresso vocale per i passeggeri.
Altri esempi (dalle slide):
| agente | prestazione | ambiente | attuatori | sensori |
|---|---|---|---|---|
| sistema di diagnosi medica | paziente sano, costi ridotti | paziente, ospedale, personale | schermo con domande, esami, diagnosi, trattamenti | inserimento da touchscreen o voce di sintomi e risultati |
| analisi di immagini satellitari | categorizzazione corretta di oggetti e terreno | satellite in orbita, collegamento a terra, meteo | schermo con la classificazione della scena | fotocamera digitale ad alta risoluzione |
| robot che seleziona pezzi | percentuale di pezzi nei contenitori giusti | nastro trasportatore con pezzi, contenitori | braccio e mano articolati | telecamera, sensori tattili e di angolo dei giunti |
| controllore di raffineria | purezza, resa, sicurezza | raffineria, materie prime, operatori | valvole, pompe, riscaldatori, agitatori, schermi | sensori di temperatura, pressione, flusso, chimici |
| tutor di inglese interattivo | punteggio degli studenti in un test | insieme di studenti, ente che esamina | schermo con esercizi, correzioni, voce | tastiera, voce |
Proprietà dell'ambiente di lavoro
Gli ambienti si classificano con sette coppie di proprietà. La classificazione dice che tipo di agente serve.
| proprietà | primo valore | secondo valore |
|---|---|---|
| osservabilità | completamente osservabile | parzialmente osservabile |
| determinismo | deterministico | stocastico (o non deterministico) |
| episodi | episodico | sequenziale |
| dinamica | statico | dinamico |
| tempo e stati | discreto | continuo |
| numero di agenti | singolo | multi-agente |
| conoscenza | noto | ignoto |
- Completamente / parzialmente osservabile. Completamente: i sensori danno accesso allo stato completo dell'ambiente, cioè a tutti gli aspetti rilevanti per scegliere l'azione, e non serve mantenere uno stato interno per tener traccia del mondo. Parzialmente: dati mancanti, rumorosi o imprecisi (un aspirapolvere con il sensore di sporco rotto). Senza alcun sensore l'ambiente è inosservabile, ma gli obiettivi possono comunque essere raggiungibili.
- Deterministico / stocastico. Deterministico: lo stato successivo è completamente determinato dallo stato corrente e dall'azione (il mondo dell'aspirapolvere, a meno di varianti). Non deterministico: lo stato non è (del tutto) prevedibile; la guida di un taxi lo è, perché non si può prevedere esattamente il traffico. Stocastico è il caso particolare di non determinismo trattato con le probabilità. Un ambiente deterministico ma parzialmente osservabile sembra non deterministico.
- Episodico / sequenziale. Episodico: l'esperienza è divisa in episodi atomici (una percezione, un'azione), e l'episodio al tempo non dipende dalle azioni prese prima (classificare un'immagine per il riconoscimento di volti). Sequenziale: la decisione corrente può influenzare quelle future (un taxi che sceglie l'autostrada invece della strada provinciale); è più difficile perché l'agente deve ragionare sulle conseguenze.
- Statico / dinamico. Dinamico: l'ambiente può cambiare mentre l'agente decide (taxi e altre auto si muovono). Statico: non cambia, quindi non serve controllare il mondo mentre si decide (le parole crociate). Se l'ambiente non cambia ma cambia il punteggio dell'agente con il passare del tempo, è semi-dinamico.
- Discreto / continuo. Discreto: stati, percezioni e azioni cambiano a intervalli discreti, tipicamente in numero finito (il mondo dell'aspirapolvere). Continuo: uno o più aspetti cambiano con continuità (il taxi che accelera e sterza dolcemente); alcuni ingressi, come i fotogrammi di una telecamera, sono discreti ma trattati come continui.
- Singolo / multi-agente. Singolo: un solo agente rilevante (chi risolve un cruciverba). Multi-agente: due o più agenti, dove tratta come un agente, cioè anche massimizza una misura di prestazione che dipende dal comportamento di . Competitivo (entrambi cercano di vincere la corsa) o cooperativo (ma evitando le collisioni), o un misto.
- Noto / ignoto. Si riferisce alla conoscenza dell'agente, non all'ambiente. Noto: gli esiti (o le loro probabilità) di ogni azione sono dati. Ignoto: l'agente deve impararli. Un ambiente noto può essere parzialmente osservabile (solitario: regole note, carte coperte); uno ignoto può essere completamente osservabile (videogioco con tutto sullo schermo, ma funzione dei tasti sconosciuta).
Esempio: scacchi (dalle slide). Completamente osservabili, deterministici, sequenziali, statici (semi-dinamici con l'orologio), discreti, multi-agente, noti.
Altre classificazioni tipiche:
| compito | osserv. | determin. | episodi | dinamica | tempo | agenti |
|---|---|---|---|---|---|---|
| parole crociate | completa | deterministico | sequenziale | statico | discreto | singolo |
| scacchi con orologio | completa | deterministico | sequenziale | semi-dinamico | discreto | multi (competitivo) |
| poker | parziale | stocastico | sequenziale | statico | discreto | multi |
| taxi | parziale | stocastico | sequenziale | dinamico | continuo | multi |
| diagnosi medica | parziale | stocastico | sequenziale | dinamico | continuo | singolo |
| riconoscimento di volti | completa | deterministico | episodico | statico | discreto | singolo |
Il caso più difficile è il parzialmente osservabile, stocastico, sequenziale, dinamico, continuo, multi-agente e ignoto; la maggior parte delle situazioni reali va trattata come non deterministica.
Tipi di agente
Quattro architetture di complessità crescente, più l'agente che apprende, che può avvolgerne una qualsiasi.
Agente reattivo semplice (simple reflex)
Il comportamento si basa su semplici regole condizione-azione (se-allora). La decisione dipende solo dalle percezioni correnti ("com'è il mondo adesso?"), la storia è ignorata: richiede quindi osservabilità completa, ma il programma è piccolo.
def agente_reattivo(percezione, regole):
stato = interpreta(percezione) # descrizione della situazione attuale
return regola_corrispondente(stato, regole).azioneEsempio: le prime versioni dei robot aspirapolvere (tipo Roomba): vai avanti finché sbatti contro qualcosa, poi gira e ricomincia. Il taxi reattivo "frena quando le luci dell'auto davanti sono rosse" (ma allora potrebbe frenare sempre).
Agente reattivo basato su modello (model-based reflex)
Mantiene uno stato interno (per esempio la posizione precedente), utile per l'osservabilità parziale. Gli servono due conoscenze sul mondo:
- un modello di transizione (transition model): come cambia il mondo in risposta alle azioni dell'agente e per conto proprio;
- un modello dei sensori (sensor model): come lo stato del mondo si riflette nelle percezioni.
def agente_con_modello(percezione, stato, azione_prec, modello_trans, modello_sens, regole):
stato = aggiorna_stato(stato, azione_prec, percezione, modello_trans, modello_sens)
return regola_corrispondente(stato, regole).azioneEsempio: un robot stima la propria posizione per poterla cambiare (localizzazione con filtro di Kalman): (1) con il modello di moto si indovina la posizione corrente dalla precedente; (2) con il modello dei sensori si indovinano le percezioni attese e le si confronta con quelle reali; (3) la differenza corregge la stima del passo 1. È l'idea che ritroviamo nel filtraggio probabilistico (Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothingPer ragionare sul tempo il mondo è una sequenza di istanti: stato nascosto $X_t$ ed evidenza osservata $E_t$. Ipotesi di Markov del primo ordine $P(X_t\mid X_{0:t-1})=P(X_t\mid X_{t-1})$ (modello di transizione) e ipotesi del sensore $P(E_t\mid X_{0:t},E_{1:t-1})=P(E_t\mid X_t)$ (modello del sensore): congiunta $P(X_0)\prod_t P(X_t\mid X_{t-1})P(E_t\mid X_t)$. Un HMM ha uno stato discreto a $S$ valori: transizione = matrice $\mathbf T$ ($T_{ij}=P(X_t=j\mid X_{t-1}=i)$), sensore = matrici diagonali $\mathbf O_t$. Compiti: filtraggio $P(X_t\mid e_{1:t})$, predizione $P(X_{t+k}\mid e_{1:t})$, smoothing $P(X_{t-k}\mid e_{1:t})$, spiegazione più probabile $\arg\max P(x_{1:t}\mid e_{1:t})$. Filtraggio ricorsivo: $\mathbf f_t=\alpha,\mathbf O_t\mathbf T^\top\mathbf f_{t-1}$ (predizione, poi aggiornamento). Mondo dell'ombrello: $\mathbf f_1=\langle0{,}818;\ 0{,}182\rangle$, $\mathbf f_2=\langle0{,}883;\ 0{,}117\rangle$. Senza normalizzare, $\mathbf s_t=\mathbf O_t\mathbf T^\top\mathbf s_{t-1}$ dà la verosimiglianza $P(e_{1:t})$.Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothing →). Il taxi con modello frena solo se si muove e c'è un passaggio da bassa ad alta intensità delle luci davanti, se non può cambiare corsia, ecc. Anche l'agente model_based dell'aspirapolvere sopra è di questo tipo: la memoria dei quadrati puliti è lo stato interno.
Agente basato su obiettivi (goal-based)
Spesso conoscere il mondo non basta: le azioni servono non solo per gli effetti immediati (come nei riflessi), ma per obiettivi a lungo termine. Servono algoritmi di ricerca e pianificazione (Ricerca nello spazio degli stati - formulazione dei problemi e ricerca non informataUn agente risolutore di problemi è un agente basato su obiettivi con rappresentazione atomica: formula un problema (stato iniziale, azioni, modello di transizione, test dell'obiettivo, costo dei passi) e cerca una sequenza di azioni che porta a uno stato obiettivo costruendo un albero di ricerca. Le strategie non informate usano solo la definizione del problema e si distinguono per l'ordine di espansione della frontiera: ampiezza (coda FIFO), costo uniforme (coda con priorità sul costo g), profondità (pila LIFO), profondità limitata, approfondimento iterativo e ricerca bidirezionale. Si confrontano per completezza, ottimalità, tempo e spazio in funzione di b, d, m; tutte sono casi di best-first search con una diversa funzione di valutazione f.Ricerca nello spazio degli stati - formulazione dei problemi e ricerca non informata →). Gli obiettivi si possono cambiare, quindi l'agente è più flessibile. Esempio: un'auto autonoma pianifica la miglior sequenza di azioni per sorpassare un altro veicolo (obiettivo), usando il proprio stato e la conoscenza dell'ambiente per cercare tra le soluzioni possibili; lo stesso approccio, con un altro obiettivo, vale per parcheggiare. Il taxi basato su obiettivi guida verso una destinazione precisa.
Agente basato sull'utilità (utility-based)
Un obiettivo non dice quanto sia buona una sequenza di azioni o l'obiettivo stesso. Si usa una funzione di utilità che dà un punteggio agli stati, e l'agente è diretto verso gli stati di massima prestazione ipotetica. Serve quando
- ci sono obiettivi in conflitto (o cammini in conflitto verso l'obiettivo);
- non si è sicuri di poter raggiungere gli obiettivi (incertezza).
Un agente razionale massimizza l'utilità attesa: nel poker un agente basato sull'utilità decide se pescare o no una carta in base all'esito atteso. Il taxi basato sull'utilità arriva alla destinazione tenendo conto anche del consumo di carburante, cioè del percorso e del tempo più brevi. Il calcolo dell'utilità attesa è il tema dei Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iterationUn MDP (processo decisionale di Markov) modella un problema decisionale sequenziale in ambiente stocastico e completamente osservabile con stati S, azioni A(s), modello di transizione P(s'|s,a) e ricompensa R(s,a,s'). La soluzione è una politica pi(s). L'utilità U(s) è il ritorno scontato atteso e soddisfa l'equazione di Bellman U(s)=max_a sum_s' P(s'|s,a)[R(s,a,s')+gamma U(s')]; la quantità tra parentesi quadre sommata su s' è la funzione azione-utilità Q(s,a). Value iteration parte da U=0, applica Bellman a tutti gli stati insieme e si ferma quando delta <= eps(1-gamma)/gamma; la politica è argmax_a Q(s,a). Policy iteration alterna valutazione (sistema lineare, senza max) e miglioramento greedy, e termina quando la politica non cambia. Nei POMDP lo stato è nascosto: si lavora sullo stato di credenza b aggiornato come nel filtraggio, b'(s')=alpha P(e|s') sum_s P(s'|s,a)b(s).Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iteration →.
Agente che apprende (learning agent)
Impara a diventare più competente con l'esperienza; può gestire ambienti inizialmente ignoti o cambiamenti dinamici. Ha quattro elementi:
- elemento esecutivo (performance element): sceglie le azioni (in pratica uno qualsiasi degli agenti precedenti);
- elemento di apprendimento (learning element): apporta i miglioramenti;
- critico (critic): valuta l'esito rispetto a uno standard di prestazione;
- generatore di problemi (problem generator): suggerisce azioni "esplorative" nuove.
Esempi: gli umani imparano da insegnamento (supervisionato) ed esplorazione autonoma; un robot calciatore impara dal tasso di successo dei calci di punizione; un robotaxi migliora in base alle mance dei clienti; i sistemi di raccomandazione si adattano ai clienti (con apprendimento per rinforzo). I metodi sono in Apprendimento automatico nell'IA - supervisionato, SVM e valutazioneQuadro del machine learning nel corso di IA. Tre forme di apprendimento: supervisionato (coppie ingresso-uscita, classificazione se l'uscita è discreta e regressione se è un numero), non supervisionato (pattern senza feedback, per esempio clustering) e per rinforzo (ricompense). Un'ipotesi h approssima la funzione vera f e si valuta sul test set, non sul training set: un modello troppo semplice ha bias alto (underfitting), uno troppo complesso varianza alta (overfitting). Servono training, validation e test set; con pochi dati si usa la k-fold cross-validation. Alberi di decisione: si sceglie l'attributo con massimo guadagno d'informazione Gain = B(p/(p+n)) - somma (Nk/N) B(pk/Nk), si pota con il test del chi quadro (Delta > Delta*), si riduce la varianza con bagging e random forest. Perdita L1 e L2, regressione lineare e discesa del gradiente w <- w - alpha dL/dw. SVM: separatore a margine massimo, vettori di supporto, kernel trick con K(xj,xk). Pipeline scikit-learn del laboratorio 10: load_digits, train_test_split, SVC(C, kernel, gamma), fit, predict, classification_report, confusion_matrix, cross_val_score.Apprendimento automatico nell'IA - supervisionato, SVM e valutazione → e, per il rinforzo, in Cenni a reinforcement learning e reti per sequenzeapprofondimento: non nel programma di Telecomunicazioni, solo cenni (ultima lezione del corso). Reinforcement learning: un agente in uno stato $S_t$ sceglie azioni, l'ambiente restituisce ricompense; l'obiettivo non è minimizzare una loss ma massimizzare il ritorno $G_t=\sum_{k\ge0}\gamma^kR_{t+k+1}$ (fattore di sconto $\gamma\in[0,1)$) trovando la politica ottima $\pi^*=\arg\max G$. Apprendimento di sequenze: servono lunghezze variabili, dipendenze a lungo termine, ordine, parametri condivisi nel tempo; una rete ricorrente aggiorna uno stato $h_t=f_W(h_{t-1},x_t)$; le reti convolutive temporali (TCN) usano convoluzioni causali e dilatate con campo recettivo $1+(k-1)\sum d_\ell$. Chiude con i modelli generativi (VAE, GAN) già visti in Autoencoder.Cenni a reinforcement learning e reti per sequenze →.
Confronto
| agente | decide in base a | ambiente adatto | limite |
|---|---|---|---|
| reattivo semplice | percezione corrente | completamente osservabile | ignora la storia |
| con modello | stato interno aggiornato dai modelli | parzialmente osservabile | non ha obiettivi |
| con obiettivi | stato più obiettivo, ricerca e pianificazione | sequenziale | un obiettivo non distingue il "meglio" |
| con utilità | utilità attesa | incerto, obiettivi in conflitto | serve un modello probabilistico e una funzione di utilità |
| che apprende | esperienza, critico | ignoto o che cambia | serve un segnale di valutazione |
Domande d'esame
- Classificare il gioco del poker secondo le proprietà dell'ambiente. Parzialmente osservabile (carte coperte e mani degli avversari), stocastico (distribuzione delle carte), sequenziale (le puntate influenzano le mani successive), statico, discreto, multi-agente (competitivo), noto (le regole sono note).
- Un aspirapolvere con misura di prestazione "+1 per quadrato pulito per passo, per spostamento" parte da e sporchi, 10 passi. Quanto ottiene l'agente reattivo? (aspira in , si sposta, aspira in , poi oscilla guadagnando a ogni passo). Un agente che si ferma a lavoro finito ottiene .
- Che differenza c'è tra agente basato su obiettivi e basato su utilità? L'obiettivo distingue solo stati "buoni" e "cattivi"; l'utilità dà un punteggio a ogni stato, permette di confrontare obiettivi in conflitto e di decidere sotto incertezza massimizzando l'utilità attesa.
- Quando serve un agente con stato interno? Quando l'ambiente è parzialmente osservabile: la percezione corrente non basta a conoscere lo stato, e si mantiene uno stato aggiornato con un modello di transizione e un modello dei sensori.
Versione ripasso
- Agente: percepisce con sensori e agisce con attuatori. Funzione agente (dalle sequenze di percezioni alle azioni); il programma agente la calcola. Tabulare costa righe (aspirapolvere, , : ).
- Agente razionale: per ogni sequenza di percezioni sceglie l'azione che massimizza la misura di prestazione attesa, date le evidenze e la conoscenza incorporata. Non onnisciente: il miglior programma date informazioni e risorse. La misura la sceglie il progettista e cambia l'agente razionale.
- Esempio aspirapolvere ( per quadrato pulito per passo, per mossa, 10 passi, e sporchi): reattivo ; con memoria che si ferma (
NoOp) . - PEAS (task environment): Performance, Environment, Actuators, Sensors. Taxi: prestazione (destinazione, costi, sicurezza, comfort), ambiente (strade, traffico, pedoni, passeggeri), attuatori (acceleratore, sterzo, freni, voce), sensori (GPS, telecamere, distanza, tachimetro, motore).
- Proprietà: completamente/parzialmente osservabile (senza sensori: inosservabile); deterministico/stocastico (deterministico ma parzialmente osservabile sembra non deterministico); episodico/sequenziale (decisioni indipendenti o con conseguenze future); statico/dinamico (semi-dinamico: cambia solo il punteggio); discreto/continuo; singolo/multi-agente (competitivo o cooperativo); noto/ignoto (riguarda la conoscenza dell'agente).
- Scacchi: completamente osservabili, deterministici, sequenziali, statici (semi-dinamici con l'orologio), discreti, multi-agente, noti. Taxi: parziale, stocastico, sequenziale, dinamico, continuo, multi-agente. Poker: parziale, stocastico, sequenziale, statico, discreto, multi-agente. Parole crociate: completa, deterministico, sequenziale, statico, discreto, singolo.
- Reattivo semplice: regole condizione-azione sulla percezione corrente, ignora la storia, richiede osservabilità completa (Roomba: avanza, sbatte, gira).
- Con modello: stato interno aggiornato con modello di transizione e modello dei sensori; per l'osservabilità parziale (filtro di Kalman: predizione, confronto con le percezioni, correzione; Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothingPer ragionare sul tempo il mondo è una sequenza di istanti: stato nascosto $X_t$ ed evidenza osservata $E_t$. Ipotesi di Markov del primo ordine $P(X_t\mid X_{0:t-1})=P(X_t\mid X_{t-1})$ (modello di transizione) e ipotesi del sensore $P(E_t\mid X_{0:t},E_{1:t-1})=P(E_t\mid X_t)$ (modello del sensore): congiunta $P(X_0)\prod_t P(X_t\mid X_{t-1})P(E_t\mid X_t)$. Un HMM ha uno stato discreto a $S$ valori: transizione = matrice $\mathbf T$ ($T_{ij}=P(X_t=j\mid X_{t-1}=i)$), sensore = matrici diagonali $\mathbf O_t$. Compiti: filtraggio $P(X_t\mid e_{1:t})$, predizione $P(X_{t+k}\mid e_{1:t})$, smoothing $P(X_{t-k}\mid e_{1:t})$, spiegazione più probabile $\arg\max P(x_{1:t}\mid e_{1:t})$. Filtraggio ricorsivo: $\mathbf f_t=\alpha,\mathbf O_t\mathbf T^\top\mathbf f_{t-1}$ (predizione, poi aggiornamento). Mondo dell'ombrello: $\mathbf f_1=\langle0{,}818;\ 0{,}182\rangle$, $\mathbf f_2=\langle0{,}883;\ 0{,}117\rangle$. Senza normalizzare, $\mathbf s_t=\mathbf O_t\mathbf T^\top\mathbf s_{t-1}$ dà la verosimiglianza $P(e_{1:t})$.Ragionamento probabilistico nel tempo - catene di Markov, HMM, filtraggio e smoothing →).
- Con obiettivi: pianifica sequenze di azioni con ricerca (Ricerca nello spazio degli stati - formulazione dei problemi e ricerca non informataUn agente risolutore di problemi è un agente basato su obiettivi con rappresentazione atomica: formula un problema (stato iniziale, azioni, modello di transizione, test dell'obiettivo, costo dei passi) e cerca una sequenza di azioni che porta a uno stato obiettivo costruendo un albero di ricerca. Le strategie non informate usano solo la definizione del problema e si distinguono per l'ordine di espansione della frontiera: ampiezza (coda FIFO), costo uniforme (coda con priorità sul costo g), profondità (pila LIFO), profondità limitata, approfondimento iterativo e ricerca bidirezionale. Si confrontano per completezza, ottimalità, tempo e spazio in funzione di b, d, m; tutte sono casi di best-first search con una diversa funzione di valutazione f.Ricerca nello spazio degli stati - formulazione dei problemi e ricerca non informata →); obiettivi modificabili.
- Con utilità: la funzione di utilità dà un punteggio agli stati; serve con obiettivi in conflitto e con incertezza; massimizza l'utilità attesa (Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iterationUn MDP (processo decisionale di Markov) modella un problema decisionale sequenziale in ambiente stocastico e completamente osservabile con stati S, azioni A(s), modello di transizione P(s'|s,a) e ricompensa R(s,a,s'). La soluzione è una politica pi(s). L'utilità U(s) è il ritorno scontato atteso e soddisfa l'equazione di Bellman U(s)=max_a sum_s' P(s'|s,a)[R(s,a,s')+gamma U(s')]; la quantità tra parentesi quadre sommata su s' è la funzione azione-utilità Q(s,a). Value iteration parte da U=0, applica Bellman a tutti gli stati insieme e si ferma quando delta <= eps(1-gamma)/gamma; la politica è argmax_a Q(s,a). Policy iteration alterna valutazione (sistema lineare, senza max) e miglioramento greedy, e termina quando la politica non cambia. Nei POMDP lo stato è nascosto: si lavora sullo stato di credenza b aggiornato come nel filtraggio, b'(s')=alpha P(e|s') sum_s P(s'|s,a)b(s).Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iteration →).
- Che apprende: elemento esecutivo, elemento di apprendimento, critico, generatore di problemi (azioni esplorative); adatto ad ambienti ignoti o che cambiano (Apprendimento automatico nell'IA - supervisionato, SVM e valutazioneQuadro del machine learning nel corso di IA. Tre forme di apprendimento: supervisionato (coppie ingresso-uscita, classificazione se l'uscita è discreta e regressione se è un numero), non supervisionato (pattern senza feedback, per esempio clustering) e per rinforzo (ricompense). Un'ipotesi h approssima la funzione vera f e si valuta sul test set, non sul training set: un modello troppo semplice ha bias alto (underfitting), uno troppo complesso varianza alta (overfitting). Servono training, validation e test set; con pochi dati si usa la k-fold cross-validation. Alberi di decisione: si sceglie l'attributo con massimo guadagno d'informazione Gain = B(p/(p+n)) - somma (Nk/N) B(pk/Nk), si pota con il test del chi quadro (Delta > Delta*), si riduce la varianza con bagging e random forest. Perdita L1 e L2, regressione lineare e discesa del gradiente w <- w - alpha dL/dw. SVM: separatore a margine massimo, vettori di supporto, kernel trick con K(xj,xk). Pipeline scikit-learn del laboratorio 10: load_digits, train_test_split, SVC(C, kernel, gamma), fit, predict, classification_report, confusion_matrix, cross_val_score.Apprendimento automatico nell'IA - supervisionato, SVM e valutazione →).
- Altri PEAS (slide): diagnosi medica (paziente sano, costi ridotti; paziente, ospedale, personale; schermo con domande, esami, diagnosi; sintomi inseriti da touchscreen o voce); immagini satellitari (categorizzazione corretta; satellite, collegamento, meteo; schermo; fotocamera ad alta risoluzione); robot che seleziona pezzi (percentuale di pezzi nei contenitori giusti; nastro e contenitori; braccio e mano; telecamera, sensori tattili e di angolo dei giunti); controllore di raffineria (purezza, resa, sicurezza; valvole, pompe, riscaldatori; sensori di temperatura, pressione, flusso); tutor di inglese (punteggio degli studenti; esercizi e correzioni; tastiera, voce).
- Altre classificazioni: scacchi con orologio semi-dinamici; diagnosi medica parziale, stocastica, sequenziale, dinamica, continua, singolo agente; riconoscimento di volti completa, deterministico, episodico, statico, discreto, singolo. Il caso più difficile è parziale, stocastico, sequenziale, dinamico, continuo, multi-agente e ignoto; la maggior parte delle situazioni reali va trattata come non deterministica.
- Confronto: reattivo semplice (percezione corrente, ambiente completamente osservabile, ignora la storia); con modello (stato interno, parzialmente osservabile, senza obiettivi); con obiettivi (ricerca e pianificazione, un obiettivo non distingue il "meglio"); con utilità (utilità attesa, incertezza e obiettivi in conflitto, servono modello probabilistico e funzione di utilità); che apprende (esperienza e critico, ambiente ignoto o che cambia).
- Taxi nei quattro tipi: reattivo, frena quando le luci davanti sono rosse (potrebbe frenare sempre); con modello, frena solo se si muove e le luci passano da bassa ad alta intensità, se non può cambiare corsia; con obiettivi, guida verso una destinazione; con utilità, la raggiunge tenendo conto del consumo (percorso e tempo più brevi); che apprende, migliora in base alle mance dei clienti.
- Schema di codice: agente reattivo
azione = regola(interpreta(percezione)); con modellostato = aggiorna(stato, azione_prec, percezione, modello_trans, modello_sens)e poi la regola sullo stato; nell'aspirapolvere la memoria dei quadrati visti puliti è lo stato interno. - Errori tipici: dire che "razionale" significa "perfetto"; confondere noto/ignoto (conoscenza dell'agente) con osservabile (cosa vedono i sensori); chiamare stocastico un ambiente solo parzialmente osservabile; dimenticare che la misura di prestazione si misura sull'ambiente.