Slowem wstepu o pakiecie Sphinx
Transkrypt
Slowem wstepu o pakiecie Sphinx
Metody realizacji systemów ekspertowych w środowisku systemu PC-Shell Systemy ekspertowe — charakterystyka ogólna Zastosowania: Baza Wiedzy Definicja Sieci Neuronowej Baza Ekspercka Ekspert dziedzinowy Baza wyjaœnieñ Co To Jest? Baza Metafor J¹dro Systemu Translator JOBW Sphinx Baza wiedzy Narzêdzia do budowy SE • • • PC–Shell jest podstawowym elementem pakietu sztucznej inteligencji Sphinx® PC–Shell jest dziedzinowo niezależnym narzędziem do budowy systemów ekspertowych, posiada właściwości hybrydowe, wykorzystuje elementy architektury tablicowej; wykorzystuje różne metody reprezentacji wiedzy: !"deklaratywna w postaci reguł i faktów, !"wiedza rozproszona w sieci neuronowej, !"imperatywna w formie programu algorytmicznego, !"faktograficzna w formie tekstów, grafiki, dźwięku, sekwencji wideo; system zapewnia wyjaśnienia: !"jak (ang. how), !"dlaczego (ang. why), !"co to jest (ang. what is), !"metafory (ang. metaphor), !"opisu faktów; wykorzystywane jest wnioskowanie wstecz (z nawrotami), bazy wiedzy mogą być parametryzowane, system ma możliwość bezpośredniego pozyskiwania informacji z baz danych (ODBC), wykorzystuje mechanizm DDE, system PC–Shell współpracuje z innymi elementami pakietu – systemem Neuronix przeznaczonym do tworzenia sieci neuronowych, systemem CAKE przeznaczonym do wspomagania pracy inżyniera wiedzy oraz realizującym funkcje systemu dbMaker, zarządzającego bazami wyjaśnień. Architektura systemu PC-Shell testuje i rozszerza implementuje • • analiza ryzyka, ocena wniosków kredytowych, uczestników przetargów, monitorowanie, diagnostyka, predykcja, wspomaganie procesów diagnostycznych, analiza i interpretacja danych, instruktaż, dydaktyka, szkolenia. Twórca narzêdzi • • • Właściwości: • są narzędziem kodyfikacji wiedzy eksperckiej, • mają zdolność rozwiązywania problemów specjalistycznych, w których duża rolę odgrywa doświadczenie a wiedza ekspercka jest dobrem rzadkim i kosztownym. • zwiększają dostępność ekspertyzy, • zapewniają możliwość prowadzenia jednolitej polityki przez centralę firm mających wiele oddziałów, • poziom ekspertyzy jest stabilny - jej jakość nie zależy od warunków zewnętrznych i czasu pracy systemu, • jawna reprezentacja wiedzy w postaci zrozumiałej dla użytkownika końcowego, • zdolność do objaśniania znalezionych przez system rozwiązań, • możliwość przyrostowej budowy i pielęgnacji bazy wiedzy. • • • • • • Ogólna charakterystyka szkieletowego systemu ekspertowego PC-Shell Sterowanie Symulator Sieci Neuronowej pozyskuje wiedzê System Ekspertowy In¿ynier wiedzy Edytor bazy wiedzy U¿ytkownik Modu³ przegl¹du bazy Modu³ wnioskowania Podsystem komunikacji z u¿ytkownikiem buduje i testuje Realizacja dziedzinowego SE (z uwzglêdnieniem zadañ twórców systemu PC Shell 1/ 10 ) PC Shell 2/ 10 Modu³ wyjaœnieñ Realizacja aplikacji w środowisku systemu PC-Shell PC-Shell jest dziedzinowo—niezależnym, szkieletowym systemem ekspertowym o właściwościach hybrydowych. Dzięki zastosowaniu elementów architektury tablicowej, bazę wiedzy podzielić można na pewną ilość heterogenicznych źródeł wiedzy. Realizacja dziedzinowego systemu ekspertowego polega na stworzeniu stosownej bazy wiedzy. Klasyczne podejście do tego procesu polega na zapisie wiedzy w sformalizowanej postaci, do czego wykorzystywany jest język reprezentacji wiedzy. Do definiowania sieci neuronowej wykorzystuje się system Neuronix, tworzenie i zarządzanie bazami wyjaśnień umożliwia system dbMaker. Umieszczony niżej rysunek ilustruje proces realizacji hybrydowej bazy wiedzy. środowisku systemu PC–Shell. Dzięki systemowi uprawnień i haseł można ograniczyć dostęp do aplikacji zarówno na etapie jej tworzenia jak również na etapie jej wykonywania. Umieszczony poniżej rysunek ilustruje przebieg procesu realizacji aplikacji eksperckiej w środowisku systemu CAKE. Tworzenie, testowanie, pielêgnacja i rozwój aplikacji Wykorzystanie systemu CAKE CAKE Plik Edycja Przegląd Uprawnienia Pomoc Tworzenie, testowanie, pielêgnacja i rozwój aplikacji Podejœcie klasyczne Neuronix PC-Shell Definiowanie struktury i parametrów sieci, uczenie, generacja pliku opisu sieci Definicja SN dbMaker Tworzenie, edycja, rozwój, testowanie baz eksperckich, zarz¹dzanie projektem Ekspercka BW a b e k = = = = To jest tekst w bazie wyjaœnieñ CO TO JEST? To zwyk³y tekst, ale mog¹ byæ te¿ obrazki oraz dŸwiêk. X if b = X, c = 3.2; X if k = Y, e = Z; X if d = Z, h = Z; X if h = Z, g = 4; przegląd = nie if typ = odrzutowy, brak_awarii, sprawny_technicznie; Definiowanie struktury reguła 001 reguła 002 i parametrów sieci, reguła 003 uczenie, generacjareguła 004 reguła 005 pliku opisu sieci Definicja SN Ekspercka BW 111011010110 111010101111 010100111010 111111111100 110101111011 101010101010 101011011010 110110101011 110100011101 011111000100 Dialog Tekst wyjaśnień dla atrybutu SAMOLOT reguła 006 Zarz¹dzanie mulimedialnymi bazami wyjaœnieñ CO TO JEST? i METAFORAMI CO TO JEST? Dialog Neuronix Co To? Metafory 110110101011 110100011101 101010101010 101011011010 110110101011 110100011101 011111000100 Projekt Uprawnienia Has³a U¿ytkownicy Binarna Baza Wiedzy Baza Wiedzy zawieraj¹ca heterogeniczne Ÿród³a wiedzy PC-Shell Ocena stanu techniczego PC-Shell Dialogi Wnioskowanie Zarz¹dzanie Ÿród³ami Wyjaœnienia: - Dlaczego? ? - Jak Dialog Grafika DŸwiêk Podaj typ samolotu OK œmig³owy turboœmig³owy odrzutowy Dialogi Wnioskowanie Dlaczego Co to? Wyjaœnienia: - Co To Jest? - Metafory? Zarz¹dzanie Ÿród³ami Wyjaœnienia: - Dlaczego? ? - Jak Dialog Grafika DŸwiêk Podaj typ samolotu œmig³owy turboœmig³owy odrzutowy OK Dlaczego Co to? Dziedzinowy system ekspertowy Dziedzinowy system ekspertowy Pakiet Sphinx® zawiera system CAKE (ang. Computer Aided Knowledge Engineering), który jest przeznaczony do wspomagania procesu realizacji dziedzinowych aplikacji szkieletowego systemu ekspertowego PC–Shell. Dzięki wykorzystaniu systemu CAKE można realizować aplikacje systemu PC–Shell bez dokładnej znajomości języka opisu bazy wiedzy. Na każdym z etapów pracy system oferuje wygodne narzędzia wspomagające, eliminujące konieczność żmudnego wprowadzania kodu. Zapis baz wiedzy w postaci binarnej zapewnia z jednej strony ochronę zgromadzonej wiedzy przed niepowołanym dostępem, z drugiej zaś strony poprawia efektywność wykonania aplikacji w PC Shell 3/ 10 PC Shell 4/ 10 Wyjaœnienia: - Co To Jest? - Metafory? Struktura bazy wiedzy systemu PC-Shell Baza wiedzy systemu zapisywana jest przy użyciu wyspecjalizowanego języka opisu bazy wiedzy SPHINX. Integruje on w sobie deklaratywny język reprezentacji wiedzy oraz strukturalny język programowania. Baza wiedzy zapisywana jest w postaci pliku (lub plików) tekstowych poddawanych procesowi translacji na początku każdej sesji konsultacyjnej. Baza wiedzy ma strukturę blokową. Ogólną syntaktykę baz wiedzy oraz funkcje poszczególnych bloków przedstawia umieszczona poniżej tabela. Baza wiedzy Bazy wyjaœnieñ STRUKTURA SYSTEMU PC-Shell Translator jêzyka opisu bazy wiedzy Edytor bazy wiedzy Modu³ przegl¹du bazy wiedzy Sterowanie Modu³ wnioskowania Podsystem komunikacji z u¿ytkownikiem Modu³ objaœnieñ Struktura bazy wiedzy systemu PC-Shell Struktura bazy wiedzy knowledge base nazwa sources opis_plików end; facets opis_faset end; rules opis_reguł end; facts opis_faktów end; control program end; Opis funkcji bloków bazy wiedzy Definicja plików zawierających źródła wiedzy: ekspercka baza wiedzy, definicja sieci neuronowej, baza wyjaśnień. Definicja atrybutów - ich typów i właściwości, ustalenie wartości przełączników sterujących wnioskowaniem. Blok opisu reguł zapisanych w postaci klauzul Horna. Blok opisu faktów zapisanych w postaci trójek Obiekt-Atrybut-Wartość. Blok programu - sterowanie wnioskowaniem i aktywacją źródeł, pozyskiwanie i wstępne przetwarzanie danych, dostęp do plików baz danych, dynamiczna wymiana danych itp. end; Blok deklaracji źródeł wiedzy Format opisu źródła: nazwa_źródła : type { kb | metaphor | what_is }; file łańcuch_znaków; gdzie type służy do specyfikacji typu źródła, jednego z poniższych: • • • • kb - eksperckie bazy wiedzy, neural_net - sieci neuronowe, metaphor - bazy danych zawierające wyjaśnienia typu metafory, what_is - bazy danych zawierające wyjaśnienia typu co to jest, natomiast file łańcuch_znaków określa plik, w którym przechowywane jest źródło wiedzy. PC Shell 5/ 10 PC Shell 6/ 10 - określa zbiór dopuszczalnych wartości danego atrybutu. Wartości mogą być val numeryczne lub symboliczne; do określenia dozwolonych lub niedozwolonych wartości służą następujące deklaracje związane z fasetą val : oneof, someof, range, except; Przykładowa deklaracja bloku źródeł: sources decyzja_kredytowa : type kb file "c:\\bazy\\bw\\decyzja.zw"; prognoza_finansowa : type neural_net file "c:\\bazy\\sieci\\prognoza.def"; metafory : type metaphor file "c: \\bazy\\bw\\kredyt.dbm"; coto : type what_is file "c: \\bazy\\bw\\kredyt.dbw"; end; Ogólna struktura bloku faset Fasetami określa się tu zbiór deklaracji odnoszących się do wybranych atrybutów. Blok faset zawiera wykaz wszystkich atrybutów używanych w bazie wiedzy, wraz z przypisanymi do nich fasetami. facets opis_faset end; opis_faset: atrybut1 [ deklaracje_faset1 ]; atrybutn [ deklaracje_fasetn ]; Rodzaje faset opisujących atrybuty: - określa czy system może stawiać pytania dotyczące danego atrybutu; system ask zadaje pytania jedynie w sytuacji, gdy nie potrafi potwierdzić warunku reguły lub hipotezy wykorzystując fakty i reguły zawarte w bazie wiedzy; query- umożliwia zdefiniowanie przez użytkownika własnej treści zapytań o wartość atrybutu, generowanych przez system; unit - umożliwia zadeklarowanie jednostki miary, w której wyrażane są wartości danego atrybutu, podczas wyświetlania informacji zawierającej dany atrybut, dodatkowo - po wartości - będzie pojawiał się tekst zadeklarowany jako jednostka_miary. PC Shell 7/ 10 param - faseta ta umożliwia zadeklarowanie tzw. zmiennych parametrycznych i przypisanie im wartości domyślnych; picture, sound - fasety te umożliwiają związanie rysunków i/lub dźwięku z atrybutem lub jego wartościami; rysunek jest automatycznie pokazywany, np. gdy pojawia się zapytanie dotyczące atrybutu z którym związany jest rysunek; dźwięk można odtworzyć po wybraniu odpowiedniego przycisku. Przykłady definicji atrybutów z użyciem faset : facets temperatura_ciała : query "Podaj temperaturę ciała:"; unit "°C"; val range < 36, 42 >; param { NORMALNA = 36.7, STAN_PODGOR = 37.5 }; kolor_nadwozia : query "Proszę podać kolor nadwozia samochodu:" ; val oneof { "biały", "czerwony", "niebieski" }; pojemność_silnika : query "Proszę podać pojemność silnika:" ; unit "cm3"; val except { < MIN, 600 ), ( 4000, MAX > }; grzyb : val oneof { "pieczarka", "muchomor", "maślak" } picture { "piecz.bmp", "muchomor.bmp","maslak.bmp"}; sound { "ok.bmp", "alarm.bmp", "ok.bmp" }; ilość_pamięci_RAM : query "Podaj przewidywaną ilość pamięci RAM:"; unit "MB"; val range < 1, 128 > end; PC Shell 8/ 10 Bloki opisu faktów Blok sterujący facts opis_faktów end; control program end; opis_faktu: trójka_OAW; lub not trójka_OAW; program: [deklaracje zmiennych] instrukcje Przykłady poprawnie zapisanych faktów: Typy danych • całkowite (int, longint), • rzeczywiste (float, double), • tablicowe (jedno i dwuwymiarowe), • rekordowe. facts temperatura_ciała( kowalski ) = 37.5; kolor_nadwozia = "biały"; pojemnosc_silnika = 2500; grzyb = "maślak"; end; Bloki opisu reguł rules opis_reguł end; opis_reguły: [ nr_reguły : ] konkluzja if warunek_1 & warunek_2 & ...& warunek_n; Przykłady poprawnie zapisanych reguł: typModemu = "Zoltrix 56000 Cobra Voice V.90 PCI" if producentModemu = "Zoltrix", jakiModem = "modem wewnętrzny", szybkośćModemu = "56000"; typDrukarki = "Hewlett-Packard Desk Jet 1120C" if rodzajDrukarki = "drukarka atramentowa", producentDrukarki = "Hewlett-Packard", zastosowanieDrukarki = "wydruk tekstu i rysunków", jakośćWydruku = "jak najlepsza"; ryzyko_rozwoju_choroby_wieńcowej = "wysokie" if skłonności_dziedziczne_choroby_wieńcowej = "występują", miażdżyca_tętnic_wieńcowych = "występuje"; gatunek = "DOOM METAL" if instrument = "gitara elektryczna", rytm = "umiarkowany", rodzaj_wokalu = "mroczny, ponury", klimat = "ponury", tempo = "wolne"; PC Shell 9/ 10 Instrukcje programowania (podział ogólny) • instrukcje sterujące wykonaniem programu, • instrukcje inicjujące i sterujące procesem wnioskowania, • instrukcje operujące na bazie wiedzy, • instrukcje podsystemu komunikacji z użytkownikiem, • instrukcje symulatora sieci neuronowej, • instrukcje związane z parametryzacją baz wiedzy, • instrukcje obsługujące dostęp do plików, • instrukcje obsługujące dostęp do baz danych, • instrukcje dotyczące dynamicznej wymiany danych. Przykładowy blok sterujący control run; createAppWindow; vignette( "NET", "Demonstracyjna baza wiedzy" ); setAppWinTitle("Konfiguracja sieci komputerowych"); menu "Konfiguracja" 1. "Dobór rodzaju sieci" 2. "Dobór konfiguracji serwera (NOVELL)" 3. "Dobór konfiguracji stanowisk roboczych" 4. "Nowa konsultacja" 5. "Wyjście" case 1; solve( nos, "typ_systemu_operacyjnego=Jaki_system" ); case 2; solve( server,"konfiguracja_serwera=Jaki_serwer" ); case 3; solve( pc, "konfiguracja_stacji_roboczych=Jakie_stacje"); case 4; delNewFacts; case 5; exit; end; end; end; PC Shell 10/ 10