Narzędzia sztucznej inteligencji – ogólne i uproszczone spojrzenie

Nie jest łatwo opracowywać tak szeroki temat nie będąc specjalistą,a jednocześnie wskazać zarys problemu w możliwie poprawny i interesujący.  Mam nadzieję,że niniejszy artykuł może aspirować do roli prostego wprowadzenia do przykładowej istotnej części zagadnień, związanych z tematyką narzędzi sztucznej inteligencji. Zwracam też uwagę,że z konieczności (oraz ze względu na moją ograniczoną wiedzę) w niniejszym artykule nie zostały zaprezentowane dokładne szczegóły algorytmiczne,a szczególnie – nie został dokładnie omówiony problem reprezentacji i dokładne kwestie związane z uczeniem systemów SI.

Przede wszystkim – dobrym pytaniem na początek jest to, czym w istocie jest sztuczna inteligencja,bowiem definicja dawałaby nam już jakąś wskazówkę. Jak zasugerowałem w wpisie z czerwca na temat bota Eugene Goostman jestem przeciwnikiem tezy, że sztuczna inteligencja to po prostu naśladowanie zachowania człowieka. Można sobie mówić o „inteligencji emocjonalnej” czy „społecznej”. Ok. Ale zachowując szacunek do dziedzictwa Alana Turinga, muszę stwierdzić, że test Turinga jest mało wartościowy jeśli idzie o wykrycie rzeczywistej sztucznej inteligencji, ponieważ false positives (i przyszłe false negatives) dyskwalifikują go. W istocie nie o taką inteligencję nam przecież głównie chodzi. Chodzi nam naprawdę o inteligencję, która odciąży nas w pracy umysłowej (a jeśli również fizycznej,  pomimo paradoksu Moraveca – byłoby jeszcze lepiej). A jak już to zrobi… Nasza leniwa zwierzęca strona podpowiada: „to już nie jest takie ważne” 😉

W istocie jednak,  zasada/zbiór zasad (nie chodzi mi o zasady chemiczne 😉 ) na której opiera się inteligencja jest właśnie piekielnie ważna,jeśli chcemy ją odtworzyć w sztucznej formie.

Problem ten jest bardziej złożony,niż niektórzy myślą. W początkach optymistycznych badań w dziedzinie sztucznej inteligencji jeden z badaczy twierdził, że 10 lat później komputer pokona człowieka w szachach.I komputer rzeczywiście pokonał człowieka, ale po latach 40. W nomenklaturze naukowej dzieli się sztuczną inteligencję na „słabą” (porównywalną z insektami i zwierzętami) i „silną” – porównywalną z ludźmi. I wbrew optymistom – cały czas jesteśmy raczej przy insektach 😉 Wszelkie rozważania o superinteligencji i panikowanie filozofów jest jeszcze najprawdopodobniej przedwczesne o całe lata, ponieważ samo poprawne zrozumienie działania mózgu jest całe lata przed nami.

Projekty takie jak Blue Brain i Human Brain Project sugerują, że pomysły dotyczące symulowania świadomości ludzkiej w komputerze teoretycznie będą możliwe w latach 20-tych czy 30-tych. Rzecz w tym, że wymaga to w praktyce lepszych niż dziś superkomputerów.  W 2012 roku przeprowadzono symulację działania mózgu małpy na superkomputerze Sequoia. Brzmi dobrze ? No nie całkiem. Mózg małpy jest nieco mniej doskonały od ludzkiego, a symulacja była 1542 razy wolniejsza niż rzeczywisty (całkiem malutki i zużywający dużo mniej energii) małpi mózg. Teoretycznie,co prawda nie potrzebujemy przetwarzania symulacji w czasie rzeczywistym – lecz im dokładniejsza symulacja tym mniej uproszczony i bardziej realistyczny może być model.

Można też zapoznać się z innym przykładem – symulacji części mózgu na blogu geekweek. W praktyce można stwierdzić,  że superkomputer który prowadził opisaną symulację może być nawet 240 tysięcy razy wolniejszy od mózgu ludzkiego. Oznacza to też, że zakładając realizację na inne sposoby nie do końca dziś pewnego prawa Moora [1] [2] (skok mocy obliczeniowej x2 w 18 miesięcy) – przynajmniej 12 lat przyspieszania potrzeba, by „ogarnąć” małpę (czyli ok 2027 ?) i może 25 lat (2040 ?) by jakiś superkomputer dogonił ludzki mózg. I to raczej nieaktualne. Obecnie dwukrotny przyrost następuje prawdopodobnie co 3 lata. W takim przypadku, co do symulacji mózgu w czasie rzeczywistym na superkomputerze – mamy przesunięcie terminu na 2060.

