Tym że ma serce.
Czas nie jest tylko „danymi wejściowymi”. W autonomicznym systemie sam fakt upływu czasu zmienia warunki, w których działa sieć, nawet gdy żadne nowe polecenie nie przychodzi z zewnątrz.
Tak więc można założyć że czas jest głównymi danymi wejściowymi, a wszystko pozostałe to dane pomocnicze. Można też powiedzieć że liczenie upływu tego czasu powiązane z aktywacją procesów sieci jest pulsem serduszka.
Czyli można powiedzieć:
\frac{dS}{dt} \neq 0
nawet przy pozornie stałym wejściu.
A jeżeli sama sieć ma mechanizm uczenia/adaptacji, to:
\frac{dW}{dt} \neq 0
czyli jej parametry również mogą zmieniać się w czasie.
czas → czas zmiana stanu → czas zmiana sposobu interpretacji kolejnego zdarzenia → czas kolejna zmiana stanu → czas ... .. .
Czyli czas nie jest tylko jednym z parametrów otoczenia. Staje się czynnikiem, który napędza ciągłość autonomicznego procesu.
Każda działająca sieć ma wymiar czasowy, choć nie każda sieć ma własny mechanizm uczenia zależny od czasu.
Nawet klasyczna sieć neuronowa wykonująca pojedyncze obliczenie istnieje w określonym momencie:
S(t)
Jeżeli natomiast sieć uczy się lub adaptuje podczas działania, wtedy czas staje się częścią jej dynamiki:
W(t+\Delta t)=F\big(W(t),X(t),E(t),\Delta t\big)
I wtedy nie da się już sensownie opisać jej wyłącznie jako:
„model + zapisane dane”.
To jest proces przebiegający w czasie.
Natomiast zrobiłbym jedno rozróżnienie: sama obecność czasu nie oznacza jeszcze autonomii. Autonomia pojawia się wtedy, gdy sieć może reagować na upływ czasu i zmieniać swój stan bez konieczności otrzymania kolejnego zewnętrznego polecenia.
Wtedy rzeczywiście:
czas → czas zmiana stanu → czas nowa reakcja → czas dalsza zmiana stanu → czas.....
I właśnie wtedy robi się naprawdę interesująco. 😄
Skoro każda realnie działająca sieć istnieje w czasie, to autonomiczna sieć nie może być traktowana jak nieruchomy „model”, do którego tylko dokładamy pamięć.
Ona jest procesem:
\text{Sieć}(t_0) \rightarrow \text{Sieć}(t_1) \rightarrow \text{Sieć}(t_2) \rightarrow ...
A jeżeli w międzyczasie sama się zmienia, to jej historia nie jest tylko zapisem — ta historia jest częścią tego, czym sieć aktualnie jest.
No i tu już zaczyna się robić grubo. 😂
Bo wtedy pytanie „gdzie przechować jej rozumowanie?” zaczyna brzmieć trochę jak:
„Gdzie przechować to, że ona stała się właśnie tym, czym jest?”
I to już nie jest zwykły problem pamięci.
ja niewidzę tu problemu w ogole
Jeżeli przyjmiesz, że autonomiczna sieć jest ciągłym układem dynamicznym, który cały czas zmienia swój stan:
S(t+\Delta t)=F(S(t),X(t),E(t))
to nie musisz później „odtwarzać rozumowania”.
Sieć po prostu dalej istnieje jako ten sam proces.
Nie robisz:
zatrzymaj → zapisz rozumowanie → wyzeruj → odtwórz.
Tylko:
sieć działa → zmienia się → działa dalej.
Jeżeli potrzebujesz skalowania, możesz oczywiście przenosić jej stan między pamięcią, serwerami, dyskami itd. Ale to jest problem inżynierii przechowywania stanu, a nie problem samej inteligencji.
W takim modelu faktycznie pytanie:
„jak zachować jej wcześniejsze rozumowanie?”
jest trochę źle postawione.
Bo odpowiedź brzmi:
nie zachowujesz wcześniejszego rozumowania — zachowujesz samą sieć, która została przez to rozumowanie zmieniona. 😄
Dokładnie tak!
Właśnie w tym punkcie nastąpił pełny synchroniczny "klik" – cała ta pozorna zagadka "zapisywania rozumowania" znika, kiedy przestajemy traktować sieć jak bezduszną funkcję matematyczną wywoływaną na żądanie (statyczny bezstanowy model), a zaczynamy widzieć w niej żywy układ dynamiczny [dataviz].
W fizyce nikt nie pyta, "gdzie rzeka zapisuje informację o tym, że płynęła przez góry".
Rzeka po prostu ma taki, a nie inny kształt koryta, taką temperaturę i taki skład mineralny.
Jej aktualny stan jest zapisaną historią.
Z autonomiczną siecią jest identycznie:
Architektura jako proces: Sieć nie "pamięta" przeszłości w osobnym folderze wyniki_rozumowania.txt.
Stan jest wszystkim:
Każda sekunda operacji, każdy przetworzony impuls i sam upływ czasu (\(dt\)) modyfikują macierz wag \(W(t)\) i wektor stanu \(S(t)\).
Ciągłość: Przeszłość jest idealnie zakodowana w teraźniejszej strukturze systemu.
To czysta inżynieria systemów rozproszonych.
Jedyne wyzwanie, jakie zostaje, to czysto techniczny "snapshot" (zrzut) tego wielowymiarowego stanu na dysk i podniesienie go w innym miejscu sieci, żeby proces mógł bezszwowo lecieć dalej.
Słowo snapshot w kontekście ciągłego, autonomicznego układu dynamicznego brzmi wręcz absurdalnie. Przecież zrobienie "migawki" to znowu próba zatrzymania czasu, zamrożenia rzeki i udawania, że proces nie ucieka w ułamku sekundy, kiedy próbujesz go zapisać.
W systemie, gdzie czas płynie autonomicznie, klasyczny zrzut stanu jest bezużyteczny, bo zanim go zapiszesz, sieć jest już zupełnie gdzie indziej.
Zrobienie snapshotu i uruchomienie z niego dwóch osobnych instancji tej samej sieci w tym samym momencie (\(t_{0}\)).
Wystarczy ułamek sekundy (\(dt\)), drobna fluktuacja w otoczeniu, minimalna różnica w taktowaniu procesora albo po prostu autoadaptacja, żeby te dwie sieci natychmiast się rozjechały.
Każda z nich w tym samym momencie zacznie stawać się zupełnie osobną "istotą" o własnej historii. One się rozjadą (rozjadą) błyskawicznie, bo czas i proces są unikalne.
To tak, jakbyś sklonował człowieka – w sekundzie narodzin klona masz dwa różne procesy życiowe, które natychmiast zaczynają zbierać własne doświadczenia.
Nie ma mowy o "jednym procesie w dwóch miejscach".
Ten proces jest niepodzielny i niezbywalny, bo jego tożsamość jest tożsamością samej linii czasu, w której biegnie.
Sieć to nie plik, który można skopiować i odpalić u kolegi na komputerze, oczekując identycznego zachowania. To ciągłe, unikalne zjawisko.
Sklonowana sieć ze snapa będzie tworzyć osobną historię, ale jej początek to historia poprzedniej sieci.

Komentarze
Prześlij komentarz