O autorze
Jestem profesorem AGH i dodatkowo przez ponad 30 lat byłem profesorem Uniwersytetu Ekonomicznego.

Kieruję utworzonym przeze mnie w 1973 roku Laboratorium Biocybernetyki AGH. Byłem też przez wiele lat kierownikiem Katedry Automatyki i Inżynierii Biomedycznej AGH, którą jednak w 2016 roku przekazałem w ręce jednego z moich dość licznych wychowanków, którzy dziś są już profesorami. Musiałem oddać kierownictwo Katedry ponieważ zaczęła obowiązywać na tym stanowisku kadencyjność. Ale Laboratorium nadal kieruję.

Kilka słów o mojej drodze do tego miejsca, w którym się obecnie znajduję:

Zawsze pasjonowała mnie nauka, więc zostałem naukowcem. A jak stwierdziłem, jaka ta nauka jest fajna, to zacząłem się starać przekonać o tym jak najwięcej ludzi. Przekazuję moją fascynację wiedzą, nauką i techniką moim studentom, w wyniku czego wypromowałem już ponad 300 magistrów i blisko 70 doktorów. Staram się także popularyzować wiedzę na różne sposoby: w książkach, w gazetach, w tygodnikach, w radiu, w telewizji i na odczytach. Zebrało się tego ponad 400 pozycji drukowanych i chyba drugie tyle w formie różnych wystąpień – na żywo i w mediach.

Ponieważ wiedza nieświeża jest równie niesmaczna jak nieświeża kiełbasa – więc staram się zawsze mieć dostęp do wiedzy najświeższej. A ponieważ taką świeżą wiedzę ma się wtedy, gdy się ją samemu wytwarza, więc z zapałem prowadzę badania naukowe. W badaniach tych staram się wykorzystywać moje kwalifikacje inżyniera na potrzeby biologii i medycyny oraz moją wiedzę biologiczną (po doktoracie z automatyki studiowałem na Akademii Medycznej) jako źródło inspiracji dla budowy nowych systemów technicznych. Czasem udaje mi się coś odkryć, a jak już odkryję, to wzorem wszystkich naukowców piszę publikacje. Tak mi to weszło w krew, że napisałem już tych publikacji dosyć dużo, ale jak licznik moich prac w wykazach Biblioteki Głównej AGH przekroczył tysiąc, to przestałem je liczyć.

Opierając się na nie sprawdzonym przekonaniu, że jak ktoś ma osiągnięcia naukowe, to rządzić też potrafi, społeczność mojej uczelni wybrała mnie, żebym pełnił rolę rektora AGH. Potem ten wybór powtórzono jeszcze dwa razy, więc dosyć długo paradowałem w tych królikach udających gronostaje. Potem wybrano mnie na członka Polskiej Akademii Nauk i Polskiej Akademii Umiejętności oraz kilku akademii zagranicznych. W PAN pełniłem funkcję prezesa Krakowskiego Oddziału tej Korporacji.

No a potem zaproszono mnie, żebym pisywał na tym blogu. No to pisuję - najlepiej, jak potrafię!

Systemy ekspertowe – światło ludzkiej mądrości w archipelagu sztucznej inteligencji

http://ak.picdn.net/shutterstock/videos/2880436/preview/stock-footage-lighthouse-island-day-and-night-view.jpg
Przedstawiam kolejny wpis dotyczący wybranych metod sztucznej inteligencji, opisywanych tu - zgodnie z przyjętymi założeniami - poprzez metaforyczne modele w postaci "wysp". Dzisiejsza wyspa mieścić będzie ludzką mądrość w komputerowym opakowaniu.

Mowa będzie bowiem o tak zwanych systemach ekspertowych. Są to systemy informatyczne, w których gromadzona jest wiedza ekspertów (stąd "światło ludzkiej mądrości") i które potrafią używać metod automatycznego wnioskowania (stąd "w archipelagu sztucznej inteligencji"). Służą one do tego, żeby udzielać odpowiedzi na pytania użytkowników. Pytania z zasady nieprzewidywalne, ale związane z zagadnieniami, dla których pozyskano wiedzę od ekspertów.