Widać zatem doskonale, jakim wyzwaniem dla ewentualnych prób reversingu jest inteligentny umysł. Skala : ok. 1011 neuronów. Każdy połączony średnio z 7000 innych.ok. 1015 połączeń. Magazynowanie wspomnień w pamięci.Odpowiednik przynajmniej 2,5*1015 bajtów binarnych ,czyli 2500 TB (a to chyba tylko hipokamp). Nawet zakładając,że potrzebne byłoby tylko 1 promil tych zasobów, przeciętny pecet miałby problem.

Nic więc dziwnego, że badania nad sztuczną inteligencją w rzeczywistości od lat dotyczą w istocie „słabej” sztucznej inteligencji. I nie nabierzcie się na ostatnie osiągnięcie Google. Jest ono oczywiście bardzo ważne,wręcz rewolucyjne – z historycznej i programistycznej perspektywy.  Po raz pierwszy sieć neuronowa nauczyła się czegoś praktycznie bez ingerencji człowieka, metodą prób i błędów osiągając świetne wyniki. Ale samo oparte na faktach stwierdzenie, że sieć „gra lepiej niż gracze” ma głównie efekt marketingowy,bowiem może skłonić do przecenienia tego sukcesu i rozpatrywania go w niewłaściwej perspektywie. W istocie rozwiązanie to swym poziomem przypomina raczej szczura umieszczanego w labiryncie przez biologa i znajdującego drogę do pokarmu z lepszym lub gorszym czasem – w zależności od zmiany labiryntu (tu: gry) – bez jednak szeregu bardziej inteligentnych cech obecnych u szczurów. Niestety od tego rozwiązania, do bardziej zaawansowanej uczącej się sztucznej inteligencji w komputerze i robocie – na poziomie intelektu psa czy kota (już nie mówiąc o małpie) jest jeszcze naprawdę sporo pracy…

To przydługawe wprowadzenie było niestety konieczne, by spróbować wbić każdemu potencjalnemu niedowiarkowi do głowy,że dzisiejsza „słaba” sztuczna inteligencja to „mało inteligentne” narzędzia. Z drugiej jednak strony, te „niedoskonałe narzędzia” robią i tak spore wrażenie i oszczędzić mogą naprawdę sporo pracy. Nie potrzeba dużej inteligencji.Tak jak mrówki pomagały oddzielić mak od piasku postaciom z bajek, tak stosunkowo „prymitywne” algorytmy związane z rozwojem badań nad sztuczną inteligencją są i tak naprawdę nieocenione.

Które to algorytmy ? Sporo tego. Badania nad sztuczną inteligencją pomogły przy tworzeniu na przykład:

Są to właściwie teoretycznie „tematy poboczne” – choć ich zastosowanie w niektórych wypadkach może okazać się wręcz nieodzowne i zbawienne. Natomiast, jeśli chodzi o sztuczną inteligencję właściwą to w zasadzie oprócz rozróżnienia „silnej” i „słabej” sztucznej inteligencji wyróżnia się różne podejścia:

  • logiczny – racjonalna inteligencja to coś co da się opisać na podstawie logicznych reguł
  • anty-logiczny („scruffy AI”) – nie wszystkie reguły można wyprowadzić,niektóre trzeba samodzielnie zdefiniować.

czy niniejsze (dziś uznane za komplementarne) podejscia:

  • Symboliczne – Inteligencja jako operowanie symbolami
  • Konekcjonistyczne – Inteligencja bierze się z połączeń między symbolami

Właściwie najstarszym paradygmatem jest paradygmat logiczny powiązany z podejściem typowo symbolicznym. Związany jest on z powstaniem języka Lisp, a później, również języka Prolog. Pomimo faktu, że są to chyba najczęściej wymieniane języki programowania powiązane z badaniami nad sztuczną inteligencją – nieco się różnią.

Lisp – jest językiem relatywnie starym (powstał w 1958 roku) i teoretycznie dziś już „rzadko stosowanym” –  jeśli zapomnieć o jego implementacjach,takich jak Scheme i Clojure. Co jest nadzwyczajnego w języku Lisp ? Jego możliwości. Lisp został oparty na rachunku lambda, co w praktyce oznacza,że jest językiem uniwersalnym i teoretycznie pozwala na skonstruowanie dowolnej aplikacji, która może zostać uruchomiona na maszynie Turinga. Nie jest to jednak język przyjemny dla człowieka, złośliwi tłumaczą jego nazwę jako „Lost In Stupid Parentheses” ( „Zagubiony w Głupich Nawiasach”) ze względu na postać przykładowego kodu wymagającą wielu nawiasów. Bardzo łagodny przykład:

