Nie przejmuj się, mój perceptronku

 

Mój wstępniak na You Tube

 

A takie tam różne. Robię trochę badań nad zjawiskiem inteligencji zbiorowej i ponieważ trudno mi tak z biegu znaleźć dobre przykłady inteligencji zbiorowej w prawdziwym życiu, to zrobiłem sobie taki mały perceptron – czyli sieć neuronalną – który ma zastępować prawdziwe życie. Tak trochę w kontekście tej inteligencji zbiorowej, dalej przegryzam się przez Rozporządzenia Ministra Nauki i Szkolnictwa Wyższego z dnia 22 lutego 2019 roku w sprawie ewaluacji jakości działalności naukowej. Ogólnie się dzieje.

Interesuję się inteligencją zbiorową, ponieważ mam wrażenie, że nawet najdziwniejsze relacje międzyludzkie, takie na pozór naprawdę pogięte, mają jakiś swój funkcjonalny sens. Robimy coś na pierwszy rzut oka idiotycznego. Kiedy jednak pierwszy rzut oka ustępuje miejsca drugiemu, wtedy ten drugi widzi trochę inny kontekst i widzi sens w tym pozornym idiotyzmie. Weźmy takie przejście dla pieszych. Gdyby przyglądał się temu człowiek z dżungli, stwierdziłby: „Idiotyzm. Chodzą zawsze tak samo, po ścieżkach oznakowanych tak, że tylko niewidomy tapir by nie zauważył. Są przewidywalni jak fiks. Nic nie upolują. Zdechną z głodu. Przykre”. A jednak my nie zdychamy z głodu i te przejścia dla pieszych jakoś działają, tyle że w innym kontekście niż dżungla.

Kiedy używam sztucznej inteligencji, odkrywam mnóstwo ciekawych rzeczy na temat działania naszej inteligencji. Znacie zapewne tą zasadę, że nagrody działają na nas mocniej niż kary. Wzmocnienie pozytywne działa mocniej niż wzmocnienie negatywne. No i ja tu właśnie prowadzę badania na temat efektywności energetycznej gospodarek, w sensie na temat ilości PeKaBe (Produktu Krajowego Brutto) w przeliczeniu na 1 kilogram przeliczeniowy ropy naftowej w sensie finalnej konsumpcji energii, no i zrobiłem taki prosty perceptron wielowarstwowy (zaraz tam „wielo-„… trzy warstwy wszystkiego), no i ten perceptron kombinuje jak łączyć tą efektywność energetyczną z PeKaBe na głowę, z odsetkiem energii odnawialnych w całości konsumpcji finalnej i z różnymi innymi zjawiskami. W zasadzie, perceptron wielowarstwowy uczy się na podstawie porażek i związanych z tym kar. Perceptron się multiplikuje i próbuje, jaka mu wyjdzie efektywność energetyczna z tej jego chwilowej postaci. Jak się multiplikuje, to się nieuchronnie myli, ale umie się do błędu przyznać, a nawet mierzy ten błąd i następnie go wpuszcza do wartości swoich zmiennych wejściowych. Perceptron uczy się czegokolwiek tylko wtedy, kiedy się pomyli i w pewnym sensie karze sam siebie za pomyłkę.

Postanowiłem spróbować co będzie, kiedy dam mojemu perceptronowi wzmocnienie pozytywne. Dzielę błędy na korzystne i niekorzystne. Te pierwsze to efektywność energetyczna wyższa od oczekiwanej, te drugie to wręcz przeciwnie. Kiedy perceptron popełnia błąd korzystny, wtedy pozwalam mu wykorzystać go w całości w kolejnych rundach eksperymentalnych. Kiedy jednak popełnia błąd niekorzystny, to ja ten błąd zmniejszam i dopiero taki zmniejszony jest propagowany dalej. Wzmacniam wydźwięk sukcesów, zmniejszam wagę porażek.

