technika
Autor: Ryszard Tadeusiewicz | dodano: 2012-09-28
Archipelag sztucznej inteligencji

Sztuczna inteligencja jest jedną z tych dziedzin nauki, o której każdy słyszał, a mało kto wie, czym się ona zajmuje. Warto ten stan zmienić, bo jest niemal pewne, że w najbliższych latach sztuczna inteligencja będzie miała silny wpływ na rozwój naszej cywilizacji. 

Sztuczna inteligencja (Artificial Intelli­gence) to zbiór takich metod budowy sztucznych tworów (obecnie najczęściej programów kompu­terowych), które skutecznie naśladują działania ludzkiego intelektu. Są one zdolne do samodziel­nego rozwiązywania problemów na tyle trudnych, że gdy rozwiąże je człowiek, nazwiemy go inteligentnym. Ła­two się domyślić, że sztuczna inteligencja nie jest dzie­dziną tak zogniskowaną jak mechanika ani tak wydzie­loną jak metalurgia.

Każdy obszar jej badań jest dziś oddzielną, izolowaną wyspą. W archipelagu tych wysp znajdziemy sieci neuronowe, które modelują struktury i zasady działania ludzkiego mózgu, systemy eksperto­we, a także systemy wykorzystujące logikę matematycz­ną, drzewa decyzyjne, algorytmy genetyczne i zbiory roz­myte. Zróżnicowanie jest tak duże z powodu różnorod­ności rozwiązywanych problemów, rzadko się bowiem zdarza, aby metoda przydatna do rozwiązania jednego z nich dała się wprost zastosować do innego.

Sąd nad inteligencją
W kontaktach z systemami informatycznymi cechuje nas hipokryzja. Oceniając inteligencję innych (zwłaszcza wła­snych dzieci), zachwycamy się pewnymi osiągnięciami, traktując je jako wyróżnik wysokiej inteligencji, podczas gdy te same czynności wykonywane sprawniej przez kom­putery nie skłaniają nas, żeby przyznać im atrybut „by­cia inteligentnymi”. Przykład?

W każdej szkole za inteli­gentnego uchodzi uczeń, który się dobrze uczy: sprawnie przyswaja wiadomości i potrafi je na życzenie dokładnie odtworzyć, np. na klasówce. No tak, ale przecież kompu­terowe bazy i banki danych robią to perfekcyjnie! Kom­putery gromadzą ogromne ilości informacji, na życzenie wyszukują je i udostępniają, niczego przy tym nie zapomi­nając ani nie przekręcając – zatem w każdej szkole kom­puter byłby prymusem. A jednak nie jest, bo mówimy, że jest to tylko mechaniczna rejestracja i odtwarzanie wia­domości, a inteligencja to przecież coś innego.

No dobrze – ale co?
Jeszcze w latach 50. Alan Turing zaproponował test, który miał rozstrzygać o inteligencji maszyny. Pozwólmy arbitrowi, którym jest oczywi­ście człowiek, pogawędzić z kilkoma rozmówcami, wśród których mogą być zarówno ludzie, jak i maszyny. Jeśli po długiej i niczym nieograniczonej rozmowie (prowa­dzonej w sposób, który nie ujawnia tożsamości rozmów­cy, a więc przez e mail lub czat; dziś wykluczony byłby telefon) arbiter orzeknie, że jego rozmówcą był inteli­gentny i wrażliwy człowiek, a tymczasem dyskutował z komputerem – oznacza to, że urządzenie wykazało się inteligencją. Testu Turinga nie udało się „zaliczyć” żadnemu z programów, krytycy zaś (m.in. zajadle zwal­czający AI filozof John Searle) wymyślili nawet całkiem zgrabny przykład, który ma uzasadnić tezę, że kompu­ter inteligentny być nie może, nawet jeśli kiedyś zaliczy test Turinga (chodzi o tzw. chiński pokój, opisany w ar­tykule „Cegiełki umysłu”, str. 76).

Na początku był wniosek
Pierwsze komputery szybko i bezbłędnie operowały na liczbach. Zadano pytanie, czy nie można wykorzy­stać ich także do obliczeń symbolicznych, np. do wypro­wadzania wzorów. Odpowiedź nie była prosta, bo kon­struktorzy komputerów zadbali, aby operowały one wprawdzie na dowolnych liczbach, lecz zawsze mieli na względzie liczby kon­kretne. Sztuczna inteligencja posta­wiła nowe wyzwania. Tu trzeba by­ło wprowadzić do obliczeń np. sym­bol x, który był zmienną przyjmującą różne wartości, nieznane w momencie, gdy komputer rozważał wzór z tą zmienną. Na tym polega potęga i trudność matematyki: wypraco­wuje ona prawa, które obowiązu­ją dla każdej wartości x, co odpo­wiada korzystającym ze wzorów ludziom i przeszkadza operującym wzorami komputerom.

Problem rozwiązano, gdyż matematykę daje się wyrazić za pomocą logi­ki, a komputer może po­służyć się jej prawami. Pojęcia logiczne można bowiem związać z liczbami, np. stwierdzeniu prawdziwemu przypisując liczbę 1, a fałszywe­mu 0. Ta prosta zasada oraz ścisłe (a więc możliwe do zapisania w po­staci algorytmów) reguły postępowa­­­nia w logice spowodowały, że już w latach 50. powstały systemy sprawnie przetwarzające wzory matematyczne. Dzisiaj mamy wiele programów (np. popularny Maple), które automatyczne prowadzą przekształcenia algebraiczne na ogólnych wzorach matematycznych. W efekcie zniknęła jedna z udręk – mozolne „ręczne” wyprowadzanie wzorów.

