Fizyka mózgu elektronowego – Wielkie Pytania

Fizyka mózgu elektronowego

Wszystko, co robimy na komputerze – piszemy, oglądamy film, dokonujemy matematycznych obliczeń – sprowadza się do manipulacji informacją.

Sama idea jest prosta, jednak skonstruowanie użytecznego komputera wiąże się z rozwiązaniem trudnego problemu: jak zapisać dowolną informację i jak w możliwie najszybszy sposób tą informację przetwarzać?

Najpierw musimy wybrać jakiś język, dzięki któremu komputer będzie mógł zapisać (i odczytać) dowolną informację – np. liczbę, słowo, dźwięk, albo obraz. Najprostszy taki język (tzw. binarny) składa się z zaledwie dwóch elementów – np. zer i jedynek, ułożonych w ciągach. Przyjmując określone zasady, możemy zapisać dowolną liczbę (np. jeden jako 1, dwa – 10, trzy – 11, cztery – 100 itd.) – potrzebujemy do tego jedynie ciągów o różnej długości. Najmniejszą porcję informacji – pojedynczą pozycję w ciągu – nazywamy bitem.

Jeden bit pozwala na zapis tylko dwóch symboli. Za pomocą dwóch bitów mogę już takich symboli zapisać cztery, ponieważ mam teraz cztery możliwe stany: „00”, „01” „10” i „11”. Trzy bity dają osiem możliwości („000”, „001”, „010”, „100”, „011”, „101”, „110” i „111”). Cztery bity – szesnaście, pięć – trzydzieści dwa itd. Ogólnie, liczba możliwych symboli to dwa do potęgi liczby bitów. Osiem bitów daje nam 256 możliwości i ten zasób dostępnej informacji nazywamy bajtem. Dzisiejsze nośniki pamięci, takie jak pendrive’y czy zewnętrzne dyski, mają możliwość zapisu terabajtów (10 do potęgi 12 bajtów) pojedynczych informacji.

Również z zapisem pozamatematycznych symboli, na przykład liter albo znaków specjalnych, nie ma większego problemu. Możemy po prostu utworzyć listę wszystkich symboli (liter, znaków specjalnych, a nawet cyfr rozumianych jako symbole, a nie jako liczby) i odpowiednio, ze względu na miejsce zajmowane na liście, reprezentować taki znak odpowiednią liczbą (i ciągiem). Jeżeli litera „A” zajmuje 41 pozycją, to w systemie binarnym reprezentowana jest jako 1000001. Aby rozstrzygnąć, czy w konkretnej sytuacji chodzi nam o literę „A” czy liczbę 41, wystarczy poprzedzić symbole i liczby odpowiednimi komunikatami (także wyrażonym ciągiem zer i jedynek), które wskażą, z której tablicy aktualnie należy skorzystać.

Inteligentne przetwarzanie

Współczesny komputer może służyć do szybkiego przetwarzania informacji w celu zaprojektowania nowego samolotu, liczenia gęstości materii wewnątrz gwiazd neutronowych, określaniu prawdopodobieństwa ryzyka inwestycji giełdowych lub pomocy przy wypełnianiu rozliczenia podatkowego. Pozwala nam także oglądać filmy, grać w gry wideo, czatować z ludźmi z drugiego końca świata lub robić zakupy bez wychodzenia z domu. Gdy oglądamy film, głównym zadaniem komputera jest wyświetlanie odpowiednich kolorów każdego piksela na ekranie, które wcześniej zostały cyfrowo nagrane przez kamerę. W każdy z wymienionych przykładów komputer działa w oparciu o pewne informacje wejściowe, które sterują jego zachowaniem krok po kroku. Takie postępowanie nazywamy algorytmem. Za każdym razem, gdy wykonujemy w słupku dodawanie pisemne albo gotujemy w oparciu o przepis kucharski, stosujemy się do jakiegoś algorytmu. Komputer do jakiegoś stosuje się zawsze.

