Sztuczna inteligencja - Notatki - Systemy i sieci, Notatki'z Informatyka. Szczecin University of Technology
Norbert_88
Norbert_8812 April 2013

Sztuczna inteligencja - Notatki - Systemy i sieci, Notatki'z Informatyka. Szczecin University of Technology

DOC (251 KB)
21 strona
225Liczba odwiedzin
Opis
Informatyka: notatki z zakresu systemów i sieci dotyczące sztucznej inteligencji.
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument
Podgląd3 strony / 21
To jest jedynie podgląd.
3 shown on 21 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 21 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 21 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 21 pages
Pobierz dokument

Sztuczna inteligencja, metody ekspertowe. Sztuczna inteligencja (ang. Artificial IntelligenceAI) 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

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

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.

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.

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
3 shown on 21 pages
Pobierz dokument