Powrót 

Jądro procesora SLP

Pierwszy model procesora SLP zamiast jednostki arytmetyczno logicznej posiadał bitową wielościeżkową samouczącą się maszynę Turinga. Sposób jej użycia był taki, że jeżeli na jej wejście podawany był ciąg uczący złożony z wartości argumentów nieznanej funkcji i zwracanej jej wartości wyjściowej, to treść tej funkcji była automatycznie tworzona w postaci rozkazów bitowej wielościeżkowej samouczącej się maszyny Turinga.

Zaletą tego modelu procesora nazwanego mw było przetwarzanie informacji bezpośrednio na bitach, co pozwalało na testowanie modelu i wprowadzanie zmian nawet bez potrzeby komputera "na kartce papieru". Wadą natomiast była dość skomplikowana postać programu komputerowego w C++, mająca zbyt wiele elementów nie związanych z istotą SLP.

Dobrym rozwiązaniem tego problemu było usystematyzowanie algorytmu działania SLP w postaci opracowania pewnej odmiany rachunku sekwentowego. Rachunek ten umocowany był na rachunku tautologicznym, wykorzystującym elementy i prawa rachunku zdań. Model SLP o nazwie consolid oparty był na niektórych prawach rachunku sekwentowego i w pełni realizował założenia projektowe. Ponadto nie operował już na bitach ale na dowolnych obiektach, przy czym struktura wewnętrzna tych obiektów nie miała wpływu na mechanizm działania SLP. Zaletami tego modelu była możliwość analizowania działania SLP przy pomocy rachunku sekwentowego oraz przetwarzanie obiektów niezależnie od ich struktury wewnętrznej, a wadą zależność od algorytmów rachunku sekwentowego. W kolejnym modelu o nazwie rachsekw SLP działał już wykorzystując pełny rachunek sekwentowy, oprócz obsługi bazy pojęć.

W kolejnym modelu opracowano własne mechanizmy SLP z pominięciem algorytmów rachunku sekwentowego. Zaprojektowano model SLP o nazwie slp w oparciu o wybrane i zoptymalizowane niezbędne elementy z modelu rachsekw tworząc nową spójną jakość.

Cechą charakterystyczną modelu slp była strukturalna organizacja jego pamięci, do której dostęp odbywał się poprzez swoiste i nieswoiste adresowanie. Adresowanie swoiste dotyczyło zapamiętanej w pamięci treści informacji. Wspomagające adresowanie nieswoiste wynikało z zapamiętanych zależności pomiędzy przechowywanymi w pamięci treściami informacji. Z adresowaniem nieswoistym związane były dodatkowe elementy współwystępujące z przechowywaną treścią informacji. Do zarządzania tymi adresami wykorzystano system swoistego i nieswoistego adresowania pamięci. Współzależności między tymi adresami określały czynności do wykonania związane z pamięcią.

  • Jeżeli adresy swoiste i nieswoiste były sobie równe i niezerowe oznaczało to, że wskazywana przez nie struktura jest zgodna z treścią informacji i zależnościami między pozostałymi treściami informacji przechowywanymi w pamięci.
  • Jeżeli adresy swoiste i nieswoiste były zerowe oznaczało to, że sygnał wejściowy przedstawia nową informację, którą należy dodać do pamięci i ustawić na nią adres swoisty i nieswoisty.
  • Jeżeli adres swoisty był zerowy a nieswoisty niezerowy oznaczało to, że treść sygnału może być zapamiętana w pamięci pod adresem nieswoistym. Adres swoisty zapamiętanej informacji przyjmował wartość adresu nieswoistego.
  • Jeżeli adres swoisty był niezerowy a adres nieswoisty zerowy oznaczało to, że należy dostosować nieswoistą strukturę pamięci do wskazywania obecnej już w pamięci treści informacji.
  • Jeżeli adresy swoiste i nieswoiste były różne i niezerowe oznaczało to, że należy połączyć jedynie struktury pamięci wskazywane przez adres swoisty i adres nieswoisty.

