Postęp technologiczny ludzkości, nabierający szczególnie szybkiego tempa w ostatnich dwóch stuleciach, owocuje powstawaniem coraz bardziej złożonych maszyn i urządzeń, pozwalających na zastępowanie człowieka w coraz bardziej skomplikowanych pracach. Pojawienie się i rozwój komputerów stworzyły szansę na zaprzęgnięcie maszyn także do tzw. pracy umysłowej, będącej do owych czasów wyłącznie domeną ludzkich umysłów, a zwłaszcza ludzkiej inteligencji.
Jako pierwszy problemem tym zajął się w 1950 roku angielski matematyk Allan Turing, który w swojej pracy pt. "Czy maszyna potrafi myśleć?" zawarł rozważania natury logicznej i matematycznej. Zaproponował on test, zwany dzisiaj testem Turinga, za pomocą którego istniałaby możliwość rozpoznania przejawów inteligentnego myślenia maszyny. Test Turinga opiera się na założeniu, że z racji skomplikowanej natury filozoficznej pojęcia inteligencji maszynowej, należy uznać jej istnienie o ile człowiek prowadzący dialog z komputerem nie będzie w stanie odróżnić go od dialogu z drugim człowiekiem.
Komputery w wielu dziedzinach okazały się niezastąpione. Istnieje jednak cały szereg zadań niemożliwych do efektywnego realizowania przez tradycyjne programy, oparte na algorytmach opisujących krok po kroku w dokładny i szczegółowy sposób rozwiązanie problemu. W sytuacjach niekompletności lub nieprecyzyjności danych, w przypadku pojawienia się nowych warunków otoczenia, lub braku jasnych algorytmów, lepiej radzi sobie człowiek z własną naturalna inteligencją. Próby dążące do symulowania inteligentnych zachowań człowieka zaowocowały pojawieniem się nowej dziedziny nauki nazwanej w 1956 roku sztuczną inteligencją.
Pojęcie inteligencji definiowane przez psychologię jest jednym z najbardziej niejednoznacznych terminów. Zilustrować to może przykład sympozjum jakie odbyło się na ten temat w 1975 roku w Monterealu, a w którym wzięło udział wielu specjalistów z tej dziedziny. Rozgorzały wówczas spory, w których powtarzało się pytanie, czy coś takiego jak inteligencja w ogóle istnieje poza słownikiem psychologicznym. Padła nawet propozycja by zrezygnować z tego terminu. Przyczyny takiego stanu rzeczy można doszukiwać się w fakcie, że większość powstałych w XX wieku koncepcji inteligencji była ubocznym produktem prac nad testami inteligencji.
Binet, twórca testów mających badać inteligencję, uważał że przejawia się ona w takich umiejętnościach jak: rozumowanie, wyobrażanie, wydawanie sądów i zdolność przystosowania się. Inni teoretycy wskazywali na trzy podstawowe czynności poznawcze: abstrahowanie, uczenie się i działanie w nowych sytuacjach. Współczesna encyklopedyczna definicja określa inteligencję jako: "specyficzna właściwość rozumowa, cecha umysłu określona najczęściej jako zasadniczy element składowy procesów poznawczych, w szczególności odpowiedzialny za wielofunkcyjne myślenie i kojarzenie faktów, lub jako ogólna zdolność poznawcza umożliwiająca dostosowanie się do nowych warunków sytuacyjnych oraz wykorzystanie dotychczas posiadanej wiedzy i umiejętności w nowych okolicznościach,".
Bardziej precyzyjne i specjalistyczne ujęcie tego terminu głosi, że inteligencja jest "sprawnością w zakresie ujmowania strukturalnych i funkcjonalnych stosunków składników danego materiału treściowego, jest sprawnością myślenia.". Przedstawiona definicja jest szczególnie atrakcyjna z punktu widzenia informatyki, ponieważ pozwala sprowadzić inteligencje do "sprawności" w zakresie procesów myślenia, jako przetwarzania informacji, a posuwając się jeszcze dalej przetwarzania danych. Punktem odniesienie owej zdolności jest oczywiście przeciętna sprawność typowa dla człowieka. Cytowana pozycja odrzuca definicję inteligencji jako bytu odrębnego i jednorodnego: "Każdy z nas, [...], poznaje różne dziedziny działania, jedne opanowuje lepiej, inne gorzej, w niektórych specjalizuje się. Pociąga to za sobą zróżnicowanie się myślenia ze względu na materiał treściowy, którego dotyczy.". Pozwala to na rozróżniane wielu inteligencji odnoszących się do różnych dziedzin życia lub wiedzy, a wysoki poziom inteligencji w jednej dziedzinie nie musi oznaczać równie wysokiego w pozostałych. Symulacja inteligencji na gruncie informatyki może sprowadzać się w myśl tej koncepcji do symulowania jej tylko w określonym treściowo zakresie, a funkcjonowanie tak zaprojektowanego systemu można uznać za przejaw inteligentnego działania w ściśle określonej dziedzinie.
Słownik języka polskiego definiuje pojęcie "sztuczny" jako: "zrobiony przez człowieka, naśladujący rzecz lub zjawisko stworzone przez naturę". Sztuczna inteligencja jest w świetle tego naśladowaniem inteligencji naturalnej, czyli ludzkiej. Oczywiście względy praktyczne nie pozwalają ograniczyć tej dziedziny jedynie do imitacji, tym bardziej że w wielu problemach, jak na przykład pod względem szybkości i precyzji operacji matematycznych, komputery przewyższają umysł człowieka. Ponadto tworzenie sztucznego umysłu naśladującego ludzki, nie jest obecnie ani możliwe, ani sensowne z punktu widzenia ekonomicznego, ponieważ ogromnym kosztem otrzymałoby się to co bez większego problemu można uzyskać zatrudniając pracownika umysłowego. Umysł człowieka i przejawy jego inteligentnego działania są przedmiotem badań, wzorem i punktem wyjścia zarówno dla rozważań teoretycznych nad ich istotą, jak i do tworzenia technik i modeli pozwalających na wyposażenie systemów komputerowych w przejawy inteligencji, niekoniecznie będącej kopią naturalnej, ale raczej bardzo wąskiej, silnie wyspecjalizowanej i być może przewyższającej pierwowzór.
Odwołując się do definicji słownikowej "sztuczna inteligencja, (ang. Artificial Inteligence), AI," to "dział informatyki, którego celem jest obserwacja reguł rządzących tzw. inteligentnymi umiejętnościami człowieka (np. postrzeganie, rozpoznawanie, uczenie się, aktywność twórcza, operowanie symbolami) i tworzenie ich modeli formalnych, tak aby można było na tej podstawie opracować programy komputerowe symulujące owe zachowania".
Sztuczna inteligencja w sensie technicznym to stworzenie metod i narzędzi umożliwiających systemom komputerowym efektywne rozwiązywanie problemów zarezerwowanych dotąd wyłącznie dla człowieka. Z punktu widzenia informatyki można ją sprowadzić do symulowania inteligentnych zachowań ludzi w odniesieniu do konkretnej grupy problemów. W poszukiwaniu inspiracji, wzorów i podstaw teoretycznych sięga ona do wiedzy zawartej w dziedzinach takich jak: neurofizjologia, biologia, psychologia, matematyka czy nawet filozofia. Obok szeroko eksponowanych umiejętności myślenia abstrakcyjnego, warto zwrócić uwagę na wysiłki zmierzające do oprogramowania czynności raczej nie zaliczanych do inteligencji, jak chociażby naśladowanie przez roboty sposobu poruszania się ludzi oraz zwierząt, lub wizualne rozpoznawanie obrazów. Obok czystej imitacji, zainteresowanie np. sztucznymi sieciami neuronowymi wynika z typowej dla nich, podobnie jak i dla ludzkiego umysłu, odporności na uszkodzenia, co skłania do zastosowania tej technologii w zakresie problemów obsługiwanych już przez systemy komputerowe, ale wymagających długotrwałego i permanentnego funkcjonowania bez nadzoru człowieka.
W próbie podsumowania można stwierdzić, że sztuczna inteligencja stawia sobie jako cel i przedmiot badań wyposażenie systemów komputerowych w możliwość:
Termin sztuczna inteligencja został zaproponowany w 1956 roku przez profesora Massachusetts Institute of Technology Johna McCarthy, podczas konferencji w której brali udział naukowcy z różnych dziedzin, zajmujący się ludzką świadomością. Uczestnicy konferencji uznali sztuczną inteligencję za odrębną dziedzinę wiedzy, której głównym celem jest zabudowanie maszyny potrafiącej modelować proces myślowy człowieka.
Wraz z rozwojem badań pojawiły się dwa nurty w ramach sztucznej inteligencji. Pierwszy z nich, tzw. silna sztuczna inteligencja (ang. strong artificial intelligence), lub nurt bioniczny, koncentruje się na badaniu funkcji ludzkiego mózgu, analizie działania neuronów i wykorzystaniu tej wiedzy w próbach symulowania procesów myślowych. Drugi, nazywany słabą sztuczną inteligencją (ang. weak artificial intelligence), albo nurtem pragmatycznym, stara się osiągnąć te same cele, ale bez naśladowania ludzkiego mózgu, zwracając się raczej w kierunku zagadnieniom reprezentowania wiedzy, czy metodom przeszukiwania heurystycznego.
Lata pięćdziesiąte to okres rozwoju sztucznych sieci neuronowych. Pierwszym szeroko znanym przykładem tego procesu jest Perceptron, zbudowany w roku 1957 przez Franka Rosenblatta i Charlesa Wightmana. System ten był układem elektromechanicznym, przeznaczonym do rozpoznawania znaków alfanumerycznych z wykorzystaniem procesu uczenia się jako metodą programowania. Układ zgodnie z założeniami uczył się, ale mimo wykazywania szeregu ciekawych właściwości, osiągane wyniki nie spełniały stawianego badaniom celu. Warto także wspomnieć o Madaline, pierwszym neurokomputerze używanym w zastosowaniach komercyjnych. Madaline został skonstruowany w 1960 roku przez Bernarda Widrowa z Uniwersytetu Standforda i był zbudowany z uczących się elementów nazwanych Adaline (od ang. adaptive linear element).
W latach siedemdziesiątych, po wykazaniu ograniczeń układów neuronowych, rozwój badań w tej dziedzinie został gwałtownie zahamowany. Dekada ta staje się okresem rozkwitu nurtu pragmatycznego w sztucznej inteligencji, czyli systemów ekspertowych, rozwijanych powoli już w latach sześćdziesiątych. Po początkowym niepowodzeniu systemów o charakterze ogólnym, rozpoczyna się okres udanych projektów o modularnej budowie i wysokiej specjalizacji. Do największych, wzorcowych osiągnięć tego okresu należą systemy Mycin i Prospektor. Mycin, stworzony na Uniwersytecie Standforda, był systemem ekspertowym wspomagającym diagnozę chorób zakaźnych. Jego działanie obejmowało między innymi określenie rodzaju infekcji, dobór lekarstw oraz ich dawkowanie. W razie potrzeby możliwe było wyświetlenie drogi wnioskowania, użytych reguł, a nawet referencji do literatury lub ekspertów, od których reguły zostały pozyskane. Drugi z przykładów był systemem wspomagającym geologów w poszukiwaniu i szacowaniu złóż surowców mineralnych. Został on stworzony w Standford Research Institute w 1978 roku i jest używany do celów praktycznych przynosząc wysokie zyski.
Przełom w badaniach nad sztucznymi sieciami neuronowymi nastąpił w latach osiemdziesiątych. Upowszechnił się wówczas model sieci wielowarstwowej wraz z algorytmem wstecznej propagacji błędu (ang. Error Back Propagation), jako skuteczną metodą trenowania sieci. Przykładem ponownego rozkwitu tej gałęzi są także prace Kohonena opisujące metody uczenia się sieci bez nauczyciela oraz Johna Hopfelda prezentujące tworzenie dynamicznych sieci rekurencyjnych. Opracowano wówczas także technologię wytwarzania modeli neuronowych w postaci specjalistycznych układów scalonych, co pozwoliło na budowanie neurokomputerów o zwiększonej mocy obliczeniowej i możliwościach. Nowe osiągnięcia zdezaktualizowały poglądy wskazujące na ograniczenia systemów neuronowych i wykazały ich przydatność w skutecznym rozwiązywaniu skomplikowanych problemów.
Od lat sześćdziesiątych, niejako poza głównym nurtem sztucznej inteligencji, rozwijano problematykę algorytmów genetycznych. Kwestia przynależności tej dziedziny do omawianej nauki jest wciąż przedmiotem akademickich rozważań i sporów. Nie wdając się jednak w głębsze rozważania nad zasadnością zaliczenia algorytmów genetycznych do metod sztucznej inteligencji, warto podkreślić że odmienność działania owych technik w stosunku do tradycyjnego podejścia programistycznego, oraz zainteresowanie tej dziedziny procesami optymalizacji i adaptacji, nie pozwalają na jej pominięcie. Początki algorytmów genetycznych wywodzą się z symulacji naturalnych procesów genetycznych, jakie przy wykorzystaniu komputerów prowadziła pewna grupa biologów. Szereg pomysłów zaczerpniętych z genetyki i teorii ewolucji był źródłem pionierskich prac J. D. Bagleya i R. S. Rosenberga, którzy w 1967 roku, niezależnie od siebie, opisali: adaptacyjny program do gry w sześć pionków, oraz symulację populacji jednokomórkowców. Do usystematyzowania i upowszechnienia tej dziedziny w wydatny sposób przyczyniła się rozprawa doktorska K. A. De Jonga, analizująca algorytmy genetyczne w kontekście optymalizacji (wyszukiwania miejsc zerowych) funkcji.
Ostatnia dekada, lata dziewięćdziesiąte, to epoka rozwoju systemów hybrydowych wypierających rozwiązania oparte wyłącznie na jednej z przedstawionych gałęzi sztucznej inteligencji. Nowe technologie, łącząc w sobie elementy systemów ekspertowych, sieci neuronowych, algorytmów genetycznych i logiki rozmytej, eliminują dzięki hybrydyzacji słabe strony charakteryzujące każdą gałąź osobno. Podstawy teorii logiki rozmytej i zbiorów rozmytych, wykorzystywanych w tzw. rozmytych systemach ekspertowych, zostały opracowane przez L. Zadeha w Stanach Zjednoczonych już w roku 1965. Początkowo jednak niezauważone dopiero w latach siedemdziesiątych oraz osiemdziesiątych zostały rozwinięte i zastosowane w praktyce głównie przez Japończyków. Na początku lat dziewięćdziesiątych pojawiło się nowe pojęcie w postaci "inteligencji przeliczeniowej" (ang. Computational Inteligence), określającej gałąź zajmującą się łączeniem technik neuronowych, logiki rozmytej i algorytmów genetycznych. Cechą charakterystyczną tej gałęzi, w odróżnieniu od sztucznej inteligencji, ma być korzystanie z obliczeń wykonywanych wyłącznie na surowych danych numerycznych, bez wnikania w typową dla ludzi reprezentację wiedzy o problemie.
Sztuczne sieci neuronowe, nazywane bardzo często po prostu sieciami neuronowymi, są najogólniej rzecz ujmując powierzchowną imitacją biologicznego systemu nerwowego, a zwłaszcza mózgu. Ich istotą jest naśladowanie zarówno budowy jak i działania żywego pierwowzoru.
Największe znaczenie dla intelektualnych funkcji ludzkiego mózgu ma kora mózgowa, składająca się z ok. 1010 komórek nerwowych i 1015 połączeń pomiędzy nimi. Podstawowy element systemu nerwowego, czyli komórka nerwowa lub krócej neuron, składa się z dendrytów, odbierających sygnały przesyłane z innych komórek nerwowych, ciała komórki oraz aksonu, przesyłającego sygnał do dendrytów kolejnych neuronów. Połączenie akson - dendryt dwóch neuronów nazywane jest synapsa, lub szczeliną synaptyczną, ponieważ pomiędzy aksonem i dendrytem znajduje się mikroskopijna przerwa. Na drodze procesów chemicznych impuls elektryczny przekazywany jest z aksonu do dendrytu, a następnie z wszystkich dendrytów do ciała komórki. Jeżeli suma wszystkich pobudzeń elektrycznych przekroczy ustalony poziom, neuron generuje impuls, który za pośrednictwem aksonu i jego rozgałęzień przekazywany jest do dendrytów kolejnych komórek nerwowych.
Model matematyczny, opisanego wyżej w bardzo uproszczony sposób neuronu, można zapisać wzorem:
Zmienna y reprezentuje sygnał wyjściowy komórki, a wektor x sygnały podawane na wejściu. Wektor współczynników w, nazywany wektorem wag synaptycznych, odzwierciedla zmianę impulsu wejściowego podczas przechodzenia przez synapsę, związaną z różnymi rozmiarami szczelin synaptycznych.
Funkcja f to funkcja aktywacji neuronu generująca na podstawie zsumowanych impulsów pobudzających, czyli wyniku iloczynu skalarnego wektorów w i x, sygnał wyjściowy komórki. Najprostszym przykładem funkcji aktywacji jest funkcja progowa postaci:
We współczesnych zastosowaniach dominują trzy główne typy sieci neuronowych.
Najpopularniejszy z nich to jednokierunkowe, wielowarstwowe sieci neuronowe o nieliniowej funkcji aktywacji, lub inaczej wielowarstwowe sieci perceptronowe (ang. Multi-Layered Perceptron MLP). Składają się najczęściej z kilku warstw elementów, przy czym sygnały wyjściowe warstwy wcześniejszej podawane są na wejścia warstwy dalszej. Warstwy sieci dzieli się na wejściową, która może przetwarzać sygnały lub jedynie przekazywać je na wejścia neuronów warstwy kolejnej, jedną, dwie lub trzy warstwy ukryte zbudowane z neuronów opisanych powyżej, oraz opcjonalnie warstwę wyjściową, przekształcającą sygnały w sposób odwrotny do warstwy wejściowej. Zgodnie z teorią sieć o dwóch lub trzech warstwach perceptronowych może być użyta do aproksymacji większości funkcji, podczas gdy sieć o jednej warstwie perceptronowej prawidłowo odwzoruje jedynie związki o charakterze liniowym. Cała wiedza o naturze przybliżanych związków zawarta jest w wartościach wag synaptycznych pojedynczych neuronów systemu i ze względu na jej charakter pozostaje praktycznie nieznana dla twórcy lub użytkownika. Sieć można porównać do mechanizmu, który na podstawie dostarczonych wejść, kierując się bliżej nieznanymi regułami lub skojarzeniami, generuje określoną wartość wyjściową, naśladując tym samym w pewnym sensie doświadczenie i intuicję eksperta.
Drugim rodzajem wykorzystywanych systemów neuronowych są sieci Kohenena, składające się z jednej warstwy neuronów przetwarzających, nazywanej warstwą konkurencyjną lub warstwą Kohenena. Ten specyficzny rodzaj sieci wykorzystywany jest głównie do klasyfikacji i grupowania danych, umożliwiając wyodrębnianie z nie pogrupowanych zestawów wartości, klas charakteryzujących się wspólnymi cechami. W różnieniu od wcześniej opisanej architektury, zasadnicze znaczenie ma nie tylko wartość wyjścia, ale także umiejscowienie neuronu w sieci. Wartość wyjścia oraz pozycja neuronu decydują o zaklasyfikowaniu wektora wejść. Podstawową operacją wykonywaną w neuronach jest porównanie odległości pomiędzy wektorem wag synaptycznych neuronu oraz wektorem wejść. Porównanie to, często przeprowadzane w postaci iloczynu skalarnego wektorów, decyduje o modyfikacji wag w procesie uczenia lub klasyfikacji wejść w przypadku przetwarzania.
Ostatnim rodzajem sieci są systemy rekurencyjne, których cechą charakterystyczną jest połączenie wyjść sieci z jej wejściami. Przetwarzanie ma wówczas charakter dynamiczny, a sygnały wyjściowe systemu zależą także od stanu jego elementów w przeszłych cyklach obliczeń. Elementy dynamiki można wprowadzić do wielowarstwowych sieci perceptronowych przez dodanie połączenia jednego z wyjść sieci z jej wejściem, nazywanym w takim przypadku "kontekstem". Najczęściej spotyka się tzw. sieci Hopfielda, w których wszystkie wyjścia pojedynczej warstwy neuronów połączone są z wejściami każdego z jej elementów. Istotą ich działania jest dążenie do osiągnięcia w kolejnych iteracjach stanu równowagi. Proces relaksacji sieci polega na ustabilizowaniu się wartości wyjść, lub ograniczeniu różnic pomiędzy wyjściami generowanymi w kolejnych cyklach obliczeń do ustalonego poziomu. Sieć Hopfielda jest przykładem pamięci autoasocjacyjnej (skojarzeniowej), nazywanej też często pamięcią adresowaną zawartością (ang. Content Adressable Memory CAM), w przeciwieństwie do pamięci adresowanej adresem. Głównym zastosowaniem takich systemów jest rozpoznawanie wzorów, które można wykorzystać do usuwania zniekształceń lub zakłóceń losowych ze zbioru danych.
Istotnym kryterium podziału są także sposoby uczenia sieci neuronowej, wśród których wyróżniamy:
Cechą charakteryzującą wszystkie rodzaje sieci jest możliwość modelowania zjawisk oraz procesów słabo ustrukturalizowanych i zalgorytmizowanych. Systemy neuronowe dają możliwość zbudowania efektywnie działającego modelu bez określania natury związków między zmiennymi, które z powodu nadmiernej złożoności lub niejasności nie mogą być opisane w postaci równań matematycznych.
Systemy ekspertowe, nazywane też eksperckimi, to programy komputerowe dążące do odwzorowania sposobu myślenia i wiedzy eksperta w wysoko wyspecjalizowanej dziedzinie nauki lub techniki. Cechą charakterystyczna takich systemów jest operowanie na wiedzy, w przeciwieństwie do wykonywania obliczeń na danych i wykorzystywania modeli matematycznych w programach tradycyjnych. Wiedza rozumiana jest w tym przypadku jako zestaw faktów oraz operujących na nich reguł, za pomocą których odwzorowuje się świadomy tok myślenia eksperta. Zadaniem systemu jest rozwiązywanie problemów w sposób dorównujący efektywnością człowiekowi będącemu ekspertem w danej dziedzinie. System ponadto powinien być w stanie zaprezentować i objaśnić tok rozumowania oraz wiedzę użytą podczas procesu wnioskowania.
Klasyczny system ekspertowy składa się z podsystemu pozyskiwania wiedzy, bazy wiedzy, podsystemu wnioskującego, podsystemu objaśniającego oraz interfejsu (Rys. 1.1).
Rys. 1.1. Schemat budowy i działania systemu ekspertowego.
Poszczególne moduły pełnią następujące funkcje:
Głównym czynnikiem decydującym o efektywności systemu ekspertowego jest zawartość bazy wiedzy, której jakość zależy z kolei do trafności procesu pozyskiwania i metody reprezentacji wiedzy w bazie. Reprezentacja wiedzy w klasycznym systemie ekspertowym opiera się na zasadach tradycyjnej logiki dwuwartościowej, operującej na wartościach logicznych PRAWDA (TRUE) i FAŁSZ (FALSE). Do najczęściej używanych metod reprezentacji wiedzy należą:
Najczęściej wiedza reprezentowana jest w postaci reguł:
Przy czym przesłanka może zawierać stwierdzenia połączone funktorami zdaniotwórczymi takimi jak negacja (nie), koniunkcja (i) oraz alternatywa (albo). Dochodzenie do rozwiązania problemu wiąże się najczęściej z użyciem wielu reguł i odbywa się metodą poszukiwania w przód, inaczej rozumowania progresywnego (ang. forward chaining), od przesłanek do konkluzji, lub metodą poszukiwania wstecz, inaczej rozumowania regresywnego (ang. backward chaining), startującego od punktu docelowego w kierunku warunków wejściowych.
Specyfika systemów ekspertowych nakłada pewne ograniczenia na zbiór problemów możliwych do efektywnego rozwiązywania przy pomocy takich narzędzi. Systemy ekspertowe najlepiej sprawdzają się w dziedzinach posiadających średnio ustrukturalizowaną wiedzę o problemie, w których przy braku szczegółowych algorytmów i modeli matematycznych, występują dobrze ugruntowane zasady i reguły rozumowania oraz działania. Dzięki swoim właściwościom, dzięki kumulowaniu informacji z wielu źródeł, system może operować na wiedzy zbyt szerokiej dla pojedynczego eksperta i teoretycznie, przy obniżonym koszcie, dostarczać ekspertyz przewyższających możliwości człowieka, który podlega zmęczeniu, zapomina i odczuwa emocje. Warunkiem niezbędnym do stworzenia bazy wiedzy jest jednak istnienie kompetentnych ekspertów, którzy są w stania przekazać swoją wiedzę w sposób na tyle jasny i jednoznaczny by możliwy był jej formalny zapis.
Dodatkowym problemem w klasycznych systemach ekspertowych jest zjawisko braku pełnej jednoznaczności przy opisie stwierdzeń i reguł, występujące z różnym natężeniem na skutek niepewności wiedzy, niepewności danych, stochastycznego charakteru zjawiska, lub typowego dla człowieka braku pełnej precyzji w rozumowaniu i postrzeganiu rzeczywistości. Problemy te rozwiązywane są przez łączenie klasycznego podejścia z innymi metodami, do których zaliczyć można między innymi logikę rozmytą.
Logika rozmyta (ang. fuzzy logic), albo inaczej logika wielowartościowa umożliwia odzwierciedlanie zjawisk i pojęć o charakterze niejednoznacznym, a nawet sprzecznym. Trudności jakie w konfrontacji z niejednoznacznością ludzkiego rozumowania napotyka tradycyjne wnioskowanie, oparte na dwuwartościowej logice Arystotelesa, można przedstawić na przykładzie paradoksu autorstwa Eubulidesa z Miletu:
Dana jest pewna liczba kamieni które tworzą stos.
Usunięcie jednego kamienia nie powoduje zniknięcia stosu.
Zdania te prawdziwe z punktu widzenia logiki dwuwartościowej prowadzą do konkluzji, iż stos nigdy nie może zostać usunięty. Logika rozmyta operuje na teorii zbiorów rozmytych, która jest rozwinięciem klasycznej kantowskiej teorii zbiorów, zakładającej że element "należy" lub "nie należy" do danego zbioru. W teorii zbiorów rozmytych element może częściowo należeć do danego zbioru, a stopień przynależności wyrażony jest za pomocą liczby rzeczywistej z przedziału [0; 1].
Zbiór rozmyty A definiujemy jako:
Gdzie fA jest funkcją przynależności elementów X do zbioru A. Elementy należą do zbioru A jeżeli fA (x)=1, a nie należą gdy fA (x)=0. Między pełną przynależnością a brakiem przynależności występuje płynne przejście w postaci częściowej przynależności, której stopień określa liczba z zakresu (0; 1). Funkcja przynależności opisująca zbiór rozmyty przyjmuje najczęściej kształt trójkąta, trapezu (Rys. 1.2), lub dzwonowaty (krzywa Gaussa).
Rys. 1.2. Zbiór rozmyty o kształcie trapezu.
Teoria zbiorów rozmytych wykorzystywana jest głównie w rozmytych systemach ekspertowych, operujących na zmiennych lingwistycznych, lub inaczej termach, które w odróżnieniu od zmiennych numerycznych posiadają formę pojęcia takiego jak np. "lekki", "ciepły", czy "wysoki". W procesie kwantyzacji przestrzeni zmiennych następuje wybór liczby terminów podstawowych oraz określenie odpowiadających im funkcji przynależności. Wartości wejściowe systemu można wprowadzać zarówno w postaci pojedynczych terminów podstawowych, terminów podstawowych z modyfikatorami takimi jak natężenia (np. "bardzo", "raczej"), kontrastu, lub ograniczenia oraz wartości liczbowych. W przypadku modyfikatorów, kształt zbioru rozmytego zostaje zmieniony zgodnie z użytym określeniem, a w przypadku liczb dokonuje się procesu rozmywania, czyli fuzyfikacji.
Dla zbiorów rozmytych zdefiniowano operacje sumy, iloczynu i dopełnienia odbiegające w pewnych przypadkach od praw logiki binarnej. W systemach ekspertowych używających zbioru reguł, operacje te wykorzystuje się w procesie obliczania zbioru rozmytego przesłanki o charakterze złożonym. Rozmyty system ekspertowy aktywuje na ogół wszystkie reguły na raz, wyznaczając zbiory dla wszystkich przesłanek, a następnie na ich podstawie wynikowe zbiory rozmyte każdej reguły. Efekty odpalenia każdej z reguł zostają scalone w postaci rozmytej zmiennej wyjściowej.
Wynik działania sytemu może być przedstawiony w postaci zestawu zmiennych lingwistycznych wraz z przypisanymi do nich wartościami funkcji przynależności. Zestawienie takie może nie dawać jednak jasnego obrazu sytuacji, co można rozwiązać przeprowadzając wyostrzanie, czyli defuzyfikację wyników. Jednym ze sposobów wyostrzania jest metoda średniej maksymalnej (ang. Mean Of Maximum MOM), polegająca na wyznaczaniu średniej dla obszaru o największej przynależności. W przypadku zmiennych jakościowych wiąże się to z przypisaniem poszczególnym kategoriom arbitralnie określonego przedziału liczbowego, który pozwoli na wyostrzenie uzyskanych wyników.
Teoria zbiorów rozmytych przyczyniła się do przezwyciężenia trudności jakie tradycyjne systemy ekspertowe napotkały przy modelowaniu zjawisk o charakterze rozmytym. Obecnie, systemy wykorzystujące zasady symbolicznej reprezentacji wiedzy oraz logiki rozmytej, mogą być używanie do aproksymacji funkcji i prognozowania z precyzją dorównująca sieciom neuronowym. Cechą charakterystyczną, jaką teoria zbiorów rozmytych wniosła do metod sztucznej inteligencji jest możliwość operowania pojęciami w sposób bliższy rozumowaniu człowieka, bez ograniczeń jakie nakładała klasyczna logika dwuwartościowa.
Algorytmy genetyczne są metodami poszukiwania opartymi na mechanizmach darwinowskiej teorii doboru naturalnego i dziedziczenia. Powstały one jako efekt obserwacji i analizy procesów adaptacyjnych występujących w przyrodzie. Z formalnego punktu widzenia są one iteracyjnymi, adaptacyjnymi procedurami poszukiwania rozwiązania dla problemów optymalizacji, operującymi w zakodowanej przestrzeni rozwiązań i wykorzystującymi probabilistyczne reguły do określenia kierunku poszukiwań. Ich idea odzwierciedla zasadę przetrwania jednostek najlepiej przystosowanych do otoczenia, wymianę informacji w procesie pojawiania się nowych pokoleń oraz element losowych mutacji. Dzięki tym mechanizmom nie sprowadzają się do losowego błądzenia w przestrzeni możliwych rozwiązań, ale stanowią proceduraę poszukiwań o charakterze wysoce ukierunkowanym.
Stosowanie algorytmów genetycznych wymaga zakodowania wszystkich parametrów zadania optymalizacyjnego, w postaci skończonego ciągu znaków pobranych z pewnego skończonego alfabetu. Najczęściej stosowanym i zalecanym sposobem jest kodowanie w postaci łańcuchów wartości binarnych (Tab. 1.1). Powstały w ten sposób ciąg kodowy odpowiada w biologii pojęciu chromosomu i składa się z cech, które można uznać za odpowiedniki genów. Każda cecha koduje wartość określonego parametru zadania, mogącego występować bądź w formie zmiennej jakościowej jak i ilościowej. W przypadku wartości liczbowych, a szczególnie wartości rzeczywistych dopuszczalny zakres parametru dzielony jest na równe przedziały, o rozpiętości odpowiadającej specyfice zadania, do których następnie przypisuje się liczby binarne.
| Wartość binarna | Przedział | Wartość rzeczywista |
|---|---|---|
| 000 | 0,000 - 0,249 | 0,125 |
| 001 | 0,250 - 0,499 | 0,375 |
| 010 | 0,500 - 0,749 | 0,625 |
| 011 | 0,750 - 0,999 | 0,875 |
| 100 | 1,000 - 1,249 | 1,125 |
| 101 | 1,250 - 1,499 | 1,375 |
| 110 | 1,500 - 1,749 | 1,625 |
| 111 | 1,750 - 1,999 | 1,875 |
Procedurę poszukiwania rozpoczyna wylosowanie pierwszej populacji rozwiązań, która stanowi punkt wyjścia do rozpoczęcia iteracyjnego procesu generowania kolejnych populacji, aż do spełnienia kryterium kończącego algorytm. W kolejnych cyklach następuje dekodowanie chromosomów w celu dokonania oceny elementów pod kątem dopasowania do poszukiwanego optimum. Do oceny jednostek populacji używa się funkcji przystosowania, lub inaczej dopasowania, która może mieć postać matematyczną, rozmytą lub heurystyczną. Dzięki takiej postaci funkcji, na którą nakłada się jedynie wymóg nieujemności, rozszerza się pole zastosowań opisywanej procedury, obejmując problemy optymalizacyjne o niewyraźnie określonych, rozmytych, lub słabo ustrukturalizowanych kryteriach oceny.
Kolejne populacje rozwiązań uzyskiwane są na podstawie poprzednich przez zastosowanie trzech operacji, lub inaczej operatorów:
Podstawowe znaczenie maja operator reprodukcji oraz krzyżowania, który określony jest prawdopodobieństwem od 0,6 do 0,95. Operator mutacji, z prawdopodobieństwem od 0,01 do 0,1, ma charakter drugorzędny i służy do zabezpieczenia się przed utknięciem funkcji dopasowania w minimum lokalnym.
Efektywność algorytmów genetycznych opiera się na pojęciu schematu, inaczej bloku kodującego, który określa się jako wzór definiujący podzbiór ciągów podobnych ze względu na wartość określonych pozycji. Zgodnie z twierdzeniem o schematach liczba wystąpień schematów o przystosowaniu powyżej średniej rośnie wykładniczo w kolejnych iteracjach. Przy czym dopasowanie schematu definiowane jest jako średnia arytmetyczna funkcji przystosowania wszystkich ciągów kodowych dopasowanych do schematu.
Algorytmy genetyczne realizują strategie tzw. miękkiej selekcji, dopuszczając w kolejnych krokach możliwość pojawienia się rozwiązań gorszych i uodporniając się dzięki temu na niebezpieczeństwo utknięcia w minimum lokalnym funkcji przystosowania. Jej przeciwieństwem jest strategia tzw. twardej selekcji realizowana np. podczas uczenia sieci neuronowych za pomocą algorytmu wstecznej propagacji błędu. W trakcie tego procesu każda kolejna iteracja powoduje generalnie polepszenie dopasowania parametrów, zmierzając jednak często w kierunku minimum lokalnego.
Obliczenia genetyczne podobnie jak sieci neuronowe mogą rozwiązywać problemy o charakterze bardzo słabo ustrukturalizowanym, przy braku informacji o związkach pomiędzy parametrami i dowolnych, w tym silnie nieliniowych, powiązaniach między nimi. Są one określane jako metody odporne, czyli możliwe do zastosowania z dobrym skutkiem w szerokim spektrum problemów. Specyfika algorytmów genetycznych, wywodzących się z adaptacyjnych możliwości organizmów żywych i ukierunkowanych na poszukiwanie najlepszego dla zadanej funkcji celu zbioru parametrów, czyni je przede wszystkim idealnym narzędziem do wszelkiego rodzaju optymalizacji, a szczególnie optymalizacji problemów nieliniowych, wielowymiarowych i nieprecyzyjnie określonych.
Systemy hybrydowe stanowią kolejną generację inteligentnych aplikacji komputerowych, charakteryzującą się łączeniem różnych metod sztucznej inteligencji w celu tworzenia nowej jakości oraz eliminacji słabych stron technik stosowanych dotychczas w formie klasycznej.
Przewagą systemów ekspertowych jest możliwość prowadzenia inteligentnego dialogu z użytkownikiem oraz prezentacja ścieżki rozumowania, uwiarygodniającą system i pozwalającą zrozumieć konkluzję. Niestety trudności związane z pozyskiwaniem wiedzy oraz system logiki dwuwartościowej poważnie ograniczają pola możliwych zastosowań. Sieci neuronowe z drugiej strony umożliwiają zautomatyzowanie procesu uczenia, ale kosztem braku wiedzy o charakterze modelowanych zależności. Algorytmy genetyczne wymagają najmniej informacji do przeprowadzenia procesu optymalizacji, generując jednak, podobnie jak systemy neuronowe, nie objaśnione rozwiązania. Dodatkowo nakład czasu i mocy obliczeniowych zużywany przez algorytm genetyczny w procesie optymalizacji jest chyba największy wśród technik sztucznej inteligencji. Przedstawione wady i zalety nasuwają konkluzję o celowości łączenia rozwiązań klasycznych, które wsparte koncepcjami logiki rozmytej, prowadzą do stworzenia nowej, ulepszonej generacji systemów inteligentnych.
Różnorodność pomysłów i rozwiązań skłania do przeprowadzenia klasyfikacji systemów hybrydowych. Ze względu na stopień integracji możemy wyróżnić następujące kategorie rozwiązań:
Prace nad systemami hybrydowymi doprowadziły do ugruntowania typowych, najczęściej używanych koncepcji łączenia systemów klasycznych. Pojawienie się teorii zbiorów rozmytych doprowadziło praktycznie do zarzucenia prac nad systemami ekspertowymi opartymi na klasycznej logice dwuwartościowej. Obecne aplikacje ekspertowe operują na pojęciach rozmytych i w takiej formie tworzą systemy samodzielne lub są włączane jako jeden z podsystemów większego projekty hybrydowego.
Nowy model często opiera się na współpracy sieci neuronowych i systemów ekspertowych opartej na jednej z trzech strategii:
Jednym ze sposobów przezwyciężenia typowego dla sieci neuronowych braku informacji o modelowanych związkach są konekcjonistyczne systemy ekspertowe. W systemach neuronowych o rozproszonej reprezentacji wiedzy, gdzie nie można związać konkretnego pojęcia z pojedynczym neuronem, przejawia się to w różnorodnych metodach ekstrakcji reguł z sieci. Modele neuronowe o lokalnej reprezentacji wiedzy, takie jak sieci ekspertowe lub semantyczne sieci neuronowe, wiążą poszczególne pojęcia zagadnienia z konkretnymi neuronami, umożliwiając użytkownikowi interpretację wiedzy opisanej przez parametry sieci.
Do najbardziej udanych i popularnych połączeń należą modele neuronowo-rozmyte. Obydwie koncepcje mogą operować na zniekształconych i niepewnych danych, przetwarzają w sposób numeryczny, a automatyczne uczenie sieci doskonale dopełnia zdolności systemów rozmytych do operowania wiedzą symboliczną i jasnymi regułami wnioskowania. W badaniach nad neuronowo-rozmytymi systemami hybrydowymi można wyróżnić trzy kierunki:
Algorytmy genetyczne, jako uniwersalne optymalizatory, chętnie wykorzystywane są we wszystkich pozostałych gałęziach sztucznej inteligencji. W systemie ekspertowym metoda tzw. uczenia ewolucyjnego może być wykorzystywana do identyfikacji faktów i reguł bazy wiedzy. W systemie rozmytym algorytm genetyczny może rozwiązywać złożony problem poszukiwania optymalnej postaci funkcji przynależności zbiorów rozmytych dla zmiennych lingwistycznych. Metody ewolucyjne są także alternatywnym sposobem uczenia sieci neuronowych, oferującym w zamian za wolniejszą zbieżność algorytmu, strategię miękkiej selekcji, bardziej odpornej na utknięcie w minimum lokalnym lub wypłaszczenie powierzchni funkcji błędu. Algorytm ewolucyjny jest także jedyną sformalizowaną metodą pozwalającą na globalną optymalizacje struktury sieci.
Systemy hybrydowe są stosunkowo nową gałęzią sztucznej inteligencji. Koncepcja łączenia zalet i unikania wad pojedynczych systemów w postaci tradycyjnej stwarza obiecującą perspektywę dalszego rozwoju i coraz szerszych zastosowań.
Lista dziedzin i problemów w których stosuje się lub próbuje się stosować techniki sztucznej inteligencji jest ogromna i na pewno wraz z jej rozwojem będzie się jeszcze bardziej wydłużać. Warto zwrócić uwagę na typowe, najbardziej znane zastosowania rozwijane w każdej z jej gałęzi.
Sztuczne sieci neuronowe są bardzo intensywnie wykorzystywane w sferze techniki. Większość zastosowań koncentruje się wokół zagadnienia rozpoznawania, a zwłaszcza rozpoznawania kontekstowego i niezależnego od typowych transformacji, jak np. przetwarzania pisma, mowy, obrazów czy sygnałów sonaru lub radaru. Sieci neuronowe wykorzystuje się także bardzo intensywnie w robotyce i automatyce, głównie w kontekście sterowania i optymalizacji.
Drugim, poza techniką, obszarem silnego wykorzystania systemów neuronowych jest sfera problemów ekonomicznych, do których należą:
Przedstawiony zestaw problemów ekonomicznych obejmuje także inne domeny pozostałych gałęzi sztucznej inteligencji, czego jaskrawym przykładem jest typowa dla systemów ekspertowych analiza danych w postaci data mining - poszukiwania wiedzy.
Systemy ekspertowy, nazywane także eksperckimi występuj na ogół w postaci wysoko wyspecjalizowanych programów doradczych, pozwalających także na poszukiwanie ukrytych reguł, prześledzenie toku rozumowania, lub predykcję. Do dziedzin najchętniej wykorzystujących te techniki należą: medycyna, statystyka, chemia, geologia, diagnostyka techniczna, wspomaganie badań naukowych i zarządzanie.
Domeną algorytmów genetycznych jest przede wszystkim wszelkiego rodzaju optymalizacja, oraz symulacja - głównie procesów biologicznych. Optymalizacja obejmuje zagadnienia techniczne, jak np. projektowanie układów elektronicznych, optymalizacja konstrukcji, optymalizacja elementów podwozia samolotów, optymalizacja rurociągu, obróbka obrazów, oraz problemy innych dziedzin, do których należą diagnostyka medyczna, badania operacyjne, zarządzanie czy nawet poszukiwanie reguł dowodzenia na polu walki, lub system klasyfikacji do przewidywania wydarzeń międzynarodowych.
Obecna tendencja do tworzenia systemów hybrydowych zaciera granice między zagadnieniami typowymi dla poszczególnych gałęzi sztucznej inteligencji i jeszcze bardziej poszerza obszar jej potencjalnych zastosowań.
Niejednoznaczność pojęcia "inteligencja" utrudnia zadania stojące przed nauką, która za cel stawia sobie jej symulowanie. W ogólnym zarysie sztuczna inteligencja dąży do poznania i naśladowania sprawności umysłowych człowieka, koncentrujących się wokół umiejętności abstrahowania, uczenia się i przystosowania do nowych warunków otoczenia. Z punktu widzenia praktycznego jest próbą przezwyciężenia ograniczeń tradycyjnych, opartych na szczegółowych algorytmach, systemów komputerowych, słabo lub zupełnie nie radzących sobie w pewnych klasach problemów. Cechą charakterystyczną inteligentnych aplikacji jest bardzo wąska specjalizacja. Obejmują one także rozwiązywanie problemów nie do końca zaliczanych do przejawów inteligentnego myślenia, takich jak sterowanie robotami i pojazdami bezzałogowymi albo rozpoznawanie obrazów.
Rozwój badań nad technikami sztucznej inteligencji doprowadził do wykształcenia się w ich obrębie nurtu bionicznego oraz pragmatycznego. Owocem badań nad twardą sztuczną inteligencją są sztuczne sieci neuronowe, specjalizujące się w aproksymacji wszelkiego rodzaju funkcji, klasyfikowaniu danych i rozpoznawaniu wzorców. Nurt pragmatyczny doprowadził do rozwoju wysoko wyspecjalizowanych systemów ekspertowych, mających ambicje do odzwierciedlania wiedzy i sposobu rozumowania eksperta.
Nieco poza głównym nurtem badań rozwinęła się także teoria algorytmów genetycznych, które okazały się idealnym i uniwersalnym narzędziem do rozwiązywania problemów optymalizacyjnych.
Obecna tendencja do łączenia elementów różnych technik, często na gruncie logiki rozmytej, prowadzi do powstawania coraz doskonalszych, inteligentnych systemów hybrydowych. Znajdują one coraz szersze zastosowania w praktyce, a bogactwo pomysłów w zakresie łączenia różnych metod, ograniczone jedynie ludzką pomysłowością i mocami obliczeniowymi komputerów, świadczy o dużym zainteresowaniu badaczy i perspektywie dalszego, dynamicznego rozwoju systemów inteligentnych.