No i co? No i w sumie to kicha. Mój standardowy eksperyment z perceptronem to 5000 prób, no i zawsze coś z tego wychodzi. Kiedy jednak wprowadzam do algorytmu mechanizm wzmacniania sukcesów i osłabiania porażek – czyli kiedy wprowadzam arbitralne rozróżnienie na sukcesy i porażki – to perceptron już po 30 ÷ 40 rundach eksperymentalnych stwierdza, że zjadł wszystkie rozumy. Przestaje generować błąd, fiksuje wszystkie zmienne i wszystko byłoby fajnie, gdyby ich nie fiksował na poziomach absurdalnie niskich. Wyszło mu, na ten przykład, że Austriacy mogliby mieć taką samą efektywność energetyczną, jak mają teraz, przy liczbie ludności o ¾ niższej od obecnej i generalnie ze wszystkim co się da o ¾ poniżej poziomów dzisiejszych. Jak mu dałem wzmocnienie pozytywne, to doradził Austriakom powrót do prymitywu. Dobrze, że mu nie wrzuciłem danych na temat Polski. Dopiero by wstyd był, a tak to co najwyżej może być incydent dyplomatyczny.

Jeszcze parę słów wyjaśnienia, dlaczego i jak stosuję perceptron wielowarstwowy, aby przedstawić działanie inteligencji zbiorowej. Opieram się na tzw. teorii roju (patrz np. Stradner et al 2013[1]), zgodnie z którą inteligencja zbiorowa przejawia się jako koordynacja. W ten sposób ograniczamy nieco nasze ambicje względem naszej własnej zbiorowej inteligencji. Fajnie byłoby myśleć, że jako zbiorowość dążymy do jakiegoś sensownego zbiorowego celu i robimy to rozsądnie. Zauważmy jednak, że ocena wartości naszego celu oraz ocena racjonalności drogi, którą przyjęliśmy wymagają odniesienia etycznego i prakseologicznego. Układ odniesienia musimy oczywiście stworzyć sami. Nikt inny tego za nas nie zrobi. Jeżeli sami tworzymy układ odniesienia dla oceny naszych celów i ścieżki do ich osiągnięcia, to tak trochę mało ambitnie. Sami sobie kadzimy, do jakich to fajnych celów dążymy albo też sami siebie wbijamy w kompleksy, że niby te nasze cele za mało ambitne.

W teorii roju zakłada się że wystarczy, jak jesteśmy skoordynowani. Możemy być skoordynowani na trzech poziomach: statycznym, dynamicznym skorelowanym i dynamicznym losowym. Koordynacja statyczna to tak, jak w synapsach albo w McDonaldzie. Jak podmiot A zrobi X, to podmiot B zawsze zrobi Y. Zawsze tak samo. Koordynacja dynamiczna skorelowana jest wtedy, jak podmiot B może zachować się różnie wobec działania podmiotu B, ale to różnie ma swój powtarzalny wzorzec. B czasami zrobi Y1, a czasami Y2, ale Y3 to już raczej nie, a to czy Y1 czy Y2 zależy od subtelnych różnic w zachowaniu X ze strony podmiotu A. Kiedy jednak podmiot A nawet nie wie, który inny podmiot zareaguje na jego zachowanie A, wtedy musi to zachowanie jakoś zasygnalizować szerszej zbiorowości. Może zareaguje B, a może C? Kto wie? Tak działa roznoszenie zarodników roślin i grzybów, czy też rozprzestrzenianie feromonów.  To jest koordynacja dynamiczna losowa.

Rój jest inteligentny, kiedy potrafi przystosować się do nowych okoliczności poprzez zmianę stopnia koordynacji. Eksperymentujemy z nowymi wariantami naszych nawyków i strategii. Na chwilę przechodzimy od koordynacji statycznej do dynamicznej skorelowanej. Ta ostatnia może się na chwilę przekształcić w koordynację dynamiczną losową. Wszystko po to, żeby wpuścić trochę świeżego powietrza i nauczyć się nowych wzorców zachowań. Nowe wzorce zachowań będą prawdopodobnie faworyzować nieco inny typ partnerów seksualnych, a tym samym nieco inną pulę genów. W ten inteligencja przekłada się na trwałą mutację genetyczną całego gatunku.

Sieć neuronalna wykorzystuje zbiór zmiennych. Kiedy są to zmienne ekonomiczne, takie jak PKB na głowę mieszkańca czy efektywność energetyczna, każdą z nich można traktować jako chwilowy przejaw zbioru decyzji podejmowanych przez dużą liczbę ludzi w dłuższym okresie czasu. Stopień wzajemnego powiązania tych decyzji można traktować jako stopień wzajemnej koordynacji zachowań, które stoją za takimi a nie innymi wartościami zmiennych. Związki pomiędzy liczbami są prostsze niż związki między ludźmi. Można te związki zmierzyć, np. przy pomocy odległości Euklidesowej: V(x1;x2) = [(x1 – x2)2]0,5.  Z tym pierwiastkiem z kwadratu to chodzi o zlikwidowanie możliwego minusa. Ujemna odległość źle wygląda w pomiarach. W tym wypadku należy pohamować zapędy wpojone na lekcjach matematyki. Mówili nam „upraszczaj !”. W tym wypadku, jeżeli uproszczę potęgi, to wyjdzie mi potęga „1”, a to z minusem nic nie zrobi. Nie upraszczamy więc nadmiernie, tylko grzecznie, po kolei, najpierw do kwadratu, a potem dopiero z tego pierwiastek kwadratowy.