Co to ma wspólnego ze sztuczną inteligencją? Jest ona tu kluczowa, a pierwsze (i do dzisiaj bardzo cenio­ne!) narzędzie sztucznej inteligencji, język LISP, jest wy­korzystywany głównie przy przekształceniach wzorów symbolicznych. Komputerowe systemy zautomatyzo­wanych obliczeń symbolicznych objęły niemal wszyst­kie dziedziny matematyki: poza logiką matematyczną i typową algebrą zautomatyzowano symboliczne obli­czenia i przekształcenia macierzowe oraz wektorowe, to samo udało się zrobić z analizą matematyczną (rachu­nek różniczkowy), w probabilistyce (rachunek prawdo­podobieństwa) oraz w teorii przekształceń operatoro­wych. Jedynym „bastionem”, który broni się przed au­tomatyzacją, jest rachunek całkowy. Obliczanie całek nieoznaczonych to nawet dla człowieka nie lada wy­zwanie, bo w tej dziedzinie nie ma ustalonych, uniwer­salnych schematów.

Mądrość w czeluściach maszyny
Sztuczną inteligencję zazwyczaj postrzegamy jako alter­natywę dla ludzkiego rozumu. Jest to wyobrażenie błęd­ne, bo wciąż jeszcze to my jesteśmy mądrzejsi. Specjaliści od AI zdali sobie z tego sprawę i zamiast tworzyć całko­wicie sztuczne źródła mądrości, postanowili zbudować inteligentne opakowanie dla ludzkiej wiedzy. Tak doszło do powstania systemów ekspertowych. System ekspertowy zastępuje człowieka eksperta w większości przypadków, co jest tańsze i wygodniejsze. Zastanówmy się bowiem, do czego i kiedy potrzebujemy eksperta? Oto pojawia się problem i opinia eksperta jest potrzebna, by go rozwiązać. Prosimy zatem, żeby eks­pert wyjaśnił problem, abyśmy mogli sobie z nim pora­dzić; ten typ ekspertyz nazywamy diagnostycznym. In­­ny przypadek zachodzi, gdy trzeba podjąć skomplikowaną decyzję i potrzebujemy sugestii, co zrobić; działanie eksperta polega wówczas na doradztwie. Wreszcie najbardziej niezręczna (lecz często konieczna) rola eksperta polega na krytyce tego, co robimy, ze wskazaniem, gdzie popełniamy błąd.

Pomysł, aby żywego eksperta zastąpić we wspomnia­nych rolach programem komputerowym, zrodził się z kilku obserwacji. Zauważono bowiem, że np. w medy­cynie istnieje stała potrzeba trafnego wiązania przesła­nek – symptomów choroby – z wnioskami, jaka to cho­roba i jak ją można leczyć (zresztą do tego właśnie ce­lu służył jeden z pierwszych i chyba najbardziej znany system ekspertowy MYCIN). Stwierdzono jednak, że większość pytań do ekspertów ludzi dotyczyła spraw rutynowych i powtarzalnych. Każdy przypadek wyma­gał odrębnego rozważenia, ale zasób wiedzy, jaki był po­trzebny, był dość ograniczony. Podjęto więc, zakończoną sukcesem, próbę uzyskania wiedzy człowieka eksperta i umieszczenia jej w komputerze. Następnie zbudowa­no system, który przeprowadzając automatyczne wnio­skowanie na podstawie bazy wiedzy eksperta (jednego lub kilku), potrafił udzielać rad. Wędrując od przesłan­ki do przesłanki i od opinii do opinii, programy potra­fią dziś „utkać” z elementów wiedzy ekspertów rozwią­zanie problemu, który postawił użytkownik.

Ponieważ proces budowania odpowiedzi może być dokładnie śle­dzony, oprogramowanie potrafi na życzenie uzasadnić swą radę. Ludzie bardzo to lubią: wiedzieć, dlaczego na­leży postąpić tak, a nie inaczej. Systemy ekspertowe znalazły zastosowanie w tech­nice, bankowości, badaniach naukowych i w wielu in­nych miejscach. Swego czasu na rynku amerykańskim rekordy popularności bił system ekspercki, który dora­dzał, jak sporządzić testament, by skutecznie wydzie­dziczyć krewnych i cały majątek zapisać pieskowi. Nie­koniecznie ukochanemu.

Logika naprawdę rozmyta
Nowoczesne systemy AI mogą się różnić od tradycyj­nych systemów informatycznych (prowadzących obli­czenia z maksymalną dokładnością) stosowaniem pojęć i reguł rozmytych. Pojęcie rozmycia (ang. fuzzy) jest ła­twe i trudne zarazem. Łatwe, bo ludzie ciągle posługują się pojęciami rozmytymi, co nie przeszkadza im się ro­zumieć i podejmować decyzje w następstwie rozumo­wania odwołującego się do tego typu pojęć. Dla kom­putera rozmycie jest jednak trudne, bo jest on „przy­zwyczajony” do precyzji i jednoznaczności. Na czym polega rozmycie? Sięgnijmy do żartu, ja­ki (podobno) wymyślili 2,5 tys. lat temu uczniowie So­kratesa. Filozof ten słynął z obfitego owłosienia, łatwo więc zrozumieć złośliwość żartów uczniów, którzy roz­trząsali za plecami mistrza (ale tak, by ten słyszał ich rozmowy) następujący problem.

Gdyby Sokratesowi wyrywać włosy, jeden po drugim, po pewnym czasie byłby całkiem łysy. Pytanie brzmi: wyrwanie którego włoska spowoduje wyłysienie? Pierwszego nie, drugie­go też. Ale gdybyśmy wytrwale skubali, Sokrates byłby w końcu łysy jak kolano. Który włosek był granicą mię­dzy bujnie owłosionym filozofem a jego oskubaną kary­katurą? Problemu nie da się precyzyjnie rozwiązać, bo przejście między bujną czupryną a łysiną jest płynne, podobnie jak przekształcanie się dziecka w młodzień­ca, człowieka dojrzałego i wreszcie w starca. W sztucznej inteligencji podobne problemy rozwią­zuje się za pomocą teorii zbiorów rozmytych, co pozwa­la przeprowadzać precyzyjne komputerowe rozumowa­nia, biorące za podstawę nieostre (rozmyte) pojęcia i re­guły. Działania na zbiorach rozmytych umożliwiają też ­­­­­­­­­prowadzenie obliczeń na liczbach przybliżonych. Często dane liczbowe są niedokładne, np. pochodzą z mało precyzyjnych pomiarów. Jest oczywiste, że wynik mnożenia „około 5” przez „w przybliżeniu 3” da „około 15”, jednak możliwość dokładnego przewidzenia, jak rozmycie danych wejściowych wpłynie na stopień niedokładności wyniku, bywa niekiedy bardzo cenna.

