MMOAILE
Od dawien dawna lat człowiek próbuje budować twory na swoje podobieństwo. Od pewnego czasu zaczął też zastanawiać się nad budową sztucznej inteligencji, która będzie dorównywała jego możliwościom. Jak dotychczas, próby postępu w tej dziedzinie nie są szczególnie imponujące ale jestem przekonany, że niedługo uda się wybudować algorytm, który będzie potrafił swobodnie się rozwijać, modyfikować i uczyć podobnie jak człowiek.
Pierwsze twory tego typu będą powstawały zapewne w klastrach superkomputerów. I tu powstaje problem. W przypadku naszego umysłu, od urodzenia, a nawet jeszcze wcześniej, od momentu jego uformowania jesteśmy zasypywani milionami informacji pochodzącymi z naszych zmysłów, które pozwalają na budowanie odpowiednich algorytmów postrzegania za ich pomocą. Wszystkie zmysły się dopełniają, dzięki czemu to, czego nie jesteśmy pewni przy korzystaniu z jednego zmysłu potwierdzane jest lub nie za pomocą pozostałych. A co zrobić z maszyną? Jak ona miałaby się uczyć i skąd powinna otrzymywać informacje?
Co powiecie na niewychylanie się na początku z wirtualnego świata i skorzystanie z obecnych aplikacji zapewniających nieskomplikowany interfejs i możliwość pobierania informacji od milionów ludzi? Te aplikacje istnieją już dziś, więc w przyszłości nie byłoby najmniejszego problemu ze skorzystaniem z nich. Oczywiście mowa o wirtualnych światach i wszelkiego rodzaju grach online na nich bazujących. Zamiast skrótu MMORPG tym razem będziemy mieli do czynienia z Massively-Multiplayer Online Artificial Intelligence Learning Environment.
Spotkanie w wirtualnej przestrzeni będzie na pewno prostsze dla nas i dla maszyn. Być może dzięki temu łatwiej uznamy fakt, że już nie jesteśmy sami na świecie. ;)
Co dalej? Samorozwijające się rzeczywistości? EPIC? The Wired? :)









