Pierwsza wyspa w archipelagu sztucznej inteligencji - metody symboliczne

http://s3.amazonaws.com/digitaltrends-uploads-prod/2014/01/artificial-intelligence.jpg
Sztuczna inteligencja (po angielsku Artificial Intelligence, od czego pochodzi często używany - także w tym blogu - skrót AI) została przeze mnie porównana kiedyś do archipelagu wysp, ponieważ poszczególne grupy metod, które są w niej wykorzystywane, najczęściej nie wiążą się ze sobą. Każda z nich z osobna daje dobre oparcie dla rozwiązywania pewnej klasy problemów, a więc jest kawałkiem twardego lądu na ogromnym oceanie naszej niewiedzy, ale nie ma przejścia od jednej grupy metod do innej, czyli z jednej wyspy do drugiej. Nie ma też jednolitej teorii obejmującej wszystkie metody sztucznej inteligencji. W związku z tym nie jest to zwarty monolit, jak matematyka, ani rozległy kontynent, jak na przykład mechanika - ale właśnie garść wysepek. Spróbuję je Państwu kolejno zaprezentować.

Mój poprzedni wpis na tym blogu dotyczący sztucznej inteligencji spowodował ciekawą dyskusję i zainteresował wielu Czytelników. Postanowiłem więc kontynuować ten wątek i przedstawić Państwu mój punkt widzenia na temat różnych metod i technik sztucznej inteligencji - zachęcając wszystkich, którzy także mają na ten temat swoje przemyślenia, by je także przedstawili, bo tu zdecydowanie jest miejsce na szeroką debatę. Zacznę od stwierdzenia, z którym - mam nadzieję - większość Czytelników się zgodzi: Sztuczna inteligencja ma związek z informatyką.
Ale oczywiście nie wszystkie zagadnienia podejmowane w informatyce należą do sztucznej inteligencji, a także - co jest może mniej oczywiste - nie wszystkie zagadnienia sztucznej inteligencji mieszczą się w informatyce. Ta część problematyki sztucznej inteligencji, która "wystaje" z informatyki, to głównie rozważania filozofów i kognitywistów badających problem sztucznej inteligencji w oderwaniu od jej komputerowych implementacji. My w tym blogu nie będziemy się zajmować tą częścią sztucznej inteligencji, skupiając uwagę wyłącznie na tych rozwiązaniach, które nadają się do zastosowania w praktyce.



Pozostając na razie jeszcze przy rozważaniach ogólnych odnotujemy, że wiedza o systemach inteligentnych jest obecnie rozwijana na dwa sposoby: Sposób klasyczny angażuje różne metody symboliczne. Komputer zamiast prowadzić obliczenia na wartościach numerycznych - manipuluje (zgodnie z przyjętymi regułami) pewnymi symbolami. Wśród specjalistów przywykło się rezerwować tradycyjną nazwę "sztuczna inteligencja" dla tej właśnie części badań i prac projektowych. O tej klasycznej technice powiem dzisiaj trochę więcej, bo jest ona głównym tematem tego wpisu,. Alternatywą dla metod symbolicznych są metody całościowe, głównie heurystyczne, często oparte na wzorach biologicznych albo szerzej - na kopiowaniu natury. Do tej grupy zaliczamy między innymi sieci neuronowe, algorytmy genetyczne, elementy logiki rozmytej i liczne inne techniki, o których opowiem w dalszych wpisach. Techniki te zwykło się obecnie nazywać "inteligencją obliczeniową". W odróżnieniu od specjalistów sztucznej inteligencji (klasycznej), którzy pracowicie manipulują symbolami i wyciągają wnioski bazujące na logice i na naśladownictwie ludzkich procesów psychicznych związanych z abstrakcyjnym myśleniem, zwolennicy inteligencji obliczeniowej ścigają różne marzenia, materializują fantazje, odwołują się do intuicji, naśladują naturę - często z dobrym skutkiem. Całość tej sytuacji ilustruje rysunek.
Dzisiaj mam mówić o prawej stronie tego rysunku, to znaczy o metodach symbolicznych. Prawdę mówiąc, to od nich się to wszystko zaczęło. Twórca nazwy "sztuczna inteligencja" i jeden z "ojców założycieli" tej dziedziny, John McCarthy, uprawiał niewątpliwie podejście symboliczne i był twórcą bardzo znanego i chętnie stosowanego narzędzia dla potrzeb obliczeń symbolicznych, jakim był język Lisp. Wyjaśnijmy może (dla tych którzy takiego wyjaśnienia potrzebują), o co chodzi z tymi obliczeniami symbolicznymi? Dlaczego tak wiele razy podkreślam tę nazwę?