Dzięki teorii zbiorów rozmytych możemy zautomatyzować rozważania, które ludzie prowadzą, korzystając ze „zdrowego rozsądku”. Metodyka ta okazała się tak skuteczna, że niekiedy tam, gdzie pierwotnie mamy dokładne dane z różnych sensorów (np. w automatyce i robotyce), dokonuje się ich sztucznego rozmycia (fuzyfikacji),następnie analizuje się je metodami logiki rozmytej i dopiero gdy wyniki mają być zastosowane do sterowania automatem, doprowadza się je do postaci zwykłych liczb (defuzyfikuje).

 Ukryty urok gier Mało kto zastanawia się nad faktem, że dobre gry kom­puterowe, zwłaszcza strategiczne, muszą mieć pewną do­zę inteligencji. Wśród tego typu gier zawsze wyróżniały się szachy. Zwycięska partia szachów jest bez wątpienia triumfem intelektu – i to czystego, bo zasady nie zosta­wiają marginesu dla przypadku (odgrywającego ważną rolę np. w brydżu) czy zręczności manualnej. W szachy wygrywa ten, kto lepiej (skuteczniej) analizuje sytuację na szachownicy, wyciąga trafniejsze wnioski i tworzy lepsze plany strategiczne. Badacze zajmujący się AI od początku byli zaintere­sowani stworzeniem komputerowego szachisty.

Proste reguły, łatwa ocena (widać, kto wygrał), możliwość ana­lizy drogi, którą przebył komputer – wszystko to spra­wiało, że programy szachowe stały się ulubionym „poli­gonem”, na którym badano różne metody i algorytmy. Słowo poligon można zresztą pisać bez cudzysłowu, bo prace były szczodrze finansowane przez wojsko. Agen­cja DARPA łożyła ogromne kwoty na rozwój programów szachowych, wierzono bowiem, że zasady, które pozwo­lą znaleźć optymalną strategię w symbolicznej wojnie na szachownicy, można będzie wykorzystać do wspoma­gania dowodzenia na prawdziwym polu walki. Schemat działania programu szachowego jest oczy­wisty. W określonej sytuacji gracz może wykonać pew­ną liczbę ruchów. Żeby wybrać ruch, który doprowadzi do zwycięstwa, gracz musi przewidzieć, co zrobi potem ­­­­­­jego przeciwnik. Z kolei gdy przewidzi ruch przeciwnika, może zastanowić się, jaki w tej nowej sytuacji zrobić ruch, by zwiększyć szanse na zwycięstwo itd.

Teoretycznie jest to proste: „ja mu tak, on mi tak, wtedy ja tak, a on …”. Problem w tym, że w większości sytuacji liczba możliwych ruchów jest dość duża, liczba możliwych odpowiedzi partnera na te ruchy – bardzo duża, a liczba własnych posunięć, które trzeba rozważyć jako odpowiedź na działanie przeciwnika, jest już gigantyczna. Aby maszyna znalazła zwycięską strategię, musiałaby liczyć setki tysięcy, a nawet miliony lat! Sytuacja ta jest typowa: w większości zadań stawia­nych AI, gdy zmierzamy do dokładnych rozwiązań, zło­żoność obliczeniowa bardzo szybko rośnie. Typowa stra­tegia odwołuje się do heurystyki – mądrego zgadywania, które warianty badać, a które odrzucić bez badania. Sto­sując heurystykę, naukowcy w końcu nauczyli kompu­tery grać w szachy. Tylko czy to pozwala już twierdzić, że komputery są inteligentne?

Uczę się – więc jestem
Cechą sztucznej inteligencji jest m.in. zdolność do ucze­nia się, a zwłaszcza do uogólniania zdobytej wiedzy. Sys­tem może doskonalić swoje działanie i sam odkrywać sposoby rozwiązywania zadań, z którymi przedtem nie miał do czynienia. Ta ostatnia cecha odróżnia systemy naprawdę inteligentne od tych, które do tego miana bez­prawnie aspirują.  Maszyny uczące się są przydatne, głównie dlatego, że nie trzeba ich programować – wystarczy pokazać im odpowiednią liczbę przykładów poprawnie rozwiąza­nych zadań! Na tej podstawie maszyna sama znajdzie metodę ich rozwiązywania, a potem będzie ją stoso­wać przy innych problemach. Istotne, że takiej maszy­nie możemy kazać rozwiązać te zadania, które wpraw­dzie sami potrafimy rozwiązać, ale nie uświadamiamy sobie, jak to robimy. Przykład: rozpoznawanie liter.

Czytając ten tekst, korzystasz z faktu, że twój umysł odróżnia „A” od „B”, lecz gdybyś miał podać dokład­ny przepis, za pomocą którego komputer wyposażony w kamerę mógłby rozpoznać każdą literę, byłbyś w kło­pocie. Nie potrafimy podać dokładnej „recepty” na roz­poznawanie liter, a mimo to sprawnie się nimi posłu­gujemy, przekazując zaś tę umiejętność innym, posłu­gujemy się przykładami. Podobnie postępowano z pierwszymi maszynami uczącymi się, które nieprzypadkowo nazywano percep­tronami („rozpoznawaczami”). Nie miały one progra­mów odróżniających litery (lub inne obiekty, np. odci­ski palców), ale potrafiły się uczyć. Dziś dysponujemy programami automatycznie odczytującymi z obrazów pismo drukowane oraz staranne pismo odręczne, mo­żemy automatycznie szukać odcisków palców w poli­cyjnych bazach danych, sprawnie komputerowo inter­pretować zdjęcia lotnicze i satelitarne, mamy rakiety, które potrafią same wyszukać cele itp. Niektóre zada­nia wciąż są jednak za trudne, np. maszynom nadal nie udaje się rozpoznawać ludzkich twarzy. To zadanie jest zresztą jednym z wielu przykładów znajdowania przez nasz umysł poprawnego rozwiązania bez dopuszczania do poziomu świadomości zasad postępowania.

