Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


INTELLIGENZA ARTIFICIALE COMPENDIO, Schemi e mappe concettuali di Tecniche Di Intelligenza Artificiale

INTELLIGENZA ARTIFICIALE COMPENDIO D'ACQUISTO

Tipologia: Schemi e mappe concettuali

2024/2025

Caricato il 17/06/2025

e.m2001
e.m2001 🇮🇹

4.5

(11)

21 documenti

1 / 17

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INTELLIGENZA ARTIFICIALE
CAP 1
Imitation game (vuole riprendere concetto se la macchina sia in grado di pensare)
Incontriamo due limiti:
Non sappiamo definire cosa sia un pensiero
Non abbiamo un linguaggio adatto a rappresentare le funzioni che un organismo complesso
come un essere umano attiva per creare un pensiero Ricorriamo a delle scorciatoie
(volontà, intuito,…)
Approccio quantitativo vs semantico:
Stuart Russel e Peter Norvig: “planes are tested by how well they fly, not by comparing them to
birds”
Ragionamento induttivo:
Il ragionamento induttivo è un procedimento che cerca di stabilire una legge universale partendo
da casi particolari. Esso si basa sull’esperienza ed è una forma di inferenza ampliativa, nel senso
che ci consente di fare un passo in più rispetto a quanto osservato
Un esempio canonico del procedimento induttivo è il seguente:
Ho visto un primo corvo ed era nero (probabilità 1/2) Ho visto un secondo corvo ed era nero
(probabilità 2/3) Ho visto un terzo corvo ed era nero … Ho visto il centesimo corvo ed era nero…
Finora ho visto soltanto corvi neri (probabilità N/(N+1)) Dunque Tutti i corvi sono neri
Es disegno 1slide pag 13
Ragionamento deduttivo:
È il procedimento razionale mediante il quale è possibile derivare una certa conclusione a partire
da premesse più generali, dentro cui quella conclusione è implicita.
Il metodo deduttivo parte sempre da un insieme di postulati, che non hanno bisogno di essere
dimostrati e che costituiscono la condizione di avvio del ragionamento.
A partire da questi postulati, seguendo una serie di concatenazioni logiche si dimostra che una
certa affermazione è conseguenza delle premesse. Deduzione si può dire che è una forma di
conoscenza non ampliativa perché: La deduzione conferma la validità di una conclusione a partire
dalle premesse generali postulate, e non altro.
Dai singoli fatti non si possono mai ottenere conferme della teoria che è stata ipotizzata, ma solo
smentite. È il concetto della falsificazione introdotto da Karl Popper. La deduzione è dunque una
forma non ampliativa di conoscenza, che può procedere solo per negazioni. In altri termini, si può
soltanto smontare un impianto aprioristico (la parte ampliativa della nostra conoscenza, basata su
congetture), e per farlo basta un singolo controesempio.
Intelligenza artificiale e misurabilità.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica INTELLIGENZA ARTIFICIALE COMPENDIO e più Schemi e mappe concettuali in PDF di Tecniche Di Intelligenza Artificiale solo su Docsity!

INTELLIGENZA ARTIFICIALE

CAP 1

Imitation game (vuole riprendere concetto se la macchina sia in grado di pensare) Incontriamo due limiti:  Non sappiamo definire cosa sia un pensiero  Non abbiamo un linguaggio adatto a rappresentare le funzioni che un organismo complesso come un essere umano attiva per creare un pensiero Ricorriamo a delle scorciatoie (volontà, intuito,…) Approccio quantitativo vs semantico: Stuart Russel e Peter Norvig: “planes are tested by how well they fly, not by comparing them to birds” Ragionamento induttivo: Il ragionamento induttivo è un procedimento che cerca di stabilire una legge universale partendo da casi particolari. Esso si basa sull’esperienza ed è una forma di inferenza ampliativa, nel senso che ci consente di fare un passo in più rispetto a quanto osservato Un esempio canonico del procedimento induttivo è il seguente: Ho visto un primo corvo ed era nero (probabilità 1/2) Ho visto un secondo corvo ed era nero (probabilità 2/3) Ho visto un terzo corvo ed era nero … Ho visto il centesimo corvo ed era nero… Finora ho visto soltanto corvi neri (probabilità N/(N+1)) Dunque Tutti i corvi sono neri Es disegno 1slide pag 13 Ragionamento deduttivo: È il procedimento razionale mediante il quale è possibile derivare una certa conclusione a partire da premesse più generali, dentro cui quella conclusione è implicita. Il metodo deduttivo parte sempre da un insieme di postulati, che non hanno bisogno di essere dimostrati e che costituiscono la condizione di avvio del ragionamento. A partire da questi postulati, seguendo una serie di concatenazioni logiche si dimostra che una certa affermazione è conseguenza delle premesse. Deduzione si può dire che è una forma di conoscenza non ampliativa perché: La deduzione conferma la validità di una conclusione a partire dalle premesse generali postulate, e non altro. Dai singoli fatti non si possono mai ottenere conferme della teoria che è stata ipotizzata, ma solo smentite. È il concetto della falsificazione introdotto da Karl Popper. La deduzione è dunque una forma non ampliativa di conoscenza, che può procedere solo per negazioni. In altri termini, si può soltanto smontare un impianto aprioristico (la parte ampliativa della nostra conoscenza, basata su congetture), e per farlo basta un singolo controesempio. Intelligenza artificiale e misurabilità.