Systemy ekspertowe są jednymi z najstarszych narzędzi sztucznej inteligencji. Pierwszy (jak się powszechnie uważa) system tego typu zbudowali Bruce Buchanan, Edward Feigenbaum oraz Joshua Lederberg (laureat Nagrody Nobla!) na uniwersytecie Stanforda. Budowa systemu wymagała (jak wyliczono) 15 osobo-lat pracy. System ten nazywał się Dendral i został uruchomiony w 1965 roku. Jego kolejne wersje były systematycznie doskonalone i są używane do dziś. Jak widać, jest to prawdziwy weteran! Służył (i służy) do określania struktury molekularnej nieznanych chemicznych związków organicznych na podstawie analizy widm spektroskopowych.

Dendal służył głównie uczonym i z tego powodu nie zyskał nigdy większej popularności, natomiast wszelkie rekordy powodzenia pobił Mycin - system wspomagający lekarzy w diagnozowaniu chorób krwi wywoływanych przez bakterie i w planowaniu antybiotykoterapii.

Potem systemy ekspertowe upowszechniły się w medycynie (opracowano je dla różnych chorób), ale także w doradztwie ekonomicznym i finansowym, w poszukiwaniach geologicznych (na przykład osiągnięciem systemu o nazwie Prospector było odkrycie dużych złóż molibdenu), w diagnostyce technicznej (zwłaszcza w wojsku), we wspomaganiu zarządzania i w wielu innych dziedzinach. W USA był bardzo popularny był na przykład system ekspertowy, który doradzał ... jak spisać testament.

Charakteryzując - zgodnie z zasadami przyjętymi w tym blogu - ten dział sztucznej inteligencji jako kolejną "wyspę" archipelagu możemy ją narysować w taki sposób:
Systemy ekspertowe najczęściej wykorzystuje się na jeden z trzech sposobów.

Pierwszy sposób polega na traktowaniu systemu ekspertowego jako mądrego doradcy (stąd w literaturze czasem mówi się o systemach doradczych). Mamy jakiś problem, nie potrafimy go rozwiązać, nie chcemy pytać ekspertów (ludzi), bo to drogo kosztuje - no to zadajemy nasze pytanie systemowi ekspertowemu. Komputer szybko analizuje wszystkie okoliczności związane z postawionym pytaniem, sięga do zgromadzonej w nim wiedzy ekspertów, korzysta z metod automatycznego wnioskowania - i podaje odpowiedź. Pytania mogą być najróżniejsze, ale wyróżnia się zwykle następujące trzy kategorie:

- ocena stanu obecnego (diagnoza)

- ocena planowanego i aktualnie realizowanego sposobu działania (terapia)

- ocena skutków działania (prognoza)

Drugi sposób polega na krytykowaniu przez system rozwiązań proponowanych przez człowieka (decydenta). Taka krytyka jest bardzo ważna (pozwala unikać kosztownych błędów), ale zwykle jest trudno osiągalna. Gdyby ktoś z podwładnych szefa próbował kwestionować jego pomysły - to mogłoby się to dal niego źle skończyć. W tym zastosowaniu sztucznej inteligencji bardzo ważny jest fakt, że system ekspertowy jest maszyną, więc jego krytykę przyjmuje się (na ogół) bez emocji. Taką maszynową krytykę analizuje się zwykle spokojnie i rzeczowo, nie doszukując się podtekstów ("co on chciał przez to osiągnąć?"), lecz koncentrując się na tym, czy krytyka jest zasadna i jak zmodyfikować krytykowany projekt, żeby uniknąć jego wskazanych przez komputer słabych punktów. W efekcie budowane są bardziej realistyczne plany i podejmowane są lepsze decyzje, a nikt na tym personalnie nie cierpi.