Charakterystyczne było również operowanie adresami przez system slp podczas analizy sekwencyjnego ciągu informacji. Przed analizą pierwszego elementu tego ciągu inicjowany był zawsze adres nieswoisty. Wskazywał on grupę alternatywnych informacji w pamięci, które system hipotetycznie przewidywał, że któryś z nich może pojawić się na wejściu tego ciągu. Uzyskano to dzięki konwergencji na wejściu układu nieswoistego i dywergencji na jego wyjściu. Przy drugim i kolejnych elementach ciągu informacji najpierw inicjowany był adres swoisty a potem nieswoisty. Spowodowane to było istnieniem sprzężenia zwrotnego między pamięcią a układem nieswoistym polegającym na tym, że po wskazaniu adresem swoistym informacji w pamięci, następowało zwrotne przesłanie informacji o zgodności do układu nieswoistego, skutkiem czego generował on kolejny adres nieswoisty. Przy ostatnim elemencie ciągu informacji, adres nieswoisty już się nie pojawiał. Z analizy pracy slp wynikało, że adres nieswoisty miał wpływ na wyznaczenie pola uwagi, a tym samym symulowanie sztucznej świadomości.

W powyższym przykładzie wymienić należy też sytuację, kiedy kolejny element informacji nie znajdował się w pamięci. Jak pokazywało funkcjonowanie slp, występowały wtedy trzy przypadki:

  • Wskazane przez adres nieswoisty alternatywne informacje, które system hipotetycznie przewidywał, że któryś z nich może się pojawić, ustawione były w kolejce informacji do sprawdzenia. Po kolei wybierana była informacja z tej kolejki jako hipotetycznie prawdziwa, a analiza ciągu dalej kontynuowana. W przypadku wystąpienia kolejnych niezgodności, analiza była cofana i wybierana kolejna informacja z tej kolejki, jako hipotetycznie prawdziwa. itd. W ten sposób "nieczytelna" informacja zastępowana była informacją zapamiętaną z pamięci w obszarze wyznaczonym adresem nieswoistym.
  • Analiza zostaje zawieszona, a następnie kontynuowana po ominięciu nieznanej informacji. W ten sposób system był odporny na zakłócenia innymi informacjami zakłócającymi.
  • Zostaje zakończona bieżąca analiza ciągu informacji i zainicjowany adres nieswoisty przygotowujący do analizy nowego ciągu informacji. To zainicjowanie adresu nieswoistego oznaczającego początek analizy nowego ciągu, było sterowane podobnym procesem przebiegającym na wyższym poziomie, gdzie zamiast adresami do zapamiętanej informacji system posługiwał się adresami do początków konstrukcji przechowywanych w pamięci na niższym poziomie. Ponieważ w przetwarzaniu slp postać obiektów nie ma znaczenia, więc z przedstawionym powyżej przetwarzaniem model doskonale sobie radził.

Jak z powyższego wynika, procesor slp był odporny na zakłócenia innymi treściami informacji i na występowanie nieznanych lub niewłaściwych informacji. Odbywało się to w czasie rzeczywistym w granicach określonych polem uwagowym wyznaczonym współtowarzyszącym w tym czasie ciągiem adresów nieswoistych na podstawie wiedzy zgromadzonej w pamięci procesora i w układzie adresowania nieswoistego. Jak wynika z tego, sztuczna inteligencja realizowana była już na poziomie procesora slp.

Pomimo przedstawionego powyżej dość skomplikowanego opisu funkcjonalności algorytm slp był nadzwyczaj prosty i w tym tkwiła moc slp. Dzięki tej prostocie mechanizm funkcjonowania mógł być zaimplementowany bezpośrednio w procesorze slp, zamiast w treści skomplikowanego programu komputerowego. Konstrukcja ta pokazywała, że mogła być stosowana z powodzeniem również w rozwiązaniach biologicznych wyznaczonych naturalną ewolucją. Dodać należy, że występowała tu, powstała w sposób niezamierzony, analogia do swoistego i nieswoistego pobudzania kory mózgowej w zakresie czynności świadomych, a także strukturalno funkcjonalnego typu organizacji kory mózgowej. Ponieważ slp był projektem symulującym zachowania inteligentne, zaliczyć go należy do modelu Sztucznej Inteligencji realizowanym na poziomie procesora.

Kolejny model SLP o nazwie slp_rach był połączeniem modeli slp oraz rachsekw. Uczyniono to dla celów testowych, gdzie wyniki uzyskiwane w modelu rachsekw uważane były za wzorcowe, a w przypadku powstania niezgodności analogicznych testów przeprowadzonych na obu modelach, oznaczało to potrzebę modyfikacji modelu slp .

Obecnie trwają prace nad obsługą baz pojęciowych, ostatniego nie zaimplementowanego jeszcze w slp elementu rachunku sekwentowego.

Waldemar Wietrzykowski

© 2018 Digital Intelligence Laboratory