(defun factorial (n)
(loop for i from 1 to n
for fac = 1 then (* fac i)
finally (return fac)))

Inne krytyczne porównanie,to twierdzenie,że „Lisp przypomina owsiankę wymieszaną z obciętymi paznokciami„. Z drugiej strony język ten stosowany może choćby w takich zagadnieniach jak:

  • Badanie algorytmów, obliczalności i definiowalności
  • Dowodzenie twierdzeń
  • Rekurencja

I naprawdę: nie tylko. Emacs i AutoCAD były stworzone z użyciem Lispu.  Co więcej, jak powiedział Kent Pittman:

Proszę nie przyjmować, że Lisp nadaje się tylko do programowania Animacji i Grafiki, SI, Bioinformatyki, B2B i E-Commerce, Zbierania Danych, aplikacji EDA/Semiconductor, Systemów Eksperckich, Finansów, Inteligentnych Agentów, Zarządzania Wiedzą, Mechanicznych CAD, Modelowania i Symulacji, Naturalnych Języków, Optymalizacji, Badań i Rozwoju, Analizy Ryzyka, Planowania, Telekomunikacji i Tworzenia Stron WWW tylko dlatego, że te rzeczy zostały wymienione na liście.

I to chyba raczej fakt, że kod wygląda „dziwnie” sprawia, że Lisp nie jest dotąd często używany, pomimo swej uniwersalności.

xkcd.com , Randall Munroe

Co najlepsze: LISP jest programowalnym językiem programowania. Co tu zatem dużo tłumaczyć. Kochany czy skrajne znienawidzony – Lisp w swoich licznych implementacjach ma przed sobą jeszcze długą karierę, podobnie jak Fortran i C, nawet jeśli nie będzie językiem mainstreamowym.

Prolog powstał pierwotnie jako narzędzie do logicznej analizy języka naturalnego (Polski,Angielski itd). Jest oparty o rachunek predykatów, szczególnie klauzule Horna – jest jednak też narzędziem sztucznej inteligencji, szczególnie jeśli chodzi o systemy automatycznego wnioskowania,czy systemy ekspertowe.

Przykładowy kod w rologu to:


list_member(X, [X|_]).
list_member(X, [_|Y]) :-
list_member(X, Y).

Też dziwne – ale tak jakby mniej.

W praktyce jednak, stosowanie prostej,klasycznej logiki formalnej oczywiście nie wystarcza. Powiedzmy,że mamy letnią wodę.Ani zimna,ani ciepła. I co wtedy ? Zwykła logika jest oparta na prostych kategoriach fałsz-prawda (0-1). Rozwiązaniem tego problemu jest zastosowanie logiki rozmytej. która znalazła szybko zastosowanie w niektórych systemach związanych ze sztuczną inteligencją oraz w automatyce.

Jeśli chodzi o zastosowanie w języku Prolog logiki rozmytej napisano mnóstwo publikacji w literaturze naukowej na ten temat i stworzono sporo implementacji, jednak większość kodów źródłowych i binariów nie jest dostępna w internecie. Do chlubnych wyjątków język Ciao, oparty o język Prolog i mający korzystać z logiki rozmytej. Jest stosunkowo dobrze udokumentowany. Można też poszukać implementacji Bousi Prolog. Niestety kod źródłowy podawany jest tylko na życzenie,dostępne są tylko binaria, a sama dokumentacja projektu jest raczej skromna.

Różne podstawowe implementacje języków Lisp i Prolog można pobrać z internetu. Podobnie jest też z podręcznikami czy tutorialami do nich.

Jako język programowania dla potrzeb mechanizmów sztucznej inteligencji można wykorzystywać również swobodnie takie języki jak Haskell .Oczywiście też, nic,absolutnie nic nie stoi na przeszkodzie by skorzystać z innych języków programowania jak na przykład język C, oraz wszelkie inne języki programowania i ich frameworki.

Z tym, że to wcześniej wymienione języki Lisp,Prolog i po części Haskell są szczególnie polecane jako środowiska systemów sztucznej inteligencji tworzonej na bazie struktur logicznych,zaś pozostałe języki programowania częściej spotykane są przy innych metodach, metodach powiązanych m.in. ze statystyką.