Samo przetwarzanie informacji (syntaktyka), nawet jeśli prowadzi do sensownych dla obserwatora wyników, nie jest tożsame z ich rozumieniem (semantyką) – trudno powiedzieć, by komputer oglądał wyświetlany przez siebie film i rozumiał jego fabułę, w taki sam sposób jak my go oglądamy i rozumiemy. Semantyka wymaga umysłu. Filozofowie przelali morze atramentu na dyskusjach o tym, czy semantykę można jakoś sprowadzić do syntaktyki. Do ostatecznego rozwiązania tej kwestii daleko, ale dziś zdarza się, że syntaktyka zaczyna frapująco przypominać semantykę.

Spektakularnym osiągnięciem w dziedzinie sztucznej inteligencji, która zajmuje się projektowaniem algorytmów zdolnych rozwiązywać różne problemy, była niedawna wygrana programu komputerowego (algorytmu) AlphaGo w starochińskiej grze planszowej go z jednym najlepszych zawodowych graczy – Lee Sedolem. W go należy wykonywać ruchy, które wybiegają w rozgrywce wiele kroków naprzód. Wymyślenie uniwersalnego algorytmu, który by to potrafił, nie wiedząc, jak wygląda sytuacja na planszy, jest niemożliwe, dlatego współcześni inżynierowie sztucznej inteligencji uciekają się do innych technik. Jedną z nich jest takie napisanie programu, by w trakcie działania mógł się on ciągle sam ulepszać (to tzw. uczenie maszynowe).

Tak było z AlphaGo. Na początku trenowano program na podstawie już rozegranych potyczek przez ludzi, a następnie grał on sam z sobą, ciągle ulepszając swoją technikę. Choć cały algorytm AlphaGO został początkowo zaplanowany i zaprogramowany przez człowieka, to techniki przetwarzania informacji, które program nabył, daleko wykraczają poza to, co wiedzieli programiści.

Śledząc krok po kroku (lub bit po bicie) łańcuch przyczyn i skutków w poszukiwaniu wyjaśnienia, dlaczego program w danym momencie podjął konkretną decyzję, zauważymy, że zachowanie AlphaGO jest całkowicie zdeterminowane. Jeden bit wpływa na kolejne w ciągu: jeśli A to B, jeśli B to C, itd. – ostatecznie komputer postępuje tutaj dokładnie tak samo automatycznie jak w przypadku wyświetlania odpowiednich kolorów pikseli przy odtwarzaniu filmu. Różnica polega na tym, że na AlphaGO w ogromnym stopniu wpłynęło otoczenie, czyli tysiące wcześniej rozegranych potyczek, z których każda może mieć wkład do aktualnej decyzji. Nasuwa się w tym momencie pytanie, czy nasz mózg nie działa w podobnie? Czy rzekoma kreatywność i wolna wola człowieka w podejmowaniu decyzji nie jest „tylko” skutkiem skomplikowanego algorytmu przetwarzania danych, na który od urodzenia cały czas ma wpływ otoczenie, a nawet, idąc dalej, setki tysięcy lat ewolucji gatunku jako całości?

Fizyczna realizacja

Zejdźmy jednak na ziemię i zastanówmy się jak w praktyce zastosować ideę bitu (jako podstawowej jednostki informacji). Co z tego bowiem, że mamy świetny algorytm dodawania pisemnego, jeśli musimy sami to dodawanie wykonać. Podobnie AlphaGO mógłby zostać odtworzony tylko „na kartce papieru” bez konieczności istnienia komputera, ale zajęłoby to pewnie setki lat i pochłonęło miliony ryz papieru. Teoretycznie człowiek postępując zgodnie z algorytmem mógłby rozegrać wszystkie te trenujące rozgrywki i zapisywać skrupulatnie na kartce wszystkie bity informacji, które w wyniku uczenia będą wpływać na przyszłe zachowanie programu. Wszystko rozbiega się o czas przetwarzania i miejsce na zapis potrzebnych do działania informacji. Idea komputera sprowadza się do stworzenia jak najszybszej i najmniejszej maszynki do przetwarzania informacji, której ponadto możemy przekazywać dowolne instrukcje operowania na bitach informacji (co nazywamy programowaniem), zamiast robić to samemu „na kartce”. W jaki sposób więc taką maszynkę zbudować?