L’intelligenza artificiale, a differenza di quella umana, non è ampliativa. Essa non fa congetture e deve ricorrere a un diverso paradigma conoscitivo. La macchina è prima di ogni altra considerazione un agente razionale che non può contraddirsi, e che fonda ogni azione su un presupposto logico. Per l’intelligenza artificiale non si addicono dunque termini come volontà, o intuito, che appaiono del tutto vaghi. La macchina si muove sempre all’interno di un arco di possibilità interamente noto in partenza e attraverso l’unica possibile rappresentazione del mondo compatibile con questo schema di piena razionalità: la misura di specifici stati del mondo. Solo dal confronto di metriche poste tra loro in una specifica relazione d’ordine (X è più grande di Y, oppure X è meno incerto di Y) o logica (se X dunque Y) può discendere l’azione di una macchina. Concetto agente e concetto di ambiente Sono determinanti due concetti: il concetto di agente , un’entità astratta di riferimento che sintetizza l’azione della macchina, e il concetto di ambiente , ossia il mondo circostante con cui la macchina interagisce. Il mondo può assumere degli stati, ovvero delle configurazioni distinte che la macchina è in grado di riconoscere. La relazione tra macchina e ambiente consiste nella raccolta di dati dall’ambiente, che la macchina effettua attraverso l’impiego di sensori, per desumere delle metriche associabili ai vari stati del mondo, e nella successiva elaborazione di questi dati. I dati sono la misura dei fenomeni che si manifestano in quell’ambiente e i fenomeni sono i cambiamenti negli stati che il mondo può assumere. L’impiego intelligenza artificiale Ciò che in definitiva chiediamo all’intelligenza artificiale è di trattare queste enormi quantità di dati per estrarre un “senso”, un significato nascosto dentro i volumi di dati grezzi. Il pensiero computazionale della macchina interviene oggi in tutte quelle fasi dell’analisi dei dati in cui è necessario generare una nuova conoscenza dei fenomeni del mondo partendo da una massa indistinta di dati, o dove è necessaria una specifica competenza per la loro interpretazione. Le macchine consentono di fare questo salto semantico, spesso senza alcun intervento di supervisione da parte dell’uomo, e ci fanno superare molte barriere, dalla barriera linguistica a quella dei formati, dalla dispersione delle fonti alla distanza geografica. Attraverso algoritmi di intelligenza artificiale è oggi possibile analizzare l’andamento temporale di un fenomeno anche molto complesso, andando alla ricerca di correlazioni con altri fenomeni altrettanto complessi in modo da fornire previsioni sempre più accurate della sua evoluzione e da consentirci di anticipare i tempi delle nostre decisioni. Questo tipo di analisi ha molti positivi risvolti nei più svariati ambiti, dall’incremento dell’efficacia di una cura o di un farmaco. Un ambito in cui la macchina ci consente di superare barriere è quello del linguaggio scritto e parlato, o Natural Language Processing. Oggi è possibile interfacciarsi con le macchine usando direttamente la voce. Di fatto si può dialogare con le macchine e ciò dà luogo alla raccolta di enormi quantità di tracce vocali in ogni lingua che vengono analizzate, interpretate e classificate Così, attraverso la comparazione di questi campioni di linguaggio parlato è possibile collegare a ciascuna traccia un significato e consentire il passaggio da una lingua all’altra su frasi sempre più complesse. Attraverso algoritmi di intelligenza artificiale è inoltre possibile dare una connotazione al testo processato. È la cosiddetta sentiment analysis, ossia la ricerca di un “senso” associato al messaggio. Più ampio è il numero di classi impiegate nell’analisi, più ricca è la quantità di informazioni che possono essere estratte da un testo: i temi trattati, il tono positivo o negativo che il testo vuole trasmettere, o persino il suo livello di attendibilità o l’eventuale carattere offensivo in modo da

