Witold Marciszewski Jak ma się kod neuronowy do kodu maszynowego? Szkic z Filozofii Informatyczno-Logicznej (FIL) ------------------------------------------------------------------------- 1. FILOZOFICZNE ASPEKTY PROBLEMU KODU NEURONOWEGO 1.1. Czytelnik, który chciałby zacząć od dowiedzenia się, co to takiego jest FIL, czyli filozofia informatyczno-logiczna, proszony jest o chwilę cierpliwości. Rzecz się wyjaśni w swoim czasie, a przygotuje do niej przypowieść inspirowana faktem, że gdy wchodzimy w erę inżynierii genetycznej, kosmicznej, neuronowej, coraz silniej się potwierdza, że człowiek powstał na podobieństwo Stwórcy. Grecy istotę skończoną o potężnej mocy stwórczej nazywali demiurgiem; nazwa ta coraz bardziej przystoi gatunkowi ludzkiemu. Skonkretyzujmy tę myśl w takiej oto opowiastce. Pewien terminator sztuki demiurgicznej otrzymał od Majstra czyli od samego Stwórcy następujące zadanie na dyplom czeladniczy. Powiada do niego Majster. Popatrz na tę lecącą muchę i stwórz drugą, która by tak samo sprawnie potrafiła latać. Musisz w tym celu stworzyć kod neuronowy, w którym sygnały z oka muchy będą przekazywane do mięśni poruszających skrzydła, a także sygnały od mięśni będą przekazywane do oka. W bibliotece znajdziesz odpowiednie dzieła z mechaniki i optyki, poczytaj je sobie, a do ciebie należy zaprojektowanie kodu, który należycie weźmie pod uwagę prawa tych nauk. Nasz terminator, nim przystąpi do obmyślania owego kodu, musi się zmierzyć z pewnym problemem filozoficznym. Ruch muchy jest procesem ciągłym, kontrolowanie przez nią tego ruchu jest też procesem ciągłym, podczas gdy sekwencja symboli w mającym powstać kodzie musi być czymś nieciągłym czyli, jak powiada się w matematyce, dyskretnym (szerzej o tym mówi dalej ustęp 3.1). Czy da się z należytą wiernością (aż do skuteczności lotu) odwzorować ciągłe w nieciągłym? Czy też trzeba, pod sankcją niezaliczenia egzaminu, sięgnąć po mocniejsze niż dyskretny kod środki? A może widok ciągłości lotu jest tylko złudnym wrażeniem, podobnym do tego, którego doświadcza widz kinowy dzięki odpowiedniej konfiguracji dyskretnych obrazków na klatkach taśmy filmowej? Wtedy problem okazałby się pozorny. Zostawmy przyszłego demiurga z tą deliberacją; wystarczy ją zasygnalizować, żeby dać pierwsze przybliżone pojęcie, czym jest filozofia informatyczno-logiczna. Na pytanie, czy chodzi tu o pewien dział filozofii, czy o kierunek filozoficzny, odpowiedź brzmi: jest to dział filozofii, porównywalny w pewnych punktach z tradycyjną ontologią, a w innych z tradycyjną epistemologią. Uprawiając ten dział można tak lub inaczej odpowiadać na poruszane w nim problemy i tym samym opowiadać się za takim lub innym kierunkiem filozoficznym. Ontologia jest dyscypliną filozoficzną, która operuje pojęciami uniwersalnymi, to jest, obejmującymi wszystkie dziedziny rzeczywistości. Takie jest pojęcie przedmiotu, własności, relacji, zbioru, identyczności. Te pojęcia występują również w logice, zachodzi więc siłą rzeczy przenikanie się wzajemne obu dyscyplin. Logika jednak uwzględnia te pojęcia z pewnego tylko punktu widzenia, o tyle mianowicie, o ile są potrzebne do zbudowania teorii dostarczającej kryteriów poprawności rozumowań. Nie wyczerpuje to problematyki zawartej potencjalnie w tych pojęciach, czy też powstającej w wyniku ich konfrontacji z danymi doświadczalnymi; toteż ontologii pozostaje wiele do powiedzenia od niej samej poza tym, co ma do powiedzenia logika. Tak więc, ontologia nie musi kończyć się na pojęciach wiążących ją z logiką, ani uznawać ich za najważniejsze; jeśli z jakichś powodów potraktuje je jako centralne, zasłuży na miano ontologii logicznej. Epistemologia, nauka o kryteriach poznania, ma także punkty styczne z logiką, skoro logika dotyczy kryteriów poprawności rozumowań, a więc kluczowego elementu procesów poznawczych. Kompleks zagadnień ontologicznych i logicznych pozostających w tego rodzaju więziach z logiką zasługuje na miano filozofii logicznej. Ta nazwa będzie pożyteczna w określeniu kierunku zainteresowań czy specjalizacji badawczej filozofa, jak też w zdefiniowaniu pokaźnego i znaczącego bloku w programie studiów filozoficznych. O tym, kto na swojej karcie wizytowej napisze ,,filozofia logiczna'' będziemy wiedzieli, że nie zajmuje się on samą logiką, ani też filozofią w oderwaniu od logiki, lecz zagadnieniami, w których logika przenika się z ontologią i epistemologią. 1.2. Pozostaje do wprowadzenia jeszcze jedna dramatis persona -- informatyka. Wiąże się ona ściśle z logiką przez wspólne im obu pojęcia algorytmu, obliczalności, rozstrzygalności oraz inne skupione wokół tych kilku. Pojęciem, które właściwe jest informatyce, a nie zalicza się do logiki, jest pojęcie złożoności algorytmicznej, które z kolei stwarza więź pomiędzy informatyką a fizyką i biologią, zaś do logiki prowadzi zeń pomost poprzez pojęcie algorytmu. Ideę złożoności struktury da się prosto ująć przez odniesienie do długości jej opisu: im bardziej struktura jest złożona, tym więcej słów, o ile posługujemy się nimi bez gadulstwa, musi zawierać jej opis. W tym rozumieniu, regularna kostka jest strukturą mniej złożona od nieforemnej bryły, ponieważ opis kostki da się zawrzeć w jednym zdaniu (że wszystkie trzy wymiary są w niej takie same), podczas gdy różne kąty i wypukłości bryły nieforemnej trzeba by opisywać o wiele dłużej. Ta maksymalnie prosta definicja złożoności siłą rzeczy należy do filozofii, bo wchodzi tu w grę uniwersalne pojęcie ontologiczne; wszak pytanie o złożoność, jej stopień i rodzaj, można kierować do każdego bez wyjątku elementu rzeczywistości. Jest to filozofia informatyczna w tym sensie, że do zdefiniowania złożoności używamy pojęcia opisu, a więc czegoś, co niesie w sobie informację. Ściślejszy związek z informatyką ujawnia się wtedy, gdy termin ,,złożoność'' zbogacimy przydawką ,,algorytmiczna'' (podstawowe pojęcie informatyki). Krok ten ma na celu uwolnić słowo ,,opis'' od nieostrości dzięki zdefiniowaniu go za pomocą informatycznego, a zarazem należącego do logiki, pojęcia algorytmu. Złożoność algorytmiczna opisu jest to długość najkrótszego programu komputerowego (czyli maszynowej realizacji algorytmu) niezbędnego do wytworzenia tego opisu. Długość zaś programu da się precyzyjnie określić liczbą użytych w nim symboli. Dowód zaś, że krótszy program nie jest możliwy znajdziemy w fakcie, że po skróceniu przestaje on być skuteczny (,,nie chodzi'') jako program; tak dokładnym sprawdzianem krótkości nie dysponujemy w stosunku do tekstów nie będących programami. Oto prosty przykład omówionych wyżej relacji. Porównajmy dwa ciągi cyfr, A i B, będące opisami pewnych liczb dokonanymi w notacji binarnej (mowa jest o niej dalej, w ustępie 3.2). A: 10 10 10 10 10 11 11 11 11 B: 10 10 10 10 10 10 10 10 10 Programy do wytworzenia opisów A i B brzmią (po przełożeniu z jakiegoś języka programowania na polski), odpowiednio, jak następuje. Prog(A): Napisz pięć razy ,,10'' i cztery razy ,,11''. Prog(B): Napisz dziewięć razy ,,10''. Pierwszy z tych programów zawiera osiem słów, drugi tylko cztery; widzimy przy tym, jak ten stosunek między długościami programów wiąże się ze złożonością struktur: struktura opisu B jest wyraźnie prostsza od struktury A. W tymże kontekście łatwo też zilustrować róznice między długościami dwóch programów na wytworzenie tego samego opisu. Opis B można by zaprogramować również w taki sposób: Prog*(B): Napisz ,,1'' i osiem razy ,,01'' i ,,0''. Nawet przy takim najoszczędniejszym stylistycznie zapisie (bez słów w rodzaju ,,najpierw'', ,,potem'' itp.) mamy w tym programie osiem słów. Tyle samo trzeba dla wytworzenia przez program bardziej złożonego opisu A, z czego widać, dlaczego do efektywnego zróżnicowania oszacowań złożoności konieczny jest warunek, żeby posłużyć się programem możliwie najkrótszym (tutaj Prog(B) nie zaś Prog*(B)). Nawiążmy teraz do wprowadzonego wyżej terminu ,,filozofia logiczna'' i zbogaćmy jego treść o cechę złożoności oraz inne z nią powiązane, podobnie uniwersalne, jak informacja, porządek, ciągłość, nieciągłość, organizacja czy samoorganizacja. Dostaniemy wtedy bogaty kompleks zagadnień zasługujący na miano Filozofii Informatyczno-Logicznej, w skrócie FIL. 1.3. Na koniec tego wprowadzenia w FIL nie od rzeczy będzie uwaga na temat: FIL a gospodarka rynkowa. Nie dlatego, że moda jest na mówienie o rynku przy wszelkiej okazji, ale dlatego, że zachodzą istotne związki między prawami rozwoju społecznego i gospodarczego a tymi cechami rzeczywistości, które ujmuje FIL. Mianowicie, kluczowe w FIL pojęcie złożoności występuje w kontekście zwrotu ,,układy złożone'' (ang. complex systems). Oczywiście, każdy system jest jakoś złożony, a więc jeśli tym terminem wyróżnia się pewną klasę układów, to ma się na myśli szczególnie wysoki i rodzący szczególne problemy stopień czy rodzaj złożoności. Oddawałoby to lepiej zwrot ,,układy wysoce skomplikowane'', ale po takim wyjaśnieniu jak obecne można przyjąć termin ,,układy złożone''. Te nowe, specyficzne dla układów złożonych problemy, biorą się stąd, że nie cechuje ich (lub nie cechuje w pożądanym stopniu) dostępność algorytmiczna (ang. algorithmic tractability, computational tractability). To znaczy, modelowanie matematyczne zachodzących w tych układach procesów oraz ich symulacja komputerowa napotykają na nieprzezwyciężalne trudności. Co jest tych trudności źródłem i jakie są szanse ich pokonania, to wielki problem dla FIL, dzielący badaczy na kilka polemizujących ze sobą wzajem obozów. Nie wchodząc w przedstawienie owego problemu (podejmiemy go szkicowo w ustępie 4.2), wystarczy tu wspomnieć na potrzeby obecnych rozważań, że do układów o maksymalnej złożoności zalicza się system nerwowy oraz układy społeczne. O systemie nerwowym mowa jest dalej w tym eseju. Co do układów społecznych, nasuwa się następująca uwaga, którą powinni wziąć sobie do serca wykładowcy filozofii, jak i autorzy podręczników i programów czy organizatorzy studiów filozoficznych na progu 21go wieku. Studia filozoficzne bardziej niż kiedykolwiek dawniej mają szansę przygotować absolwentów do życia i sukcesu w społeczeństwie informatycznym pod tym warunkiem, że trzonem studiów będzie nie co innego, a FIL. Tylko ten zespół zagadnień i tylko ta metoda myślenia dają szansę ostania się wobec wyzwań cywilizacji informatycznej, zarówno w wymiarze postaw obywatelskich jak i w wymiarze sprawności zawodowej. Co do postaw obywatelskich, to FIL je modeluje poprzez idee informacji oraz organizacji jako kluczowe kategorie filozoficzne. Wszak spory wokół interwencji państwa poprzez regulację gospodarczą (której przypadkiem skrajnym jest centralne planowanie) są w swej istocie sporami o to, jaki jest optymalny system obiegu i przetwarzania informacji oraz o to, w jakim zakresie ma miejsce samoorganizacja i samoregulacja (,,niewidzialna ręka''). Jest to spór filozoficzny o najgłębszą naturę rzeczywistości, o to czy jest ona auto-kreatywna, przy czym kreatywność definiowana jest przez FIL w kategoriach maksymalnej złożoności układów i procesów. Postawa obywatelska typu liberalnego polega na praktycznym wyciągnięciu wniosków z filozoficznej wizji samoregulujących się układów społecznych. Co do perspektyw osobistego sukcesu zawodowego, którego drastycznym przeciwieństwem jest bezrobocie, to największą szansę daje połączenie specjalistycznej wiedzy praktycznej (języki, finanse, informatyka itp.) z gruntownym przygotowaniem ogólnym. Na to ogólne składa się przyswojenie sobie pojęć uniwersalnych, które mają zastosowanie we wszelkich dziedzinach życia w społeczeństwie informatycznym. Jest to ten właśnie słownik, który był dyskutowany wyżej jako rdzeń FIL. Z takim wyposażeniem umysłowym utrata pracy w dotychczasowej specjalności nie skazuje na bezrobocie lecz na opanowanie nowej specjalności, co jest bardziej realne, gdy ma się przyswojony ów fundament filozoficzny. I tak, na przykład, pewien wykładowca filozofii skutecznie się przekwalifikował na prowadzenie wykładów o mediach w UE; istotą bowiem procesów zachodzących w UE w tej dziedzinie jest cyfrowa unifikacja mediów i telekomunikacji, nic zaś co jest cyfrowe nie jest filozofom obce (oczywiście, filozofom spod znaku FIL). Równie dobrze absolwent FIL może się odnaleźć w bankowości, zarządzaniu informatyką czy zarządzaniu kadrami, wszędzie mając do czynienia z pojęciami: informacja i jej przetwarzanie, stopień złożoności systemu, cyfrowa symulacja procesów itp. Pojęcia te występują wyraziście w tematyce złożoności mózgu i właściwego mu kodu, a jeszcze wyższy poziom złożoności pojawia się w rozważaniu procesów społecznych. Te drugie nie są przedmiotem obecnego eseju, zachodzi jednak związek tego rodzaju, że poruszane tu zagadnienia stanowią wprowadzają do problematyki złożoności społecznej -- jako powstającej z interakcji wielu mózgów. 2. CZY KOD NEURONOWY OKAŻE SIĘ BYĆ MASZYNOWYM? 2,1, Jeśli na to pytanie odpowiedzieć twierdząco, to poziom złożoności kodu neuronowego będzie nie większy niż poziom złożoności kodu maszynowego, to jest, funkcjonującego w maszynie cyfrowej czyli komputerze (cyfrowym). Taka odpowiedź twierdząca ma charakter wróżby wysnutej z pewnych założeń filozoficznych, co przy okazji dobrze ilustruje wkład filozofii do futurologii. Idea filozoficzna, która w tym przypadku wspiera prognozowanie nosi nazwę komputacjonizmu. Niektórzy jego przedstawiciele podają nawet daty, kiedy ma zostać defintywnie wykazane, że kod neuronowy no nic innego, jak szczególny przypadek kodu maszynowego; jedni np. wymieniają rok 2020, inni 2030. Żeby mieć pogląd, na ile poważnie wróżby takie traktować, trzeba odbyć wspinaczkę po szczeblach wchodzących tu w grę kostrukcji pojęciowych. Zacznijmy od pojęcia kodu. Pójdziemy w obecnej analizie za tym zwyczajem terminologicznym, który traktuje klasę języków jako podzbiór klasy kodów. Cechą kodu jest to, że ma on swój słownik i składnię, ale nie koniecznie służy on do komunikacji w ten sposób, że posługują się nim znające całość danego kodu podmioty. Gdy służy tego rodzaju komunikacji, wtedy mamy już do czynienia z kodem zasługującym na miano języka. Ale kod służący np. do sterowania pracą obrabiarki nie jest językiem. Można wprawdzie powiedzieć, że części maszyny komunikują się ze sobą za jego pomocą, ale żadna z tych części nie posiada wiedzy polegającej na znajomości całego kodu, będąc wyspecjalizowana w interpretowaniu tylko określomych sygnałów. W odniesieniu do maszyn cyfrowych trzeba odróżnić język maszynowy od maszynowego kodu. Język maszynowy służy człowiekowi do bezpośredniego wydawania poleceń maszynie, będąc tak skonstruowany, że jego zasób leksykalny i składnia dokładnie odpowiadają słownikowi i składni kodu maszynowego (pośrednio wydaje się polecenia za pomocą języków programowania wyższego rzędu, z których dokonywany jest przekład na język maszynowy). Kod maszynowy natomiast realizuje się w samej maszynie w postaci sygnałów kursujących między jej częściami. Coś podobnego zdaje się zachodzić, w pewnym przynajmniej zakresie, w systemie nerwowym. Jego podstawowe elementy -- neurony -- wysyłają i odbierają sygnały w postaci procesów elektrycznych. Ta wspólna cecha obu kodów nie świadczy, że klasa kodów jednego rodzaju (powiedzmy, neuronowych) zawiera się w klasie kodów drugiego rodzaju (powiedzmy, maszynowych); takie wnioskowanie byłoby obciążone elementarnym błędem logicznym (wszak małpy i ludzie zawierają się w pewnej nadrzędnej klasie zoologicznej, z czego nie wynika, że ludzie są małpami, czy odwrotnie). Zwolennicy zaliczenia kodów neuronowych do maszynowych wskazują na tę istotną zbieżność, że jednej i drugie działają na zasadzie zerojedynkowej, to znaczy, podstawowymi elementami kodu są zdarzenia polegające na nadaniu impulsu (co oddaje symbol ,,1'') i na braku impulsu (,,0''). To też prawda, ale tylko jej część. Dalej zaczynaja się różnice. Istotną różnicą jest to, że w odróżnieniu od układów elektrycznych układy neuronowe cechują się progami wrażliwości. Podczas gdy w obwodzie elektrycznym każdy wysłany impuls jest przewodzony w całym obwodzie, to podstawowa komórka układu nerwowego, neuron, reaguje na impulsy i ewentualnie przewodzi je dalej dopiero po otrzymaniu pewnej ich serii; im krótsza seria jest do tego potrzebna, tym niższy jest próg wrażliwości. Jeśli do pobudzenia neuronu trzeba szczególnie wielu docierających doń kolejno sygnałów, mamy do czynienia z układem (jak mawia się o pewnych ludziach) ,,gruboskórnym'' (której to cechy nie da się przypisać układom elektrycznym). Ta cecha kodu neuronowego wiąże się z działaniem w nim substancji chemicznych zwanych neuroprzekaźnikami. Umożliwiają one przewodnictwo między neuronami dzięki temu, że pokonują szczeliny oddzielające neurony; skuteczność i rozmiar tej akcji zależy od zaangażowanej w nią ilości przekaźnika, czy jego koncentracji, co uzupełnia działanie cyfrowe o działanie typu analogowego. 2.2. Powyższe naszkicowanie różnic między kodami neuronowym i maszynowym jest bardzo pobieżne, ale wystarczy, żeby zasygnalizować problem z pojęciem maszyny. Jest tu do wyprostowania pewne nieporozumienie semantyczne. Termin ,,maszyna matematyczna'' jak i termin ,,komputer'' (traktowany jako synonim pierwszego) cechuje się dwuznacznością, która ma swe historyczne przyczyny, ale nie powinna być tolerowana. Pokonywanie tej wieloznaczności zacznę od przypomnienia faktu, który istotnie się przyczynił do jej powstania. W roku 1936 angielski matematyk Alan Turing (1912-1954) napisał arykuł tak brzemienny w skutki, jak to może się zdarzyć nie więcej niż paru arykułom na przestrzeni stulecia. Od paru już wieków odróżniano w matematyce postępowanie twórcze, wymagające pomysłowości, od postępowania mechanicznego polegającego na rachowaniu za pomocą jakichś urządzeń fizycznych; do najłatwiej dostępnych należały ołówek i karka papieru, a ponadto były liczydła, mechaniczne kalkulatory itp. Ale choć rachowanie było czynnością powszechną, nie oznaczało to zrozumienia jego istoty; jej zrozumienie uzyskane dzięki Turingowi okazało się być potężnym impulsem i wskazówką do konstrukcji komputerów (do czego doszło w kilka lat po pracy Turinga). Turing opisał z maksymalną dokładnością proces rachowania na symbolach czyli cyfrach, skąd się wziął przymiotnik ,,cyfrowe''. Jest to proces realizowany przez maszynę, która pobiera na wejściu dane w postaci symboli jako obiektów fizycznych, przetwarza je zgodnie ze zbiorem wpisanych w nią instrukcji (programu) i podaje na wyjściu wyniki przetworzenia. To ujęcie, tak proste w pomyśle, okazało się niezwykle płodne poznawczo, bo skoro mamy maszynę, to zachodzi jakiś jej ruch i wtedy jest sens pytać, czy ten ruch ustanie po iluś krokach (maszyna wykona zadanie), czy też w pewnych przypadkach nie dojdzie do uzyskania wyniku, a to z powodu wpadnięcia maszyny w pętlę. Jest to problem, z którego nie zdawały sobie sprawy wcześniejsze pokolenia matematyków. Uświadomiono go sobie dopiero na kilka lat przed pracą Turinga dzięki kolosalnemu rozwojowi logiki matematycznej, która okazała się być (jak to określił kongenialny z Turingiem Emil Post) ,,samoświadomością matematyki''. Sformułowanie tego problemu pochodzi od wielkiego matematyka niemieckiego (stąd niemiecka terminologia) Davida Hilberta pod nazwą Entscheidungsproblem. Sam Hilbert nie znał rozwiązania, wyrażał jedynie nadzieję, że zostanie ono znalezione i będzie pozytywne. Znalazł je Turing, ale okazało się negatywne. Jego sens jest taki, że są w matematyce zagadnienia nierozstrzygalne czyli, mówiąc językiem teorii liczb, istnieją wśród liczb rzeczywistych liczby nieobliczalne. Wynik ten ma kolosalną doniosłośc nie tylko teoretyczną, ale i praktyczną, określa bowiem granicę możliwości komputera cyfrowego. Na polu teoretycznym osiągnięcie Turinga jest zbliżone do uzyskanego kilka lat wcześniej wyniku Kurta G\"odla, ale ponieważ G\"odel nie posługiwał się terminem ,,maszyna'', to brzemienny akt przełozenia zwrotnicy myśli ku powiązaniu logiki z maszynami stał się historyczną zasługą Turinga. Stąd opisana przezeń maszyna zaczęła być wkrótce nazywana uniwersalną maszyną Turinga. A gdy stało się widoczne, że jest ona równoważna komputerowi cyfrowemu, to wobec wszechobecności tego ostatniego powyższy zwrot zaczął być używany zamiennie z krótszym odeń terminem ,,maszyna''. Po tym naświetleniu historycznym można ze zrozumieniem śledzić dalsze dzieje pojęcia maszyny w informatyce. Turing do swej definicji maszyny wprowadził warunek nieciągłości czyli dyskretności (por. niżej ustęp 3.1) sekwencji symboli. To oddaje naturę procesu liczenia wykonywanego ołówkiem na papierze czy palcami na liczydłach. Nie jest to jednak jedyny możliwy sposób przetwarzania danych matematycznych w celach rachunkowych. Równocześnie z pracującymi w ten sposób maszynami cyfrowymi zaczęto projektować komputery analogowe, w których proces liczenia ma charakter ciągły, na przykład na tej zasadzie, że różnym liczbom rzeczywistym odpowiadają rózne stanu napięcia prądu elektrycznego (na tym polega tu analogia między światem liczb i światem fizycznym). Względy technologiczne sprawiły, ze w rozwoju informatyki maszyny analogowe zeszły na dalszy plan, a na pierwszym znalazły się cyfrowe. Stąd, gdy mówi się po prostu ,,komputer'', ma się na myśli maszynę cyfrową, a gdy chce się mówić o analogowej, trzeba dodać tę przydawkę. Taki jednak stan języka, choć motywowany aktualnym stanem techniki, w niczym nie zmienia faktu, że komputer analogowy nadal istnieje jako równorzędna alternatywa dla komputera cyfrowego, a w pewnych zagadnieniach, czy to teoretycznych, czy to praktycznych, pojęcie to okazuje się nieodzowne. 2.3. Dopiero po dokonaniu takich porządków pojęciowych staje się czytelny sens tytułu obecnego eseju. Skoro są dwa rodzaje maszyn, cyfrowe i analogowe, muszą też być dwa odpowiednio różne sposoby kodowania w nich danych do obliczeń, a więc dwa różnej natury kody maszynowe. Wobec tego w zagadnieniu tytułowym skondensowane są dwa pytania: --- jak ma sie kod nuronowy do kodu maszyny cyfrowej? --- jak ma się kod neuronowy do kodu maszyny analogowej? Wielu autorów uważa, że niepojęta wręcz sprawność mózgu bierze się nie tylko z jego kolosalnej złożoności, wciąż dalece przewyższającej złożoność komputera cyfrowego, lecz także z powiązania rozwiązań cyfrowych z analogowymi, przy wielkiej roli przysługującej tym drugim. Każdy zainteresowany ich tematyką powinien zapoznać się z pojęciem nieciągłości, oraz pewnej jej realizacji zwanej binarnością kodu, w sposób gruntowniejszy niż to zostało uczynione w dotychczasowych uwagach. Służy temu następujący po obecnym odcinek 3. Dla większej operatywności w wysłowieniu będzie w nim wprowadzony nowy termin -- ,,robot''. Na użytek obecnych rozważań będę pod nim rozumiał obiekt zdolny do wykonyania prac, których wyniki, czy będzie to liczenie, czy rozumowanie, czy tłumaczenie na jakiś język, czy prace fizyczne, są takie jak wyniki prac ludzkich, ale osiągnięte na innej drodze: wyłącznie za sprawą czynności sterowanych kodem cyfrowym, a więc właściwym maszynie Turinga. 3. ZARYS KODU ROBOTÓW: O DYSKRETNOŚCI (NIECIĄGŁOŚCI) I BINARNOŚCI Jest to zarys najogólniejszy, szkicujący charakterystyczne cechy języka robotów: dyskretność oraz binarność. Ta druga to pewien rys techniczny, niezbędny dla ukazania natury robota, zwłaszcza wobec faktu, jego ciało rządzi się prawami elektryczności. Dyskretność zaś, jako przeciwstawienie ciągłości, reprezentuje wielki problem filozofii informatyczno-logicznej. 3.1. Dyskretność i skończoność Dyskretności języka, oczywiście, nie należy mylić z dyskrecją w wypowiadaniu się (cechą właściwą damom i dżentelmenom). Zbieżność fonetyczna tłumaczy się wspólną etymologią od łacińskiego discerno (imiesłów discretum), co znaczy: odróżniam. Człowiek dyskretny odróżnia, co mówić, czego nie mówić. Dyskretność zaś w językowej sekwencji symboli polega na tym, że odróżniamy jej poszczególne elementy, np.\ dzięki temu, że są oddzielone spacjami; spacja to jeden z fizycznych środków uzyskania dyskretności. Przykładem dyskretności jest każda sekwencja liczb całkowitych. Jeśli ,,przerwy'' między nimi, na przykład między 0 i 1 wypełnimy wszystkimi możliwymi ułamkami, dostaniemy sekwencję o własności, która w matematyce nazywa się gęstością. Tu trzeba odnotować fakt, o którym uczymy się w pierwszym rozdziale analizy matematycznej, że nawet tak gęsta sekwencja ma luki. Ma je w tym sensie, że między sąsiednimi ułamkami znajdują się liczby nie należące do zbioru ułamków. Sławetne przykłady takich tkwiących w lukach obiektów to pierwiastek z dwóch czy liczba pi. Nie należy sądzić, że są to jakieś egzotyczne okazy; jest ich wręcz nieskończenie wiele. I dopiero wtedy, gdy nimi uzupełnimy zbiór ułamków, dostaniemy sekwencję o własności, której na imię ciągłość. Jest ona cechą zbioru liczb rzeczywistych. O tym, że ciągłość jest obecna w świecie przyrody, przynajmniej w perspektywie fizyki klasycznej, świadczy dobitnie fakt, że do jej ujęcia konieczne było stworzenie metod analizy matematycznej (dokonane w 17ym wieku, niezależnie, przez Newtona i Leibniza). Ciągłość czasu i przestrzeni jest nam dana w przednaukowej intuicji jak i zakładana w naukach przyrodniczych. Oprócz tego znanego królestwa ciągłości istnieją obszary, co do których dotąd nie wiemy, czy obowiązuje w nich ciągłość czy dyskretność. Do takich zagadkowych obszarów należy ludzki strumień świadomości. Nie szkodzi, jeśli ma on przerwy (np. w narkozie), ważne w naszym problemie jest to, czy istnieją odcinki będące ciągłymi. Jeśli tak, to trzeba podjąć kolejne pytanie, czy elementy tego strumienia można traktować jak wyrazy języka. Język taki nie służyłby do komunikacji (chyba że telepatycznej), ale zasługiwałby na to miano, jeśliby się okazało, że ma właściwy sobie słownik i gramatykę. Niektórzy wybitni lingwiści są przekonani, że język taki istnieje, a nawet przyjął się nań skrót LOT (language of thought). Pytanie brzmi: czy dyskurs w LOT ma (lub miewa) cechę ciągłości? Jeśli na pytanie o realność LOT odpowiemy twierdząco, powstaje następne: czy z każym dyskursem (tekstem) w tym języku myśli jest skorelowany proces mózgowy w sposób wzajemnie jednoznaczny, co znaczy, że każdemu elementowi jednego procesu odpowiadałby dokładnie jeden element drugiego, i odwrotnie. Jeśli uznamy ciągłość języka myśli oraz wzajemną jednoznaczność przyporządkowania do odpowiedniego procesu mózgowego, to i ten drugi trzeba uznać za ciągły. Odnotowawszy tyle niewiadomych na temat języka mózgu, powróćmy na teren zancznie łatwiejszy do opisania, jakim jest język robotów. Jego dyskretny charakter najlepiej oddaje wyobrażenie, że sekwencje wyrażeń są produkowane na taśmie podzielonej na kratki; w każdą kratkę wpisuje się jeden symbol lub zostawia ją pustą. Nie jest to najwygodniejszy sposób zapisywania wyrażeń, toteż nikt nie myśli stosować go w praktyce. Co jednak bardzo ważne, udowodniono, że cokolwiek da się wykonać, na przykład obliczenia, przy jakiejś wygodniejszej technice zapisu dyskretnego, da się też wykonać za pomocą zapisu na pokratkowanej taśmie, choć może to trwać niepomiernie dłużej. Obraz taśmy zaś służy do tego, by dać pojęcie o naturze języka robota, mianowicie o tym, jak nie wiele środków mu trzeba, żeby operować symbolami w celu liczenia, jak też wykonywać wiele innych rzeczy. W dyskretności języka przejawia się własność robota, która dla zrozumienia jego natury jest fundamentalna. Jest nią skończoność. Między sąsiadujące ze sobą symbole języka nie da się wstawić nieskończenie wielu innych symboli; gdyby tak się stało zatraciłby on cechę dyskretności, a stałby się ciągły lub gęsty. Nasuwa się pytanie, czy nie wchodziłaby w grę nieskończoność właściwa dyskretnej sekwencji liczb naturalnych. To zależy od czasu, jaki damy robotowi na wykonywanie operacji w jego języku. Gdyby czasu było nieskończenie wiele, w tym nieskończonym czasie robot obliczyłby np. wszystkie elementy dziesiętnego rozwinięcia liczby pi. Ale skoro jest to przypuszczenie z gruntu fikcyjne, to z każdej strony robot jest opasany skończonością. W tym punkcie trzeba się liczyć z pytaniem: co w tym osobliwego? Czy tylko robota ogranicza w ten sposób skończoność? Czy nie jest to także udziałem człowieka? Otóż nie. Umysł ludzki ma przedziwną zdolność ogarniania nieskończoności, która wiąże się jakoś ze zdolnością posługiwania się pewnymi pojęciami nim powstaną odpowiadające im symbole. Umiemy bez słów przedstawiać sobie postępowanie w niekończoność, a w pewnych przypadkach jest nam trudno myśleć inaczej niż w kategoriach nieskończoności. Typowe takie przypadki to przedstawienia czasu i przestrzeni. W popularnych wykładach współczesnej fizyki autorzy dają z siebie wszystko, żeby nas przekonać, że czas miał początek, powiedzmy, w chwili ,,big bangu'', ale laik i tak uparcie pyta, co było przedtem, a co jeszcze przedtem itd. Czy jest jakaś racja w tym pytaniu, to inna sprawa; tym, co ważne w obecnym kontekście, to owa skłonność umysłu ludzkiego do myślenia infinitystycznego (łac. infinitas -- nieskończoność), której to skłoności ani śladu się nie znajdzie w ,,umyśle'' robota. 3.2. Binarność języka i jej fizyczne odwzorowanie Terminem ,,binarny'' (łac. bis -- podwójnie) określamy tę cechę alfabetu oraz, pochodnie, tekstu w tym alfabecie, że występują w nim tylko dwa proste symbole; można je przyrównać do liter. Alfabet języka arytmetyki w systemie pozycyjnym dziesiętnym składa się z dziesięciu symboli, od ,,0'' do ,,9'', alfabety języków europejskich z dwudziestu paru liter; na tym tle alfabet binarny odznacza się uderzającą oszczędnością. Żeby zachować pewne przydatne podobieństwo do notacji dziesiętnej, przyjęło się zachowywać jej dwa pierwsze symbole ,,0'' i ,,1'' jako jedyne symbole notacji binarnej; w jaki sposób notacja czysto arytmetyczna i do tego tak skąpa może wystarczyć do wyrażenia nieprzebranych treści, zobaczymy niebawem. Żeby dojść do tego przez opis sytuacji lepiej znanych, wyobraźmy sobie chwilowo, że symboli mamy tyle, ile ich jest w swojskiej notacji dziesiętnej. Za ich pomocą możemy opisać dowolnie wielką liczbę. Milion? Proszę bardzo, wystarczy napisać jedynkę, a za nią sześć zer. Weźmy pod uwagę jakiś przebogaty język składający się z miliona pojedynczych słów. Żeby zapisać dowolne z nich korzystając ze zbioru dziesięciu prostych symboli, trzeba skorzystać z istniejącego już uporządkowania, powiedzmy alfabetycznego, i ponumerować wszystkie słowa od pierwszego do milionowego. Jeśli w tym porządku słowo ,,abnegat'' jest na dziesiątej pozycji, zamieniamy je na parę cyfr ,,10''. Teraz możemy tworzyć dowolnie długie teksty zastępując polskie wyrazy ich numerami. Gdy tak się przetłumaczy, powiedzmy ,,Pana Tadeusza'', straci się wprawdzie rymy, ale nic się nie uroni z treści opisowej. Żeby dojść do binarności, zredukujmy liczbę cyfr w notacji arytmetycznej do dwóch. Właściwie dlaczego ma być dziesięć? Wzięło się to może ze zwyczaju liczenia na palcach, których mamy akurat tyle. Istotą stosowanej przez nas notacji arabskiej jest nie to, że jest dziesięć cyfr. Istotna jest jednolita zasada syntaktyczna czyli dotycząca sposobu tworzenia wyrażeń złożonych. Ta jednolitość i leżąca u jej podstaw myśl matematyczna odróżnia ją chlubnie od notacji rzymskiej, którą rządziła wielość tworzonych niesystematycznie, ad hoc, reguł syntaktycznych. Ten kolosalny postęp w języku arytmetycznym zawdzięczamy wynalazkowi zera. Trzeba było geniuszu pewnego anonimowego Hindusa gdzieś koło ósmego wieku naszej ery, trzeba było talentu matematyków arabskich, którzy natychmiast tę ideę zastosowali, trzeba było wreszcie nowatorstwa papieża Sylwestra II, który w młodości uczył się matematyki w arabskiej Kordobie, żeby na przełomie pierwszego i drugiego tysiąclecia w Europie powstał fundament językowy do budowania arytmetyki. Zero, dzięki temu, że reprezentuje zbiór pusty, czyli nic przedmiotów, nadaje się do tego, żeby wskazywać na coś innego niż liczba przedmiotów, mianowicie na rząd wielkości. Gdy wyczerpiemy już cały zapas pojedynczych symboli, kończący się na ,,9'', to nastepną liczbę pozostaje nam wyrazić wyrażeniem złożonym, które powie, że przechodzimy do następnego rzędu wielkości. Dziesięć przedmiotów wiążemy jakby w pęczek, stąd mamy teraz tylko jeden (za to większy) przedmiot, wobec tego opisujemy go wyrażeniem złożonym z cyfry ,,1'' i symbolu mówiącego, że dokonało się pierwsze grupowanie; do wskazania faktu grupowania doskonale się nadaje jedno wystąpienie symbolu ,,0'' po symbolu ,,1''. Drugie grupowanie nastąpi, gdy wyczerpiemy wszystkie możliwości zestawień dwucyfrowych i tak dojdziemy do ,,99'', a to, że jest ono drugie oddamy pisząc dwa zera. Ponieważ to pozycja zer wskazuje na to, ile było grupowań, czyli na rząd wielkości, taki system języka arytmetycznego nazywamy notacją pozycyjną. Ten opis tworzenia wyrażeń złożonych wskazuje, że nie to, ile mamy do dyspozycji pojedynczych cyfr, ale owa zasada konstruowania z nich złożonych sekwencji cyfrowych stanowi istotę notacji pozycyjnej. Skoro tak, to zachowując tę istotę, a zestaw cyfr ograniczając do dwóch, dostaniemy notację pozycyjną dwójkową czyli binarną. Taka konstrukcja języka arytmetycznego pozwala idealnie sharmonizować cyfrowy język robota z jego naturą elektroniczną. Urządzenia elektroniczne jak i wszelkie elektryczne (elektronika to elektrotechnika mikroświata), przybierają dwa stany: prąd w nich płynie, gdy obwód jest zamknięty, a nie płynie, gdy obwód otwarty. W tym jest, z naszego punktu widzenia, kolosalna przewaga obwodów elektrycznych nad innymi, np.\ hydraulicznymi (gdy przerwiemy wąż przewodzący wodę, woda nie zaniknie, lecz się wyleje). Za pomocą tych stanów można zapisać te dwie liczby, które graficznie oddajemy kształtami zera i jedynki. W obwodzie elektrycznym zero oddamy brakiem prądu, a jedynkę jego obecnością. Oto ilustracja tej zasady zapisu. W podanym wyżej przykładzie wyrażenie ,,abnegat'' otrzymało numer 10. Niech urządzeniem do jego zapisania będzie rząd żarówek: świecąca to zapis jedynki, ciemna to zapis zera. Nazwą liczby dziesięć w notacji binarnej jest sekwencja cyfr 1010 (nie miejsce tutaj, żeby demonstrować sposób konstruowania binarnych nazw liczb; uczyniłem to w książkach Tajniki Internetu, Aleph 1995, i Sztuczna Inteligencja, Znak 1998). Jeśli więc w naszym rzędzie żarówek świeci się tylko pierwsza i trzecia, jest to zapis wyrażenia ,,abnegat'' (przypomnijmy: w wyniku przyporządkowania mu liczby dziesięć z racji występowania na dziesiątym miejscu w uznanym za reprezentatywny do tych celów Słowniku). Gdyby tą metodą chcieć zapisać Biblię, rząd żarówek musiałby rozciągać się gdzieś daleko w przestrzeń okołoziemską, ale gdy rolę żarówek pełnią dziś w układach scalonych cząstki elementarne, wystarczy do tego kawałek dyskietki. Mamy teraz wyraźnie przed oczyma, jak wyglądają teksty w języku robota. Są to niewyobrażalnej długości, nie do ogarnięcia uwagą i pamięcią przez człowieka, rzędy zapisanych elektronicznie zer i jedynek. Tak dostajemy płodny myślowo punkt wyjścia w pytaniu o język mózgu. Czy teksty w tym języku są także kolosalnymi rzędami zer i jedynek, tyle, że zapisanych w innym ,,materiale piśmiennym'', bo nie krzemowym lecz neuronowym? Ten punkt wyjścia, polegający na pytaniu o stopień podobieństwa mózgu do komputera (robota), nazwałem płodnym, bo niezależnie od tego, jaka jest ostateczna odpowiedź, samo szukanie odpowiedzi wzbudza po drodze nowe pytania, będące bodźcami do kolejnych dociekań. To co już wiemy, to jest to, że w mózgu istnieje aktywność elektryczna i że podobnie jak w komputerze istnieją sygnały skonstruowane na zasadzie cyfrowej. Wiemy jednak, że pewne elementy w procesach mózgowych działają na zasadzie analogowej, a więc w sferze, w której nie obowiązuje binarność ani dyskretność. Wiemy coś niecoś o interakcji jednych i drugich, na przykład, że neuroprzekaźniki, będące elementmi analogowymi, są niezbędne dla zaistnienia serii impulsów skonstruowanej zerojedynkowo. To osiągnięte już rozpoznanie wykorzystuje się do budowania urządzeń do przetwarzania informacji naśladujących mózgi; nazywamy je sieciami neuronowymi. Są one do wielu celów użyteczne, ale kolosalne uproszczenia, których musimy się dopuszczać w ich konstrukcji świadczą, jak mało wiemy o działaniu mózgu. Największą zagadką jest fenomen świadomości. We współczesnym świecie nauki nikt już nie chce się godzić na pozostawienie tego fenomenu poza zasięgiem wyjaśniania przyrodniczego, czy to odwołującego się do biologii czy do fizyki. Takich wyjaśnień wciąż brakuje, ale formują się przyczółki, z których dałoby się, jak sądzą zaanagażowani w to badacze, przeprowadzić atak na niedostępną dotąd tajemnicę. Jeden z czołowych w tej kwestii autorów, wybitny fizyk z Oksfordu Roger Penrose sądzi, że sukces ten będzie należał do fizyki wychodzącej od teorii kwantów ale zarazem pokonującej jej obecne ograniczenia; siłą zaś wspierającą natarcie, a nawet tą, od której wyszedł już pierwszy impuls jest -- w jego ujęciu -- problematyka na przecięciu informatyki z logiką matematyczną. Nie możemy tu wchodzić w wątek teorii kwantów, której paradoksalne konsekwencje wymagają niezwykłych zabiegów i odpowiednio długich wywodów, żeby teorię uczynić jako tako przyswajalną dla laika. Aby odnotować (do ewentualnych dalszych studiów) hipotezę Penrose'a w aspekcie postawionego tu problemu, wystarczy powiedzieć, co następuje. Zaistnienie świadomości -- wedle tej hipotezy -- wymaga pewnych uwarunkowanych kwantowo stanów biologicznych; jest więc nieosiągalne dla robota jako istoty nieorganicznej. 4. DOPOWIEDZENIE I PODSUMOWANIE Czynienie dopowiedzeń, gdy się już tyle wyżej powiedziało, może wyglądać na nieporządek w redagowaniu tekstu. Czemu rzecz tutaj dopowiadana nie została powiedziana wcześniej, w jakimś najwłaściwszym dla niej kontekście? Istotnie, takiej reguły mówienia za porządkiem trzeba się zwykle trzymać, ale natura poruszanych tu zagadnień zdaje się usprawiedliwiać wyjątek. Mianowicie, są to zagadnienia tak złożone a zarazem tak nowe dla każdego, kto nie poświęca się intensywnie dziedzinie FIL, że pełna systematyczność wydłużyłaby ciągi myślowe w sposób dla czytelnika trudny do ogarnięcia. Trzeba raczej postępować tak, jak ktoś, kto poznaje nową okolicę startując z pewnego punktu wyjścia, potem wraca doń i z tego punktu wyprawia się w nowym kierunku, poczem zmienia do następnych wypraw punkt wyjścia, i tak dalej. 4.1. Problem stworzenia kodu neuronowego muchy (do ustępu 1.1) Badania nad lotem much są w szerokim zakresie uprawiane przez neurobiologów. Znaczącym reprezentantem tej dziedziny jest amerykański uczony William Bialek, z którego tekstów są zaczerpnięte następujace dane i poglądy. "My guess, which guides much of my research, is that the crucial issues are much deeper: The brain is a machine which solves a variety of apparently hard problems, but we do not have a clear mathematical definition for this class of problems." Zawarta jest w tym tekście w sposób pośredni próba odpowiedzi (guess) na tytułowy problem obecnego eseju: jeśli mózg jest maszyną do rozwiązywania problemów, to kod neuronowy jest kodem maszynowym. Wracając do przypowieści o terminatorze, który praktykował u Stwórcy, zauważmy, że ta odpowiedź nie daje mu jeszcze wskazówki, jak wykonać pracę dyplomową. Wiedząc bowiem, że maszyny bywają cyfrowe i analogowe, nasz kandydat na demiurga musiałby wiedzieć, który typ maszyny i kodu wchodzi tu w grę. Pewien kontekst zacytowanej wypowiedzi Bialka podpowiada, że niektóre problemy są rozwiązywalne środkami maszyny cyfrowej. "It is clear that the precision of trajectory estimation is ultimately limited by the laws of physics --- noise due to the random arrival of photons at the detector cells and blur due to diffraction in the lenses of the eye --- so we have a good notion of what it means to solve the problem well." W tym zakresie (jak wiemy dzięki powiązaniu wiedzy fizycznej z informatyczną), maszyna cyfrowa daje sobie radę; nie znaczy to jednak, że mózg muchy nie korzysta z innych rozwiązań, gdy idzie o rodzaj kodu. Ważną informację w tej sprawie znajdujemy u innego badacza lotu much. "Flies rely heavily on vision to control their flight. Part of this control system is provided by a set of motion sensitive neurons, which continuously monitor the fly's self-motion. We study the coding of motion by one such neuron, and find that cooperative effects among spikes play an important role in this coding. In particular, the use of intervals among spikes as symbols of the code provides a rich alphabet to represent continuous motion in real time." Naama Brenner w odczycie: ,,Compound Symbols of a Neural Code'' wygłoszonym na sesji pod znamiennym tytułem Entropy, Information, and Temporal Precision in Neurons; termin ,,spikes'' (zrozumiały tylko dla specjalistów) można tu zastapić przez ,,impulses''. Kluczowe dla naszego problemu jest wskazanie na interwały między impulsami jako na obdarzone znaczeniem elementy kodu (nasuwa się analogia do kodu muzycznego i jego percepcji przez słuchacza). Ten rodzaj kodu wykracza poza środki stosowane w maszynie Turinga. Powstaje jednak pytanie, czy da się on symulować na maszynie Turinga czyli w sposób cyfrowy (a więc z cechami nieciągłości i binarności). A jeśli tak, to jaki byłby poziom dokładności owej symulacji? Czy sprostałby on warunkom nie tylko eksperymentalnym, lecz także wymogom realnego śrdowiska? Jeśli symulacja cyfrowa nie byłaby w pełni adekwatna, to czy lepiej radziłaby sobie z problemem symulacja analogowa? Są to wciąż pytania czekające na odpowiedź. Ujmując więc konkluzję w konwencji opowieści o kandydacie do dyplomu demiurga, trzeba powiedzieć, że nie uda mu się zrobić dyplomu od zaraz (od sukcesu może go dzielą dziesiątki lub setki lat). Hipotetyczne oszacowanie stopnia trudności, takie jak dokonane wyżej, bierze się z pewnych supozycji filozoficznych, których treść dobrze ilustruje problematykę działu filozofii oznaczonego tu skrótem FIL. Ramy tego artykułu nie pozwalają na pokazanie analizy prowadzącej od filozofii do owej hipotetycznej prognozy, ale rąbek założeń da się w pewnym stopniu uchylić. Poświęcony jest temu kolejny ustęp. 4.2. Gradacja dostępności obliczeniowej (do ustępu 1.2 i 1.3) Na gruncie FIL pojęciem filozoficznie fundamentalnym jest złożoność. Należy też ono do informatyki, a głębiej wiąże się z informatyką, jak też z problematyką logiczną i matematyczną przez pojęcie oddawane zwrotem złożoność obliczeniowa (inaczej, algorytmiczna). Od rodzaju i stopnia złożoności układu zależy możliwość wyjaśniania i przewidywania jego zachowań środkami algorytmicznymi. Jeśli złożoność nie jest tak wielka, żeby blokować stosowanie będących do dyspozycji środków algorytmicznych (programów itp.) do opisu, wyjaśniania i przewidywania, to mówimy, ze dany układ jest, ze względu na dane środki, dostępny obliczeniowo (inaczej, algorytmicznie). Gdy niezbędne są jakieś środki silniejsze, powiemy, ze wchodzący w grę układ jest mniej (niż tamten inny) dostępny obliczeniowo (pojęcia te były wstępnie sygnalizowane w ustępie 1.3). Skoro wchodzi w grę możliwość obliczania, decydujący głos w sprawie stopni obliczalności ma arytmetyka teoretyczna, wraz z tym do niej komentarzem, który pochodzi od logiki matematycznej (tzn. koncentrującej się na metodach rozumowań matematycznych). Nawiązując do, będącego tematem ustępu 1.3, zagadnienia rynkowej wartości FIL, warto zwrócić uwagę na pojawiające się ostatnio głosy na temat wartości rynkowej arytmetyki i logiki, ponieważ chodzi o te tematy z obu dyscyplin, które są im wspólne z FIL. Oto przykład tekstu znajdującego się w programie studiów matematycznych uniwersytetu Calgary (Kanada). "There certainly are areas of mathematics, though originally solely motivated by a quest for more fundamental understanding, that have suddenly and unexpectedly also gained in utilitarian and marketplace importance. For example, theories of decidability, solvability, and computability have become an essential aspect of modern computer science. Also number theory [tj. arytmetyka teoretyczna -- WM], a discipline until recently considered the epitome of pure mathematics, has areas finding application within information technology, thus gaining tremendous commercial importance." Arytmetyce zawdzięczamy świadomość tego, że liczby rzeczywiste dzielą się na nieobliczalne i obliczalne, a te drugie na wymierne i niewymierne. Wyznacza to podstawowy schemat (podlegający jeszcze dalszym rozgałęzieniom) dostępności obliczeniowej. Najdostępniejsze są, rzecz jasna, liczby wymierne. Liczba niewymierna obliczalna to taka, która ma nieskończone i nieperiodyczne rozwinięcie dziesiętne, ale zarazem istnieje formuła, która pozwala obliczyć ją w przybliżeniu z dowolnym stopniem dokładności. Formuły takie nie istnieją dla liczb nieobliczalnych. Tak więc nieobliczalność wyznacza górny pułap niedostępności obliczeniowej. Ten matematyczny aparat pojęciowy wchodzi do elementarza FIL. Dzięki niemu można sformułować fundamentalne pytania filozoficzne dotyczące poszczególnych działów rzeczywistości, którymi są: materia nieożywiona, materia ożywiona, świat umysłowy, społeczeństwo. Dla uproszczenia tych rozważań, pomińmy dalej świat umysłowy (w pewnym aspekcie jest on reprezetowany przez ludzki mózg), pomińmy także pewne problemy pomiarowe i obliczeniowe, które w przypadku tzw.\ układów niestabilnych, dramatycznie pomniejszają dostępność obliczeniową w zakresie nawet liczb wymiernych (specjaliści posługują się określeniem ,,chaos deterministyczny''). Po tych uproszczeniach otrzymujemy taki oto zestaw zagadnień. --- A. Czy wszystkie układy fizyczne (w sensie materii nieożywionej) są charakteryzowane przez liczby obliczalne? A jeśli tak, to czy są to zawsze liczby wymierne, czy też bywają niewymierne? Jeśli są charakteryzowane zawsze przez liczby obliczalne, to są w zasadzie (jeśli abstrahować od aktualnego stanu techniki) dostępne obliczeniowo dla komputerów cyfrowych czyli dostępne algorytmicznie. Odpowiedź przecząca w kwestii obliczalności, że bywają układy fizyczne niedostępne algorytmicznie, toruje drogę analogicznej odpowiedzi w odniesieniu do układów biologicznych i społecznych. Brak obliczalności bowiem podąża za złożonością maksymalną, a ta cechuje układy biologiczne, w szczegolności system nerwowy, oraz tym bardziej układy społeczne. Natomiast dana na tym szczeblu odpowiedź twierdząca (dla fizyki wszystko jest obliczalne) jeszcze nie przesądza odpowiedzi twierdzącej w odniesieniu do wyższych stopni złożoności, tych na poziomie mózgów czy społeczeństw. Wtedy powstaje następne pytanie. --- B. Czy wszystkie układy biologiczne, w szczególności mózgi, są charakteryzowane przez liczby obliczalne? A jeśli tak, to czy są to zawsze liczby wymierne, czy też bywają niewymierne? Powtarza się tu postępowanie warunkowe związane z punktem A. Jeśli w układach biologicznych bywa nieobliczalność, to tym bardziej zachodzi ona w układach społecznych, te bowiem powstają w wyniku interakcji układów biologicznych, co prowadzi do jeszcze wyższego poziomu złożoności. Przy tej klauzuli powstaje pytanie C, różniące się od B tym, że zamiast o biologicznych mówiłoby się w nim o układach społecznych. Poprzestańmy jednak na kwestii B jako należącej do głównego nurtu obecnych rozważań. Co w tej kwestii ma do powiedzenia nauka w jej aktualnym stanie? Da się zebrać tej sprawie bogatą dokumentację, co byłoby samo w sobie godnym podjęcia zadaniem, tutaj jednak poprzestaniemy na skrótowych wzmiankach. Co do możliwości istnienia funkcji nieobliczalnych w przyrodzie, wybitny specjalista od zagadnień obliczalności Andrzej Grzegorczyk wypowiedział się w swej książce Zagadnienia rozstrzygalności (PWN 1957, s.46), jak następuje. "Badając przyrodę próbuje się zwykle ująć jej zależności za pomocą funkcji obliczalnych, zwykle nawet bardzo prostych. Funkcje przyjmowane na początku okazują się często niedokładne. Być może, że pewnym zależnościom fizycznym odpowiadają dokładnie dopiero pewne funkcje nieobliczalne lub może nawet nie definiowalne za pomocą matematycznych pojęć. Wszelkie matematyczne wzory byłyby wtedy dalekimi przybliżeniami." Podczas gdy te dalekie przybliżenia mogą być wystarczające w fizyce, może się okazać, że nie wystarczają w biologii. Jak jest w rzeczywistości, to kolejny problem do zaatakowania. Z wybitnych autorów zagranicznych w podobnym duchu jak Grzegorczyk duchu wypowiadali się Martin Davis, należący do awangardy informatycznej badacz relacji między logiką i informatyką, oraz David Deutsch, fizyk z Oksfordu będący jednym z głównych pionierów badań nad konstrukcją komputera kwantowego. 4.3. Procesy neuronowe w gradacji dostępności obliczeniowej Kontynuację ustępu 4.2, w szczególności problem obliczalności procesów zachodzących w systemie nerwowym, podejmuje się tutaj w kontekście pewnej dyskusji prowadzonej przez neurobiogów. Dobrze zdaje z niej sprawę artykuł Gerharda Wernera ,,Computation in Nervous System'' reprezentującego program badawczy z inżynierii komputerowo-biomedycznej w Texas University. Są to myśli tak zbieżne z tezami niniejszego eseju, że trudno by je wypowiedzieć innymi słowami niż te, którymi posłużył się Werner; toteż dalszy ciąg będzie spolszczoną parafrazą pewnych fragmentów jego tekstu, z odcinka pt. ,,The analog-digital distinction'' (na parafrazowanie niech tu wskazuje ujęcie tekstu w podwójne gwiazdki). Wywód Wernera zmierza do uchwycenia różnic między dostępnością obliczeniową układów fizycznych nieożywionych a dostepnością obliczeniową mózgu, stąd zaczyna się od przywołania pewnej sytuacji w fizyce. **Rozważmy ruch planet, które to rozważanie doprowadziło Poincar\'e'go do odkrycia układów niestabilnych. Planety poruszają się z wielką precyzją wyznaczoną przez stałą grawitacyjną G, którą w najlepszym przypadku znamy tylko z dokładnością do kilku pozycji po przecinku. Ale realny ruch planet jest zależny od wartości G jako liczby rzeczywistej wyrażającej jedną ze stałych fizyki. Ogólnie biorąc, liczby wymierne są przyporządkowane procesom nieciągłym, a liczby rzeczywiste procesom ciągłym czyli analogowym. Prawie cała fizyka jest ujęta w liczbach rzeczywistych, ale przyjmuje się powszechnie, że zbiór liczb wymiernych na tyle wystarcza do modelowania i wyjaśniania w nauce. że nie narusza to jakościowej trafności praw przyrody i czynionych za ich pomocą wyjaśnień. Mówiąc jednak ściśle, rachowanie cyfrowe abstrahuje w pewien sposób od własności fizycznych, przez co pełna prawda o prawach fizyki staje się nieosiągalna. Nazywając rachowanie cyfrowym, ma się zwykle na myśli operacje dokonywane w iluś dyskretnych (tj. nieciągłych) krokach poprzez manipulowanie symbolami. Przez rachowanie analogowe rozumie się płynny proces fizyczny, który przekształca w wynik końcowy początkową wartość wielkości fizycznej danej w obserwacji; w tym przypadku bierze się pod uwagę prawa fizyczne rządzące dynamiką fizycznej maszyny. Klucz do tego rozróżnienia znajduje się w pojęciu rekurencyjności, czyli algorytmiczności, jako własności pewnych funkcji. Rozróżnienie cyfrowe-analogowe odwołuje się do tego, czy owa cecha ma jakieś odzwierciedlenie w procesie fizycznym, czy też jest względem niego zewnętrzna. Gdy obliczamy ruch ziemi względem słońca, jej położenie w określonej chwili traktujemy jako rekurencyjną funkcję rzeczywistą położenia w pewnej chwili wcześniejszej, ale rekurencyjność jest w tym przypadku czymś obcym samej cesze podlegającej obserwacji. Istotne jest tutaj to, że analogowy (ciągły) proces ruchu zostaje dla celów rachunkowych odwzorowany w procesie rekurencyjnym. W tym sensie rachowanie rekurencyjne jest dogodnym chwytem, który pozwala nam tak się zachowywać, jak gdyby proces fizyczny, z którym mamy do czynienia nie był w gruncie rzeczy procesem analogowym. Jest to w pełni dopuszczalne w fizyce, ale wysoce problematyczne w biologii, gdzie mamy do czynienia z wiele większym dystansem między procesami zachodzącymi w przyrodzie i ich modelami cyfrowymi. Analogowy proces biologiczny jest przez nas ,,wciskany'' w formę procedur rekurencyjnych. W ten sposób proces przyrodniczy zostaje sztucznie przerobiony na algorytmiczny, pozostawiając nas z mylnym wrażeniem, że sama przyroda jest także algorytmiczna.** Powyższy wywód da się streścić w dwóch następujących punktach. (1) Ujęcie cyfrowe (a więc w liczbach wymiernych) praw i stałych fizycznych jest tylko pewnym przybliżeniem do ich realnych wartości, wyrażających się w liczbach niewymiernych, wśród których mogą być również liczby nieobliczalne. (2) Takie przybliżenia, stosunkowo dobrze się sprawiające w fizyce, nie wystarczają w biologii, gdzie z reguły mamy do czynienia z układami niestabilnymi; cechą dla tych układów charakterystyczną jest to, że przybliżenia polegające na zaokrągleniach do iluś (strawnych dla komputera) miejsc po przecinku wprowadzają model całkowicie fałszujący rzeczywistość. 4.4. Konkluzje Ułomność ujęcia cyfrowego odnotowana w punkcie 2 jest przesłanką do następującej odpowiedzi na główny problem tych rozważań: Jak ma się kod neuronowy do kodu maszynowego? Odpowiedź brzmi: Jeśli mamy na uwadze maszynę cyfrową, to kod neuronowy nie jest kodem maszynowym. Tyle już wiemy. Jeśli natomiast mieć na uwadze maszynę analogową, to problem pozostaje otwarty. W ostatnich latach neurobiolodzy zaatakowali ten problem z dużą siłą. Powstało aż kilkanaście hipotez co do słownika i gramatyki tego przypuszczalnego kodu, przy czym o charakterze analogowym decydowałyby takie jego elementy, jak oddziaływania chemiczne czy pola elektromagnetyczne. Dla rzetelności dokumentacyjnej cytuję za Wernerem kilka przykładowych hipotez co do natury kodu neuronowego (przy założeniu, że taki istnieje), nie siląc sie na oddanie ich po polsku i wyjaśnienie na użytek nie-specjalistów (co wymagałoby osobnego tekstu popularno-naukowego). "The favourite candidates of neuron spike codes seem to change, it seems, in cyclic order: rate codes, pulse (the pulse response code and the fire-and-integrate code), analogue match code, each having their own variants and subtypes; ensemble codes; and various combinations of interaction between neuron spikes and slow wave activity." Pozostaje na koniec podzielić się wątpliwością, czy istotnie można mówić o istnieniu czegoś takiego, jak kod neuronowy bez naciągania sensu słowa ,,kod'' poza granice jego czytelności. Do istoty kodu jak i języka należy to, że da się sporządzić listę jego prostych symboli, podlegających łączeniu w większe jednostki wedle reguł gramatyki. Jeśli szukać możliwie najprostszego porównania dla przedstawienia podniesionej tu wątpliwości, to zapytajmy, czy istnieje wykrywalny kod w takiej np. sytuacji komunikacyjnej: oficer wydający komendę tak elektryzuje podwładnych głosem (natężenie, barwa, wysokość) jak i postawą ciała emanującego energią, że te wszystkie czynniki razem wzięte (i dopiero wtedy) czynią żołnierzy zdolnymi do brawurowego ataku. Czy np. natężenie zawartej w tym oddziaływaniu energii da się ująć w kategoriach kodu lub języka? Coś podobnego zachodzi w aktywności neuronowej, gdzie dopiero konfiguracja wielu czynników określonych przez parametry fizyczne (a nie gramatykę i semantykę kodu) wytwarza niezbędny ,,komunikat''. Powstawaniu takich wątpliwości sprzyja postawa filozoficzna, której istotę stanowi wizja zawrotnej złożoności świata. Ta sama wizja prowadzi do ujmowania świata raczej w kategoriach ciągłości niż dyskretności, raczej nieskończoności niż skończoności. Sama skłonność to takiego lub innego widzenia nie jest argumentem w sprawie natury świata. Argumenty czerpie się z faktów poddawanych logicznej analizie. Ale wartość wizji filozoficznej sprawdza się w tym, czy ostatecznie zwyciężą te argumenty, do których ona właśnie inspiruje, czy też argumenty inspirowane wizją jej przeciwstawną. Autor tego eseju jest przekonany, że rozwój nauki przechyla szalę na rzecz jego wizji, czym się tłumaczy podtytuł zaliczający te rozważania do dociekań filozoficznych. Informacja bibliograficzna Wykorzystane w tym artykule teksty pozyskane z Internetu pochodzą z następującyh źródeł. William Bialek, UCSF Sloan Center and NEC Research Institute "Theoretical Physics Meets Experimental Biology" http://keck.ucsf.edu/labinfo/bialek.htm Naama Brenner, NEC Research Institute "Compound Symbols of a Neural Code" http://www.aps.org/meet/CENT99/BAPS/abs/S3625001.html Gerhard Werner "Computation in Nervous System" http://www.ece.utexas.edu/~werner/Neural_computation.html