Wprowadzenie do sieci bayesa i GeNIe

Transkrypt

Wprowadzenie do sieci bayesa i GeNIe
Wprowadzenie do Sieci Bayesa
(artykuł Prof. Marka Drużdżela w magazynie SDJ, luty 2005)
Bardzo ważną podklasą graficznych modeli probabilistycznych są sieci bayesowskie, nazywane także sieciami przekonaniowymi (ang.
belief networks) lub (nieco nieprecyzyjnie) sieciami przyczynowymi. Przymiotnik bayesowski odnosi się do podstaw teorii decyzji
oraz coraz bardziej popularnej gałęzi teorii prawdopodobieostwa – bayesowskiej, subiektywistycznej interpretacji będącej dziełem
wybitnego angielskiego matematyka, wielebnego Thomasa Bayesa. Bayes zyskał sławę z powodu swoich poglądów w zakresie rewizji
przekonao (ang. belief revision). Twierdzenie Bayesa zaakceptowane i powszechnie używane przez wszystkie szkoły teorii
prawdopodobieostwa i statystyki, wyraża obliczenie, które trzeba wykonad w celu zrewidowania wcześniejszych przekonao w
świetle nowych dowodów: P(A|B) = P(A,B)/P(B) = P(B|A)/P(B)*P(A) Wyrażenie P(A|B) w powyższym wzorze oznacza
prawdopodobieostwo wystąpienia zdarzenia A zależnego od zdarzenia B – a więc A jest prawdziwe, jeśli B miało miejsce.
Prawdopodobieostwo to jest wynikiem zestawienia ze sobą dwóch czynników: ilorazu prawdopodobieostw P(B|A)/P(B), wyrażającego jak ważne pod względem informacyjnym jest zdarzenie B w odniesieniu do zdarzenia A, oraz prawdopodobieostwo zdarzenia P(A)
wyliczonego wcześniej (np. przed zaistnieniem zdarzenia B). Wielkośd Bayesa polega na interpretacji tego twierdzenia: przekonanie
w prawdziwośd zaistnienia zdarzenia A można zrewidowad w pełnej zgodności z prawami prawdopodobieostwa. Sied bayesowska
koduje informacje o określonej dziedzinie za pomocą wykresu, którego wierzchołki wyrażają zmienne losowe, a krawędzie obrazują
probabilistyczne zależności między nimi. Zazwyczaj struktura wykresu naśladuje przyczynową strukturę dziedziny. Sied bayesowska
pokazana na Rysunku 1. modeluje różne problemy związane z uruchomieniem silnika samochodowego. Aby silnik zapalił,
akumulator musi byd naładowany, a w baku musi znajdowad się wystarczająca ilośd paliwa. Ilośd paliwa można ocenid na podstawie
odczytu wskaźnika. Wskaźnik ten działa jednak tylko wtedy, gdy naładowany jest akumulator. Akumulator natomiast można
sprawdzid, włączając radio. Wszystkie te zależności są probabilistyczne w swojej naturze. Nawet jeśli dysponujemy dostateczną
ilością energii elektrycznej i paliwa, silnik może nie zapalid z innych, nieokreślonych w modelu przyczyn, a odczyt wskaźnika ilości
paliwa może byd błędny. Radio może byd zepsute i nie działad mimo, że jest podłączone do źródła prądu. Zależności te – w uzupełnieniu do struktury wykresu – są modelowane przez przedstawione liczbowo prawdopodobieostwo wyrażające siłę, z jaką oddziałują
na siebie zmienne. Prawdopodobieostwo jest kodowane w tabelach dołączanych do każdego węzła i indeksowanych przez węzły
nadrzędne. Węzeł Wskaźnik ilości paliwa (Fuel Gauge) może zawierad tabelę prawdopodobieostwa warunkowego (Rysunek 2.).
Górne wiersze tabeli zawierają wszelkie kombinacje stanów zmiennych nadrzędnych. Poniższe wiersze tabeli wyrażają
prawdopodobieostwo różnych stanów węzła Silnik zapala (Engine Starts) w powiązaniu z wszelkimi kombinacjami stanów węzłów
nadrzędnych. Kolumny tabeli efektywnie kodują rozkład prawdopodobieostwa zmiennej potomnej zależnej od zmiennych
nadrzędnych. Jeśli zbiornik paliwa jest pusty, a akumulator naładowany, to prawdopodobieostwo tego, że odczyt wskaźnika ilości
paliwa będzie normalny, wynosi 0,95. Istnieje jednak 5% szansy na to, że wskaźnik będzie działad nieprawidłowo. Nawet jeśli
akumulator jest wyczerpany, istnieje prawdopodobieostwo normalnego wskazania ilości paliwa równe 0,01 (kolumna 2 i 4). Tabelę
prawdopodobieostwa węzła Radio działa (Radio Operates) przedstawiono na Rysunku 3. W tym przypadku warunkowe rozkłady
prawdopodobieostwa określają, że jeśli akumulator jest wyczerpany, to radio z pewnością nie będzie działad, oraz że istnieje pewne
prawdopodobieostwo (0,05), że nie uda się włączyd radia, nawet jeśli akumulator jest naładowany.
Rysunek 1. Prosta sied bayesowska wykorzystywana do oceny stanu silnika samochodu
Wnioskowanie w sieciach bayesowskich
Najciekawszą cechą sieci bayesowskich jest możliwośd wykorzystania ich do obliczenia rozkładów prawdopodobieostwa interesujących nas zmiennych pod warunkiem, że ustalone zostały stany pozostałych zmiennych. Na tym właśnie polega rewizja
przekonao zaproponowana przez Thomasa Bayesa. Prawdopodobieostwo wystąpienia pewnego zdarzenia w określonych okolicznościach jest po prostu prawdopodobieostwem tego zdarzenia zależnym od tych okoliczności. Jeśli silnik nie zapala, a licznik
wskazuje małą ilośd paliwa, to późniejsze prawdopodobieostwo (a posteriori) pustego baku i wyczerpanego akumulatora wynosi w
obu przypadkach około 1/3 (Rysunek 4.). Natomiast gdy przyjmiemy dodatkowe założenie, że radio samochodowe działa, to sied
dojdzie do wniosku, że akumulator nie może byd nienaładowany i określi, że silnika nie można uruchomid prawie na pewno z
powodu pustego zbiornika paliwa (Rysunek 5.). Należy zaważyd, że sied uznała wysoki odczyt wskaźnika za błędny. Warto także
zwrócid uwagę na fakt, że prawdopodobieostwo pełnego zbiornika paliwa przy wszystkich założeniach wynosi 0,01. Jeśli bak jest
faktycznie pełny, przyczyną niemożności uruchomienia silnika nie jest ani brak paliwa, ani rozładowany akumulator. Proces
wnioskowania w sieciach bayesowskich (z przykładami zapoznaliśmy się powyżej) odbywa się przy wykorzystaniu tzw. algorytmów
aktualizowania przekonao (ang. belief updating). Szczegółowe informacje o tych algorytmach wykraczają poza zakres tego krótkiego
artykułu. Jednak można by w przybliżeniu powiedzied, że algorytmy te polegają na wielokrotnym zastosowaniu twierdzenia Bayesa i
rozesłaniu w całej sieci informacji o zaistniałych okolicznościach. Mimo że złożonośd tego procesu w najgorszym przypadku rośnie
wykładniczo ze wzrostem liczby zmiennych, istnieje pewna grupa dokładnych oraz przybliżonych algorytmów, które można
wykorzystad do obsługi sieci składających się z setek, a nawet tysięcy zmiennych.
Rysunek 2. Tabela prawdopodobieostwa warunkowego dla węzła Fuel Gauge
Nauczanie
Sieci bayesowskie można tworzyd na podstawie danych z tych domen, w których dane te są gromadzone. Banki mogą więc
skutecznie rozpoznawad całkowity rozkład prawdopodobieostwa zmiennych opisujących populację swoich klientów, a następnie
wykorzystad te informacje przy ocenie zdolności kredytowej. Firmy telekomunikacyjne mogą korzystad z procesu wnioskowania w
czasie rzeczywistym biorąc pod uwagę charakterystyczne cechy połączenia telefonicznego w celu określenia, czy dane połączenie
jest podejrzane i zakooczyd je, jeśli spełnione zostaną określone warunki. Sied bayesowska opracowana na podstawie danych
generowanych przez proces przemysłowy może byd następnie wykorzystywana do sterowania tym procesem.
Rysunek 3. Tabela prawdopodobieostwa warunkowego węzła Radio Operates
Rysunek 4. Późniejszy graniczny rozkład prawdopodobieostwa w węzłach Fuel Tank Empty oraz Battery Power przy założeniu, że
silnik nie zapala, a licznik wskazuje małą ilośd paliwa
GeNIe i SMILE
W laboratorium Decision Systems Laboratory na Uniwersytecie Pittsburskim od dłuższego trwają prace nad wdrożeniem ogólnego
środowiska modelującego przy wykorzystaniu tej metodologii. Środowiskiem tym jest SMILE (StructuralModeling, Inference, and
Learning Engine) będący w pełni przenośną biblioteką klas C++ i wykorzystujący sieci bayesowskie oraz schematy wpływów.
Środowisko to można stosowad bezpośrednio w systemach inteligentnych. Jego windowsowy interfejs, GeNIe, jest wszechstronnym
i przyjaznym dla użytkownika środowiskiem programistycznym do pracy nad graficznymi modelami decyzyjno-teoretycznymi.
Istnieje kilka wersji środowiska SMILE – wersja .NET (SMILE.NET), Java (jSMILE), a nawet wydanie dla komputerów Pocket PC (Pocket
SMILE). Nasze oprogramowanie zostało udostępnione w lipcu 1998 roku, a dziś korzysta z niego kilka tysięcy użytkowników na całym
świecie (dane z listopada 2004 r.). Aplikacje bazujące na GeNIe i SMILE są zarówno programami przemysłowymi, przeznaczonymi do
pracy ciągłej, jak i badawczymi projektami akademickimi. Są wykorzystywane m.in. do oceny strat bitewnych, jako modele
wspomagania decyzji grupowych przy rozpoznawaniu konfliktów regionalnych, jako inteligentne systemy szkoleniowe, w
diagnostyce medycznej i planowaniu terapii, w diagnostyce pociągów z silnikami dieslowskimi, samolotów oraz podczas produkcji
układów scalonych. OprogramowanieGeNIe i SMILE jest także wykorzystywane na kilku uniwersytetach jako narzędzie pomocnicze
w dydaktyce. Pracując nad GeNIe kładliśmy nacisk na dostępnośd oraz przyjaznośd interfejsu użytkownika. Architektura systemu jest
elastyczna: SMILE jest bazowym mechanizmem wnioskującym, który można osadzad w dedykowanych interfejsach użytkownika
(przykładem takiego interfejsu jest właśnieGeNIe). Używamy interfejsu GeNIe w procesie nauczania, a system pomocy zawiera wiele
przydatnych dokumentów i wskazówek – jest to właściwie gotowy podręcznik modelowania decyzyjno-teoretycznego.
Rysunek 5. Graniczny rozkład prawdopodobieostwa a posteriori w węzłach Fuel Tank Empty oraz Battery Power przy założeniu, że
silnik nie zapala, licznik nie wskazuje małej ilości paliwa, a radio działa
Osadzanie biblioteki SMILE w programach C++
Bibliotekę SMILE można osadzad we wszystkich językach programowania, dla których interfejsem jest C++. Ponadto na stronie
internetowej SMILE można znaleźd interfejsyJava oraz interfejsy programistyczne oparte na platformie .NET. Na Listingu 1.
zamieszczono fragment programu w C++ tworzącego dwa węzły przykładowej sieci w celu rozpoznania problemów związanych z
uruchomieniem silnika samochodu. Komentarze powinny wyjaśnid, za co odpowiedzialne są poszczególne części kodu. Sied
bayesowska zapisana w pliku na dysku lokalnym– niezależnie od tego, czy została utworzona i zapisana w programie C++ (patrz
funkcja CreateEngineNetwork()na Listingu 1.), opracowana na podstawie danych lub utworzona interaktywnie przy wykorzystaniu
interfejsu GeNIe – może zostad następnie osadzona w aplikacji. Na Listingu 2. pokazano, jak załadowad zapisaną wcześniej sied i
wykorzystad ją do obliczenia późniejszego rozkładu prawdopodobieostwa węzła sieciowego. Kod na Listingach 1. i 2. został bardzo
uproszczony, ale dzięki tym przykładom Czytelnicy będą mied pewne pojęcie o osadzaniu sieci bayesowskiej w aplikacji. Biblioteka
SMILE zawiera wiele funkcji, które umożliwiają wydajniejsze wykonywanie zadao programistycznych. Zachęcamy Czytelnikówdo
odwiedzenia strony internetowej laboratorium Decision Systems Laboratory, pobrania najnowszej wersji interfejsu GeNIe i
środowiska SMILE oraz wypróbowania tych rozwiązao. Nasze oprogramowanie jest wykorzystywane przez wielu użytkowników.
Uważam, że zostało ono dobrze udokumentowane, jest wydajne, przyjazne dla użytkowników i programistów, a przy tym bardzo
stabilne. Zawsze reagujemy na potencjalne problemy. Proszę kontaktowad z nami, gdy wystąpią jakieś trudności.
Rysunek 6. Interfejs tworzenia modeli GeNIe. Po lewej stronie widok drzewa, a po prawej widok graficzny
O autorze
Marek J. Drużdżel jest profesorem nadzwyczajnym School of Information Sciences and Intelligent Systems Program na Uniwersytecie
w Pittsburghu, a ponadto kieruje pracami Decision Systems Laboratory, grupy badawczej zajmującej się tworzeniem systemów
wspomagania decyzji opartych na normatywnych zasadach teorii prawdopodobieostwa i teorii decyzji.

Podobne dokumenty