Otóż komputery zostały zbudowane po to, żeby wykonywać obliczenia na konkretnych liczbach. Dlatego komputer "od urodzenia" potrafi na przykład odpowiedzieć na pytanie, ile trzeba dodać do 5, żeby uzyskać 8? A ile dodać do 8, żeby dostać 12? Takie rachunki komputer wykonuje szybko, bezbłędnie, zarówno na bardzo dużych liczbach, jak i na bardzo małych, słowem zgodnie ze swoją nazwą (computer to wszak maszyna licząca) - liczyć to on potrafi. Natomiast gdybyśmy chcieli uzyskać odpowiedź na pytanie ogólniejsze: Ile trzeba dodać do liczby X żeby otrzymać wartość Y? - to właśnie mamy do czynienia z problemem symbolicznym. Zamiast konkretnych liczb - są symbole. I zamiast liczbowego wyniku oczekujemy podania reguły, metody, rozwiązania ogólnego. Typowy komputer na tak postawione pytanie odpowiedzieć nie potrafi, natomiast komputer wyposażony w program pozwalający na wykonywanie obliczeń symbolicznych poda rozwiązanie w postaci:

Y - X

i będzie to odpowiedź na wszystkie możliwe pytania typu "ile dodać do ... żeby otrzymać ...". W matematyce odpowiada to przejściu od arytmetyki do algebry, a w komputerach przejściu od automatycznego liczenia do automatycznego rozumowania.

Skoro metody sztucznej inteligencji pozwalają komputerom manipulować symbolami i prowadzić abstrakcyjne rozumowania - to można pokusić się o coś więcej, niż tylko proste przekształcanie formuł algebraicznych. Na rysunku, który pokazuję moim studentom:
widoczne są (przedstawione w uproszczeniu) przykładowe zadania, jakimi interesowali się specjaliści od symbolicznej sztucznej inteligencji: skomplikowane przekształcenia matematyczne, rozmaite gry i łamigłówki, planowanie złożonych działań itp.

Rozzuchwaleni sukcesami, jakie odnosiły programy komputerowe w rozwiązywaniu opisanego typu zadań - badacze symbolicznej sztucznej inteligencji spróbowali czegoś trudniejszego. Na przykład zamarzyło im się automatyczne dowodzenie twierdzeń. I udało się! Zbudowany przez Simona (późniejszego laureata Nagrody Nobla!), Nowella i Shawa program Logic Theorist bardzo sprawnie dowodził twierdzeń związane z logiką matematyczną. Program ten wsławił się zwłaszcza tym, że dowodząc skutecznie 38 z 52 twierdzeń zaczerpniętych z pomnikowego dzieła Bertranda Russela Principia Mathematica - dla kilku z nich znalazł lepsze (elegantsze) dowody niż te, które przedstawił Russel. To był sukces, bo wynik ten wyraźnie pokazał, że manipulujący symbolami komputer nie naśladował tu działania człowieka, tylko sam "wpadł na pomysł" skutecznego dowodu.

Jednak mimo tych sukcesów sztuczna inteligencja oparta na podejściu symbolicznym nie rozpowszechniła się i nie stała się głównym motorem napędowym rozwoju tego działu informatyki. Powody zebrałem na obrazku, który w metaforyczny sposób pokazuje, jakie właściwości ma ta "wyspa" w "archipelagu sztucznej inteligencji".
W następnych wpisach postaram się opisać w podobny sposób inne, bardziej obecnie popularne obszary sztucznej inteligencji.
Trwa ładowanie komentarzy...