La KB è l’insieme delle M premesse del ragionamento. Compito dell’agente è determinare in modo inequivoco se un’altra funzione logica delle stesse variabili, distinta dalle M premesse, che chiamiamo conclusione del ragionamento, e che indichiamo con la notazione Q(X1, X2,..., XN), possa essere dedotta da tutte le premesse Teorema della deduzione Teorema della deduzione (prima formulazione): la KB è premessa della conclusione Q, e ciò si indica con la notazione KB={P1(X1, X2,..., XN), P2(X1, X2,..., XN),..., PM(X1, X2,..., XN)}⊨ Q, se e solo se non esiste nessuna combinazione delle variabili logiche X1, X2,..., XN per cui risulta P1(X1, X2,..., XN)P2(X1, X2,..., XN) ...PM(X1, X2,..., XN) = VERO e Q(X1, X2,..., XN) = FALSO Teorema della deduzione (seconda formulazione): la KB è premessa della conclusione Q, e ciò si indica con la notazione KB={P1(X1, X2,..., XN), P2(X1, X2,..., XN),..., PM(X1, X2,..., XN)}⊨Q, se e solo se la funzione P1(X1, X2,..., XN) P2(X1, X2,..., XN) ...PM(X1, X2,..., XN)→Q(X1, X2,..., XN) risulta sempre vera per qualsiasi combinazione delle variabili logiche X1, X2,..., XN, ossia se essa è una tautologia DA INSERIRE TUTTE INTERFERENZE LOGICHE ELEMENTARI CON IMMAGINE Deduzione per assurdo Per dimostrare che una conclusione Q(X1 , X2 ,…, XN ) può essere dedotta da una knowledge base di premesse di partenza KB={P1 (X1 , X2 ,…, Xn ), P2 (X1 , X2 ,…, XN ),…, PM(X1 , X2 ,…, XN )}, si può negare la tesi e mostrare che ciò dà luogo a una contraddizione. In altri termini, l’inferenza KB={P1 (X1 , X2 ,…, Xn ), P2 (X1 , X2 ,…, XN ),…, PM(X1 , X2 ,…, XN )}⊨ Q(X1 , X2 ,…, XN ) equivale all’inferenza KB={P1 (X1 , X2 ,…, Xn ), P2 (X1 , X2 ,…, XN ),…, PM(X1 , X2 ,…, XN ), NOT[Q(X1 , X2 ,…, XN )]}⊨FALSO Considerazioni finali

La deduzione non è una forma di conoscenza ampliativa. Ciò che deduciamo è una verità più blanda di quanto affermato dalle premesse di un ragionamento. La logica guarda alla forma delle affermazioni, non alla loro sostanza. Affermazioni del tipo “Se quella figura piana è un cerchio, allora quella figura ha tre lati”, evidentemente sbagliata da un punto di vista fattuale, è tuttavia un’implicazione formalmente corretta e può entrare all’interno del motore inferenziale conducendo la macchina a conclusioni formalmente corrette ma fattualmente sbagliate. La deduzione automatizzata non può dunque essere una semplice delega all’agente logico. Cap 3 Ragionamento probabilistico L’agente razionale, come abbiamo visto, si muove in un mondo interamente rappresentato da una knowledge base, immutabile ed esaustiva. Il mondo può evolvere nel tempo e il livello di conoscenza su eventi futuri è tutt’altro che caratterizzato dal livello di certezza delle leggi logiche di deduzione. Per questa ragione, è necessaria una diversa rappresentazione del mondo che tenga conto di questa incertezza, e che offra comunque all’agente la possibilità di effettuare un’inferenza Concetto di incertezza Lo stato del mondo, rappresentato nell’ambito delle inferenze deduttive da una variabile logica che assume valori di verità 0 oppure 1, in modo che uno escluda l’altro, è adesso rappresentato da una variabile casuale, che può assumere i valori di verità 0 o 1 con un livello di certezza che varia con continuità. Ad esempio, potremmo dire che il livello di certezza che attribuisco allo stato “piove” tra un’ora è pari a 0,7 L’incertezza a cui ci riferiamo non riguarda il manifestarsi di stati indeterminati rispetto ai quali l’agente non è dotato di uno specifico sensore, ma soltanto il possibile stato di verità di eventi determinati e interamente noti in partenza Elementi di calcolo delle probabilità Definizione “classica” di probabilità: la probabilità di uno stato del mondo è data dal rapporto tra il numero dei casi favorevoli e il numero totale dei casi possibili osservabili nel mondo. La manifestazione di uno specifico stato del mondo in probabilità di chiama evento. L’evento è dunque il valore che può assumere una variabile casuale. Eventi incompatibili e eventi compatibili

La pallina

è

bianca (B)

VERO

VERO

VERO

VERO

FALSO

FALSO

FALSO

FALSO

Il numero

è

dispari (D)

VERO

VERO

FALSO

FALSO

VERO

VERO

FALSO

FALSO

Il numero è

multiplo di 5

(M)

VERO

FALSO

VERO

FALSO

VERO

FALSO

VERO

FALSO

Palline

Probabilità

