Magazyn  


Sztuczna inteligencja
Cezary G│owi±ski


Zapewne ka┐dy z nas zetkn▒│ siΩ z terminem sztuczna inteligencja. W brzmieniu tych s│≤w jest jaka╢ si│a poruszaj▒ca ludzk▒ wyobra╝niΩ. Chyba dlatego, ┐e od niepamiΩtnych czas≤w ludzie snuj▒ marzenia o stworzeniu istoty rozumnej, choµ czΩ╢ciowo na╢laduj▒cej nasze zachowania.

Jak siΩ okazuje, nie jest to │atwe zadanie. Nad jego rozwi▒zaniem pracuj▒ od lat rzesze naukowc≤w. Mimo ca│ej otoczki niezwyk│o╢ci, u podstaw sztucznej inteligencji le┐▒ bezsprzecznie nauki ╢cis│e, przede wszystkim logika i matematyka.
Od czasu, gdy pojawi│y siΩ pierwsze komputery, starano siΩ "wbudowaµ" w nie jak najwiΩcej inteligencji i ju┐ na prze│omie lat 50. i 60. rozwa┐ano konstruowanie takich program≤w, kt≤re pozwol▒ komputerom samodzielnie "my╢leµ". Tak narodzi│a siΩ nowa nauka, kt≤r▒ nazwano sztuczn▒ inteligencj▒ (ang. artificial intelligence).
Chciano stworzyµ maszyny mog▒ce podejmowaµ samodzielne dzia│ania w│a╢ciwe istotom my╢l▒cym. Pojawi│ siΩ jednak problem, jak oceniµ, czy okre╢lone dzia│ania s▒ zaprogramowane, czy ju┐ "inteligentne". Rozwi▒za│ go Turing wymy╢laj▒c sprytny test. Sprawdzian polega│ na konfrontacji maszyny z cz│owiekiem. W tym celu ustawiano przegrodΩ tak, aby po jednej stronie znajdowa│ siΩ cz│owiek, a po drugiej maszyna. Oczywi╢cie cz│owiek nie wiedzia│, ┐e bΩdzie komunikowa│ siΩ z maszyn▒. Je╢li w trakcie testu nie by│ w stanie rozpoznaµ, ┐e po drugiej stronie jest komputer, to w≤wczas uznawano maszynΩ za inteligentn▒.

Przeszukiwanie przestrzeni


Pracuj▒c z komputerami jeste╢my przyzwyczajeni do tego, ┐e wykonuj▒ one programy, kt≤re s▒ list▒ ╢ci╢le okre╢lonych polece±. Ale czy rozwi▒zuj▒c zadanie zawsze trzeba postΩpowaµ wed│ug ╢ci╢le okre╢lonego scenariusza? Ot≤┐ nie. Tak narodzi│ siΩ jeden z pierwszych dzia│≤w sztucznej inteligencji, zajmuj▒cy siΩ rozwi▒zywaniem zada± poprzez przeszukiwanie przestrzeni. »eby rozwi▒zaµ problem metodami proceduralnymi, trzeba zbudowaµ jego model. Nie zawsze jest to mo┐liwe - szczeg≤lnie w przypadku z│o┐onych zada±. Ponadto istnieje wiele problem≤w, kt≤rych z│o┐ono╢µ w ka┐dym kolejnym kroku rozwi▒zania ro╢nie co najmniej wyk│adniczo i w zwi▒zku z tym szybko przekracza mo┐liwo╢ci obliczeniowe komputer≤w. Jako ciekawostkΩ mo┐na tu podaµ, ┐e du┐a czΩ╢µ u┐ywanych obecnie szyfr≤w opiera siΩ w│a╢nie na z│o┐ono╢ci obliczeniowej. Oznacza to, ┐e wszyscy wiedz▒, jaka jest procedura rozszyfrowywania, ale nie maj▒ tak silnego komputera, aby przeprowadziµ tΩ procedurΩ w rozs▒dnym czasie np. kilku lub kilkunastu dni.
Pocz▒tkowo skoncentrowano siΩ na nauczeniu komputer≤w gry z lud╝mi. NajwiΩkszymi wyzwaniami by│y szachy oraz go. Wynika│o to ze stopnia skomplikowania tych gier. Do tej pory nie zbudowano komputera, kt≤ry jest w stanie w rozs▒dnym czasie przeanalizowaµ wszystkie posuniΩcia szachowe - nawet s│awny Deep Blue. I tu zaczyna siΩ problem. Co zrobiµ, je╢li nie mo┐na przejrzeµ wszystkich posuniΩµ? Jednym z prostszych pomys│≤w jest wprowadzenie tzw. horyzontu. Oznacza to, ┐e przeszukuje siΩ jedynie z g≤ry okre╢lon▒ liczbΩ krok≤w w prz≤d nie zag│Ωbiaj▒c siΩ zbyt daleko. Przy grze w szachy oznacza to, ┐e komputer w prostym przypadku analizuje tylko piΩµ lub dziesiΩµ posuniΩµ do przodu. Takie podej╢cie jednak, choµ efektywne, mo┐e prowadziµ do b│Ωdnych rozwi▒za±. Co zatem zrobiµ? W sukurs przysz│a heurystyka.