Kiedy mam wiele zmiennych, wtedy dla każdej z nich mogę określić jej odległości Euklidesowe wobec wszystkich pozostałych i wyciągnąć średnią arytmetyczną z tych odległości. Potem z tych średnich arytmetycznych wyciągam kolejną średnią arytmetyczną i otrzymuję w ten sposób jedną z możliwych postaci funkcji spójności, która określa jak ciasne są relacje między zmiennymi.

Moje eksperymenty z perceptronem wielowarstwowym pokazały, że zmienia on wartość swojej funkcji spójności, a dokładnie zwiększa średnią odległość Euklidesową między swoimi zmiennymi wejściowymi po to, żeby zminimalizować błąd w szacowaniu zmiennej wyjściowej (wynikowej). W tym sensie perceptron zachowuje się jak inteligentny rój żywych istot. Daje sobie trochę dodatkowego luzu, żeby się czegoś nauczyć. Co ciekawe, kiedy w skład błędu odnotowywanego przez perceptron włączam także wartość jego funkcji spójności – czyli wzajemną odległość Euklidesową zmiennych – wtedy sieć neuronalna zachowuje się bardzo rożnie w zależności od zastosowanej funkcji aktywacyjnej. Kiedy stosuję funkcję sigmoidalną unipolarną, wtedy perceptron mniej się uczy i zachowuje większą spójność. Zachowuje się trochę jak człowiek, któremu nagle kazano zwracać uwagę na nieznane mu wcześniej zasady savoir-vivre’u. Zachowywać to się zachowuje, ale jakby tak z lekkim odcieniem kija w d**ie. Kiedy jednak zmieniam funkcję aktywacji na tangens hiperboliczny, wtedy perceptron zmuszony do obserwacji swojej własnej spójności zaczyna się bujać w krainę wyobraźni: znacznie zmniejsza swoją wewnętrzną spójność i wymyśla bardzo wysokie wartości zmiennych wejściowych.

No i ja tu tak gadu gadu i ni z tego, ni z owego prawie dokładnie wyjaśniłem, o co mi chodzi z tym perceptronem jako wyrazem inteligencji zbiorowej. Mam coś, co potrafi samo ze sobą eksperymentować i stopniowo zmniejszać błąd generowany przez te eksperymenty. Znaczy będą z tego czegoś ludzie. Jak się uczy, to rozluźnia swoją wewnętrzną spójność, czyli otwiera się na inherentny chaos egzystencji. Otwiera się różnie w zależności od zastosowanej funkcji aktywacyjnej oraz tego, czy ma zwracać uwagę na to, jak się otwiera. Jak pozwolę temu czemuś odróżniać sukcesy od porażek i wyciągać optymistyczne wnioski z niektórych odchyleń od wartości oczekiwanych, to nagle stwierdza, że już wszystko wie i że dość tego eksperymentowania.

 

No dobrze. Teraz ważne pytanie: co z tego? Jaka jest wartość naukowa tego narzędzia? Przypuszczam, że mogę w ten sposób tworzyć dość dokładne hipotezy dla badań empirycznych. Przy pomocy perceptrona symuluję, jakie mogą być oczekiwane wartości zmiennych empirycznych, w różnych warunkach uczenia się. Następnie sprawdzam dopasowanie wartości empirycznych do tych oczekiwanych i mogę określić, która hipoteza na temat zbiorowego uczenia się jest najbliższa prawdy.

 

Perceptron opiera się na akumulacji danych z przeszłości. To typ sztucznej inteligencji, który dokłada kolejne porcje informacji do już posiadanej wiedzy i w ten sposób coś optymalizuje. To jest mechanizm uczenia się, który wykracza poza potocznie pojmowany schemat « bodziec <> reakcja » (już raz o tym pisałem, w „Dwie kule w Kalifornii i wielebny Thomas Bayes”). W tej chwili chyba najbardziej fascynuje mnie to, w jaki sposób modyfikacja tej pamięci – czy też raczej zmiana sposobu zbierania informacji do pamięci – wpływa na proces uczenia się. Przedstawię teraz krótki eksperyment, jaki prowadzę przy pomocy mojego perceptronu, na danych dotyczących efektywności energetycznej gospodarki Polski.

 