W materialnym świecie bitem informacji może być prawie wszystko, wystarczy, że jako fizyczny obiekt może znajdować się w dwóch rozróżnialnych stanach. Może być nim lampka na biurku, którą można włączać i wyłączać, co będzie dla nas symbolizować stan zero i jeden. Jeśli na takim biurku postawimy cztery lampki w sekwencji: zapalona (1), zapalona (1), zgaszona (0), zapalona (1), to zgodnie z naszym językiem oznacza to dla nas liczbę “13”. Używając odpowiednio dużej liczby lampek oraz osoby, która będzie je odpowiednio włączać i wyłączać, możemy podyktować komuś dowolny komunikat lub nawet uruchomić program AlphaGO. Stworzyliśmy tym sposobem jeden z najprostszych komputerów!

Taki prototyp komputera (zrealizowanego przez szereg lamp i człowieka obsługującego włączniki) ma szereg wad. Po pierwsze, wymaga bardzo dużo miejsca. Aby przekazać typowe informacje, jakie przekazuje nam komputer (np. informacje o kolorach pikseli na ekranie w trakcie oglądania filmu) potrzebowalibyśmy milionów takich lamp. Po drugie, włączanie i wyłączanie lamp jest niezwykle czasochłonne (tym bardziej milionów lamp). Po trzecie, komputer taki nie jest zautomatyzowany, czyli nadal wymaga świadomej i myślącej istoty, która będzie wykonywać podane instrukcje. Te trzy czynniki, czyli rozmiar, szybkość i automatyczność, są podstawowymi wyznacznikami dobrego komputera i właśnie z tego powodu pierwsze użyteczne komputery powstały dopiero w XX w. – mimo że system binarny, w oparciu o który działa komputer, znany jest od wielu wieków (w Europie jednym z jego pionierów był Gottfried Leibniz na przełomie XVII i XVIII w.).

ENIAC

Jeden z pierwszych komputerów był powstały w 1946 r. ENIAC (od ang. skrótu Electronic Numerical Integrator And Computer). Bardzo przypominał nasz model komputera składającego się z wielu lamp i człowieka, który je obsługuje. Zawierał ponad 18 000 takich lamp i mieścił się w pokoju o wymiarach 6 na 12 metrów, gdzie znajdowały się czterdzieści dwie szafy o wysokości ok. 3 metrów. Jego szybkość nie była zatrważająca – potrzeba 3 milionów ENIAC-ów, aby dorównać mocy obliczeniowej iPhone’a 4.

Różnica pomiędzy ENIAC a naszym prototypem leży w trzecim kryterium – automatyzacji. ENIAC nie potrzebował do wykonywania obliczeń człowieka, ponieważ specjalne lampy, które spełniały zadanie przełącznika, włączały i wyłączały poszczególne elementy obwodu automatycznie na podstawie informacji docierającej z innej części układu.

Kluczem do zrozumienia działania ENIAC-a jest szczególny typ lamp w nim wykorzystanych, które nazywamy lampami elektronowymi. Lampa elektronowa posiada dwie elektrody umieszczone w bańce z wypompowanym powietrzem. Jedna z tych elektrod ma za zadanie emitować ładunki elektryczne, które w próżni będą wędrować do drugiej elektrody, jeśli tylko do lampy zostało przyłożone zewnętrzne napięcie. Emisja ładunków odbywa się poprzez podgrzanie elektrody. Na skutek dostarczonej energii cieplnej ładunki (elektrony) zaczynają uciekać z powierzchni metalu. Wskutek tego ruchu elektronów może dochodzić do świecenia. Podstawowym zadaniem dla lampy elektronowej nie jest jednak świecenie, a spełnianie zadania mechanicznego przełącznika, który w rozważanym przez nas prototypie obsługiwał człowiek.