Heurystyka


Heurystyka pozwala eliminowaµ zawczasu pewne obszary przeszukiwanej przestrzeni. Je┐eli na podstawie analizy potrafimy przewidzieµ, ┐e czΩ╢µ rozwi▒za± jest nieprawdziwa, to tak▒ regu│Ω heurystyczn▒ mo┐emy zawrzeµ w programie rozwi▒zuj▒cym nasz problem. Pisz▒c na przyk│ad program do gry w szachy mo┐emy zawrzeµ w nim wszystkie regu│y posuniΩµ, jakie istniej▒ w tej grze wraz ze znanymi od wiek≤w r≤┐nymi chwytami, takimi jak otwarcia, a nawet ca│e partie. Do│▒czenie tej wiedzy do programu w postaci regu│, to w│a╢nie heurystyka. Nie ma jednak r≤┐y bez kolc≤w. Okazuje siΩ, ┐e heurystyka mo┐e pomagaµ w rozwi▒zaniu danego problemu, ale nie gwarantuje znalezienia rozwi▒zania optymalnego.

Systemy ekspertowe


Wraz z popularyzacj▒ komputer≤w r≤s│ zakres ich zastosowania. ZaczΩto wykorzystywaµ maszyny do wspomagania pracy cz│owieka. Zrodzi│a siΩ w≤wczas idea systemu, kt≤ry pe│ni│by rolΩ eksperta. Przyst▒piono do prac nad rozwojem takiego oprogramowania. Zaproponowano w≤wczas wiele rozwi▒za±, z czego dwa: regu│y oraz drzewa decyzyjne zdoby│y najwiΩksz▒ popularno╢µ. C≤┐ z tego - komputerowi nie wystarczy sama wiedza pocz▒tkowa. Dlatego postanowiono zaj▒µ siΩ wa┐nym problemem - procesem wnioskowania, kt≤ry m≤g│ byµ automatycznie realizowany przez komputer. Wymy╢lono dwa podej╢cia: wnioskowanie zstΩpuj▒ce i wnioskowanie wstΩpuj▒ce. Pierwsze z nich polega na przej╢ciu od fakt≤w do konkluzji, drugie od konkluzji do fakt≤w. Prosty przyk│ad diagnozy usterki drukarki wyja╢ni dzia│anie systemu ekspertowego.

Sieci neuronowe