Decydują drzewa
W procesie automatycznego uczenia się stosuje się m.in. drzewa decyzyjne. Korzystanie z nich przypomina nieco jazdę po mieście. Startujemy z określonego punktu (korzenia drzewa) i poruszamy się aż do najbliższego skrzyżowania (węzła). Tu decydujemy, w którą stronę pojedziemy, przy czym na decyzję może wpływać ocena pewnego warunku (np. niektóre drogi mogą być akurat zatłoczone lub w remoncie). Rozstrzygamy dylemat i jedziemy wybraną ulicą aż do kolejnego skrzyżowania (węzła), gdzie znowu trzeba ocenić nowy warunek i wybrać kolejny fragment drogi itp. Wreszcie dojeżdżamy do celu (liścia drzewa) i albo osiągamy sukces, albo odnotowujemy niepowodzenie, zależnie od tego, czy udało się nam dojechać na czas.

Drzewa decyzyjne są wygodnym narzędziem przy podejmowaniu decyzji w skomplikowanych sytuacjach. Za ich pomocą sprawdza się przed startem stan techniczny samolotu lub rozstrzyga, czy bank ma udzielić wnioskodawcy pożyczki. Jednak prawdziwie użyteczne są drzewa, które się uczą. Punktem wyjścia jest wówczas zbiór uczący – zestaw przykładowych procesów, w których stwierdzono, jakie były ich skutki. Na przykład w zadaniu z pożyczką można posłużyć się zapisami wcześniejszych transakcji, w których pewnym ludziom udzielono kredytów, a innym nie. Badając, które z tych decyzji były trafne, można znaleźć zbiór reguł zwiększający w przyszłości szanse korzystnych decyzji. Taki proces gromadzenia ogólnej wiedzy na podstawie konkretnych doświadczeń nazywa się indukcją (jest on przeciwieństwem dedukcji, w której konkretne wnioski wyciąga się na podstawie ogólnej wiedzy, np. o zachowaniach ludzi).

Tworzenie drzewa indukcyjnego przypomina planowanie trasy przejazdu przez miasto na podstawie wielu doświadczeń. Raz jedziemy z taksówkarzem, co pomaga zaplanować trasę przyszłego własnego przejazdu (w uczących się drzewach decyzyjnych odpowiada to wykorzystaniu przykładowego poprawnego rozwiązania jako czynnika napędzającego proces uczenia). Innym razem sami wybieramy się w drogę, podejmując decyzje na chybił trafił i oceniając końcowy wynik. Gromadzimy więc wiedzę, która pozwala ustalić strukturę drzewa. W przykładzie z przejazdem przez miasto ustalenie struktury polega na tym, by wiedzieć, na których skrzyżowaniach można jechać bez zastanowienia (takie skrzyżowania nie będą węzłami w drzewie decyzyjnym, bo nie podejmujemy na nich decyzji), a na których sprawdzać pewne warunki (na co zwracać uwagę w kolejnych węzłach).

W sieci neuronów
Czas wspomnieć o sieciach neuronowych, które budową naśladują strukturę mózgu i działają według zasad i reguł odkrytych przez biologów. Sztuczne sieci neuronowe początkowo były specjalistycznymi urządzeniami elektronicznymi. Pierwsi konstruktorzy budowali je, aby się przekonać, czy uda się wykorzystać wiedzę wydartą przyrodzie. Entuzjazmowano się tym, że urządzenia te działały, potrafiły się uczyć, miały zdolność do uogólniania wiedzy, a także pewne dodatkowe cechy, znane z obserwacji biologicznych i dość egzotyczne w świecie techniki, np. odporność na uszkodzenia. Jak działają sieci neuronowe? Spośród wielu cech rzeczywistych neuronów wybiera się dwie lub trzy podstawowe własności i buduje się sztuczny neuron – podstawowy element sieci. Jest on prymitywny, ale dzięki temu tani, co pozwala tworzyć sieci z tysięcy obiektów. Struktura samej sieci jest zazwyczaj uproszczona: są to regularne warstwy identycznie połączonych neuronów, co w niewielkim stopniu przypomina urozmaiconą budowę mózgu.

Takie struktury neuropodobne można tworzyć jako specjalizowane układy elektroniczne, ale częściej symuluje się je na komputerach. Początkowo robiono to z ciekawości, lecz nieoczekiwanie dla badaczy sztuczne sieci neuronowe zaczęły wykazywać zalety, których nie miały i nie mają zwykłe programy. Przede wszystkim potrafią się uczyć, jak należy rozwiązywać zadania, co czyni ich użycie bardzo wygodnym – zamiast z wysiłkiem programować maszynę, bierzemy sieć neuronową i pokazujemy jej zadania wraz z poprawnymi rozwiązaniami. Sieć samo dzielnie odkrywa metodę ich rozwiązywania, a gdy już to zrobi, potrafi uogólnić zasady postępowania na za dania podobne do przykładowych, lecz nie identyczne. Dzięki temu sieci mogą rozwiązywać nawet te problemy, których sam twórca sieci rozwiązać by nie potrafił. Sztucznej inteligencji używa się dziś do wielu celów, zarówno poważnych (na przykład w diagnostyce medycznej), jak i rozrywkowych (japońskie systemy sztucznej inteligencji wspomagające gospodynie domowe w wypieku ciasteczek). Mimo wielu sukcesów, nie udało się jednak stworzyć systemu, który dorównywałby człowiekowi intelektem i polotem. Odpowiedź na pytanie, czy jest to w ogóle możliwe, przyniesie dopiero przyszłość.

Więcej w specjalnym wydaniu miesięcznika „Wiedza i Życie" nr 02/2008 »
Drukuj »
Ten artykuł nie został jeszcze skomentowany.
Aktualne numery
05/2020
04/2020
Kalendarium
Czerwiec
2
W 1966 r. amerykańska sonda Surveyor 1 wylądowała na Księżycu, stając się pierwszym amerykańskim statkiem kosmicznym, który wylądował na innym ciele niebieskim.
Warto przeczytać
Co by było, gdyby twój poziom inteligencji okazał się wyższy, niż ci się wydaje? Czy w twojej głowie kryje się geniusz, który tylko czeka, żeby się ujawnić? A może chciałbyś zażyć pigułkę, która zwiększy twój potencjał intelektualny?