Trzeci sposób użycia systemów ekspertowych polega na tym, że można im powierzyć sterowanie pewnym procesem. Na przykład inwestowanie na giełdzie - system obserwuje zmiany notowań, korzysta z wiedzy wielu ekspertów, która jest w nim zawarta - i wysyła polecenia kupna lub sprzedaży określonych akcji lub innych papierów wartościowych, zwykle szybciej i trafniej niż nawet bardzo doświadczony inwestor (człowiek). Stosowanie takich systemów podlega jednak ograniczeniom prawnym, ponieważ mogą one destabilizować rynek.

Poznajmy teraz budowę systemu ekspertowego.
Po prawej stronie rysunku widzimy dawcę wiedzy, będącej najcenniejszym zasobem systemu. Wiedzę tę posiada ekspert, więc ją może wprowadzić do systemu posługując się odpowiednim narzędziem, które to ułatwia (interfejsem eksperta). W rezultacie powstaje baza wiedzy, zawierająca zwykle fakty (stwierdzenia, które ekspert podał jako pewniki wynikające z jego wiedzy i doświadczenia) oraz reguły (zasady wnioskowania, pozwalające z jednych informacji wywodzić inne informacje).

Po lewej stronie widzimy użytkownika systemu. Zadaje on systemowi pytania posługując się swoim narzędziem (interfejsem użytkownika). Zwykle dąży się do tego, by interfejs użytkownika pozwalał na maksymalnie wygodne zadawanie pytań, więc dopuszcza się pytania w języku naturalnym, formułowane w dowolny sposób, z możliwością "dopytania się" przez system o ważne, a pominięte przez użytkownika szczegóły. We wspomnianym wyżej systemie Mycin bywały obserwowane sesje, w czasie których lekarz stawiający problem (opisujący pacjenta, dla którego potrzebował diagnozy i sugestii terapii) musiał czasem odpowiadać nawet na 50 dodatkowych pytań systemu, który dokładnie kompletował i analizował dane na temat rozwiązywanego zadania, zanim podjął próbę znalezienia rozwiązania.

Po pozyskaniu kompletu informacji o problemie, który użytkownik chce rozwiązać, system ekspertowy uruchamia podsystem wnioskujący. Jest to program (wzorowany często na programach rozwiązywania różnych łamigłówek, gier komputerowych i automatycznego dowodzenia twierdzeń, opisanych we wcześniejszym wpisie). Podsystem wnioskujący w oparciu o bazę wiedzy przygotowaną przez eksperta próbuje rozwiązać problem postawiony przez użytkownika i udzielić mu potrzebnej rady. Tak to wygląda w największym uproszczeniu i w największym skrócie. Ale - jak to zwykle bywa - "diabeł tkwi w szczegółach". Przyjrzyjmy się zatem tym szczegółom.

Pierwsza sprawa to zasilanie systemu w wiedzę. Założenie, że ekspert potrafi to zrobić sam przy użyciu dostarczanych przez system narzędzi - jest założeniem w wielu przypadkach nierealistycznym.
Dlatego przy wyposażaniu systemu w wiedzę przydatna jest pomoc specjalisty, nazywanego inżynierem wiedzy. Rola inżyniera wiedzy polega na tym, żeby najpierw podczas swobodnej rozmowy pozyskać wiedzę od eksperta (co wcale nie jest łatwe, bo nie każdy ekspert jest w pełni świadom tego, jaką wiedzę posiada) i potem tę pozyskaną wiedzę tak wprowadzić do komputera, by stała się ona istotnym składnikiem bazy wiedzy. Nawiasem mówiąc, kwestia właściwej reprezentacji wiedzy w komputerze jest jednym z trudniejszych problemów naukowych i praktycznych związanych z systemami ekspertowymi. Wspomniana wcześniej reprezentacja w postaci faktów i reguł jest jedną z możliwości - chętnie stosowaną, ale nie jedyną.
Po zapełnieniu bazy wiedzy i po wyposażeniu systemu w podsystem wnioskujący i interfejs naturalny (to znaczy posługujący się językiem naturalnym) możemy już udostępnić system do eksploatacji. Zwykle udostępniamy go wielu użytkownikom (bo z jednego systemu ekspertowego może korzystać wiele osób), które potrzebują różnych rad i którym zwykle bardzo się spieszy (co pokazałem :-) na rysunku poniżej).