Przez lampę elektronową, podobnie jak przez zwykłą żarówkę, może prąd płynąć albo nie, co jest kontrolowane przez mechaniczny włącznik. Aby wykorzystać podobny proces w lampie elektronowej, wystarczy pomiędzy obiema elektrodami wprowadzić trzeci element – metalową siatkę, do której przyłożone jest zewnętrze napięcie. Taką siatkę możemy naładować elektrycznie w taki sposób, że emitowane ładunki zaczną być odpychane przez siatkę i tym samym stosunkowo mała ich ilość dotrze do górnej części – prąd zostanie zahamowany. Jeśli natomiast siatka pozostanie elektrycznie obojętna, wtedy większość elektronów dotrze do części górnej i prąd będzie płynął w obwodzie. Tym samym zewnętrzne napięcie, sterujące prądem, który płynie przez lampę, rzeczywiście działa jak włącznik i wyłącznik.

Łącząc w zaplanowany sposób lampy między sobą, możemy sprawić, że jedna będzie wpływać na działanie drugiej. Wykorzystując ideę przełącznika, poprzez zaplanowane ładowanie siatek lamp elektronowych, możemy ustalić również w jaki sposób jeden bit informacji będzie wpływał na bity kolejne. W ten sposób możemy zaprogramować dowolny algorytm (np. algorytm dodawania liczb). Pozostaje tylko naładować odpowiednie siatki, które będą reprezentować serię informacji wejściowych (np. liczb, które komputer ma dodać). W wyniku wzajemnego ładowania i rozładowywania siatek, informacja w postaci prądu płynie wykonując kolejne kroki algorytmu: jeśli A to B, jeśli B to C, itd. Jeśli tylko lampy będą odpowiednio połączone, przepływ prądu wykona dla nas określone zadanie, dając w wyniku serię naładowanych lub nie bitów informacji wyjściowej (np. sumy podanych liczb). Tym sposobem siatka i prąd zastąpiły kartkę i ołówek.

Półprzewodnikowa rewolucja

Choć automatyzm ENIAC-a był rewolucją, sama konstrukcja posiadała wiele ograniczeń. Jego lampy szybko się zużywały – co dwa dni trzeba było jakąś wymieniać. Technologia ta nie dawała perspektyw na przyszłość. Aby nastała era komputerów osobistych, musiała zrealizować się kolejna rewolucja, tym razem w rozmiarze i szybkości.

Już w 1947 r. – rok po skonstruowania ENIAC-a – grupa naukowców w Bell Telephone Laboratories skonstruowała tranzystor – układ, który w najbliższej przyszłości zastąpi lampy elektronowe i stanie się kamieniem węgielnym współczesnej ery komputerów.

Budowa tranzystora jest podobna do lampy elektronowej – dwie elektrody plus element, który kontroluje przepływ prądu między nimi. Jego mechanizm działania jest bogatszy i bardziej wyrafinowany, ale funkcjonalnie spełnia on analogiczne zadanie jak lampa elektronowa. W przypadku tranzystora kontrola przepływu ładunków nie odbywa się w próżni, podczas ich przelotu pomiędzy jedną i drugą elektrodą, ale wewnątrz materiału zwanego półprzewodnikiem. Dziś najczęściej jest to krzem, ale nie jest on jedynym pierwiastkiem, który może być do tego zastosowany. Współczesne tranzystory są ponad milion razy mniejsze niż dawne lampy elektronowe. Dzięki temu w niewielkiej karcie graficznej może się ich mieścić kilka miliardów, podczas gdy 18 tys. lamp ENIAC-a zajmowało niemałą halę.

Miniaturowe przełączniki połączone w odpowiedni sposób tworzą bit informacji. Programowanie przełączników sprawia, że jeden bit może wpływać (zgodnie z zaplanowanym algorytmem) w sposób automatyczny na bit sąsiadujący. W układzie scalonym składającym się z sieci miliardów bitów opartych na tranzystorach, dochodzi do sekwencji mikroskopijnego iskrzenia w wyniku zmian napięcia. Informacja podąża jej śladem: jeśli A to B, jeśli B to C – w ten właśnie sposób Lee Sedolem przegrał 4:1 w głośnym starciu człowieka z komputerem.

Marcin Łobejko
Skip to content