Mój podstawowy model, który wykorzystałem już do jednego artykułu, zakłada że efektywność energetyczna gospodarki jest efektem oddziaływania następujących zmiennych:

 

  1. Współczynnika kapitału w bilansowych środkach trwałych przedsiębiorstw w przeliczeniu na 1 krajowe zgłoszenie patentowe; to nam mówi, jak przeciętnie dokapitalizowany jest każdy wynalazek zgłaszany do patentowania;
  2. Współczynnika udziału zagregowanej amortyzacji środków trwałych w PKB; ta zmienna mierzy, jakim obciążeniem dla gospodarki jest nadążanie za zmianą technologiczną;
  3. Liczby krajowych zgłoszeń patentowych na 1 mln mieszkańców, czyli stopnia innowacyjności społeczeństwa;
  4. Finalnego zużycia energii per capita;
  5. Odsetka ludności miejskiej w całości populacji;
  6. Zagregowanego PKB
  7. PKB per capita
  8. Liczby ludności

 

Biorę jedną i tą samą funkcję aktywacji neuronalnej: sigmoid unipolarny. Jako materiał wyjściowy, żeby perceptron oparty na tej funkcji cośkolwiek zakumał, daję mu dane empiryczne na temat powyższych zmiennych w Polsce, włącznie z samą efektywnością energetyczną, dla lat 1990 – 2014. Dane standaryzuję, czyli dla każdej zmiennej każdą wartość z osobna dzielę przez zaobserwowaną w jej rozkładzie wartość maksymalną. W efekcie każda zmienna ma wartości w przedziale 0 < x ≤ 1. Zaczynamy w roku 1990. Perceptron generuje wagi losowe, w przedziale 0 < w < 1 dla każdej zmiennej. Mnoży zestandaryzowane wartości zmiennych przez te wagi losowe i suma iloczynów „xi*wi” stanowi złożony argument „x” dla funkcji sigmoidalnej unipolarnej. Funkcja zwraca jakąś lokalną wartość i jakąś lokalną pochodną, dla roku 1990. Biorę rzeczywistą, zestandaryzowaną wartość zmiennej wynikowej – efektywności energetycznej dla roku 1990 – i odejmuję od niej wartość zwróconą przez funkcję aktywacji. Tą różnicę mnożę przez lokalną pochodną i mam lokalny błąd ważony znaczeniem lokalnej zmiany wartości (czyli pochodnej).

 

Swoją drogą, na boku, obliczam średnią arytmetyczną dla odległości Euklidesowych każdej zmiennej, w roku 1990, od wszystkich pozostałych. Potem z tych średnich arytmetycznych wyciągam kolejną średnią arytmetyczną, a następnie obliczam jej odwrotność, czyli 1/V(x). To jest ogólna funkcja spójności mojego perceptronu.

 

Dalej, począwszy od roku 1991 i dalej w przyszłość, mam jeden stały sposób postępowania – czyli podstawowy schemat uczenia się mojego perceptronu – oraz kilka możliwych wariacji na ten główny temat. Co do zasady, w roku 1991, perceptron bierze zestandaryzowaną wartość każdej zmiennej, zarówno wynikowej efektywności energetycznej i jak i zmiennych wejściowych (a – h), dodaje do tej empirycznej wartości te lokalny błąd ważony pochodną dla roku poprzedniego – 1990 – i dalej tak samo, czyli wagi losowe, suma iloczynów zmiennych wejściowych przez wagi losowe jako złożony argument dla funkcji aktywacji neuronalnej itd. To się nazywa propagacja błędu.

 

W ten sposób, dla każdego roku od 1991 do 2014, perceptron buduje stopniowo coraz bardziej odchyloną od rzeczywistości wersję wydarzeń. Daje to 2014 – 1990 = 24 rundy eksperymentalne, podczas których perceptron twórczo uczy się na danych empirycznych.

