Sztuczna inteligencja, metody ekspertowe.
Sztuczna inteligencja, metody ekspertowe.
Sztuczna inteligencja (ang. Artificial Intelligence – AI) to technologia
i kierunek badań na styku informatyki, neurologii i psychologii. Jego zadaniem jest konstruowanie maszyn i oprogramowania zdolnego rozwiązywać problemy
nie poddające się algorytmizacji w sposób efektywny, w oparciu o modelowanie wiedzy (inaczej: zajmuje się konstruowaniem maszyn, które robią to, co obecnie ludzie robią lepiej). Problemy takie bywają nazywane AI-trudnymi i zalicza się do nich między innymi:
• analiza (i synteza) języka naturalnego,
• rozumowanie logiczne,
• dowodzenie twierdzeń,
• gry logiczne
• szachy,
• warcaby,
• go,
• manipulacja wiedzą,
• systemy doradcze,
• diagnostyczne.
W badaniach nad sztuczną inteligencją wyróżniamy wiele nurtów. Maksymalny program jaki stawia przed sobą ta dziedzina to stworzenie maszyn o inteligencji dorównującej, a nawet przewyższającej ludzką. Program minimalny to stworzenie algorytmów lub maszyn przejawiających tylko jakiś wąski aspekt inteligencji, np. grających w szachy lub rozpoznających obrazy czy automatycznie tworzących streszczenie jakiegoś tekstu.
AI jako dział badań naukowych zaczęła się w latach 50. XX wieku kiedy to powstało pierwsze laboratorium AI na Uniwersytecie Carnegie Mellon, założone przez Allana Newella i Herberta Simona i kilka lat później analogiczne laboratorium
w Massachusetts Institute of Technology, założone przez Johna McCarthy\\\'ego.
Oba te laboratoria są wciąż wiodącymi ośrodkami AI na świecie.
Termin sztuczna inteligencja został po raz pierwszy zaproponowany prawdopodobnie przez Johna McCarthy\\\'ego, który w 1955 r. zdefiniował go jako \\\"konstruowanie maszyn, o których działaniu dałoby się powiedzieć, że są podobne do ludzkich przejawów inteligencji\\\".
Natura to bardzo sprytny proces, wykazuje przewagę nad wieloma sztucznymi systemami. Jest zatem oczywiste, że wielu badaczy czerpało inspirację z natury. Tak zrodziła się dziedzina AI, jako część Informatyki. Próby uczynienia komputera działającym \\\'jak mózg ludzki\\\' to początek AI. Dziś sztuczna inteligencja to bardzo szeroka dziedzina.
Istnieją dwa różne podejścia do pracy nad AI. Pierwsze to tworzenie całościowych modeli matematycznych analizowanych problemów i implementowanie ich w formie programów komputerowych, mających realizować konkretne cele. Drugie to próby tworzenia struktur i programów \\\"samouczących się\\\", takich jak modele sieci neuronowych oraz opracowywania procedur rozwiązywania problemów poprzez \\\"uczenie\\\" takich programów, a następnie uzyskiwanie od nich odpowiedzi na \\\"pytania\\\".
W trakcie wieloletniej pracy laboratoriów AI stosujących oba podejścia do problemu, okazało się, że postęp w tej dziedzinie jest i będzie bardzo trudny
i powolny. Często mimo niepowodzeń w osiąganiu zaplanowanych celów, laboratoria te wypracowywały nowe techniki informatyczne, które okazywały się użyteczne do zupełnie innych celów. Przykładami takich technik są np. języki programowania LISP i Prolog. Laboratoria AI stały się też \\\"rozsadnikiem\\\" kultury hakerskiej, szczególnie laboratorium AI w Massachusetts Institute of Technology. Praca ta przyniosła też konkretne rezultaty, które znalazły już praktyczne i powszechne zastosowania.
Współczesne praktyczne zastosowania AI:
• technologie oparte na logice rozmytej – powszechnie stosowane do
np. sterowania przebiegiem procesów technologicznych w fabrykach
w warunkach \\\"braku wszystkich danych\\\",
• systemy ekspertowe – czyli rozbudowane bazy danych z wszczepioną \\\"sztuczną inteligencją\\\" umożliwiającą zadawanie im pytań w języku naturalnym
i uzyskiwanie w tym samym języku odpowiedzi; systemy takie stosowane są już w farmacji i medycynie,
• maszynowe tłumaczenie tekstów – systemy takie jak SYSTRANS, jakkolwiek wciąż bardzo ułomne, robią szybkie postępy i zaczynają się nadawać do tłumaczenia tekstów technicznych,
• sieci neuronowe – stosowane z powodzeniem w wielu zastosowaniach łącznie
z programowaniem \\\"inteligentnych przeciwników\\\" w grach komputerowych,
• eksploracja danych - omawia obszary, powiązanie z potrzebami informacyjnymi, pozyskiwaniem wiedzy, stosowane techniki analizy, oczekiwane rezultaty,
• rozpoznawanie optyczne – stosowane są już programy rozpoznające osoby
na podstawie zdjęcia twarzy lub rozpoznające automatycznie zadane obiekty
na zdjęciach satelitarnych,
• rozpoznawanie mowy (identyfikacja treści wypowiedzi) i rozpoznawanie mówców (identyfikacja osób) – stosowane już powszechnie na skalę komercyjną,
• rozpoznawanie ręcznego pisma – stosowane już masowo np. do automatycznego sortowania listów, oraz w elektronicznych notatnikach,
• sztuczna twórczość – istnieją programy automatycznie generujące krótkie formy poetyckie, komponujące, aranżujące i interpretujące utwory muzyczne, które są w stanie skutecznie \\\"zmylić\\\" nawet profesjonalnych artystów,
w sensie, że nie rozpoznają oni tych utworów jako sztucznie wygenerowanych,
• w ekonomii, powszechnie stosuje się systemy automatycznie oceniające m.in. zdolność kredytową, profil najlepszych klientów, czy planujące kampanie medialne. Systemy te poddawane są wcześniej automatycznemu uczeniu na podstawie posiadanych danych (np. klientów banku, którzy regularnie spłacali kredyt i klientów, którzy mieli z tym problemy).
Czego nie udało się dotąd osiągnąć mimo wielu wysiłków:
• programów skutecznie wygrywających w niektórych grach. Jak dotąd nie ma programów skutecznie wygrywających w go, brydża sportowego, i polskie warcaby, mimo że podejmowano próby ich pisania. Trzeba jednak przyznać,
że programy do gry w szachy, w które zainwestowano jak dotąd najwięcej wysiłku i czasu spośród wszystkich tego rodzaju programów, osiągnęły bardzo wysoki poziom, ogrywając nawet obecnego mistrza świata,
• programu, który skutecznie potrafiłby naśladować ludzką konwersację.
Są programy \\\"udające\\\" konwersowanie, ale niemal każdy człowiek po kilku-kilkunastu minutach takiej konwersacji jest w stanie zorientować się,
że rozmawia z maszyną, a nie człowiekiem. Najsłynniejszym tego rodzaju programem jest ELIZA, a obecnie najskuteczniejszym w teście Turinga jest cały czas rozwijany program-projekt ALICE,
• programu, który potrafiłby skutecznie generować zysk, grając na giełdzie. Problemem jest masa informacji, którą taki program musiałby przetworzyć
i sposób jej kodowania przy wprowadzaniu do komputera. Mimo wielu prób podejmowanych w tym kierunku (zarówno w Polsce jak i na całym świecie),
z użyciem sztucznej inteligencji nie da się nawet odpowiedzieć na pytanie,
czy jest możliwe zarabianie na giełdzie (bez podawania samego przepisu jak to zrobić). Prawdziwym problemem w tym przypadku może być fakt, że nie istnieje żadna zależność między danymi historycznymi, a przyszłymi cenami
na giełdzie (taką tezę stawia Hipoteza Rynku Efektywnego). Gdyby hipoteza
ta była prawdziwa, wtedy nawet najlepiej przetworzone dane wejściowe nie byłyby w stanie wygenerować skutecznych i powtarzalnych zysków,
• programu skutecznie tłumaczącego teksty literackie i mowę potoczną. Istnieją programy do automatycznego tłumaczenia, ale sprawdzają się one tylko
w bardzo ograniczonym stopniu. Podstawową trudnością jest tu złożoność
i niejasność języków naturalnych, a w szczególności brak zrozumienia przez program znaczenia tekstu.
System - uporządkowany wewnętrznie układ elementów mający określoną strukturę (całość); zespół zasad organiz., norm i reguł obowiązujących w danej dziedzinie; w metodologii zespół sposobów działania (metoda).
System Ekspertowy (skrót ES od ang. nazwy Expert Systems) - komputerowy program konsultacyjny, wspomaga decyzje zastępując eksperta w danej dziedzinie,
np. w diagnostyce medycznej.
W zakres sztucznej inteligencji wchodzą systemy ekspertowe, sztuczne sieci neuronowe oraz logika rozmyta. Często też zalicza się do AI zagadnienia systemów ewolucyjnych, które stanowią filar sztucznego życia.
Rys. 1 Sztuczne organizmy powstałe w drodze ewolucji.
a)
b)
a) celem ewolucji była maksymalizacja średniej prędkości poziomej w wodzie,
b) celem ewolucji była maksymalizacja średniej prędkości poziomej na ziemi
Źródło: http://www.frams.poznan.pl
Nie jest łatwo zdefiniować system ekspertowy ze względu na ciągły rozwój tej dziedziny sztucznej inteligencji. Pierwszą definicję systemu ekspertowego podał Edward Feigenbaum z Uniwersytetu Stanford w 1977 roku brzmiącą:
jest to inteligentny program komputerowy używający wiedzy oraz procedur wnioskowania do rozwiązywania problemów o wysokim stopniu złożoności, wskazującym na niezbędność eksperta danej dziedziny do jego rozwiązania. Obecnie można tę definicję uszczegółowić ze względu na znaczny rozwój form komunikacji, przechowywania danych oraz tworzenia procedur. Tak więc system ekspertowy jest systemem komputerowym, który symuluje procesy uczenia się, zapamiętywania, komunikacji, przyczynowości i realizacji działań ludzkiego eksperta w danej dziedzinie wiedzy, dzięki czemu człowiek może być zastąpiony przez komputer
z gwarancją sukcesu w rozwiązywaniu problemu.
Rys. 2. Struktura systemu ekspertowego.
Źródło: Inteligentne systemy w zarządzaniu - Teoria i praktyka , Red. J. S. Zieliński, PWN Warszawa 2000, str. 30.
Proces rozwojowy systemów ekspertowych jest bardzo dynamiczny (rys.3) i pomimo problemów socjologicznych trwa nadal. Główne przyczyny rozwoju tej dziedziny sztucznej inteligencji to: podnoszenie jakości i kwalifikacji przez ludzkich ekspertów, przetrwanie wiedzy i procesów wnioskowania w przypadku odejścia ludzkiego eksperta, zwiększenie liczby ekspertów na świecie, co stwarza większy dostęp
do wiedzy i podniesie jakość ludzkiego życia, oraz obniży koszty wiedzy. Kolejne, niemniej ważne to: osoby nie będące ekspertami mogą rozwiązywać bardzo złożone problemy za pomocą systemów ekspertowych, czas rozwiązywania problemów jest krótszy, można otrzymać dużo możliwych rozwiązań, niski koszt rozwiązania problemu przy braku ludzkiego eksperta, eliminacja monotonnych i żmudnych operacji, szeroki dostęp do wiedzy.
Rys. 3. Historia rozwoju systemów ekspertowych.
Źródło: Castillo E., Alvarez E.,Expert System:Uncertainty and Laerning, New York 1991.
Systemy ekspertowe można podzielić według wielu kryteriów. Jeden z podziałów systemów ekspertowych przedstawia poniższa tabela.
Tabela 1. Rodzaje systemów ekspertowych.
Kategoria Zadania realizowane przez systemy ekspertowe
Interpretacyjne dedykują opisy sytuacji z obserwacji lub stanu czujników, np. rozpoznawanie mowy, obrazów, struktur danych.
Predykcyjne wnioskują o przyszłości na podstawie danej sytuacji,
np. prognoza pogody, rozwój choroby.
Diagnostyczne określają wady systemu na podstawie obserwacji,
np. medycyna, elektronika, mechanika.
Kompletowania konfigurują obiekty w warunkach ograniczeń,
np. konfigurowanie systemu komputerowego.
Planowania podejmują działania, alby osiągnąć cel, np. ruchy robota.
Monitorowania porównują obserwacje z ograniczeniami,
np. w elektrowniach atomowych, medycynie,
w ruchu ulicznym.
Sterowania kierują zachowaniem systemu; obejmują interpretowanie, predykcję, naprawę i monitorowanie zachowania się obiektu.
Poprawiania podają sposób postępowania w przypadku złego funkcjonowania obiektu, którego te systemy dotyczą.
Naprawy harmonogramują czynności przy dokonywaniu napraw uszkodzonych obiektów.
Instruowania systemy doskonalenia zawodowego dla studentów.
Źródło: Mulawka J.J. Systemy ekspertowe, WNT Warszawa 1996, strona 26
Przewidywany jest dalszy wzrost zainteresowania tymi systemami na świecie.
W Polsce, według przedstawiciela jednej z polskich firm dystrybucyjnych, zainteresowanie przedsiębiorców rok temu było bardzo niewielkie, co spowodowało wycofanie się tej firmy z sektora systemów ekspertowych. W naszym kraju nadal praca eksperta jest tańsza niż wdrożenie systemu ekspertowego. Mimo to istnieje szansa, że rynek ten w przyszłości rozwinie się również w Polsce.
W życiu codziennym co chwila dokonujemy oceny otoczenia i podejmujemy decyzje na podstawie klasyfikacji obserwowanej sytuacji. Czynimy to w oparciu
o obserwację otoczenia, napływającą z różnych źródeł informację oraz posiadaną wiedzę i zdolności. Jest to dla nas czynność całkowicie naturalna. Jeżeli jednak zechcemy podobne zadania zlecić systemowi komputerowemu musimy wykonać wiele kroków, które pozwolą przynajmniej w części odwzorować przy pomocy oprogramowania ludzką zdolność do obserwacji, uczenia się, wyciągania wniosków
w oparciu o posiadaną wiedzę i osiągania ostatecznej decyzji. Wzrastający rozmiar
i poziom komplikacji informacji jaka otacza nas w codziennym życiu wywołał rosnące zapotrzebowanie na systemy przetwarzania danych zdolne do wyuczenia się klasyfikacji prezentowanych im obiektów. Wyzwania jakie stają przed konstruktorami systemów wspomagających klasyfikację stymulowały powstanie i rozwój wielu dziedzin badań. Można wśród nich wymienić sztuczne sieci neuronowe, sytemy maszynowego uczenia (ang. machine learning), systemy ekspertowe (ang. expert systems), drzewa decyzyjne, nowoczesne metody uczenia statystycznego (ang. statistical learning theory), a także niektóre z metod stosowanych w odkrywaniu wiedzy i eksploracji danych (ang. knowledge discovery and data mining).
Choć cele dla wielu dziedzin są zbieżne, metody ich osiągania często zasadniczo się różnią między sobą. Następstwem takiej dywersyfikacji są różnice występujące między wynikami uzyskiwanymi dla tych samych zbiorów danych. Jednocześnie postępujące zrozumienie zjawisk występujących przy konstruowaniu różnego rodzaju klasyfikatorów pozwoliło badaczom wyróżnić wiele analogii i współzależności występujących pomiędzy różnymi metodami. Obserwacje te zapoczątkowały rozważania nad łączeniem elementów różnych podejść w systemy zwane hybrydowymi. Systemy takie wykorzystują elementy kilku metodologii do stworzenia klasyfikatora, który przejmie najlepsze cechy systemów wchodzących w jego skład przy jednoczesnym uwolnieniu się (przynajmniej częściowo) od ich ograniczeń.
Jedną z dziedzin, która często pojawia się w kontekście systemów hybrydowych
są sztuczne sieci neuronowe. Jednocześnie, wykorzystanie wraz z siecią neuronową innych metod takich jak systemy ekspertowe, drzewa decyzyjne, zbiory rozmyte etc., pozwala uwolnić się od głównych niedostatków sieci neuronowych, którymi są: brak efektywnej i uniwersalnej metody wyboru struktury sieci dla zadanego problemu oraz niska przejrzystość (intuicyjna zrozumiałość) uzyskanego modelu klasyfikacji.
Systemy ekspertowe są programami, zwykle ograniczonymi do specyficznego zakresu, próbującymi naśladować zachowanie ekspertów - ludzi. Typowe atrybuty ES:
• wiedza jest zwykle reprezentowana w postaci deklaratywnej, umożliwiającej łatwe odczytywanie i modyfikację. Większość ES wykorzystuje struktury \\\'jeśli przesłanki to akcje \\\' (IF-THEN), systemy bazujące na regułach,
• struktura wiedzy jest klarowna (wyłączając neuronowe ES),
• reprezentacja wiedzy i mechanizm sterujący są rozdzielone. Często mechanizm sterujący korzysta z reguł, tzw. meta-reguł,
• ważny z punktu widzenia użytkownika interfejs I/O, pozwala na zadawanie pytań i uzyskiwanie wyjaśnień (praca interaktywna),
• moduły zdobywania wiedzy i modyfikacji wiedzy są często używane dla rozszerzania systemów ekspertowych.
Czynniki pobudzające rozwój systemów ekspertowych to:
• wiedza eksperta jest zasobem rzadkim i drogim,
• ES pozwalają większemu gronu ludzi działać jako \\\'ekspert\\\'. Jest to użyteczne przy szkoleniu itp. Edukacyjna rola ES jest bardzo duża, np. MYCIN (system służący do diagnozowania chorób bakteryjnych) doskonale nadaje się do uczenia studentów medycyny, nie ryzykując zdrowiem pacjenta,
• połączenie wiedzy kilku ekspertów może spowodować, że ES działa lepiej niż pojedynczy ekspert.
Na świecie z powodzeniem pracują systemy ekspertowe (np. MYCIN, PUFF, DENDRAL, PROSPECTOR). Różnice między systemami ekspertowymi pracującymi w czasie rzeczywistym, a konwencjonalnymi ES: tradycyjne systemy ekspertowe najczęściej znajdują zastosowania w zagadnieniach diagnostycznych
i konsultacyjnych; w aplikacjach pracujących w czasie rzeczywistym, wnioskowanie odbywa się z uwzględnieniem najczęściej wielu szybko zmieniających się danych (high-input data rates), krytycznym wymogiem jest \\\'wyprodukowanie\\\' właściwej odpowiedzi w odpowiednim, krótkim przedziale czasu. Coraz częściej technologie bazujące na systemach ekspertowych znajdują zastosowania w zadaniach czasu rzeczywistego, zwłaszcza w szczególnie ważnych zadaniach (mission-critical applications).
Systemy Ekspertowe pracujące w czasie rzeczywistym znajdują zastosowanie w wielu rzeczywistych zadaniach sterowania przebiegiem procesu. Jedną z zalet, jakie daje ich stosowanie to bardzo dobre rezultaty w krótkim czasie. Działanie jest spójne niezależnie od czasu i położenia geograficznego, w których odbywa się proces. Systemy ekspertowe czasu rzeczywistego mogą wykonywać również użyteczne wstępne przetwarzanie danych, z których wyniki wykorzystywane są przez operatorów ludzi; pełnią wtedy bardzo istotną rolę pomocniczą dla pracy operatora. Wynika
z tego, że nawet tam, gdzie cała wymagana dla sterowania wiedza nie może być zredukowana do postaci reguł czy innej akceptowanej przez ES, stosowanie systemów ekspertowych może okazać się pożądane dla celów odpowiedniej filtracji wiedzy niezbędnej operatorowi. Ułatwia mu to podejmowanie decyzji i może eliminować zmęczenie lub nudę, co może przyczyniać się do lepszej reakcji operatora w ważnych sytuacjach i zapewnić większe bezpieczeństwo. Innym zyskiem zastosowania systemów ekspertowych pracujących w czasie rzeczywistym w sterowaniu procesami jest ich zdolność do wysokiej jakości przetwarzania często zmieniających się danych poprzez pełniejsze monitorowanie i inicjowanie akcji prewencyjnych.
Prace nad zwiększeniem możliwości stosowania ES pracujących w czasie rzeczywistym idą w kierunku przyspieszania działania mechanizmu wnioskującego zarówno poprzez lepsze oprogramowanie jak i również poprzez stosowanie odpowiedniej architektury.
Zalety systemów ekspertowych:
• systemy ekspertowe pracujące w czasie rzeczywistym w siłowniach energetycznych, podczas sterowania skomplikowanych urządzeń i maszyn
na pokładach statków kosmicznych rozwiązują specjalistyczne problemy lepiej niż człowiek. Człowiek w takich sytuacjach nie mógłby swoimi zmysłami ogarnąć całej sytuacji, a system ekspertowy wyposażony w olbrzymią ilość danych i odpowiednio zaprogramowany szybko podejmuje właściwą decyzję,
• systemy ekspertowe mogą rozwiązywać problemy NP - zupełne, które mają opracowane teorie, jednak nie można za pomocą algorytmów ogarnąć wszystkich teoretycznie możliwych przypadków w interesującym użytkownika czasie. System ekspertowy potrafi znacznie ograniczyć ten czas,
Graficzna ilustracja powyższej zalety systemu ekspertowego:
• system ekspertowy może tylko prezentować swoje rozwiązania użytkownikowi, do którego należy ocena ich jakości. Rozwiązania te mogą być odrzucone
i wtedy system może wygenerować następne. Użytkownik ogranicza się tylko do wyboru najbardziej odpowiedniego z gotowych rozwiązań,
• system ekspertowy potrafi pracować w ten sposób, iż otrzymuje problem oraz jego rozwiązanie. Do systemu należy przeprowadzenie analizy
i wygenerowanie komentarzy do rozwiązania,
• system ekspertowy może zgromadzić w jednym systemie wiedzę wielu ekspertów i pracować bardziej efektywnie niż dysponujący tylko swoją wiedzą ekspert z danej dziedziny,
• system ekspertowy ma ściśle wydzielone i nie powiązane ze sobą
(w momencie budowy systemu) elementy, umożliwiające jego twórcom łatwy podział zadań przy tworzeniu nowego systemu,
Graficzna ilustracja ról twórców systemu ekspertowego:
• moc systemu ekspertowego nie zależy od schematów wnioskowania, tylko od zakodowanej w nim wiedzy, więc sposób na zbudowanie systemu bliskiego ideałowi jest prosty: należy wyposażyć go w dużą ilość dobrej jakości, specyficznej wiedzy z danej dziedziny,
• system ekspertowy dysponując zapisaną wiedzą eksperta z jakiejś dziedziny może jej używać wielokrotnie w sposób ekonomicznie efektywny, gdyż nie jest przy tym wymagana obecność eksperta. W ten sposób ekspert nie musi powtarzać wielokrotnie tych samych ekspertyz i może rozwiązywać bardziej twórcze problemy i zadania,
• porównując wyniki działania systemu ekspertowego z rezultatem uzyskanym przez człowieka, okazuje się, iż w wielu dziedzinach system ekspertowy nie myli się tak często, jak człowiek,
• system ekspertowy może dokładnie udokumentować swój proces wnioskowania, czego nie potrafi człowiek – ekspert opierający się przeważnie na intuicji i własnych doświadczeniach,
• system ekspertowy może rozwiązywać obszerną klasę zadań z danej dziedziny, a każde zadanie zaczynające wykraczać poza posiadane reguły wnioskowania powoduje płynne pogarszanie się jakości pracy systemu (a nie jak w przypadku eksperta – skokowe pogarszanie się jakości albo zupełny brak odpowiedzi na postawione zadanie),
• przyszłe systemy ekspertowe będą mogły rozwiązywać zadania z różnych i nie powiązanych ze sobą dziedzin wiedzy tylko na podstawie strukturalnego podobieństwa reguł wnioskowania,
• system ekspertowy może być stosowany nawet w dziedzinach, które bardzo trudno opisać za pomocą reguł, a człowiek radzi sobie z nimi szybko
i poprawnie. W takich wypadkach system ekspertowy, uzasadniający podejmowane decyzje, może być stosowany jako pomoc osobom nie znającym danej dziedziny dostatecznie dobrze, by zacząć samodzielną pracę,
• przyszłe systemy ekspertowe uzasadniając podjęte w procesie wnioskowania decyzje będą mogły dopasować poziom udzielanych objaśnień do poziomu wiedzy użytkownika. Inne wyjaśnienia mógłby otrzymywać ekspert, a inne osoba niezorientowana w dziedzinie,
• system ekspertowy może zawierać mechanizmy udoskonalające jego działanie – rozszerzające wiedzę o nowe fakty i reguły wnioskowania. Do mechanizmów tych zalicza się: kontrola niesprzeczności nowo wprowadzanych do bazy wiedzy reguł z regułami w niej zawartymi, kontrolera zgodności reguł z nowo wprowadzanymi faktami, mechanizm oceny częstości stosowania poszczególnych reguł, mechanizm rozbudowy istniejącej bazy reguł poza zakres danej bazy wiedzy,
• model struktury systemu ekspertowego stanowi jakościową zmianę w zakresie programowania komputerów. Umożliwia on prostą adaptację programu komputerowego opracowanego dla jednej dziedziny do zastosowań w innej dziedzinie,
• systemy ekspertowe mogą być tworzone za pomocą programów redakcyjnych umożliwiających uniknięcie wielu pomyłek. Programy te mają następujące właściwości:
• wygodny dla użytkownika sposób komunikacji i zautomatyzowane operacje rejestracji przy rozmieszczaniu informacji,
• kontrolowanie ortograficznej i syntaktycznej poprawności wprowadzanej informacji tekstowej,
• sprawdzanie semantycznej niesprzeczności między dotychczasową zawartością bazy danych a nowo wprowadzanymi faktami,
• ułatwienie użytkownikowi tworzenie bazy wiedzy przez stosowanie odpowiednich systemów okien i umożliwienie wprowadzania informacji w środowisku graficznym,
• po wykryciu błędów w działaniu systemu ekspertowego możliwa jest przebudowa bazy wiedzy tego systemu. Proces ten może być wykonywany lub nadzorowany przez inżyniera wiedzy albo może być wykonywany całkowicie automatycznie przez system ekspertowy,
• niektóre systemy ekspertowe mogą automatycznie, bez nadzoru eksperta czy inżyniera wiedzy, tworzyć kolejne bazy wiedzy (a więc samodzielnie uczyć się), będąc wspomagane przez filtr umożliwiający oddzielenie fałszywych informacji (szumu informacyjnego) na podstawie ich niezgodności z już istniejącą bazą wiedzy,
• systemy ekspertowe mogą być tworzone za pomocą specjalistycznych narzędzi. Twórca może wybrać narzędzie najbardziej odpowiednie dla danego systemu
z następujących grup:
• programy szkieletowe,
• środowiskowe programy ułatwiające implementację systemu, tworzenie bazy wiedzy,
• języki systemów ekspertowych, np. Clips, Flops, OPS5,
• języki programowania symbolicznego, np. Lisp, Prolog,
• języki algorytmiczne, np. Basic, Pascal, C, C++,
• systemy ekspertowe czasu rzeczywistego są zdecydowanie bardziej efektywne od człowieka w następujących dziedzinach:
• militaria – dowodzenie i kontrola systemów uzbrojenia,
• elektrownie jądrowe – monitorowanie i sterowanie,
• kontrola ruchu lotniczego,
• systemy ochrony środowiska,
• systemy transportowe,
• interpretacja sygnałów radarowych,
• urządzenia do badania kosmosu – monitorowanie systemu elektrycznego, systemu podtrzymującego życie,
• monitorowanie i kontrola sieci telekomunikacyjnych,
• użycie systemu ekspertowego czasu rzeczywistego umożliwia:
• zmniejszenie potrzeby ciągłej obecności na stanowisku operatorów
o wysokich kwalifikacjach,
• zmniejszenie liczby operatorów,
• zmniejszenie awaryjności,
• bardziej spójne monitorowanie o lepszej jakości,
• zwiększenie przepustowości systemu,
• zmniejszenie kosztów trenowania operatorów,
• system ekspertowy czasu rzeczywistego może sprawdzać stan czujnika co ściśle określony, nawet bardzo krótki, czas i w przeciwieństwie do człowieka, nie pominie żadnego pomiaru,
• system ekspertowy czasu rzeczywistego posiada ważną właściwość: może koncentrować uwagę na jednym problemie, uznanym przez system za najważniejszy w danej chwili. Właściwość ta powoduje, iż system mając obszerną bazę wiedzy, może do rozwiązania problemu używać tylko jej części, co znacznie przyspiesza czas reakcji systemu,
• system ekspertowy może posiadać mechanizmy dedukcyjne. Umożliwiają one przewidywanie przyszłych stanów systemu na podstawie obserwacji, tworzenie pewnych uogólnień na podstawie zaobserwowanych prawidłowości oraz udowadnianie nowych twierdzeń.
Wady systemów ekspertowych:
• nie wszystkie systemy ekspertowe pracują bez nadzoru człowieka –
w większości przypadków system pełni tylko funkcje wspomagające podejmowanie decyzji przez człowieka,
• utworzenie nowego systemu ekspertowego wymaga wprowadzenia całej wiedzy posiadanej przez eksperta. Jest to proces bardzo czasochłonny, więc wysiłek włożony w utworzenie systemu ekspertowego jest uzasadniony tylko wtedy, gdy system będzie wykorzystywany przez długi okres czasu i przez dużą liczbę użytkowników,
• człowiek rozwiązując problem nie zawsze używa sztywnego schematu wnioskowania, często opiera się na intuicji. W przypadku systemu ekspertowego takie działanie jest niemożliwe,
• komunikacja systemu ekspertowego z użytkownikiem jest w dużym stopniu ograniczona przez klawiaturę. Do swobodnej komunikacji konieczna by była komunikacja za pomocą głosu,
• przy tworzeniu systemu ekspertowego, a konkretnie bazy wiedzy ekspert musi być cały czas obecny, gdyż najczęściej wykorzystywaną metodą pozyskiwania wiedzy jest prowadzenie z nim dialogu,
• system ekspertowy posiada wiedzę tylko z wąskiej dziedziny i nie potrafi skutecznie rozwiązywać problemów, jeżeli nie dotyczą one specyficznej dla niego dziedziny,
• niektóre systemy ekspertowe potrzebują długiego czasu na wygenerowanie poprawnego wyniku działania. Jeżeli wymagany jest krótszy czas na odpowiedź, niż potrzebuje go system ekspertowy, wtedy jakość wyniku ulega znacznemu pogorszeniu,
• nieopłacalne jest tworzenie systemu ekspertowego do rozwiązywania mało skomplikowanego problemu – w takim wypadku lepiej sprawdzają się zwykłe programy,
• w przypadku istnienia ścisłych algorytmów rozwiązania, tworzenie systemu ekspertowego jest nieekonomiczne - równie dobrze rozwiąże go zwykły program, specjalnie napisany do tego celu,
• istnieją dziedziny (np. sterowanie procesem technologicznym o nieznanym modelu matematycznym), które bardzo trudno poddają się opisowi
i stworzenie systemu ekspertowego wymaga wiele wysiłku, a człowiek radzi sobie z tymi dziedzinami bardzo dobrze,
• czasem niemożliwy jest dialog systemu ekspertowego z człowiekiem. Szczególnie jest to widoczne w systemach czasu rzeczywistego, które muszą szybko reagować na zmieniające się warunki,
• ekspert rozszerza swoją wiedzę o nowe fakty i prawa, system ekspertowy musi zostać albo wyposażony w skomplikowane mechanizmy umożliwiające powiększenie bazy wiedzy lub baza wiedzy musi być ręcznie powiększana przez człowieka,
• tworzenie systemu ekspertowego jest procesem bardzo złożonym i dlatego wymaga dodatkowych programów (redakcyjnych), bez których stworzenie wydajnego systemu ekspertowego jest bardzo trudne,
• jeżeli w bazie wiedzy zostaną wykryte błędy uniemożliwiające poprawną pracę, muszą być one poprawione. Powoduje to jednak kolejne komplikacje, gdyż usunięcie jednej pomyłki może spowodować następną. W ten sposób niewielki błąd może uniemożliwić korzystanie z bazy wiedzy i spowodować konieczność jej gruntownej przebudowy,
• proces automatycznego tworzenia bazy wiedzy, mimo, że jest dostępny
w niektórych systemach ekspertowych, to jednak przy dużym szumie informacyjnym (błędnych danych) reguły wnioskowania mogą być fałszywie modyfikowane. Spowoduje to niepoprawne działanie całego systemu,
• tworzenie systemu ekspertowego jest ułatwione przy pomocy narzędzi programowych, jednak narzędzie należy wybrać bardzo starannie, gdyż nie każde można łatwo zastosować w interesującej twórcę dziedzinie. Wybór niewłaściwego narzędzia może znacznie utrudnić i skomplikować tworzenie nowego systemu ekspertowego,
• najczęściej obecnie używane systemy ekspertowe, czyli systemy ekspertowe czasu rzeczywistego nie mogą być tworzone za pomocą narzędzi programowych, gdyż wielkie znaczenie ma w nich czas reakcji na szybko zmieniające się dane wejściowe,
• system ekspertowy, aby pracować niezawodnie musi pracować w sposób ciągły. System przetwarza duże ilości danych, więc szybko powstaje problem niedostatecznej ilości pamięci. Twórca systemu musi zawsze rozwiązywać problem jednoczesnej pracy i zwalniania pamięci,
• systemy ekspertowe nie posiadają idealnego modelu reprezentacji wiedzy
w bazie wiedzy. Cały czas podejmowane są próby jak najlepszego zapisu wiedzy w systemie ekspertowym, jednak nie znaleziono jeszcze wystarczająco dobrego sposobu jej zapisu,
• pomimo ściśle określonych teoretycznych ram zapisu wiedzy w systemach ekspertowych, nie każdą wiedzę można ująć w te ramy,
• ekspert może pozyskiwać nową wiedzę ze źródeł różnego typu, jak
np. literatura, inni eksperci. System ekspertowy jest całkowicie zależny od swojego operatora i jest on jedynym źródłem, z którego system może pozyskiwać nową wiedzę,
• niemożliwa jest swobodna komunikacja pomiędzy systemem ekspertowym,
a użytkownikiem posługującym się naturalnym, mówionym językiem i ogólnie znanymi faktami, jeżeli nie są one wprowadzone do bazy wiedzy,
• system ekspertowy jest użyteczny tylko wtedy, gdy posiada odpowiedni interfejs do komunikacji z użytkownikiem. Nawet najlepszy system ekspertowy będzie bezużyteczny.
Różnice w stosunku do systemów tradycyjnych:
System ekspertowy Program tradycyjny
• twórca to inżynier wiedzy,
• korzysta z bazy wiedzy,
• problemy do rozwiązania przez twórcę to reprezentacja i sposób użycia wiedzy,
• do rozwiązywania problemów posługuje się heurystykami,
• system bliski idealnemu to taki, który efektywnie manipuluje dużymi bazami wiedzy,
• stosowany w dziedzinach,
w których nie istnieje matematyczny model algorytmów rozwiązujących zadania z danej dziedziny,
• potrafi rozwiązać problem NP. – zupełny w określonym czasie
• wymaga pozyskania wiedzy
od eksperta,
• nieopłacalny do stworzenia
w przypadku problemów o ściśle określonych algorytmach rozwiązania,
• zbyt skomplikowany
i czasochłonny proces tworzenia i dlatego nieopłacalne jest wykorzystanie systemu ekspertowego do rozwiązywania mało skomplikowanych problemów,
• może automatycznie rozwijać bazę wiedzy,
• potrafi rozwiązać problem
o dużej złożoności obliczeniowej,
• symboliczne przetwarzanie posiadanej informacji,
• zapis wiedzy ma charakter deklaratywny,
• możliwość istnienia interaktywnego otoczenia programowego,
• możliwość prowadzenia dialogu w języku zbliżonym
do naturalnego,
• wyposażony w mechanizmy objaśniania,
• brak praktycznej możliwości pełnego sprawdzenia poprawności działania systemu ekspertowego,
• rozwój systemu ekspertowego dokonuje się przez tworzenie prototypów i ich ulepszanie podczas wspólnej pracy eksperta oraz inżyniera wiedzy. • twórca to programista, analityk systemów,
• korzysta z bazy danych,
• problemy do rozwiązania przez twórcę to reprezentacja i sposób użycia danych,
• do rozwiązywania problemów posługuje się algorytmami,
• program bliski idealnemu to taki, który efektywnie manipuluje dużymi bazami danych,
• używany tylko w dziedzinach posiadających jednoznacznie określone algorytmy rozwiązywania zadań,
• próba rozwiązania problemu NP. – zupełnego prowadzi do takiej ilości teoretycznie możliwych przypadków, iż program wykonuje się zbyt długo, żeby móc rozwiązać problem
w interesującym użytkownika czasie,
• używa tylko gotowych algorytmów,
• przy ściśle określonych algorytmach rozwiązania tworzenie programu jest bardzo szybkie i daje on poprawne wyniki,
• mało skomplikowane problemy sprawiają, iż program jest tworzony w krótkim okresie czasu i pracuje szybko,
• nie ma możliwości automatycznego rozwijania bazy danych,
• zawodzą przy dużej złożoności obliczeniowej problemu,
• numeryczne przetwarzanie posiadanej informacji,
• algorytmiczny zapis sposobów rozwiązywania problemów,
• przetwarzanie wsadowe lub interaktywne,
• niemożliwy dialog w języku zbliżonym do naturalnego,
• trudność wprowadzenia mechanizmów objaśniania,
• istnieje możliwość sprawdzenia poprawności działania programu,
• rozwój programu tylko na podstawie specyfikacji.
Systemy ekspertowe najlepiej nadają się do zastosowania w tych dziedzinach, które są słabo sformalizowane, w których trudno jest sformułować teorie oparte
na matematyce lub ścisłe algorytmy działania. Przykładami mogą być: rolnictwo, medycyna, geologia, prawo, zarządzanie, robotyka, chemia. Do rozwiązywania problemów, dla których istnieją algorytmy numeryczne, stosowanie systemów ekspertowych jest nieopłacalne, gdyż programy algorytmiczne są na ogół szybsze
i prowadzą do optymalnego rozwiązania, podczas gdy systemy ekspertowe nie muszą prowadzić do rozwiązań optymalnych a jedynie akceptowalnych przez użytkownika systemu.
Niektóre istniejące systemy ekspertowe:
• MACSYMA – służy do rozwiązywania problemów matematycznych
i całkowania; wykorzystywany w MIT przez fizyków plazmy, pozyskiwanie wiedzy przez przeprogramowanie; uznawany za bardzo efektywny,
• DENDRAL – służy do identyfikacji związków chemicznych, stosowany
w USA, pozyskiwanie wiedzy przez przeprogramowanie, uznawany
za bardzo efektywny,
• PROSPECTOR – służy do interpretacji danych dotyczących zasobów geologicznych (poszukiwanie złóż minerałów), mocno rozbudowany system pozyskiwania wiedzy, rezultaty dobre,
• REACTOR – służy do diagnostyki siłowni jądrowych; uznany za dobry.
System ekspertowy może być tworzony przy użyciu dowolnego języka programowania (Basic, Algol, Fortran, Pascal, C, C+ i in.), jednakże tworzenie systemu w tych językach od podstaw może być bardzo czasochłonne, stąd opracowano specjalne języki programowania przeznaczone do tworzenia systemów ekspertowych, np.:
• LISP – LISt Processing,
• PROLOG – PROgrammation LOGique,
• OPS5 – Official Production System,
• CLIPS – C Language Integrated Production System.
Zawierają one w sobie maszynę wnioskującą (z wyjątkiem LISP-u), a także wyspecjalizowane narzędzia ułatwiające tworzenie systemu, zawierające interfejs użytkownika, blok pozyskiwania wiedzy, blok wyjaśnień i inne. Takie narzędzia są nazywane „systemami szkieletowymi” – można je traktować jako systemy ekspertowe z pustą bazą wiedzy, której zapełnienie zmienia je w konkretny system ekspertowy. Takie podejście znakomicie ułatwia i przyśpiesza tworzenie systemów ekspertowych.