WSPÓŁPRACUJEMY
Logowanie

Nazwa użytkownika

Hasło

Autor: Ryszard Tadeusiewicz | dodano: 2012-09-28
Archipelag sztucznej inteligencji

Sztuczna inteligencja jest jedną z tych dziedzin nauki, o której każdy słyszał, a mało kto wie, czym się ona zajmuje. Warto ten stan zmienić, bo jest niemal pewne, że w najbliższych latach sztuczna inteligencja będzie miała silny wpływ na rozwój naszej cywilizacji. 

Sztuczna inteligencja (Artificial Intelli­gence) to zbiór takich metod budowy sztucznych tworów (obecnie najczęściej programów kompu­terowych), które skutecznie naśladują działania ludzkiego intelektu. Są one zdolne do samodziel­nego rozwiązywania problemów na tyle trudnych, że gdy rozwiąże je człowiek, nazwiemy go inteligentnym. Ła­two się domyślić, że sztuczna inteligencja nie jest dzie­dziną tak zogniskowaną jak mechanika ani tak wydzie­loną jak metalurgia.

Każdy obszar jej badań jest dziś oddzielną, izolowaną wyspą. W archipelagu tych wysp znajdziemy sieci neuronowe, które modelują struktury i zasady działania ludzkiego mózgu, systemy eksperto­we, a także systemy wykorzystujące logikę matematycz­ną, drzewa decyzyjne, algorytmy genetyczne i zbiory roz­myte. Zróżnicowanie jest tak duże z powodu różnorod­ności rozwiązywanych problemów, rzadko się bowiem zdarza, aby metoda przydatna do rozwiązania jednego z nich dała się wprost zastosować do innego.

Sąd nad inteligencją
W kontaktach z systemami informatycznymi cechuje nas hipokryzja. Oceniając inteligencję innych (zwłaszcza wła­snych dzieci), zachwycamy się pewnymi osiągnięciami, traktując je jako wyróżnik wysokiej inteligencji, podczas gdy te same czynności wykonywane sprawniej przez kom­putery nie skłaniają nas, żeby przyznać im atrybut „by­cia inteligentnymi”. Przykład?

W każdej szkole za inteli­gentnego uchodzi uczeń, który się dobrze uczy: sprawnie przyswaja wiadomości i potrafi je na życzenie dokładnie odtworzyć, np. na klasówce. No tak, ale przecież kompu­terowe bazy i banki danych robią to perfekcyjnie! Kom­putery gromadzą ogromne ilości informacji, na życzenie wyszukują je i udostępniają, niczego przy tym nie zapomi­nając ani nie przekręcając – zatem w każdej szkole kom­puter byłby prymusem. A jednak nie jest, bo mówimy, że jest to tylko mechaniczna rejestracja i odtwarzanie wia­domości, a inteligencja to przecież coś innego.

No dobrze – ale co?
Jeszcze w latach 50. Alan Turing zaproponował test, który miał rozstrzygać o inteligencji maszyny. Pozwólmy arbitrowi, którym jest oczywi­ście człowiek, pogawędzić z kilkoma rozmówcami, wśród których mogą być zarówno ludzie, jak i maszyny. Jeśli po długiej i niczym nieograniczonej rozmowie (prowa­dzonej w sposób, który nie ujawnia tożsamości rozmów­cy, a więc przez e mail lub czat; dziś wykluczony byłby telefon) arbiter orzeknie, że jego rozmówcą był inteli­gentny i wrażliwy człowiek, a tymczasem dyskutował z komputerem – oznacza to, że urządzenie wykazało się inteligencją. Testu Turinga nie udało się „zaliczyć” żadnemu z programów, krytycy zaś (m.in. zajadle zwal­czający AI filozof John Searle) wymyślili nawet całkiem zgrabny przykład, który ma uzasadnić tezę, że kompu­ter inteligentny być nie może, nawet jeśli kiedyś zaliczy test Turinga (chodzi o tzw. chiński pokój, opisany w ar­tykule „Cegiełki umysłu”, str. 76).

Na początku był wniosek
Pierwsze komputery szybko i bezbłędnie operowały na liczbach. Zadano pytanie, czy nie można wykorzy­stać ich także do obliczeń symbolicznych, np. do wypro­wadzania wzorów. Odpowiedź nie była prosta, bo kon­struktorzy komputerów zadbali, aby operowały one wprawdzie na dowolnych liczbach, lecz zawsze mieli na względzie liczby kon­kretne. Sztuczna inteligencja posta­wiła nowe wyzwania. Tu trzeba by­ło wprowadzić do obliczeń np. sym­bol x, który był zmienną przyjmującą różne wartości, nieznane w momencie, gdy komputer rozważał wzór z tą zmienną. Na tym polega potęga i trudność matematyki: wypraco­wuje ona prawa, które obowiązu­ją dla każdej wartości x, co odpo­wiada korzystającym ze wzorów ludziom i przeszkadza operującym wzorami komputerom.

Problem rozwiązano, gdyż matematykę daje się wyrazić za pomocą logi­ki, a komputer może po­służyć się jej prawami. Pojęcia logiczne można bowiem związać z liczbami, np. stwierdzeniu prawdziwemu przypisując liczbę 1, a fałszywe­mu 0. Ta prosta zasada oraz ścisłe (a więc możliwe do zapisania w po­staci algorytmów) reguły postępowa­­­nia w logice spowodowały, że już w latach 50. powstały systemy sprawnie przetwarzające wzory matematyczne. Dzisiaj mamy wiele programów (np. popularny Maple), które automatyczne prowadzą przekształcenia algebraiczne na ogólnych wzorach matematycznych. W efekcie zniknęła jedna z udręk – mozolne „ręczne” wyprowadzanie wzorów.