Queste equazioni sono dette leggi di Bayes. Applicazioni: i classificatori di Bayes Immaginiamo che gli stati del mondo siano descritti da queste variabili A= stato generale del tempo, B=temperatura, C=umidità, D=vento e dalle loro rispettive manifestazioni: A={Soleggiato, Nuvoloso, Piovoso} B={Caldo, Medio, Freddo} C={Alto, Normale} D={Forte, Debole} Si tratta di quattro variabili che descrivono una previsione meteorologica. Si assuma di avere rilevato in una tabella lo stato del tempo meteorologico degli ultimi 14 giorni. Nella tabella è anche presente una colonna X, oggetto della nostra previsione, che ci dice se in quel tale giorno la partita prevista in calendario per quella data si è effettivamente giocata oppure no. L’inferenza che si vuole effettuare riguarda il caso di una giornata futura in cui il tempo si manifesterà con i valori A=Piovoso, B=Freddo, C=Alto, D=Forte e si voglia prevedere se la partita si giocherà o meno Criterio di decisione «incerta»: scegliere il maggiora tra P(A=Piovoso, B=Freddo, C=Alto, D=Forte, X=Sì ) P(A=Piovoso, B=Freddo, C=Alto, D=Forte, X=No ) Applicazioni: i classificatori di Bayes (ipotesi naïve) L’algoritmo naïve bayesian classifier assume che l’effetto di un attributo su una data classe è indipendente dai valori degli altri attributi. Tale assunzione, chiamata indipendenza condizionale delle classi, ha lo scopo di semplificare i calcoli e proprio per questo l’algoritmo prende il nome di “naïve”. Criterio di decisione «incerta»: scegliere il maggiora tra 𝑃 (𝑋|𝐴, 𝐵, 𝐶,𝐷 )=

P A ( , B ,C , D / X ) P ( X )

P ( A , B ,C , D )

Qui entra in gioco l’ipotesi naïve. Essa consiste nel considerare le variabili A, B, C, D condizionatamente indipendenti (anche se non lo sono) rispetto alla variabile X, e riscrivere l’espressione di P(X|A,B,C,D) come segue: P (X|A, B, C,D) ≈

P ( A / X ) P ( B / X ) P ( C / X ) P ( D / X ) P ( X )

P ( A , B ,C , D )

A questo punto, tramite il semplice conteggio dei casi favorevoli sul totale, è possibile effettuare il calcolo di tutte le grandezze in gioco Es: P(X=Sì)=9/14 P(A=Piovoso|X=Sì)=3/ Effettuato il calcolo dell’approssimazione naïve di Bayes, potremo dunque realizzare il confronto tra le quantità necessarie per l’inferenza. Queste risulteranno pari a P(A=Piovoso|X=Sì)P(B=Freddo| X=Sì)(C=Alto|X=Sì) P(D=Forte|X=Sì)P(X=Sì)= 0, P(A=Piovoso|X=No)P(B=Freddo|X=No)(C=Alto|X=No) P(D=Forte|X=No)P(X=No)= 0, e dunque la conclusione più verosimile, verso cui è più razionale orientarsi, è che la partita non si giocherà.