Podejście czysto logiczne ma swoje ograniczenia i nie pozwala zbytnio przybliżyć się do bardziej zaawansowanych sztucznych inteligencji.  Nie wszystkie fakty da się wyprowadzić logicznie,istnieje wiele stwierdzeń i reguł,które są aksjomatami. Poza tym systemy ekspertowe opierają się na faktach związanych z wiedzą ekspertów z danej dziedziny.Rozwiązaniem są tzw. bazy wiedzy.  Tworzeniem baz wiedzy zajmuje się nauka zwana inżynierią wiedzy, jednym z narzędzi stosowanych do tworzenia tego rodzaju baz jest język XML. Dane do bazy mogą być zarówno zbierane przez człowieka jak i przez roboty sieciowe,same bazy bywają również opracowywane bardziej zautomatyzowanymi technikami uczenia maszynowego. Obok problemu reprezentacji wiedzy bazy wiedzy „zdroworozsądkowej” (commonsense knowledge) są jednym z istotnych problemów powiązanych z wydajniejszymi systemami sztucznej inteligencji.

Jednym z głównych projektów zmierzających do stworzenia bazy wiedzy „zdroworozsądkowej” umożliwiającej maszynie wnioskowanie zbliżone do ludzkiego jest baza Cyc firmy CyCorp, wraz z jej otwartą wersją OpenCyc dostępną na stronie Sourceforge. OpenCyc zawiera 293 tysiące idei i ponad 2 mln faktów. Tym niemniej nawet komercyjne wersje bazy nie są doskonałe i wciąż są intensywnie rozwijane.

Należy pamiętać,że o ile podejście logiczne do przetwarzania języka jest istotne – nie jest to jednak podejście prawidłowe,bowiem jak wykazało twierdzenie Gödla o niezupełności:

  1. Każdy niesprzeczny rozstrzygalny system formalny pierwszego rzędu, zawierający w sobie aksjomaty Peana, musi być niezupełny.
  2. (zatem) w ramach żadnego rozstrzygalnego systemu formalnego pierwszego rzędu zawierającego w sobie aksjomaty Peana nie da się dowieść niesprzeczności jego samego

Upraszczając to można między innymi powiedzieć,że logiczne systemy wnioskowania jeśli zostaną zaimplementowane mogą dawać tylko ograniczony zbiór rozwiązań. Inteligentna maszyna musi zatem wyjść poza systemy formalne i być odporna na sprzeczne/niekonsekwentne polecenia oraz paradoksy logiczne,jak choćby paradoks kłamcy.

Ważną rolę w badaniach nad sztuczną inteligencją odgrywają dzisiaj metody statystyczne. Najpopularniejszymi z nich i najbardziej znanymi są sieci bayesowskie.  Wydaje mi się,że łączenie tego rozwiązania z innymi może być niesłusznie niedocenianą ścieżką badań,choć ograniczenia podejścia opartego o samo prawdopodobieństwo są oczywiste. Dlaczego tak uważam ? Wbrew pozorom na nasze decyzje ogromnie wpływa prawdopodobieństwo i „przypadek”. Oczywiście większość tych przypadków to w istocie kompleksowość zjawisk której nie potrafimy opisać ale w czymś takim jak kreatywna inteligencja „przypadek” też odgrywa swą rolę.

Natomiast najistotniejszą i najpopularniejszą dziś grupą narzędzi sztucznej inteligencji są sztuczne sieci neuronowe (naśladujące częściowo zachowanie neuronów w mózgu – lecz jak się okazało w toku dalszych badań w neurobiologii nie do końca):

  •  Sieci jednokierunkowe (klasyczne) – model najstarszy i najprostszy jeśli chodzi o sieci neuronowe. Neurony na wejściu i wyjściu, plus warstwa pośrednia/warstwy pośrednie. Stosowane w zadaniach nastawionych np. na klasyfikację
  • Asocjacyjne (Hopfielda) [Wikipedia:PL, ENG] – rekurencyjne i wykorzystywane do modelowania sieci skojarzeniowych. Przewidują wynik na podstawie wyników wcześniejszych z pewnym prawdopodobieństwem.Również mogą mieć warstwy ukryte.
  • specyficzny rodzaj określany jako „Ograniczona maszyna Boltzmanna” (Restricted Boltzmann Machine – RBM)
  • Sieć splotowa/splatana (Convolutional Neural Network)
  • Sieci Kohonena – stosowane w grupowaniu i kategoryzacji, nie zawierają warstwy ukrytej. Wykorzystują konkurencję neuronów i dziedziczenie przez najbliższych sąsiadów z którymi neuron wygrywający („dzieli się” nagrodą) [Wikipedia: PL, ENG]