Co to ma wspólnego ze sztuczną inteligencją? Jest ona tu kluczowa, a pierwsze (i do dzisiaj bardzo cenio­ne!) narzędzie sztucznej inteligencji, język LISP, jest wy­korzystywany głównie przy przekształceniach wzorów symbolicznych. Komputerowe systemy zautomatyzo­wanych obliczeń symbolicznych objęły niemal wszyst­kie dziedziny matematyki: poza logiką matematyczną i typową algebrą zautomatyzowano symboliczne obli­czenia i przekształcenia macierzowe oraz wektorowe, to samo udało się zrobić z analizą matematyczną (rachu­nek różniczkowy), w probabilistyce (rachunek prawdo­podobieństwa) oraz w teorii przekształceń operatoro­wych. Jedynym „bastionem”, który broni się przed au­tomatyzacją, jest rachunek całkowy. Obliczanie całek nieoznaczonych to nawet dla człowieka nie lada wy­zwanie, bo w tej dziedzinie nie ma ustalonych, uniwer­salnych schematów.

Mądrość w czeluściach maszyny
Sztuczną inteligencję zazwyczaj postrzegamy jako alter­natywę dla ludzkiego rozumu. Jest to wyobrażenie błęd­ne, bo wciąż jeszcze to my jesteśmy mądrzejsi. Specjaliści od AI zdali sobie z tego sprawę i zamiast tworzyć całko­wicie sztuczne źródła mądrości, postanowili zbudować inteligentne opakowanie dla ludzkiej wiedzy. Tak doszło do powstania systemów ekspertowych. System ekspertowy zastępuje człowieka eksperta w większości przypadków, co jest tańsze i wygodniejsze. Zastanówmy się bowiem, do czego i kiedy potrzebujemy eksperta? Oto pojawia się problem i opinia eksperta jest potrzebna, by go rozwiązać. Prosimy zatem, żeby eks­pert wyjaśnił problem, abyśmy mogli sobie z nim pora­dzić; ten typ ekspertyz nazywamy diagnostycznym. In­­ny przypadek zachodzi, gdy trzeba podjąć skomplikowaną decyzję i potrzebujemy sugestii, co zrobić; działanie eksperta polega wówczas na doradztwie. Wreszcie najbardziej niezręczna (lecz często konieczna) rola eksperta polega na krytyce tego, co robimy, ze wskazaniem, gdzie popełniamy błąd.

Pomysł, aby żywego eksperta zastąpić we wspomnia­nych rolach programem komputerowym, zrodził się z kilku obserwacji. Zauważono bowiem, że np. w medy­cynie istnieje stała potrzeba trafnego wiązania przesła­nek – symptomów choroby – z wnioskami, jaka to cho­roba i jak ją można leczyć (zresztą do tego właśnie ce­lu służył jeden z pierwszych i chyba najbardziej znany system ekspertowy MYCIN). Stwierdzono jednak, że większość pytań do ekspertów ludzi dotyczyła spraw rutynowych i powtarzalnych. Każdy przypadek wyma­gał odrębnego rozważenia, ale zasób wiedzy, jaki był po­trzebny, był dość ograniczony. Podjęto więc, zakończoną sukcesem, próbę uzyskania wiedzy człowieka eksperta i umieszczenia jej w komputerze. Następnie zbudowa­no system, który przeprowadzając automatyczne wnio­skowanie na podstawie bazy wiedzy eksperta (jednego lub kilku), potrafił udzielać rad. Wędrując od przesłan­ki do przesłanki i od opinii do opinii, programy potra­fią dziś „utkać” z elementów wiedzy ekspertów rozwią­zanie problemu, który postawił użytkownik.

Ponieważ proces budowania odpowiedzi może być dokładnie śle­dzony, oprogramowanie potrafi na życzenie uzasadnić swą radę. Ludzie bardzo to lubią: wiedzieć, dlaczego na­leży postąpić tak, a nie inaczej. Systemy ekspertowe znalazły zastosowanie w tech­nice, bankowości, badaniach naukowych i w wielu in­nych miejscach. Swego czasu na rynku amerykańskim rekordy popularności bił system ekspercki, który dora­dzał, jak sporządzić testament, by skutecznie wydzie­dziczyć krewnych i cały majątek zapisać pieskowi. Nie­koniecznie ukochanemu.

Logika naprawdę rozmyta
Nowoczesne systemy AI mogą się różnić od tradycyj­nych systemów informatycznych (prowadzących obli­czenia z maksymalną dokładnością) stosowaniem pojęć i reguł rozmytych. Pojęcie rozmycia (ang. fuzzy) jest ła­twe i trudne zarazem. Łatwe, bo ludzie ciągle posługują się pojęciami rozmytymi, co nie przeszkadza im się ro­zumieć i podejmować decyzje w następstwie rozumo­wania odwołującego się do tego typu pojęć. Dla kom­putera rozmycie jest jednak trudne, bo jest on „przy­zwyczajony” do precyzji i jednoznaczności. Na czym polega rozmycie? Sięgnijmy do żartu, ja­ki (podobno) wymyślili 2,5 tys. lat temu uczniowie So­kratesa. Filozof ten słynął z obfitego owłosienia, łatwo więc zrozumieć złośliwość żartów uczniów, którzy roz­trząsali za plecami mistrza (ale tak, by ten słyszał ich rozmowy) następujący problem.

Gdyby Sokratesowi wyrywać włosy, jeden po drugim, po pewnym czasie byłby całkiem łysy. Pytanie brzmi: wyrwanie którego włoska spowoduje wyłysienie? Pierwszego nie, drugie­go też. Ale gdybyśmy wytrwale skubali, Sokrates byłby w końcu łysy jak kolano. Który włosek był granicą mię­dzy bujnie owłosionym filozofem a jego oskubaną kary­katurą? Problemu nie da się precyzyjnie rozwiązać, bo przejście między bujną czupryną a łysiną jest płynne, podobnie jak przekształcanie się dziecka w młodzień­ca, człowieka dojrzałego i wreszcie w starca. W sztucznej inteligencji podobne problemy rozwią­zuje się za pomocą teorii zbiorów rozmytych, co pozwa­la przeprowadzać precyzyjne komputerowe rozumowa­nia, biorące za podstawę nieostre (rozmyte) pojęcia i re­guły. Działania na zbiorach rozmytych umożliwiają też ­­­­­­­­­prowadzenie obliczeń na liczbach przybliżonych. Często dane liczbowe są niedokładne, np. pochodzą z mało precyzyjnych pomiarów. Jest oczywiste, że wynik mnożenia „około 5” przez „w przybliżeniu 3” da „około 15”, jednak możliwość dokładnego przewidzenia, jak rozmycie danych wejściowych wpłynie na stopień niedokładności wyniku, bywa niekiedy bardzo cenna.