Applicazioni: filtro antispam Una delle tecniche maggiormente impiegate per rilevare messaggi di spam e neutralizzarli è rappresentata dall’uso di filtri probabilistici, che si basano sull’applicazione della legge di Bayes. Questi filtri raccolgono inizialmente un certo numero di informazioni su ciascun messaggio di posta ed effettuano una ripartizione delle mail in arrivo in mail ordinarie e mail di spam. Ipotizziamo di concentrare la nostra attenzione su due informazioni chiave contenute in una mail: la provenienza da un certo dominio, rappresentata dalla variabile logica D=1, e la presenza nell’oggetto della mail di una certa parola chiave, rappresentata dalla variabile logica K=1. Si assuma di avere raccolto le osservazioni all’interno di una tabella in cui l’ultima colonna indica se queste siano state classificate come spam durante la fase di training Calcoliamo la probabilità che una nuova mail sia di spam in questi tre casi:

  1. la mail proviene da quel dominio (D=1), ma non contiene quella parola chiave (K=0);
  2. la mail proviene da quel dominio (D=1) e contiene quella parola chiave (K=1);
  3. la mail non proviene da quel dominio (D=0), ma contiene quella parola chiave (K=1). Caso 1) • 𝑃 (𝑆𝑝𝑎𝑚 = 1,𝐷 = 1,𝐾 = 0) ≈ 𝑃 (𝐷 = 1 /𝑆𝑝𝑎𝑚 = 1 𝑃( 𝐾 = 0 𝑆𝑝𝑎𝑚 = 1) 𝑃( K=0/ 𝑆𝑝𝑎𝑚 = 1) = 0. 𝑃 (𝑆𝑝𝑎𝑚 = 0,𝐷 = 1,𝐾 = 0) ≈ 𝑃( 𝐷 = 1 /𝑆𝑝𝑎𝑚 = 0 )𝑃( 𝐾 = 0 /𝑆𝑝𝑎𝑚 = 0) 𝑃( 𝑆𝑝𝑎𝑚 = 0 )= 0, Il nuovo messaggio sarà classificato come mail ordinaria. Applicazioni: robot inferenziale Un’altra applicazione della legge di Bayes è quella che riguarda il caso di un robot inferenziale che si muove nello spazio avendo a disposizione un sensore con cui raccoglie informazioni sullo stato dell’ambiente circostante (ad esempio, la presenza di ostacoli o vincoli, o di altri robot che si muovono contemporaneamente nello spazio), e che dopo una fase di training deve scegliere la prossima mossa da effettuare. Consideriamo il caso molto semplice di un robot inferenziale che si muove sul piano da sinistra verso destra disponendo di due mosse {UP, DOWN}. Ipotizziamo tre distinte strategie: la prima, per la quale il robot condiziona la prossima mossa sull’osservazione della singola mossa precedente; la seconda, per la quale invece il robot condiziona la prossima mossa sulla base delle due mosse precedenti; la terza, per la quale il robot condiziona la prossima mossa sulla base delle tre mosse precedenti Considerazioni finali Il primo aspetto da considerare, che emerge anche dall’esempio del robot inferenziale, è che aumentando la profondità degli stati osservati in passato si restringe inevitabilmente l’ampiezza del campione di casi su cui fare inferenza. Ciò implica che sebbene la capacità inferenziale della macchina sia potenzialmente in grado di trovare nel passato la soluzione delle incertezze future, per le situazioni più eccentriche il livello di affidabilità dell’inferenza è molto basso, in quanto costruito su un campione sempre più esiguo di osservazioni. Dunque, non tutte le inferenze sono ugualmente accurate. Un’ulteriore osservazione riguarda la forte influenza di una previsione dalla composizione del campione osservato. Se modifichiamo soltanto pochi valori dello stato del mondo osservato, ci accorgiamo che l’inferenza può cambiare drasticamente e la previsione più probabile che si può fare è che la partita si giocherà, mentre nell’esempio di partenza eravamo portati a prevedere il contrario. Lo si può verificare, ripetendo i calcoli, avendo cambiato il solo

Albero di ricerca L’insieme di tutti i percorsi dal nodo di partenza S prende il nome di albero di ricerca associato al nodo di S. Due osservazioni:

  • Il primo passo del percorso ottimo non è detto che contenga il migliore passo immediato
  • Uno degli scopi di un algoritmo di ricerca, oltre al raggiungimento dell’obiettivo, è evitare che l’agente “girovaghi” nello spazio degli stati “sperando” di trovare il nodo obiettivo, perché l’assenza di una strategia potrebbe portare l’agente a non trovare la soluzione del problema Un problema: Se provassimo a disegnare l’albero di ricerca di questo grafo, avrebbe profondità infinita. Di conseguenza, l’agente deve avere in ogni momento chiaro il percorso effettuato sino a quel momento, per evitare di ripetere passi già affrontati in precedenza e magari entrare in cicli senza uscita. Per fare questo, l’agente deve essere dotato di una memoria in cui conservare i nodi visitati e quelli che devono ancora essere visitati. I nodi vengono visitati sulla base di un criterio di prossimità che privilegia i nodi immediatamente raggiungibili da ciascun nodo, detti nodi di frontiera di quel nodo. Gli algoritmi di ricerca, come vedremo, si differenziano proprio sulla base dell’impiego della memoria e dell’ordine in cui vengono attraversati i nodi di frontiera. Algoritmi uninformed Così definiti per via del fatto che essi non presuppongono nessuna conoscenza di partenza sullo spazio degli stati. Alla famiglia degli algoritmi uninformed appartengono gli algoritmi Depth First Search (DFS) e Breath First Search (BFS). Nel caso degli algoritmi DFS e BFS, dovremo assumere che gli archi del grafo abbiano tutti lo stesso peso e che non vi sia nessuna distinzione apparente tra i vari stati. L’agente, in altri termini, deve sperimentare tutti gli stati del mondo e valutare per ciascuno la propria funzione obiettivo. Nodi di frontiera Diremo frontiera F di un nodo N l’insieme dei nodi raggiungibili dal quel nodo con una sola mossa. Possiamo inoltre immaginare una relazione di tipo parentale tra nodi: ad esempio, ogni nodo N vede la propria frontiera F( N) come l’insieme dei nodi -figli, mentre i nodi della frontiera F( N) vedono il nodo N che la ha generata come nodo -genitore. Algoritmo Depth First Search (DFS) Lo scopo dell’algoritmo Depth First Search (DFS) è individuare l’albero di ricerca all’interno di un grafo e percorrerlo in profondità dal nodo origine al nodo obiettivo, senza generare cicli. Per questa sua caratteristica, la modalità di attraversamento backtracking dell’albero di ricerca trova per primi i nodi obiettivo profondi. L’algoritmo DFS consente l’attraversamento di grafi senza che vengano generati cicli. Normalmente i cicli sono prodotti dall’assenza di memoria nel corso dell’attraversamento di un grafo: se l’agente non tiene traccia dei nodi attraversati, è altamente probabile che li ripercorrerà, specialmente se il grafo è costituito da un numero molto elevato di nodi. È infatti possibile che un nodo appartenga alla frontiera di due nodi distinti, e se non si considera questa possibilità si rischia di considerarlo più volte nell’attraversamento. Questo inconveniente può portare l’agente a ripercorrere più volte tratti del grafo già attraversati. Per evitare queste situazioni, si impiegano dei segnaposto, o marker , che nel corso dell’attraversamento del grafo consentono all’agente di tenere traccia dei nodi già attraversati. Nell’algoritmo DFS, la memoria dei

nodi attraversati si ottiene attraverso l’utilizzo di una particolare struttura dei dati, denominata pila, o stack, in cui si memorizzano di volta in volta tutti i nodi di frontiera dei nodi attraversati, e una lista ausiliaria, in cui si memorizzano i nodi già attraversati dall’agente. Lo stack è un particolare tipo di coda nella quale l’ultimo elemento inserito è anche il primo elemento che viene tolto. Calcolo delle prestazioni Per comprendere le prestazioni degli algoritmi uninformed, ossia quanto efficacemente essi consentano di risolvere un problema, si impiegano due indicatori, uno di tempo e uno di memoria. Il primo dà conto del tempo di esecuzione dell’algoritmo, misurato attraverso il numero di nodi visitati dall’agente prima di raggiungere il nodo obiettivo. Il secondo invece dà conto della quantità di memoria necessaria per consentire all’agente di arrivare con certezza al nodo obiettivo, senza che vengano generati cicli nel percorso dal nodo origine al nodo obiettivo. In questa valutazione delle prestazioni, vista la variabilità dei casi, ci si mette cautelativamente in una situazione di caso peggiore. Per comprendere il senso di questa valutazione di caso peggiore è necessario introdurre una ulteriore grandezza: il fattore di diramazione, o branching factor, indicato con la lettera b, che rappresenta l’ampiezza della frontiera di quel nodo, ossia la numerosità dell’insieme di nodi da questo raggiungibili con una sola mossa Per valutare le prestazioni dell’algoritmo DFS , è bene fare riferimento al caso peggiore in cui il nodo obiettivo sia l’ultimo nodo figlio dell’ultimo livello nell’ordine di attraversamento, Il tempo di esecuzione dell’algoritmo T DFS è dato dal numero di nodi attraversati, pari al numero totale di nodi dell’albero Algoritmo Breadth First Search (BFS) Lo scopo dell’algoritmo BFS è individuare l’albero di ricerca all’interno di un grafo e percorrerlo in ampiezza dal nodo origine al nodo obiettivo, senza generare cicli. Un tipico attraversamento dell’albero di ricerca. L’algoritmo inizia dal nodo origine e attraversa l’albero di ricerca orizzontalmente procedendo da ogni nodo genitore ai suoi nodi figli, visitando tutta la frontiera e dunque l’intera frontiera di ciascun nodo figlio secondo un ordine prestabilito, fino all’ultimo figlio del livello più basso. Per questa sua modalità di attraversamento dell’albero di ricerca, l’algoritmo BFS trova per primi i nodi obiettivo di tipo shallow. Per evitare ridondanze nella costruzione dell’albero di ricerca, l’algoritmo BFS memorizza i nodi attraversati impiegando una struttura dei dati denominata coda, simile a quella vista per l’algoritmo DFS, per mettere in sequenza i nodi che appartengono alla frontiera di ciascun nodo attraversato, e una lista ausilaria in cui invece memorizza i nodi già attraversati dall’agente. A differenza dello stack, la caratteristica della coda impiegata nell’algoritmo BFS è che il primo elemento inserito da una frontiera è anche il primo elemento che viene visitato. Per valutare le prestazioni dell’algoritmo BFS, è bene fare riferimento ancora una volta al caso peggiore in cui il nodo obiettivo shallow sia l’ultimo del livello s in cui esso è posizionato (s<n). In questo caso il tempo di esecuzione dell’algoritmo T BFS è dato dal numero di nodi attraversati, pari al numero totale di nodi dell’albero fino al livello s Algoritmi informed : l’algoritmo di Dijkstra e l’algoritmo A* search Negli algoritmi di tipo informed l’agente problem solver dispone di informazioni aggiuntive che gli consentono di evitare di procedere “alla cieca” come negli algoritmi uninfomed Le informazioni

Si assume che gli agenti perseguano due obiettivi opposti, ovvero che uno dei due agenti, detto massimizzatore (indicato con Max), sia alla ricerca del nodo finale che contiene il payoff massimo, e che l’altro, detto minimizzatore (indicato con Min), cerchi invece il nodo finale con il minimo payoff. In questa alternanza, i due agenti si ostacolano a vicenda. L’algoritmo procede a ritroso dall’ultimo livello verso l’alto, seguendo la stessa sequenza di visita dei nodi dell’algoritmo DFS. Algoritmo minimax: isolation Isolation è un gioco di strategia a due giocatori. Si gioca su una scacchiera inizialmente vuota, tranne che per due caselle in cui sono poste le pedine di partenza dei due giocatori. I giocatori hanno a disposizione una sola mossa: aggiungere una pedina in una qualsiasi delle caselle che circondano l’ultima pedina inserita Tecnica di semplificazione: pruning Lo svantaggio principale dell’algoritmo Minimax è che esso diventa molto lento per situazioni complesse, nelle quali l’albero delle scelte ha un elevato fattore di diramazione e ogni giocatore ha molte scelte da decidere. Il beneficio del prunintg (potatura) si comprende bene facendo riferimento a due situazioni-tipo. La prima rappresenta due livelli di un albero delle scelte aventi come radice un nodo massimizzatore, la seconda invece rappresenta il caso opposto, ovvero una situazione in cui la radice è occupata da un nodo minimizzatore. Dunque, una regola semplice di potatura è la seguente: se la radice di un sottoalbero di due livelli è un massimizzatore, scelto il primo minimo, ha senso considerare scelte dello stesso livello con payoff tutti maggiori; se invece la radice di un sottoalbero di due livelli è un minimizzatore, e scelto il primo massimo, ha senso considerare scelte dello stesso livello con payoff tutti minori. Tutti gli altri rami possono essere potati. CAP 5 Machine learning L’ultima, ampia categoria di agenti che trattiamo riguarda il caso di agenti che imparano “qualcosa” dall’osservazione dello stato del mondo. Differenza rispetto all’uomo: mentre l’uomo, attraverso un meccanismo di astrazione, cerca una spiegazione generale dei fenomeni particolari che osserva, l’agente, in questa sua ricerca, si concentra unicamente su quel determinato fenomeno e non va alla ricerca di una legge universale. Nel machine learning un fenomeno è visto come una “scatola nera” (black box) della quale l’agente ignora i meccanismi interni, potendo unicamente osservare i valori di alcune grandezze che considera variabili di ingresso, e quelli di altre grandezze che considera valori di uscita. Ciò che interessa all’agente è trovare la particolare funzione che lega quegli ingressi a quelle uscite. Esistono tre modalità di apprendimento per un agente razionale:  l’apprendimento con supervisione, o supervised learning input e outputsupervised learning legge  l’apprendimento “con rinforzo”, o reinforcement learning , circuito continuo: Ambientericompensaagenteazioneambiente  l’apprendimento senza supervisione, o unsupervised learning input unsupervised learninglegge Regressione In molte situazioni ci si trova a disporre di osservazioni di grandezze delle quali ipotizziamo un legame del tipo causa-effetto, che però non siamo in grado di esprimere nella forma di una legge matematica esatta

Immagine slide 6 L’assunzione più semplice che possiamo fare è che la legge f(x) che lega le ascisse alle ordinate sia una retta del tipo f(x)=mx+q Gradiente L’idea alla base del metodo del gradiente è che il punto di minimo del paraboloide, ossia il punto (m, q ) che minimizza la nostra funzione obiettivo RSS(m,q), è una specie di centro di gravità che attira verso di sé tutti i punti della superficie del paraboloide. In altri termini, per individuare il minimo è come se avessimo una pallina da fare scivolare all’interno del nostro paraboloide fino al vertice. Se la abbandonassimo a sé stessa da qualsiasi punto iniziale, per “gravità”, essa scenderebbe verso il centro di attrazione che si trova nel punto di minimo. Praticamente, l’algoritmo parte da un punto iniziale (m1, q1 ) scelto in modo casuale e calcola la pendenza del paraboloide in quel punto, data dalle pendenze delle due parabole componenti, quindi si sposta nelle due direzioni m e q di una quantità proporzionale alla pendenza. Classificazione La classificazione è una particolare forma di learning nella quale l’agente utilizza le caratteristiche di un oggetto del mondo osservato, o variabili, per identificare la classe a cui quell’oggetto appartiene. È essenziale che queste caratteristiche siano misurabili, ossia che a ciascuna caratteristica sia associabile una quantità numerica, e che le metriche raccolte dai sensori possano essere messe tra loro in una certa relazione d’ordine (ad esempio, la misura A è minore della misura B). Questo tipo di classificazione, detta lineare, è la più semplice che un agente può effettuare. In una classificazione lineare, la classe a cui l’oggetto appartiene deriva dal risultato di una combinazione lineare delle sue caratteristiche. Considerando classificazioni bidimensionali, l’espressione del classificatore lineare, o funzione di classificazione c(x1 , x2 ), sarà del tipo. Per insiemi linearmente separabili sono stati sviluppati diversi efficaci algoritmi per la determinazione dell’espressione della funzione c(x1 , x2 ). Ci soffermiamo su due dei più significativi:

  1. l’algoritmo del perceptron,
  2. l’algoritmo detto Support Vector Machines, indicati con l’acronimo SVM
  1. Il perceptron è un’astrazione nella quale si dà della funzione di classificazione una particolare rappresentazione grafica che ricorda la forma di una cellula neuronale. Avremo infatti un insieme di rami, in cui si rappresenta il calcolo delle quantità elementari wi xi , che convergono in un punto in cui esse vengono sommate per dare luogo alla funzione di classificazione. Il perceptron fornisce dunque una delle possibili infinite rette di

Si fissa un valore per il fattore g, che riflette l’attitudine all’esplorazione (g vicino a 1) o l’attitudine più opportunista (g vicino a 0) dell’agente.

  • Passo 2 (da ripetere fino a convergenza) Si scelgono in maniera casuale uno stato di partenza S e un’azione a tra quelle rese disponibili dallo stato S. Si aggiorna il valore del corrispondente elemento q(S,a) della tabella applicando la legge di Bellman. Algoritmo DBSCAN (Density-Based Spatial Clustering of Applications with Noise) L’idea alla base dell’algoritmo DBSCAN è la nozione di eraggiungibilità. Un punto A dello spazio si dice & –raggiungibile da un punto P se la loro distanza è minore di una certa soglia &. Avendo preliminarmente fissato il valore dei parametri & e m , una possibile realizzazione dell’algoritmo DBSCAN si basa sui seguenti passi: Passo 1: per ogni punto si costruisce la circonferenza di raggio & e si identificano i punti all’interno della circonferenza stessa. Se il loro numero è superiore a m quel punto è identificato come punto di core. Passo 2: si isolano tutte le componenti principali, ossia le sequenze di punti core presenti all’interno delle sfere di raggio & di ciascun punto core. Passo 3: si assegnano a ciascuna componente principale tutti i punti & –raggiungibili da ciascun punto core presente nella componente principale. Reti neurali e deep learning Le reti neurali sono la frontiera attuale dell’intelligenza artificiale. Esse introducono un ulteriore paradigma di learning, detto deep learning, che risponde a esigenze diverse da quelle degli altri schemi di apprendimento visti sinora. Un caso che oggi si presenta spesso è quello di disporre di molte osservazioni numeriche che restituiscono un quadro frammentario di un fenomeno e di volere “ricostruire” l’informazione mancante. Naturalmente, quanto maggiore è il numero di pesi da calibrare, tanto più elevato sarà il numero di gradi di libertà per raggiungere la migliore approssimazione di un fenomeno ma, allo stesso tempo, tanto maggiore sarà il carico computazionale da sostenere per la calibrazione. Esiste dunque un trade-off di cui tenere conto. Attraverso una rete deep, ogni strato “riconosce” un concetto che viene delineato sempre meglio e con crescente grado di dettaglio dagli strati successivi. L’effetto concreto della stratificazione è l’amplificazione di certi dettagli che diventano più marcati e vengono identificati meglio, ma anche l’offuscamento di certe informazioni “di fondo” il cui contributo sull’output viene smorzato. Attraverso una rete deep possono essere più facilmente enucleate e identificate le singole parti dell’immagine in una forma gerarchica: prima vengono riconosciuti i bordi degli oggetti, quindi le forme di ciascuno di essi e dalle forme gli edifici, le strade, le persone, ognuna con la propria età e genere, e così via. È come se la rete “riconoscesse” progressivamente il contesto a cui l’immagine si riferisce. Grazie all’accresciuta disponibilità di dati e alla capacità di trattarli in grandi volumi e con crescente velocità, si apre una diversa prospettiva, e può essere attribuito un nuovo significato alla parola “pensiero” e alla sua automazione: la macchina, attraverso gli algoritmi considerati in questo capitolo, “pensa” in quanto riesce a effettuare delle astrazioni partendo dalle osservazioni del mondo.

Questo è in definitiva il risultato del machine learning. Da un insieme indistinto di osservazioni a una legge che consente di comprendere la ragione di quelle osservazioni. Individua una possibile spiegazione del fenomeno esaminato che è una forma di conoscenza prima non disponibile: esiste una ragione (la regola rappresentata dalla retta di regressione) che può descrivere quei punti osservati, consentendo all’agente di effettuare delle previsioni. Una “perfetta conoscenza” del fenomeno, rappresentata da una legge che passi per tutti i punti della funzione ignota, equivarrebbe di fatto a non comprenderlo e a esporci a ogni sorta di possibile previsione sui punti non osservati. Il problema è ampiamente studiato e questo paradosso prende il nome di overfitting. Un eccesso di precisione equivale a tutti gli effetti all’incapacità di cogliere il nesso di correlazione che esiste tra le grandezze osservate. Per questa ragione è (e sarà sempre) necessaria una regolamentazione dell’intelligenza artificiale