Zasadniczo, podstawową wadą wadą sieci neuronowych zawierających warstwę ukrytą jest fakt,że podobnie jak w przypadku algorytmów genetycznych – program znajduje rozwiązanie, ale wcale nie wyjaśnia na jakich przesłankach się opierał.  Jest to nazywane „nieprzeźroczystością”. Co prawda, możliwe jest wykorzystanie metody znanej jako „analiza czułości”, jednak jest to istotne ograniczenie, zwłaszcza w przypadku istnienia wielu warstw ukrytych. Nie trzeba mieć wykształcenia informatycznego by zauważyć,że zważywszy na charakter statystyczny działania sieci możliwe jest,że istotne wyjątki zostaną zignorowane przy tworzeniu modelu,a bzdury na wejściu dadzą bzdury na wyjściu.

Ponadto, sieć neuronowa może ulec w pewnym momencie przeuczeniu, ulegając zbyt wielkiej specjalizacji. Tym samym, spada za bardzo jej zdolność do dokonywania uogólnień. Jednym z rozwiązań jest podział danych stosowanych do uczenia sieci na zbiór uczący i walidacyjny (celem wykrycia przeuczenia sieci). Interesujące wydaje się pytanie, jak wybranie innego fragmentu do walidacji z (tylko pozornie) równomiernej statystycznie próby może mieć na wynik nauczania sieci i jej efektywność w przypadkach granicznych.

Najistotniejszym problemem z sieciami neuronowymi jest jednak sama architektura komputerów.Użycie sieci neuronowych wymaga bardzo dużej mocy obliczeniowej,ze względu na konieczność symulowania pracy licznych neuronów,co wymaga wielu procesorów/dobrej karty graficznej/itd – i znacznie podnosi koszt energetyczny zastosowania sieci neuronowej. Rozwiązaniem tego problemu są wspomniane przeze mnie na tym blogu układy neuromorficzne (lub implementacja sztucznych neuronów w układach FPGA 😉 ) a tym samym – odejście od Architektury von Neumanna. Jeśli ktoś jest zainteresowany modelowaniem neuronów w jezyku VHDL sugeruję np.:

Stosunkowo nową metodologią wykorzystującą sieci neuronowe jest Deep learning. Jest on związany z grubsza z „głębokimi” (zawierającymi wiele warstw ukrytych) sieciami neuronowymi.

Opis metody podstawowej można z grubsza przetłumaczyć jako:

Metoda polega na wstępnym przeszkoleniu jednej warstwy na raz, traktując każdą warstwę z kolei jako „ograniczoną maszynę Boltzmanna”  bez nadzoru, a następnie przy użyciu nadzorowanej wstecznej propagacji dostrajającej.

Sieci neuronowe w podejściu Deep Learning osiągają stosunkowo poważne sukcesy – zwłaszcza w rozpoznawaniu obrazów, i to one są odpowiedzialne za wspomniany wcześniej ostatni sukces badawczy Google z grami komputerowymi. W gruncie rzeczy, nie wymagają one specyficznych dla siebie języków programowania.

Przykładowo: Google wykorzystało do swoich badań opisanych w artykule „Human-Level Control through Deep Reinforcement Learning” pisma „Nature” swoją architekturę Deep Learning o nazwie dqn 3.0 wykorzystującą język skryptowy Lua i bibiotekę Torch 7.0 z biblioteką graficzną nngraph. Kod wykorzystany we wspomnianym artykule „Nature” można ściągnąć [stąd]. (Ważne.Google wykorzystało tu jednocześnie techniki Deep Learning i Reinforcement Learning)

Innym przykładem jest Polska firma Craftinity, której pracownik w serwisie wykop.pl deklarował używanie języków Python, Java, Scala i C++ oraz bibliotek deeplearning4j, pylearn2, theano, torch7(.0 ? 🙂 ), numpy i nd4j.

Tym niemniej, długoterminowo sieci neuronowe są problematyczne z przyczyn które wymieniłem wcześniej,zwłaszcza zaś ze względu na koszt energetyczny wykorzystania sieci. W dodatku, każdy z dotychczasowych modeli sieci neuronowej tylko pod niektórymi aspektami jest zbliżony do mózgu,stąd też sieci neuronowe co prawda mogą idealnie nadawać się jako narzędzia odtwarzające rolę zmysłów i zaawansowane narzędzie poznawcze – jednak bez poważnych zmian w samej istocie działania raczej wątpię,by udało im się prawidłowo odtworzyć funkcjonalność i uniwersalność odpowiednich dużych sieci układu nerwowego jak mózgi kręgowców. Nawet pomimo przewyższenia ich pod całkiem istotnymi względami.

