Jako sygnał wywoławczy kolejnej blogowej rozmowy chciałbym przywołać następujący cytat z tekstu Donalda Knutha o algorytmach:
Być może największym odkryciem będącym rezultatem wprowadzenia komputerów okaże się to, że algorytmom, jako przedmiotom badania, przysługuje niezwykłe bogactwo interesujących własności oraz to, że algorytmiczny punkt widzenia jest użytecznym sposobem organizacji wiedzy w ogólności.
Algorytmiczny punkt widzenia…
Zastosujmy go nieco węziej niż to postuluje Knuth, przyjmując, że algorytm stanowi wzorcowy (schematyczny, jednoznaczny, intersubiektywnie dostępny…) zapis wiedzy „jak”, czyli wiedzy o tym, jak rozwiązywać problemy określonego typu. Na przykład: jak znajdować pierwiastki równań kwadratowych czy diagnozować choroby układu oddechowego.
Warto napomknąć tutaj, że na polu epistemologii wiedzę „jak” odróżnia się od wiedzy „że”. Ta pierwsza ma charakter proceduralny, operacyjny, pragmatyczny (w naszym ujęciu: algorytmiczny)… ta druga zaś, dotyczy faktów i zależności między nimi (oto przykład: Wisła jest dłuższa od Odry); ma zatem charakter deklaratywny lub opisowy.
O użyteczności algorytmów w ogólnym kontekście gromadzenia i zdobywania wiedzy dyskutowaliśmy już kilka razy, np. przy okazji wpisu Siła algorytmów czy wpisu Algorytmiczne podejście do zdobywania, zapisywania i przekazywania wiedzy….
Tym razem proponuję przyjrzeć się zagadnieniu przejrzystości poznawczej algorytmów — koncentrując się roboczo na kontekście informatycznym, a dokładniej na metodach i systemach sztucznej inteligencji (SI). Nie znaczy to oczywiście, że w dalszej rozmowie nie możemy wychodzić poza ten roboczy kontekst!
Otóż we współczesnych systemach SI, a więc systemach służących do automatyzacji czynności poznawczych człowieka (takich jak wnioskowanie czy komunikacja językowa), coraz częściej stosuje się algorytmy (samo)uczące się. Mają one status schematów pomocniczych, a więc schematów „drugiego poziomu”, które prowadzą do udoskonalenia algorytmu właściwego, odpowiedzialnego za działanie systemu.
Przykładowo: jeśli system służy do stawiania diagnoz medycznych, to algorytm właściwy mówi „jak przechodzić od obserwowanych objawów do stwierdzenia takiej a takiej choroby”, natomiast algorytm uczenia się ma na celu wcześniejsze dopasowanie pewnych parametrów algorytmu właściwego (być może nawet: utworzenie go od podstaw), tak aby ten ostatni działał poprawnie.
Dopowiedzmy koniecznie, że sporo współczesnych systemów uczących się ma postać sztucznych sieci neuronowych. W ich przypadku algorytmy uczenia się są pewnymi (inspirowanymi biologicznie) schematami samoorganizacji tych sieci – samoorganizacji, która polega na „dostrajaniu” wag połączeń międzyneuronalnych, a niekiedy też pewnych parametrów sztucznych neuronów.
Mając na uwadze rozróżnienie między algorytmami działania (jak rozwiązać problem, jak podjąć decyzję itp.) oraz algorytmami uczenia się (jak utworzyć lub udoskonalić algorytm właściwy), można postawić zagadnienie przejrzystości poznawczej tych pierwszych.
Chociaż stanowią one wiedzę „jak” i są podstawą efektywnych działań systemu, to w konkretnych przypadkach można się zastanawiać, w jakim stopniu wiedza ta ma status wiedzy „dlaczego”?
Przykładowo: wiemy, jak system stawia diagnozy i widzimy ich poprawność, nie do końca jednak rozumiemy, dlaczego są to takie właśnie diagnozy. Innymi słowy: system ma taką strukturę i taki algorytm działania (np. jest on bardzo złożony lub zawiera pewne techniczne parametry niskiego poziomu), że nie dostarcza wprost dobrych wyjaśnień podejmowanych przez siebie decyzji. Być może nawet, wyjaśnienia takie są w ogóle nieosiągalne.
Mówiąc obrazowo, system taki przypomina nieprzejrzystą poznawczo czarną skrzynkę.
Wobec zarysowanych trudności chciałbym poddać pod dyskusję następujące pytania:
Czy problem nieprzejrzystości poznawczej jest dla informatyków istotny?
Jeśli tak, to jakich systemów/algorytmów dotyczy?
Jakie czynniki ten problem wywołują i potęgują?
Czy znacie Państwo jakieś sposoby przezwyciężania tego problemu?
A może: w przypadku systemów informatycznych wiedza typu „dlaczego” jest nie do końca potrzebna, bo wystarczy skuteczna w praktyce wiedza „jak”?
Zachęcam do swobodnej rozmowy na powyższe tematy – z możliwością wykroczenia poza nie!
Na rozgrzewkę zaś przytaczam historyczny komentarz stałego bywalca Cafe Aleph, niejakiego k-ma, który dotyczył podobnych kwestii (komentarz ten delikatnie przeredagowałem):
<< Wobec współczesnych dokonań informatyki możliwa jest sytuacja, w której wiedza naukowa będzie mogła być efektywnie poszerzana przez „uczące się” automaty — korzystające ze sformalizowanych procedur tak, że plon tej zalgorytmizowanej działalności będzie racjonalny, to znaczy komunikowalny i intersubiektywnie sprawdzalny przez inne automaty korzystające z algorytmów na coraz to nowszych „jakościowo poziomach” — ALE wiedza ta nie będzie mogła się przełożyć na „wiedzę indywidualną” ludzi korzystających z owych automatów. Badacze będą mogli zyskać czasem wiedzę „że” i „jak”, ale nie wiedzę „dlaczego”. >>
Jako materiały pomocnicze do dyskusji (zob. też linki wyżej) proponuję:
— tekst Donalda Knutha o roli algorytmów w informatyce
— tekst Pawła Stacewicza o metodzie algorytmicznej
— slajdy Pawła Stacewicza do wykładu nt, informacji i wiedzy
Serdecznie zapraszam do dyskusji – Paweł Stacewicz