Dzięki teorii zbiorów rozmytych możemy zautomatyzować rozważania, które ludzie prowadzą, korzystając ze „zdrowego rozsądku”. Metodyka ta okazała się tak skuteczna, że niekiedy tam, gdzie pierwotnie mamy dokładne dane z różnych sensorów (np. w automatyce i robotyce), dokonuje się ich sztucznego rozmycia (fuzyfikacji),następnie analizuje się je metodami logiki rozmytej i dopiero gdy wyniki mają być zastosowane do sterowania automatem, doprowadza się je do postaci zwykłych liczb (defuzyfikuje).

 Ukryty urok gier Mało kto zastanawia się nad faktem, że dobre gry kom­puterowe, zwłaszcza strategiczne, muszą mieć pewną do­zę inteligencji. Wśród tego typu gier zawsze wyróżniały się szachy. Zwycięska partia szachów jest bez wątpienia triumfem intelektu – i to czystego, bo zasady nie zosta­wiają marginesu dla przypadku (odgrywającego ważną rolę np. w brydżu) czy zręczności manualnej. W szachy wygrywa ten, kto lepiej (skuteczniej) analizuje sytuację na szachownicy, wyciąga trafniejsze wnioski i tworzy lepsze plany strategiczne. Badacze zajmujący się AI od początku byli zaintere­sowani stworzeniem komputerowego szachisty.

Proste reguły, łatwa ocena (widać, kto wygrał), możliwość ana­lizy drogi, którą przebył komputer – wszystko to spra­wiało, że programy szachowe stały się ulubionym „poli­gonem”, na którym badano różne metody i algorytmy. Słowo poligon można zresztą pisać bez cudzysłowu, bo prace były szczodrze finansowane przez wojsko. Agen­cja DARPA łożyła ogromne kwoty na rozwój programów szachowych, wierzono bowiem, że zasady, które pozwo­lą znaleźć optymalną strategię w symbolicznej wojnie na szachownicy, można będzie wykorzystać do wspoma­gania dowodzenia na prawdziwym polu walki. Schemat działania programu szachowego jest oczy­wisty. W określonej sytuacji gracz może wykonać pew­ną liczbę ruchów. Żeby wybrać ruch, który doprowadzi do zwycięstwa, gracz musi przewidzieć, co zrobi potem ­­­­­­jego przeciwnik. Z kolei gdy przewidzi ruch przeciwnika, może zastanowić się, jaki w tej nowej sytuacji zrobić ruch, by zwiększyć szanse na zwycięstwo itd.

Teoretycznie jest to proste: „ja mu tak, on mi tak, wtedy ja tak, a on …”. Problem w tym, że w większości sytuacji liczba możliwych ruchów jest dość duża, liczba możliwych odpowiedzi partnera na te ruchy – bardzo duża, a liczba własnych posunięć, które trzeba rozważyć jako odpowiedź na działanie przeciwnika, jest już gigantyczna. Aby maszyna znalazła zwycięską strategię, musiałaby liczyć setki tysięcy, a nawet miliony lat! Sytuacja ta jest typowa: w większości zadań stawia­nych AI, gdy zmierzamy do dokładnych rozwiązań, zło­żoność obliczeniowa bardzo szybko rośnie. Typowa stra­tegia odwołuje się do heurystyki – mądrego zgadywania, które warianty badać, a które odrzucić bez badania. Sto­sując heurystykę, naukowcy w końcu nauczyli kompu­tery grać w szachy. Tylko czy to pozwala już twierdzić, że komputery są inteligentne?

Uczę się – więc jestem
Cechą sztucznej inteligencji jest m.in. zdolność do ucze­nia się, a zwłaszcza do uogólniania zdobytej wiedzy. Sys­tem może doskonalić swoje działanie i sam odkrywać sposoby rozwiązywania zadań, z którymi przedtem nie miał do czynienia. Ta ostatnia cecha odróżnia systemy naprawdę inteligentne od tych, które do tego miana bez­prawnie aspirują.  Maszyny uczące się są przydatne, głównie dlatego, że nie trzeba ich programować – wystarczy pokazać im odpowiednią liczbę przykładów poprawnie rozwiąza­nych zadań! Na tej podstawie maszyna sama znajdzie metodę ich rozwiązywania, a potem będzie ją stoso­wać przy innych problemach. Istotne, że takiej maszy­nie możemy kazać rozwiązać te zadania, które wpraw­dzie sami potrafimy rozwiązać, ale nie uświadamiamy sobie, jak to robimy. Przykład: rozpoznawanie liter.

Czytając ten tekst, korzystasz z faktu, że twój umysł odróżnia „A” od „B”, lecz gdybyś miał podać dokład­ny przepis, za pomocą którego komputer wyposażony w kamerę mógłby rozpoznać każdą literę, byłbyś w kło­pocie. Nie potrafimy podać dokładnej „recepty” na roz­poznawanie liter, a mimo to sprawnie się nimi posłu­gujemy, przekazując zaś tę umiejętność innym, posłu­gujemy się przykładami. Podobnie postępowano z pierwszymi maszynami uczącymi się, które nieprzypadkowo nazywano percep­tronami („rozpoznawaczami”). Nie miały one progra­mów odróżniających litery (lub inne obiekty, np. odci­ski palców), ale potrafiły się uczyć. Dziś dysponujemy programami automatycznie odczytującymi z obrazów pismo drukowane oraz staranne pismo odręczne, mo­żemy automatycznie szukać odcisków palców w poli­cyjnych bazach danych, sprawnie komputerowo inter­pretować zdjęcia lotnicze i satelitarne, mamy rakiety, które potrafią same wyszukać cele itp. Niektóre zada­nia wciąż są jednak za trudne, np. maszynom nadal nie udaje się rozpoznawać ludzkich twarzy. To zadanie jest zresztą jednym z wielu przykładów znajdowania przez nasz umysł poprawnego rozwiązania bez dopuszczania do poziomu świadomości zasad postępowania.