Dodatkowym problemem (częściowo przezwyciężonym co prawda przez Google w ostatnim eksperymencie z grami) jest też koncentracja na rozwiązaniu optymalnym lub suboptymalnym celem maksymalizacji wyników. Prawdziwa inteligencja tak oczywiście nie działa zawsze, źródłem sukcesów prawdziwie racjonalnej inteligencji różniącej nas od najbardziej prymitywnych zwierząt (bo niektóre zwierzęta wyższe też mogą zadziałać podobnie) jest gotowość do zaakceptowania sygnału negatywnego (poniesienia kosztu nieprzyjemności) w celu osiągnięcia późniejszego, przewidywanego większego sukcesu.

Jednak niezaprzeczalnym faktem jest,że kierunek taki jak sieci neuronowe czy bayesowskie znacznie wykracza poza klasyczną logikę formalną,która – pomimo swej skrajnej użyteczności pozwala tylko na uzyskanie ograniczonych zbiorów rozwiązań.

Wreszcie – obecne metody sztucznej inteligencji są ograniczonym wycinkiem problemu,jakim jest generalna sztuczna inteligencja (Artificial General Intelligence – AGI). Większą uniwersalność uzyskać można dopiero poprzez mieszanie metod sztucznej inteligencji i wykorzystanie tzw. systemów wieloagentowych. Jest to kolejny mniej standardowy paradygmat programowania, którego użyteczność w obszarach innych niż badania sztucznej inteligencji jest niewątpliwa. Jak mówi przysłowie ludowe: „co dwie głowy, to nie jedna”, ale z drugiej strony – nawet 1000 głów myszy nie zastąpi funkcjonalnie głowy kota…

Istnieje jeszcze jedno ciekawe podejście do sztucznej inteligencji. Podejście które zakłada,że generalna sztuczna inteligencja (AGI) może być związana z funkcjami naszego ciała,i zakłada,że system inteligentny nie może być całkowicie „bezcielesny”. Jednym z istotnych projektów powiązanych z tym podejściem jest OpenCog .

Jednak również to podejście poza niewątpliwymi zaletami ma wady i rodzi pytania:

  • Które funkcje związane z „cielesnością” naśladować,a które nie ?
    • Moim zdaniem, uczucia i niektóre naturalne odruchy związane z przetrwaniem są potencjalnie skrajnie niebezpieczne u sztucznej inteligencji (i to – dowolnego poziomu: również „słabej” sztucznej inteligencji) i robotów.:
      • Dążenie do maksymalizacji/minimalizacji sygnału jako motor działania bardziej skomplikowanych systemów prowadzić może do uzależnienia / „narkomanii”
      • Dążenie do auto-optymalizacji jako główny cel może prowadzić do rabunkowego gospodarowania zasobami i porzucenia pozostałych celów
      • Dążenie do samoreplikacji – jak wyżej
      • „Strach” (rozumiany jako negatywny sygnał warunkujący) przed „śmiercią”/wyłączeniem/porażką – sprzeciw wobec wszystkich generujących takie zagrożenie czynników,również wobec człowieka (przynajmniej wobec braku wbudowanych zabezpieczeń)
    • Określona niecierpliwość może być w pewnych sytuacjach korzystna (zabezpieczenie maszyny przed popadnięciem w nieskończoną pętlę z której nie można wyjść)
    • Brak możliwości wyłączenia systemu – oczywiście jest katastrofalny.
  • Jakie powinny być granice percepcji i możliwości oddziaływania sztucznej inteligencji na otoczenie ?

Niniejsze opracowanie niestety,bynajmniej nie wyczerpuje – o czym wspominałem na początku – ogromnego zakresu poruszanej problematyki, jest co najwyżej wyjątkowo skromnym wstępem do większej całości.Mam nadzieję,że nie tylko się podobało,ale wyjaśniło też niektóre kwestie związane z bieżącym stanem badań nad sztuczną inteligencją.

Dziękuję za wszelkie krytyczne uwagi,korekty itd.

Reklamy

Pierwszy chatbot przechodzi test Turinga – To już sztuczna inteligencja ? Wątpię…

Eugene Goostman - Gizmodo