Do dzi╢ struktura ludzkiego m≤zgu nie jest w pe│ni zbadana. Dlatego te┐ problem ten fascynuje wielu. Z takiej fascynacji powsta│ pomys│ stworzenia sieci neuronowych na╢laduj▒cych pracΩ m≤zgu. Wzoruj▒c siΩ na naturze naukowcy opracowali modele sztucznych sieci neuronowych. Model takiej sieci opiera siΩ na dw≤ch podstawowych elementach: neuronach i po│▒czeniach miΩdzy nimi. Neurony s▒ uk│adane w kolejne warstwy, kt≤re s▒ │▒czone miΩdzy sob▒. Praca sieci neuronowej przebiega dwustopniowo. W pierwszym kroku trzeba sieµ nauczyµ tego, co ma robiµ. W drugim etapie mo┐na stosowaµ j▒ do rozwi▒zania problemu. Jednym z prostszych sposob≤w uczenia jest podawanie na wej╢cie sieci neuronowej przyk│ad≤w. NastΩpnie, wed│ug okre╢lonego algorytmu, wyznacza siΩ si│Ω powi▒za± miΩdzy neuronami i poziom zadzia│ania ka┐dego neuronu z osobna. Oczywi╢cie ka┐da sieµ ma ograniczon▒ pojemno╢µ "pamiΩci", zatem mo┐e nauczyµ siΩ tylko pewnej liczby pojΩµ. Zale┐y to od liczby neuron≤w, z kt≤rych sk│ada siΩ sieµ - im jest ich wiΩcej, tym wiΩcej pojΩµ mo┐e ona zapamiΩtaµ. Gdy sieµ jest ju┐ nauczona, mo┐na podawaµ na jej wej╢cie nowe przyk│ady, kt≤rych wcze╢niej nie widzia│a. Jednym z rozlicznych zastosowa± sieci neuronowych jest rozpoznawanie obraz≤w. DziΩki temu, ┐e sieµ zostanie nauczona prostych elementarnych kszta│t≤w, mo┐liwe jest p≤╝niej prawid│owe odr≤┐nianie element≤w o zniekszta│conych nieco obrysach, lecz z dalszej perspektywy przypominaj▒cych orygina│y. Wiedza zawarta w poszczeg≤lnych neuronach i po│▒czeniach pozwala rozpoznaµ zniekszta│cenia.

Algorytmy genetyczne


Opr≤cz czysto medycznych inspiracji w sztucznej inteligencji pojawi│ siΩ kierunek wzoruj▒cy siΩ na teorii ewolucji, kt≤ra sta│a siΩ podstaw▒ do stworzenia algorytm≤w genetycznych. Powszechnie wiadomo, ┐e zagadka ┐ycia zawarta jest w strukturze DNA. Wzoruj▒c siΩ na mechanizmach ewolucji Holland stworzy│, a nastΩpnie Goldberg rozwin▒│ mechanizm algorytm≤w genetycznych. Wykorzystuje siΩ w nich populacje, kt≤re pocz▒tkowo s▒ generowane losowo. Populacja sk│ada siΩ z osobnik≤w zakodowanych w postaci chromosom≤w binarnych. Osobniki z tej populacji s▒ reprodukowane, w wyniku czego uzyskuje siΩ now▒ populacjΩ. Im dany osobnik jest lepszy, tym ma wiΩksze szanse na przetrwanie i przej╢cie do nowej populacji. S│abe osobniki gin▒. W kolejnych krokach chromosomy podlegaj▒ operacji krzy┐owania. W ten spos≤b rodz▒ siΩ nowe osobniki. Dodatkowo wprowadzany jest operator mutacji, kt≤ry z rzadka zmienia niekt≤re warto╢ci w chromosomach.
Czy rozw≤j komputer≤w zagrozi ludzkiemu dorobkowi? Oby tak siΩ nie sta│o. Na pewno my, wsp≤│cze╢ni, nie musimy siΩ jeszcze tego obawiaµ. Nale┐y jednak wierzyµ, ┐e ludzki m≤zg i intuicja pozwol▒ stawiµ czo│o coraz bardziej inteligentnym maszynom.


Drzewo decyzyjne systemu ekspertowego (rysunek)
Schemat prostej sieci neuronowej (rysunek)
Schemat ewolucji w algorytmie genetycznym (rysunek)

(c) Copyright LUPUS