Decydują drzewa
W procesie automatycznego uczenia się stosuje się m.in. drzewa decyzyjne. Korzystanie z nich przypomina nieco jazdę po mieście. Startujemy z określonego punktu (korzenia drzewa) i poruszamy się aż do najbliższego skrzyżowania (węzła). Tu decydujemy, w którą stronę pojedziemy, przy czym na decyzję może wpływać ocena pewnego warunku (np. niektóre drogi mogą być akurat zatłoczone lub w remoncie). Rozstrzygamy dylemat i jedziemy wybraną ulicą aż do kolejnego skrzyżowania (węzła), gdzie znowu trzeba ocenić nowy warunek i wybrać kolejny fragment drogi itp. Wreszcie dojeżdżamy do celu (liścia drzewa) i albo osiągamy sukces, albo odnotowujemy niepowodzenie, zależnie od tego, czy udało się nam dojechać na czas.

Drzewa decyzyjne są wygodnym narzędziem przy podejmowaniu decyzji w skomplikowanych sytuacjach. Za ich pomocą sprawdza się przed startem stan techniczny samolotu lub rozstrzyga, czy bank ma udzielić wnioskodawcy pożyczki. Jednak prawdziwie użyteczne są drzewa, które się uczą. Punktem wyjścia jest wówczas zbiór uczący – zestaw przykładowych procesów, w których stwierdzono, jakie były ich skutki. Na przykład w zadaniu z pożyczką można posłużyć się zapisami wcześniejszych transakcji, w których pewnym ludziom udzielono kredytów, a innym nie. Badając, które z tych decyzji były trafne, można znaleźć zbiór reguł zwiększający w przyszłości szanse korzystnych decyzji. Taki proces gromadzenia ogólnej wiedzy na podstawie konkretnych doświadczeń nazywa się indukcją (jest on przeciwieństwem dedukcji, w której konkretne wnioski wyciąga się na podstawie ogólnej wiedzy, np. o zachowaniach ludzi).

Tworzenie drzewa indukcyjnego przypomina planowanie trasy przejazdu przez miasto na podstawie wielu doświadczeń. Raz jedziemy z taksówkarzem, co pomaga zaplanować trasę przyszłego własnego przejazdu (w uczących się drzewach decyzyjnych odpowiada to wykorzystaniu przykładowego poprawnego rozwiązania jako czynnika napędzającego proces uczenia). Innym razem sami wybieramy się w drogę, podejmując decyzje na chybił trafił i oceniając końcowy wynik. Gromadzimy więc wiedzę, która pozwala ustalić strukturę drzewa. W przykładzie z przejazdem przez miasto ustalenie struktury polega na tym, by wiedzieć, na których skrzyżowaniach można jechać bez zastanowienia (takie skrzyżowania nie będą węzłami w drzewie decyzyjnym, bo nie podejmujemy na nich decyzji), a na których sprawdzać pewne warunki (na co zwracać uwagę w kolejnych węzłach).

W sieci neuronów
Czas wspomnieć o sieciach neuronowych, które budową naśladują strukturę mózgu i działają według zasad i reguł odkrytych przez biologów. Sztuczne sieci neuronowe początkowo były specjalistycznymi urządzeniami elektronicznymi. Pierwsi konstruktorzy budowali je, aby się przekonać, czy uda się wykorzystać wiedzę wydartą przyrodzie. Entuzjazmowano się tym, że urządzenia te działały, potrafiły się uczyć, miały zdolność do uogólniania wiedzy, a także pewne dodatkowe cechy, znane z obserwacji biologicznych i dość egzotyczne w świecie techniki, np. odporność na uszkodzenia. Jak działają sieci neuronowe? Spośród wielu cech rzeczywistych neuronów wybiera się dwie lub trzy podstawowe własności i buduje się sztuczny neuron – podstawowy element sieci. Jest on prymitywny, ale dzięki temu tani, co pozwala tworzyć sieci z tysięcy obiektów. Struktura samej sieci jest zazwyczaj uproszczona: są to regularne warstwy identycznie połączonych neuronów, co w niewielkim stopniu przypomina urozmaiconą budowę mózgu.

Takie struktury neuropodobne można tworzyć jako specjalizowane układy elektroniczne, ale częściej symuluje się je na komputerach. Początkowo robiono to z ciekawości, lecz nieoczekiwanie dla badaczy sztuczne sieci neuronowe zaczęły wykazywać zalety, których nie miały i nie mają zwykłe programy. Przede wszystkim potrafią się uczyć, jak należy rozwiązywać zadania, co czyni ich użycie bardzo wygodnym – zamiast z wysiłkiem programować maszynę, bierzemy sieć neuronową i pokazujemy jej zadania wraz z poprawnymi rozwiązaniami. Sieć samo dzielnie odkrywa metodę ich rozwiązywania, a gdy już to zrobi, potrafi uogólnić zasady postępowania na za dania podobne do przykładowych, lecz nie identyczne. Dzięki temu sieci mogą rozwiązywać nawet te problemy, których sam twórca sieci rozwiązać by nie potrafił. Sztucznej inteligencji używa się dziś do wielu celów, zarówno poważnych (na przykład w diagnostyce medycznej), jak i rozrywkowych (japońskie systemy sztucznej inteligencji wspomagające gospodynie domowe w wypieku ciasteczek). Mimo wielu sukcesów, nie udało się jednak stworzyć systemu, który dorównywałby człowiekowi intelektem i polotem. Odpowiedź na pytanie, czy jest to w ogóle możliwe, przyniesie dopiero przyszłość.