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

Podobne dokumenty