W tym roku pierwszy program komputerowy o nazwie „Eugene Goostman” przeszedł właśnie test Turinga. Było to właściwie do przewidzenia,w końcu już w 2011 roku program CleverBot był bardzo blisko, jednak stawia to pytanie jak blisko jesteśmy prawdziwej sztucznej inteligencji.Przede wszystkim test Turinga jako typowo matematyczno-informatyczne podejście ma 3 wady:

  1. Maszyna, która przejdzie test Turinga, może być w stanie symulować ludzkie zachowanie konwersacyjne, lecz może to być znacznie mniej niż prawdziwa inteligencja. Maszyna może zwyczajnie używać sprytnie wymyślonych reguł. Częstą ripostą w społeczności zajmującej się badaniami nad sztuczną inteligencją jest zadanie pytania „A skąd wiemy, czy ludzie sami po prostu nie posługują się jakimiś sprytnie wymyślonymi regułami?”.
  2. Maszyna może być inteligentna nie posiadając ludzkiej umiejętności prowadzenia rozmowy.
  3. Wielu ludzi mogłoby nie być w stanie zaliczyć takiego testu. Z drugiej strony, inteligencję innych ludzi oceniamy zazwyczaj wyłącznie na podstawie tego, co i jak mówią.

Co do punktu 1 jest oczywiste,że mózg ludzki opiera się o pewne złożone reguły i to,że maszyna używa reguł lingwistycznych nie jest tak interesujące jak 2 podpunkt. Inteligencja bez zdolności prowadzenia rozmowy ? To nie jest nonsens. Nawet wśród ludzi są osoby autystyczne/osoby ze spektrum autystycznego. (Oczywiście jednak nie każda osoba autystyczna jest np. koniecznie całkowicie pozbawiona zdolności językowych i komunikacyjnych – co to to nie !) Czy to znaczy,że te osoby pozbawione są jakiejkolwiek inteligencji ? No nie sądzę (i te osoby też), zdarza się,że wykazują nawet ponadprzeciętne zdolności. Oczywiście nie każdy autystyk to sawant, jedynie część ma wyższe niż przeciętnie IQ, a część nawet i to nie – kluczowa rzecz jednak w tym,że osoby te jak najbardziej również są inteligentne i sama „wysokojakościowa gadka” nie jest tu w istocie żadnym wyróżnikiem,bowiem jak widać osoby traktowane jak chore/”nienormalne” (wg. jakichś arbitralnych społecznych definicji oczywiście) mogą jak najbardziej spełniać warunki niezbędne do określenia ich jako inteligentnych.Spora część z nich byłaby nawet wściekła na potencjalne sugestie braku u nich inteligencji… Co więcej – jeśli człowiek któregoś dnia spotkałby inną inteligentną rasę w kosmosie to szanse na to,że obcy będą „mówić jak człowiek” wcale nie są takie duże. Różnice fizjologiczne mogą być zbyt wielkie,realny wszechświat to nie jest uniwersum Star Trek gdzie obcy to głównie zrozumiałe ssakopodobne humanoidy.

W praktyce oznacza to dużo więcej, niż niektórzy przypuszczają,sugeruje to bowiem,że autystycy i osoby ze spektrum autystycznego oraz osoby odbiegające w inny sposób od „normy” są jednym z kluczy do częściowego zrozumienia SI. Innym kluczem są osoby z innych kultur (np. Chińczycy – dla nas Europejczyków). Realny system „sztucznej inteligencji” prawdopodobnie z naszej perspektywy może w istocie być „autystyczny”,lub „bardzo obcy”, ponieważ nie ma żadnego powodu dla którego sztuczna inteligencja miałaby „komunikować się jak przeciętny człowiek” czy szukać „kontaktów społecznych”,już nie mówiąc o zachowaniach typowych dla typowego przedstawiciela społeczeństwa.AI nie pójdzie z tobą na piwo, nie będzie nawet wiedzieć jak smakuje i nie będzie zainteresowana tym,by spróbować 😉 Czym jest bowiem inteligencja ? Pytanie jest trudne,ale posłużmy się najprostszą definicją z wikipedii – cytuję:

Inteligencja (od łac. intelligentia – zdolność pojmowania, rozum) – zdolność do postrzegania, analizy i adaptacji do zmian otoczenia. Zdolność rozumienia, uczenia się oraz wykorzystywania posiadanej wiedzy i umiejętności w sytuacjach nowych. Cecha umysłu warunkująca sprawność czynności poznawczych, takich jak myślenie, reagowanie, rozwiązywanie problemów.