Począwszy od rundy 25 i dalej, perceptron już nie ma danych empirycznych jako układu odniesienia. Wtedy zaczyna powtarzać tą samą operację na swojej własnej, zmodyfikowanej wersji roku 2014. Nadbudowuje na tym ostatnim rzeczywistym zdarzeniu swoją całkowicie własną wersję wydarzeń, wciąż według tego samego mechanizmu dodawania błędu zaobserwowanego w bezpośrednio poprzedzającej przeszłości.

 

Teraz możliwe modyfikacje. Pierwsza polega na obserwacji własnej spójności. W każdej kolejnej rundzie eksperymentu, poza dodawaniem błędu z poprzedniej rundy, perceptron dodaje średnią spójność tej konkretnej zmiennej z pozostałymi zmiennymi (jej średnią odległość Euklidesową od pozostałych zmiennych), zaobserwowaną w rundzie poprzedniej. Innymi słowy, perceptron zapamiętuje, jak daleko była ta konkretna zmienna od pozostałych. Potem jak w scenariuszu podstawowym: wagi losowe, suma iloczynów itede.

 

Druga modyfikacja to rozróżnienie na sukcesy i porażki. Obliczam, o ile wzrosła standaryzowana efektywność energetyczna gospodarki Polski w okresie 1990 – 2014. Wychodzi (11,77694401 – 9,673094195) / 11,77694401 = 0,178641404. Dalej dzielę to przez 24 lata, czyli 0,178641404 / 24 = 0,007443392. To jest próg odniesienia „y*” dla odróżnienia sukcesu od porażki. Błąd „e” zwracany przez funkcję aktywacji perceptronu i spełniający warunek „e > y*” jest sukcesem, każda inna jest porażką. Daję więc mojemu perceptronowi do zrozumienia: jeżeli wygenerowałeś błąd większy od średniego rocznego przyrostu efektywności energetycznej, to brawo. Jak nie, to niestety, ale wtopiłeś.

Teraz pytanie, jak mu to powiedzieć. Niektórzy ludzie źle reagują na krytykę. Nie wiem, jak zareaguje sztuczna inteligencja. Muszę sprawdzić. Na początek robię tak, jak doradza psychologia: zamiast krytykować, pokaż konsekwencje sukcesu oraz porażki. Mogę te konsekwencje wzmocnić w jednym albo w drugim kierunku, czyli wzmocnić sukcesy kosztem porażek („nieważne, że nie zająłeś pierwszego miejsca, perceptronku, ten przed Tobą i tak był na koksach, ważne jest uczestnictwo i rywalizacja”) albo też mogę wzmocnić porażki kosztem sukcesów („Ty łajzo, jak mogłeś tak polec!”). Kiedy chcę wzmocnić pamięć o sukcesach i osłabić pamięć o porażkach, to robię na przykład tak, że kiedy e > y*, to wtedy pozwalam perceptronowi dalej propagować błąd „e”, kiedy jednak e ≤ ∆y*, to wtedy pozwalam propagować tylko jakiś ułamek błędu „e”. Kiedy chcę wzmocnić pamięć o porażkach kosztem pamięci o sukcesach, to robię odwrotnie. Wszystko to mogę ująć elegancko w ramy jednego warunku logicznego:

 

>> jeżeli (e > y*), to propaguj ß1*e, a jeżeli (e ≤ y*), to propaguj ß2*e.

 

Parametry ß1 oraz ß2 określają odpowiednie wzmocnienie pamięci o sukcesach oraz o porażkach. Jeżeli ß1 > ß2, to wzmacniam wspomnienie sukcesu („W 1970-tym tośmy im pokazali!”). Jeżeli ß1 < ß2, wzmacniam z kolei wspomnienie porażki („Nigdy nie zapomnimy tego, jak ONI nas skrzywdzili!”). Konstruuję pięć scenariuszy:

 

Scenariusz 0: Bez uczenia się na spójności, bez nagrody

Scenariusz A.1: Bez uczenia się na spójności, wzmocnienie nagrody *2 ó ß1 = 1, ß2 = 0,5

Scenariusz A.2: Bez uczenia się na spójności, wzmocnienie nagrody o 5% ó ß1 = 1, ß2 = 0,95

Scenariusz B.1: Uczenie się na spójności, wzmocnienie nagrody *2 ó ß1 = 1, ß2 = 0,5

Scenariusz B.2: Uczenie się na spójności, wzmocnienie nagrody o 5% ó ß1 = 1, ß2 = 0,95

 