Sądzę, że w pierwszej kolejności musimy zaakceptować jedną rzecz – sztuczna inteligencja nie będzie działać od razu. Tak jak człowiek, najpierw formuje się przez przysłowiowe i dosłowne jednocześnie 9 miesięcy, a po urodzeniu jest bezbronną istotką, którą trzeba przez wiele lat się opiekować i przez wiele lat uczyć. Dopiero po pewnym czasie człowiek zdobywa umiejętność samodzielnego poszerzania wiedzy z innych źródeł niż otaczająca go rzeczywistość (w sensie tej bardziej abstrakcyjnej wiedzy, czerpanej z opowieści, książek, czy innych niebezpośrednich źródeł informacji).
W świecie komputerowej sztucznej inteligencji staramy się ją rozwijać inaczej – gdy zauważymy jakieś nieprawidłowości, coś nielogicznego, to zabieramy się za jej POPRAWIANIE. Modyfikację „od środka” tego, na czym dane wydarzenie się oparło. A przecież o ile lepiej by było, gdyby dać możliwość komputerowi samodzielnego poprawiania swoich wzorców postępowania na podstawie efektów postępowania wcześniejszego.
Pomijając jakieś intensywne i skomplikowane czynności, głupie silniki „AI” w grach komputerowych – bardziej zajadli gracze znają na pamięć pewne zagrania postaci sterowanej przez AI, przez co potrafią tą wiedzę wykorzystywać przeciwko nim. Gdyby jednak postaci AI uczyły się na własnych błędach i po jednej przegranej rozgrywce zaczęły zachowywać się inaczej, w sposób nieprzewidywalny dla człowieka (zakładam, że ludzki przeciwnik nie grzebie w kodzie ani danych zbieranych przez sztuczną inteligencję). Wystarczy tutaj wziąć pod uwagę sytuację, że ludzie grają całkiem inaczej przeciwko żywym przeciwnikom, a całkiem inaczej przeciwko „komputerom”.
01 listopada 2007, 20:54:03. Permalink.
Dot
Zgadzam się ze wszystkimi Twoimi argumentami. I jeszcze dodam jedną ważną rzecz. :)
Sztuczna inteligencja nigdy nie nie zadziała bez napływających informacji, tak samo jak człowiek. Dlatego jestem za tym, żeby sztuczna inteligencja od początku przebywała w ludzkim środowisku. Nawet tak `odrealnionym’ jak wirtualny świat. :)
01 listopada 2007, 21:01:04. Permalink.
mnie zastanawia tylko jedno – jak ten algorytm bedzie sprawdzac poprawnosc tego co w sobie zmodyfikuje.
jak dobrze wiadomo napisanie programu ktory bedzie sprawdzal z pewnoscia 100% czy dowolny podany kod sie nie zawiesi jest problemem o niesamowitej zlozonosci, jezeli w ogole mozliwym.
01 listopada 2007, 21:42:31. Permalink.
yoshi
Myślę, że zostanie to rozwiązane podobnie jak w ogranizmach żywych – te, które nie działają zgodnie z warunkami, wyginą. Co prawda to też nie jest takie łatwe do zaimplementowania, ale daje przynajmniej jakiś punkt wyjścia.
01 listopada 2007, 21:46:33. Permalink.
A czy programista, pisząc jakąś dużą, skomplikowaną aplikację, wie, że ona się nie zawiesi? Najczęściej można to względnie przewidzieć, ale i tak się to nie opłaca. Dużo łatwiej, taniej i szybciej jest napisać tak jak się wydaje, że będzie dobrze, a następnie przetestować. Po to systemy operacyjne mają możliwość ubijania „martwych” procesów, by w razie, gdy jednak nastąpi nieprzewidziana podczas testów sytuacja, można było przy możliwie najmniejszych stratach taki program zresetować.
Ponadto – nie musi to być algorytm jednowarstwowy. Mało tego, nie wyobrażam sobie, aby tak wyglądał. Jest jakaś aplikacja, która analizuje dane, na podstawie tych danych i wytworzonych wzorców postępuje. Następnie na podstawie wyników postępowania odpowiednio modyfikuje wzorce i dane. Ale nie modyfikuje sama siebie. Zmiana działającego programu jest praktycznie niemożliwa. I nie mówię tu o banalnej do ominięcia kwestii blokady do zapisu otwartego pliku, ale o kwestii tego, jak zbudowany jest kod maszynowy.
01 listopada 2007, 21:55:30. Permalink.
Dot
Zastanawiałem się nad możliwością stworzenia piaskownicy do rozwiązywania danego problemu, w której można byłoby przetestować dużą liczbę dostępnych rozwiązań. Kod bardziej efektywny od wcześniejszego byłby następnie wprowadzany do programu.
Oczywiście dany algorytm, efektywny dla odpowiednich danych nie musi być definitywnie poprawny.
01 listopada 2007, 22:09:05. Permalink.
... Matrix?
Dot – ja zauwazylem ciekawa rzecz zwiazana z moimi botami w Counter-Strike’u (moimi => u mnie). Nie wiem czy to przypadek, ale im dluzej gram, tym sa trudniejsze, zaczyna mi sie nawet wydawac, ze przewiduja moje zagrywki i kopiuja moje pomysly.
Nie mam pojecia, czy to kwestia kodu botow, czy tylko tak mi sie wydje, a moze jest to inny, nie do konca losowy czynnik, ale to dosc interesujace ;)
02 listopada 2007, 09:34:30. Permalink.
Technicznie jest to bardzo możliwe – wystarczy, że mają zaimplementowaną sieć neuronową. Jest to jednak dość rzadkie wśród AI w grach komputerowych (przynajmniej tych „zwykłych”, a nie tych, przeznaczonych do rozwoju AI), bo dość obciążające dla maszyny, na której chodzą.
02 listopada 2007, 14:08:10. Permalink.
kocham Cię!!!
01 lutego 2008, 12:46:25. Permalink.
rurociąg przyjażń :)ja się napiję :)
01 lutego 2008, 12:55:55. Permalink.
Witaj.
Dlaczego przestałeś pisać? Byłoby fajnie gdybyś dokończył kurs SQL Lite, może jak połączyć się z bazą w Visual Studio .NET? Najlepiej C++/CLI.
06 lipca 2010, 15:12:32. Permalink.