Table of Contents
|
In questa pagina vedremo altri rami dell'AI in modo più o meno accennato.
Sistemi ATM (Assumption based truth maintainance systems)
Sistemi nei quali delle asserzioni sono prese come vere, poi si fa evolvere il sistema e si vedono le conseguenze (anche se queste implicano delle contraddizioni). Poi si possono cambiare le assunzioni e vedere che conseguenze generano e quindi si comparano le conseguenze posto che sono state generate da due sistemi di assunzione diversi.
Gerarchie di ereditarietà. Ordered logic programming.
E' un vecchio formalismo in cui si rappresentano le caratteristiche del mondo in termini di proprietà "vere" o "false" per un dato oggetto e queste caratteristiche possono essere ereditate da oggetti "derivati" (vedi gerarchia sotto).
In questo modo nasce la Ordered logic programming (OLP).
Nella OLP la conoscenza è rappresentata tramite una gerarchia di moduli, ogni modulo è un programma logico. Questi moduli possono essere in contraddizione tra loro, e quando ci sono delle contraddizioni possiamo fare delle scelte in base alla gerarchia (a volte potrebbe essere che la gerarchia non offra scelte). Ad esempio data la gerarchia:
Lp3 ed Lp4 sono in conflitto e quindi, per gerarchia, si sceglie Lp4. Ad esempio si ha che $LP_4 \models a$ mentre $LP_3 \models \neg a$ , c'è una contraddizione. bene è come se la gerarchia ci dicesse che Lp4 è più affidabile di Lp3.
Viceversa in un eventuale conflitto tra Lp1 ed Lp3 non sapremmo scegliere poichè la gerarchia non ci dice quale dei due è più affidabile.
Supponiamo che Lp1 derivi c mentre Lp3 derivi not c , l'unica cosa che si può fare è vedere se Lp2 deriva c. Se lo deriva allora è come se ci fosse informazione aggiuntiva. Infatti al livello di Lp1 ed Lp3 non posso dire niente su c, è praticamente "unknown". Se però il livello successivo mi dice che c è vero, allora si può assumere che c sia vero anche al livello precedente e quindi Lp1 ha più affidabilità rispetto ad Lp3.
Se invece è ritenuto più importante il livello precedente, come se il livello precedente segnalasse "abbaimo provato ad ottenere informazioni su c ma queste non sono certe", allora l'informazione data da Lp2 viene sovrascritta dall'informazione ereditata dal livello precedente.
Riconoscimento di immagini
Riconoscere oggetti in un'immagine statica o dinamica è molto complesso, anche se all'uomo sembra semplice (chissà invece quanta potenza di calcolo equivalente ai dispositivi digitali viene consumata per fare questo riconoscimento). Le tecniche di riconoscimento si avvalgono di tante conoscenze sulla forma degli oggetti, delle situazione e di altro. Insomma il riconoscimento visivo richiede conoscenze sviluppate in diversi problemi correlati ma alla fine la sostanza è sempre un problema di ragionamento.
NLP, natural language processing
Riconoscimento di linguaggi (perlopiù traduzione).
Si è sperimentato che maneggare (perlopiù tradurre o produrre) linguaggi abbastanza precisi come quello matematico risulta difficile ad un agente artificiale, figurrsi quanto è difficile maneggiare un linguaggio naturale che di base è molto ambiguo (e quindi impreciso).
Quando il contesto (o dominio) è ben definito, quindi il traduttore automatco può risolvere l'ambiguità ricordando il contesto in cui è immerso il testo e quindi il risultato è abbastanza buono.
Poi la difficoltà è data dall'impostazione del linguaggio stesso. Ad esempio la semantica in italiano è data in buona parte dall'ordine delle parole. In inglese è data perlopiù dai vocaboli in se.
Sistemi esperti
Si tenta di sostituire un esperto umano per fare qualcosa, ad esmepio un sistema di diagnosi.
Ontologie/Frame
Frame: descrizione strutturata (con relazioni ed altro) di un oggetto del dominio.
In un sistema di frame descriviamo le relazioni semantiche tra oggetti del dominio.
Esempio
Frame: descrivo un'aula.
Relazione tra frame: l'aula è parte della facolta.
In questo modo creiamo una specie di linguaggio detto frame language che serve per descrivere la realtà, che è una versione semplificata delle logiche descrittive.
logiche descrittive
Sono sottoinsiemi parziali della logica di primo ordine.
forall frieds.tall (tall or blonde)
//tutti hanno un amico alto oppure biondo
I predicati sono in due forme: diadici (relazione che intercorre in una coppia di elementi) e monadici (l'elemento ha le proprietà esposte dal predicato).
I quantificatori sono i soliti: per ogni, esiste ed esistono almeno k elementi che soddisfano l'enunciato.
I connettivi sono or, and, not.
Poi ci sono i rui inversi, ovvero i predicati "alla meno uno". Ad esempio maggiore inverso indica minore o uguale.
La logica descrittiva usa la open world assumption OWA, ciò vuol dire che se non esiste un fatto, nella teoria esposta in logica descrittiva, che soddifa un predicato e la variabile è quantificata esistenzialmente, allora esisterà al di fuori della teoria un fatto che la soddisfa.
Ad esempio ho solo i numeri 2,3,4 e scrivo Esiste un x maggiore di 4. Anche se 5 non ce l'ho, si suppone che esista con la OWA.
Con questo tipo di logiche è possibile definire delle ontologie che servono per il web semantico. Ad esempio si possono definire relazioni tra termini, come "una mansarda è un appartamento".
Scripts
Simile alle logiche descrittive ma non descrive situazioni, bensì azioni. tipo:
-> Entra
-> attendi corriere
etc...
Ragionamento probabilistico
Il ragionamento probabilistico è molto sfruttato in AI.
il ragionamento probabilistico non si basa solo sulla logica classica, ma anche su altri tipi di logica, ad esempio la logica fuzzy. Con la logica classica una cosa è vera o meno con una certa probabilità. Invece con la logica fuzzy è vera in parte secondo la probabilità (cioè al 50% vera significa che metà di quella cosa rispecchia la proprietà ed il 50% no).
teoria dei fattori di certezza
I fattori di certezza ammettono un range di valori compreso nell'intervallo [-1, 1] , a differenza della probabilitò che va da 0 ad 1. meno uno corrisponde a falso ed uno a vero. Invece un cf pari a zero (nel mezzo) significa "non so niente sul predicato", cioè ne se è falso nè se è vero.
Per i predicati semplici bisogna sapere i fattori di certezza, cioè
p //predicato
cf(p) //fattore di certezza di p
Se ho una congiunzione di fattori di certezza il fattore di certezza della congiunzione è calcolato come segue:
$p_1 \wedge \ldots \wedge p_n : c$ implica un $cf(c) = min_i cf(p_i)$
Cioè il fattore di certezza di eventi che devono essere verificati assieme è pari al minimo fattore di certezza, mentre se fosse stata una probabilità e gli eventi fossero stati indipendenti avremmo dovuto moltiplicare tra loro le probabilità.
In effetti non è del tutto antiintuitiva perchè è come dire "la certezza che questo evento si verifichi è pari alla certezz minima tra gli eventi, cioè l'evento meno certo limita gli altri".
Inferenza sotto fattori di certezza
Data la teoria:
p
p-> q
calcoliamo cf(q) come cf(q) = cf(p) * cf(p -> q) , ovvero il fattore di certezza di q è pari alla certezza che si verifichi p per la certezza che si verifichi l'implicazione. Questo se cf(p)>0 (ovvero se l'antecedente si attiva). Se 'p' non si attiva o meglio non è certo allora neanche q è certo, ovvero cf(p) = cf(q) = 0
come si gestiscono i fattori di certezza nel momento in cui una verità viene derifata in modo diverso. Ovvero supponiamo che il predicato f venga derivato con due diversi fattori di certezza. cf(f) = x , cf(f)=y
Che valore diamo effettivamente a cf(f) ?
composizione (x,y) = { x+y -x*y se x,y > 0 [1]
x+y +x*y se x,y < 0 [2]
x+y / (1 - min { |x| , |y| }) se x,y discordi [3]
[1] la certezza di f, visto che le derivazioni sono positive, dovrà essere l'unione delle due parti, tolta la sovrapposizione (x*y) delle due.
[2] Analogo ad [1] se le derivazioni sono negative (sono più false che vere).
[3] Se le due derivazioni sono conflittuale, ne considero la somma che sarà più piccola del modulo di entrambi e poi la normalizzo rispetto al denominatore.
MySin
MySin usa i fattori di certezza per determinare infezioni batteriche e funziona bene.
Si potrebbe dire, se i fattori di certezza di base li danno i medici e Mysin funziona bene, allora i medici ragionano come mysin? Questo vorrebbe dire che un medico ragiona con dei valori tra -1 ed 1, che è un intervallo molto ampio mentre invece l'intuito sembra suggerire che i medici lacvorino con pochi valori discreti, tipo "va bene, meglio che peggio, bhò, peggio che meglio, va male". Han provato a simulare questa cosa discretizzando l'intervallo dei valori ed han visto che Mysin mantiene le stesse prestazioni, in accordo con le ipotesi precedenti (cioè che non serve un intervallo di valori enorme e che i medici lavorano come mysin). Ciò ha portato a pensare che per rendere più umane le decisioni probabilistiche non serve cambiare completamente i valori probabilistici ma basta discretizzarli opportunamente per problemi pratici.