Dla każdego z pięciu scenariuszy obserwuję funkcję spójności mojego perceptronu – czyli to, na ile zachowuje się jak inteligentny rój – oraz procent energii odnawialnych w konsumpcji finalnej energii ogółem. Obserwacja obejmuje 100 rund eksperymentalnych: interesuje mnie przede wszystkim to, jak perceptron zaczyna się uczyć. Tak, dla perceptrona wielowarstwowego 100 rund eksperymentalnych to zaledwie rozgrzewka. To jest chyba największa odmiana w stosunku do moich poprzednich eksperymentów z tym perceptronem. Wcześniej moja standardowa obserwacja obejmowała 5000 rund eksperymentalnych, czyli okres 50 razy dłuższy (dłuższy w sensie zgromadzonego doświadczenia, a nie upływu czasu – perceptron nie ma pojęcia czasu). Ten eksperymentalny zoom przyniósł bardzo ciekawe wyniki, które pokazuję na dwóch wykresach poniżej i komentuję dalej, pod wykresami.

 

Widać wyraźnie dwa etapy uczenia się perceptronu. Pierwszy etap to ten, kiedy perceptron pracuje na danych empirycznych i tylko trochę je tak sobie przekształca. W tym etapie wszystkie pięć scenariuszy uczenia się idzie łeb w łeb. Wszystkie pięć zmniejsza wartość funkcji spójności – a więc usztywnia strukturę logiczną i czyni ją mniej podatną na zmiany adaptacyjne – a jednocześnie zwiększa udział energii odnawialnych w ogólnej konsumpcji. W momencie kiedy perceptron przechodzi we fristajl, czyli kiedy już sam buduje wartości danych wejściowych na podstawie zapamiętanych informacji o rzeczywistości, wszystko się zmienia. Scenariusz 0 oraz scenariusze A.1 i A.2 utrzymują sztywną strukturę logiczną (niską wartość funkcji spójności) oraz mniej więcej ten sam mix energetyczny, w sensie względem odnawialnych. Z kolei scenariusze B.1 i B.2 wracają częściowo do poprzedniej, nieco luźniejszej struktury logicznej perceptronu (wartość funkcji spójności zwiększa się), a jednocześnie generują coraz większy odsetek energii odnawialnych.

 

Kiedy więc robię zbliżenie na 100 pierwszych rund eksperymentalnych, obserwuję coś przeciwnego niż relacje zaobserwowane dla 5000 rund. Perceptron wyposażony w zdolność uczenia się na swojej własnej spójności zachowuje się jak o wiele bardziej inteligentny rój niż perceptron bez takiej zdolności. Przy 5000 rund perceptron obserwujący własną spójność wydawał się mieć kij w tyłku, a tutaj, przy zbliżeniu na pierwsze 100 rund, jest dokładnie odwrotnie: jest bardziej elastyczny i jakby śmielszy i więcej fantazji ma i w ogóle. Co ciekawe, perceptron operujący stosunkowo niewielkim rozróżnieniem między karą a nagrodą  –  jeżeli (e > y*), to propaguj e, a jeżeli (e ≤ y*), to propaguj 0,95*e – buja się bardziej niż ten, który operuje rozróżnieniem jak jeden do dwóch.

 

Najważniejszym czynnikiem różnicującym procesy uczenia się okazuje się być obserwacja własnej spójności. Jeżeli traktuję perceptron jako przedstawienie rzeczywiście działającej inteligencji zbiorowej, społeczność wyposażona w zdolność wyciągania wniosków z własnej spójności może nauczyć się więcej, niż społeczność pozbawiona takiej zdolności. No jednak musi być jakieś jednakowoż. Jednakowoż, kiedy sięgam do rundy eksperymentalnej 5000, obraz się zmienia. Perceptron wyposażony w zdolność obserwacji własnej spójności generuje odsetek energii odnawialnych ok. 16,5%. Z kolei ten, który ignoruje własną spójność osiąga ok. 17,5%. Coś się zmienia gdzieś po drodze między setną rundą eksperymentalną, a tą pięciotysięczną. Jest taka masa krytyczna pamięci zgromadzonej przez perceptron, która w pewnym sensie odwraca jego działanie. Ciekawe.

[1] Stradner, J., Thenius, R., Zahadat, P., Hamann, H., Crailsheim, K., & Schmickl, T. (2013). Algorithmic requirements for swarm intelligence in differently coupled collective systems. Chaos, Solitons & Fractals, 50, 100-114.

Leave a Reply