Bayesian Networks
Molto del reasoning umano è circa le proposizioni e le quantities che sono incerte/uncertain. Le nostre opinioni/beliefs circa molte cose sono provisional/provvisorie (cioè, soggette a cambiare) e qualified/condizionate (cioè, che hanno vari livelli di confidence/fiducia). Anche i sistemi di AI, necessitano di essere capaci di trattare uncertain information/informazione incerta. I fatti, le statements/proposizioni e le regole di un agente AI dovrebbero essere più appropriatamente per essere pensati come provisional/provvisori e qualified/condizionati. Dopo tutto, una parte della sua informazione è fornita da umani e una parte originata da sensori con precisione e reliability/ affidabilità limitate. Eppure, molto del primo lavoro in AI ha ignorato la natura uncertain/incerta della conoscenza. Infatti, Marvin Minsky osservò che il suo volume edito dei primi articoli su AI non conteneva “alcun esplicito uso di nozioni probabilistiche”.
Attualmente molti ricercatori di AI, tuttavia riconoscono che molta della conoscenza necessaria per le macchine necessita di essere qualified/condizionata con valori di probabilità e che questo reasoning con questa conoscenza può quindi più appropriatamente essere fatto con gli strumenti/tools della probability theory. Ma proprio come è il caso con il logical reasoning, il probabilistic reasoning è soggetto alla vecchia nemesi di AI, la combinatorial explosion. Supponiamo, per esempio, che la conoscenza di un agent consiste di un insieme di proposizioni. A causa di possibili interdipendenze tra le proposizioni, un accurato probabilistico reasoning dipende dal/è in funzione del conoscere più che appena solo la probabilità di ciascuna di quelle proposizioni individualmente. Invece, i valori di probabilità per varie combinazioni delle proposizioni prese insieme, chiamate “joint probabilities” sono usualmente richieste; questo conduce nel caso generale, a impraticabilmente ampie rappresentazioni e computazioni intrattabili/intractable.
I precedenti sistemi di AI che potrebbero trattare l’incertezza/uncertainty, come MYCIN e PROSPECTOR, fanno semplificare assumptions/ipotesi per diminuire queste difficoltà rappresentazionali e computazionali. Tuttavia, poiché questi sistemi fallirono nel considerare importanti interdipendenze tra le loro convinzioni, essi spesso diedero risultati inappropriati dovuti a causa di queste come la sovrastima dell’evidenza. Durante gli anni ottanta alcuni nuovi metodi potenti furono inventati (e importati da altri campi) che erano meglio capaci di trattare le dependencies/dipendenze. Essi involve/implicano il rappresentare uncertain beliefs/opinioni incerte e le loro dependencies in una forma grafica chiamata un “probabilistic graphical model”. Descriverò la più importante versione di questi modelli in questo post.
Primo, per illustrare alcune delle difficoltà involved/implicate in reasoning circa uncertain beliefs/opinioni incerte e come noi potremmo trattarle, guardiamo un esempio involving/che implica varie proposizioni circa un motore di automobile. Ecco alcune delle cose che potremmo dire circa un motore e i suoi componenti:
P1: The starter motor is ok
P2: The starter motor cranks the engine when the starter switch is turned on
P3: The fuel system is ok
P4: The car starts when the starter switch is turned on.
Queste proposizioni sono assolutamente ovviamente correlate. Per una cosa, P4 dipende dalle altre tre – la triste osservazione che P4 è falsa certamente cambierebbe la nostra fiducia circa le altre tre. Inoltre, non richiederebbe un meccanico di auto per conoscere sapere che P1 e P2 sono correlate.
Una piena considerazione delle dependencies implicate qui richiede un elenco di tutte le possibilità per cose che sono ok e non ok e ci sono sedici di queste possibilities/possibilità. Se noi denotiamo l’opposto di una proposizione inserendo un segno di negation (¬) premesso ad esso, allora ¬P1 denota “The starter motor is not ok”. Usando questa notazione, le sedici possibilities/ possibilità sono
P1, P2, P3, P4,
P1, P2, P3, ¬P4,
P1, P2, ¬P3, P4,
P1, P2, ¬P3, ¬P4,
P1, ¬P2, P3, P4,
P1, ¬P2, P3, ¬P4,
P1, ¬P2, ¬P3, P4,
P1, ¬P2, ¬P3, ¬P4,
¬P1, P2, P3, P4,
¬P1, P2, P3, ¬P4,
¬P1, P2, ¬P3, P4,
¬P1, P2, ¬P3, ¬P4,
¬P1, ¬P2, P3, P4,
¬P1, ¬P2, P3, ¬P4,
¬P1, ¬P2, ¬P3, P4,
e
¬P1, ¬P2, ¬P3, ¬P4.
Un esperto che conosce i motori e le loro attese/expected reliabilities/affidabilità sarebbe, presumibilmente, capace di assegnare valori di probabilità a ciascuno di questi sedici “states” nei quali un engine system potrebbe trovare se stesso. Per esempio, l’esperto potrebbe specificare che la overall/complessiva joint probability/probabilità congiunta che ogni cosa è ok, denotata da p(P1, P2, P3, P4) è 0,999. Egli o ella dovrebbe specificare questi sedici numeri. (In realtà solo quindici dovrebbero essere necessari. Questi sono i soli possible states/possibili stati e uno di essi deve essere il caso.) Knowing/sapere conoscere queste joint probabilities/probabilità congiunte renderebbe capace una persona (che possegga pazienza e capacità nella probability theory) di a calcolare altre probabilities/probabilità certain/certe, come la probabilità che la macchina parte dato solo, diciamo, che il fuel system/il sistema di alimentazione è sicuramente ok.
Specificare i quindici numeri per questo piccolo esempio non sembra troppo arduo, ma per un più realistico problema, diciamo uno con trenta differenti proposizioni, si dovrebbero specificare 230-1 = 1073741823 numeri. Inoltre, se ci sono anche quantità che potrebbero considerare molti valori ( in aggiunta a proposizioni, che sono binary-valued), il numero di possibilities si espande ancora di più.
Ovviamente, io ho ipotizzato/assumed qui il caso peggiore/the worst case, in altri termini, il caso in cui tutte e quattro le proposizioni potrebbero dipendere in modi complessi complicati indipendentemente da ciascun altro. Poi ciascuna delle sedici probabilities potrebbero essere computate calcolate da formule come
p(P1, P2, P3, P4) = p(P1)p(P2)p(P3)p(P4)
(con i segni ¬ inseriti come richiesto), e noi avremmo necessità solo per specificare probabilities per ciascuna delle quattro proposizioni individualmente.
Il mio esempio riguardante i motori di automobile è in effetti un po’ tra questi due estremi. Così anche ci sono molto più ampi e più realistici problemi. Questa “inbetweeness” è la chiave per rendere il probabilistic reasoning più tractable/trattabile. Sebbene c’era un precedente recognition/ riconoscimento e exploitation/sfruttamento di questo fatto da statistici, fu Judea Pearl che ha sviluppato alcuni dei principali metodi representational e computational.
Pearl, un professore di informatica alla UCLA, era perplesso del contrasto tra, da una parte, la ease/facilità con cui gli umani ragionano e make inferences/fanno inferenze basate su uncertain information/informazione incerta e, dall’altra, le difficoltà computazionali di duplicare queste capacità abilità di usare calcoli basati sulla probability. Come egli disse, egli iniziò con le seguenti conjectures/congetture:
1. The consistent agreement/La consistente accettazione tra plausibile reasoning/il ragionamento plausibile [da parte degli umani] e il calcolo della probabilità potrebbe non essere una coincidenza ma fortemente suggerisce che l’intuizione umana invoca qualche forma grezza/some crude form di probabilistic computation/calcolo probabilistico.
2. Alla luce della velocità e effectiveness/efficacia del reasoning, le difficoltà computazionali che affliggevano i precedenti sistemi probabilistici potrebbero non essere molto fondamentali e dovrebbero essere superate dal fare la scelta/choice giusta di semplificare le assumptions/ipotesi che gli umani memorizzano/store nella loro head.
L’intuizione fondamentale di Pearl fu che beliefs/le opinioni circa proposizioni e altre quantità potrebbero spesso essere considerate come “direct causes” di altre beliefs e che questi causali collegamenti/causal linkages potrebbero essere rappresentati in strutture grafiche che codificano semplificando le assumptions/ipotesi circa relazioni tra probabilities.
Per essere chiari, Pearl non fu il primo a suggerire di usare strutture grafiche per codificare la probabilistic information. Egli stesso menziona il precedente lavoro. Russell e Norvig scrissero che il lavoro dello statistico inglese I. J. Good “potrebbe essere considerato come un precursore delle moderne Bayesian networks…” E i fisici fanno risalire strettamente il correlato lavoro di Hans A. Bethe.
Per il nostro esempio del motore dell’automobile, invece di quindici probabilities che sarebbe necessarie nel caso generale, ora noi necessitiamo solo di otto. Queste sono come segue: le
probabilities di P4 dati P2 e P3 per i quattro differenti stati di P2 e P3,
p(P4 | P2, P3),
p(P4 | P2, ¬P3),
p(P4 | ¬P2, P3),
p(P4 | ¬P2, ¬P3);
la probabilità di P2 dato P1 per i due differenti stati di P1, cioè, p(P2|P1) e p(P2|¬P1); e le probabilità di P1 e P3, cioè, p(P1) e p(P3). Ciascuno di questi insiemi di valori di probabilità è stored/memorizzato in quella che è chiamata una “conditional probability table” (CPT) associata al suo corrispondente nodo nella rete.
Usando un risultato dalla teoria della probabilità tutte e sedici le joint probabilities/ probabilità congiunte (richieste per un accurate probabilistic reasoning) possono essere computato da queste otto.
Poiché la regole di Bayes gioca un ruolo prominente nel computare le probabilità dei vari nodi date le probabilità degli altri, Pearl ha coniato la frase “Bayesian belief networks” (usualmente semplificata in Bayesian networks o belief networks) per questi tipi di grafi. È stato dimostrato che è piuttosto facile costruire ampie Bayesian networks notando attentamente quali proposizioni direttamente influenzano (“cause”) le altre. Networks così costruite sono quelle che i graph theorists chiamano “directed acyclic graphs” (DAGs): “directed” perché le frecce point/puntano da cause nodes/nodi nodi causati e “acyclic” perché seguendo le frecce fuori da un nodo non conducono mai indietro a quello stesso nodo.
Ci si potrebbe chiedere, da dove i valori di probabilità nelle CPTs arrivano? Per alcune networks, forse un esperto che conosce come certain proposizioni affect/hanno effetti su altre potrebbe essere capace di make guesses/fare supposizioni circa le probabilities. Queste guesses/ supposizioni sono chiamate “subjective probabilities”, basate come esse sono nozioni/notions subjective di un esperto riguardanti causa ed effetto. Tuttavia, di gran lunga il metodo più utile per populating le CPTs con valori è stimarli da un ampio database di casi reali.
Da qualsiasi mezzo esse sono ottenute, le CPTs (insieme con la struttura della network) sono usate in computazioni riguardanti come le probabilità di alcuni nodi nella rete sono affected/influenzate dalle probabilità degli altri. Queste computazioni sono chiamate “probabilistic inference”. Vari metodi computational pratici sono stati ideati – anche per le piuttosto ampie networks necessarie per problemi realistici reali.
Senza esaminare ogni effettiva computazione, userò la piccola network del motore per illustrare tre principali stili di probabilistic inference in Bayesian networks. Per esempio, se tutti noi sapevamo per certo che era che the starter motor was ok [cioè, p(P1)=1)], noi potremmo computare la probabilità che the car will start. “Migrating” i valori di probabilità noti downward verso il basso nella network (nella direzione delle frecce) è usualmente chiamata “causality reasoning”. Invece, se noi sapevamo che l’auto non sarebbe partita [cioè, p(P4)=0], noi potremmo computare le probabilità del starter motor/motorino di avviamento che è ok e del fuel system/sistema di alimentazione che è ok. I valori di probabilità di Migrating upward verso l’alto nella rete (contro la direzione delle frecce) è usualmente chiamata “evidential” oppure “diagnostic” reasoning. Esso è quello che i medici (e altri trouble-shooters/tecnici riparatori) fanno quando essi hanno un sintomo e tentano di inferire le probabilità delle cause.
C’è un altro anche importante stile di reasoning e che è chiamato “explaining away”. Ecco un esempio: Supponiamo che noi sappiamo di sapere che l’auto non parte e che noi abbiamo computato i valori di probabilità per il fuel system/sistema di alimentazione che è il problema (cioè, non ok) e per il starter motor/motorino di avviamento che è il problema. Poi successivamente, noi troviamo che in effetti lo starter motor ha, infatti fallito. Considerando questa aggiuntiva informazione, noi potremmo trovare che la probabilità del fuel system che è il problema decrescerebbe. Il problema del starter motor “explains” il fatto che l’auto non partirebbe, così noi abbiamo meno ragione per sospettare del fuel system. Il fatto che il starter motor non parte “explains away” il possibile problema del fuel system. La strategia per explaining away è comunemente usata in medicina, diritto, scienza e nel ragionare quotidiano. Per esempio, un defense attorney/avvocato difensore potrebbe citare l’evidenza che alcune altre persone (non il suo cliente) era identificato sul sistema di monitoraggio TV della banca, explaining away così il coinvolgimento del suo cliente nella rapina in banca.
Io posso illustrare l’effetto explaining-away con effettivi inference calculations eseguiti su una rete un po’ più ampia network circa i motori. Dopo aver osservato che l’auto non parte , la probabilità che lo starter motor è il problema è computato per essere 0,023 (usando le CPTs della rete network) e la probabilità che il fuel system sia il problema è computata per essere 0,283. Ma inoltre osservare che il starter motor ha fallito, la probabilità che il fuel system è la causa del problema fa diminuire da più di metà a 0,1.
Se noi volessimo costruire una Bayesian network circa un motore di automobile che era più realistico reale e utile, noi dovremmo menzionare molte più componenti e sottosistemi. Questa network potrebbe contenere centinaia di nodi insieme alle loro associate CPTs. Anche se conditional independencies ridurrebbero il numero di individuali singole probabilità che necessitano di essere specificate, ancora il loro numero può essere così ampio che esatte probabilistic inferences sarebbero ancora computationally intrattabili – ipotizzando che i valori per queste probabilità potrebbero anche persino essere gathered/raccolti. Fortunatamente, varie semplificazioni sono possibili che permettono ulteriori riduzioni nel numero di probabilità necessarie. Con esse, computazioni per approssimazione, ma ancora utili, inferences in networks large diventano praticabili. È degno menzionare che alcune di queste semplificazioni e metodi computazionali approssimati implicano piuttosto complicati strumenti matematici, molti di essi derivanti da campi adiacenti come la statistica e control engineering/ingegneria dell’automazione. Questi tipi di Bayesian network calculations forniscono un altro caso di come i problemi precedentemente pensati per essere intrattabili computationally hanno dato la precedenza a tecniche avanzate.
Bayesian networks che contengono centinaia di nodi sono state usate per applicazioni in biologia, medicina, document classification, image processing, diritto, error-correction decoding e molti altri campi. Molte di queste networks sono derivate automaticamente da ampi data sets/insiemi di dati, un argomento che discuterò nel prossimo articolo.
Mi piace:
Mi piace Caricamento...