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