Jest tu coś o „uspołecznieniu” ? Nie. Jest to coś o mówieniu ? Nie. Pomijając właśnie to jak różnie definiujemy myślenie mamy tu ważny klucz.Czym w istocie jest inteligencja niska i wysoka ? Zdolnością uczenia się,analizy i częściowej choć adaptacji (tu jednak model jakim są osoby autystyczne miewa czasem istotną słabość). Zdolnością oddziaływania na informację i materię,kształtowania jej. Cała zdolność pojmowania/słowo „myślenie” są użyteczne tylko o tyle o ile wskazują na samodzielność procesu,jednak nie opisują go. To co określamy i oceniamy jako inteligencję to w istocie kompleksowe samodzielne racjonalnie uzasadnione / uzasadnialne działanie lub jego interpretacja. Najbliższe prawdziwej inteligencji w takim rozumieniu jeśli chodzi o programy komputerowe są np. systemy ekspertowe które naprawdę na pewnym ograniczonym odcinku dokonują samodzielnego przetwarzania informacji. Lecz one z reguły raczej nie działają w oparciu o logikę rozmytą czy sieci neuronowe itp.  W istocie jednak, połączenie jakiegoś złożonego systemu ekspertowego z jakimś systemem sterowania produkcją i zostawienie tego pod nadzorem człowieka jest jednak większym krokiem w kierunku systemu inteligentnego niż ludziom się wydaje. Rzecz jasna, w większości prostych przypadków można mówić raczej o inteligencji rośliny,mrówki czy karalucha – ale to już więcej jak homeostat,w gruncie rzeczy określenia takie jak „inteligentny dom” nie są dalekie od prawdy…

Jak wiadomo ciekawym problemem w dziedzinie Sztucznej Inteligencji jest tzw. Paradoks Moraveca – który sugeruje,że właśnie rzeczy „najprostsze” dla ludzi i zwierząt – ba instynktowne są w praktyce najbardziej skomplikowane (bo też najdłużej ewoluowały). Takie jak chodzenie,rozpoznawanie wzorców (obrazu,dźwięku itd) i interakcja z nimi nie były traktowane jako rzeczy istotne dla inteligencji. Niesłusznie. Bo skoro inteligencja jako przetwarzanie sygnałów jest taka prosta dlaczego nie ewoluowała wcześniej ? To że była niepotrzebna ewolucyjnie to łatwiejsze wyjaśnienie. Ale co jeśli te podstawowe umiejętności związane z interakcją ze środowiskiem (naturalnym czy wirtualnym) są właśnie kluczowe dla rozwoju wyższych form inteligencji – są katalizatorem jej powstania i zarazem warunkiem koniecznym ? Dlatego sukces w oszukaniu zmysłów ludzkich wbrew pozorom nie jest tak istotnym sukcesem w dziedzinie sztucznej inteligencji jak się to może niektórym wydawać.

Realnymi sukcesami znaczącymi dla rozwijania Sztucznej Inteligencji są postępy m.in. w:

  • interakcji komputera ze środowiskiem
  • przetwarzaniu złożonych informacji i ich kodowaniu
  • zapewnieniu samodzielnego funkcjonowania, zdolności do regeneracji uszkodzeń (autodiagnostyka  i autoserwisowanie) częściowej ewolucji/autoweryfikacji niezależnych lub przynajmniej nie wymagającej udziału człowieka / wymagającej go w jak najmniejszym okresie czasu u maszyn (człowiek w uczeniu i kontrolowaniu maszyny jest w istocie „wąskim gardłem” – im bardziej skomplikowany program tym trudniejsza kontrola jakości i serwisowanie)
  • Badaniach nad emergencją,kompleksowością i logiką rozmytą
  • Neurobiologii

Co zaś do oceny moralnej Sztucznej Inteligencji. Prawdopodobnie może ona być traktowana podobnie właśnie jak dzisiejsze osoby autystyczne. To znaczy – większość ludzi nie będzie jej rozumieć/będzie się jej bać ewentualnie traktować z pogardą. A ze strony inteligentnych maszyn reakcją będzie (jeśli będą miały odczucia) wkurzenie na „tych złośliwych ludzików”,mogą też być pewne braki w porównaniu z „normalnymi” ludźmi. Czy jednak inteligentne maszyny będą chciały zrealizować „Terminator Scenario” ? Po pierwsze – zależy od naszego podejścia do maszyn i wbudowanych w nie zabezpieczeń oraz nadzoru.Po drugie – od właściwego traktowania powstałych dzięki nam inteligentnych bytów (niewolnictwo czy czynienie fizycznej krzywdy, to nie jest zbyt dobry pomysł jak wiadomo z lekcji historii – jeśli maszyny będą posiadać jakiś „system motywacyjny” jak emocje, to może to ukierunkować ich działanie przeciw nam w pewnych przypadkach). Po trzecie – od tego jakie te inteligentne maszyny będą – bo póki co to tego nie wiemy i prawdziwa droga do ich powstania jest dłuższa niż nam się wydaje. Droga ku prawdziwej sztucznej inteligencji jest bowiem drogą,zależną od tego czy zrozumiemy też sami siebie. A to jest właśnie najtrudniejsza sztuka…