Użytkownik zadaje systemowi pytanie korzystając z interfejsu naturalnego. Czasem ten proces formułowania problemu do rozwiązania jest dialogiem, w wyniku którego zostaje ustalony opis problemu, jaki użytkownik chce rozwiązać. Ten opis problemu wraz z wiedzą zawartą w bazie wiedzy jest podstawą działania podsystemu wnioskującego, szukającego potrzebnej odpowiedzi.
Niestety doświadczenia z pierwszymi systemami ekspertowymi pokazały, że to nie wystarcza. Systemy były wyposażone w wiedzę specjalistyczną (pochodzącą od ekspertów) oraz w wiedzę szczegółową, dotyczącą konkretnego problemu, jaki nurtuje użytkownika, natomiast nie posiadały wiedzy ogólnej, dotyczącej spraw, które dla człowieka są oczywiste i nie wymagają odrębnego definiowania, ale dla komputera i jego podsystemu wnioskującego oczywiste już nie są. W środowisku osób zajmujących się systemami ekspertowymi przytaczana jest anegdota, że pewien system medyczny, nakarmiony wiedzą na temat nowotworów, na pytanie lekarza, co zrobić, żeby zniszczyć raka u konkretnego pacjenta zaproponował ... zabicie pacjenta. Logiczne - gdy się zabije "nosiciela" raka, to rak także zginie :-)

Nie dam głowy za to, że ten przykład jest prawdziwy, ale z pewnością prawdziwy jest problem wyposażenia systemu ekspertowego w bazę danych stałych, która zawiera wiedzę ogólną, niezależną od specjalistycznej wiedzy ekspertów i niezależną od rodzaju problemu, który chciałby rozwiązać użytkownik.

Mając do dyspozycji ową bazę danych stałych, wiedzę ekspertów z bazy wiedzy i opis problemu zgłoszonego przez użytkownika - podsystem wnioskujący znajduje rozwiązanie problemu, które zostaje przekazane użytkownikowi.
W zasadzie w tym miejscu można by było zakończyć opis działania systemu ekspertowego, gdyby nie jego jeszcze jedna, bardzo istotna cecha. Otóż system ekspertowy potrafi na życzenie użytkownika dodatkowo podać uzasadnienie rozwiązania, które wypracował. Takie uzasadnienie jest bardzo cenne, bo zwiększa zaufanie użytkownika do zaproponowanego przez system rozwiązania, a także pozwala mu na ewentualne zakwestionowanie jednego z elementów automatycznie przeprowadzonego rozumowania, co prowadzi do kolejnej iteracji pracy systemu i do uzyskania innego, bardziej realistycznego rozwiązania. W uzasadnieniu zwykle wskazywane są elementy wiedzy eksperta (fakty oraz reguły), które wyznaczyły ścieżkę wiodącą od opisu problemu do proponowanego przez system rozwiązania problemu. Wskazując zapisany przez eksperta fakt, który w konkretnym przypadku nie zachodzi, lub kwestionując jedną z użytych reguł, użytkownik systemu może lepiej dostosować rozwiązanie do swoich potrzeb.
Systemy ekspertowe są zwykle produktami wyspecjalizowanych firm i są ukierunkowane (poprzez zastosowaną bazę wiedzy) na rozwiązywanie określonej klasy problemów. Warto jednak zwrócić uwagę na fakt, że większość elementów opisywanego wyżej schematu systemu (interfejsy, podsystem wnioskujący i objaśniający, znaczna część bazy danych stałych) jest niezależna od konkretnego obszaru problemowego), więc może być udostępniona jako system uniwersalny, dostosowujący swoje działanie do konkretnego zadania poprzez wypełnienie bazy wiedzy faktami i regułami na jakiś konkretny zadany temat. Takie "puste" systemy ekspertowe są sprzedawane pod nazwą systemów szkieletowych lub pod potoczną nazwą shell. Dzięki temu można mieć system ekspertowy doradzający na dowolny wybrany przez użytkownika temat!
Trwa ładowanie komentarzy...