Posts tagged ‘AI’

O bocie, który rozmawia

2011-09-17 22:55

Sporo szumu zrobiła ostatnio informacja o tym, że pewien chatterbot (program udający rozmowę tekstową i/lub głosową) z sukcesem przebrnął przez test Turinga. Przebiła się ona nawet do mediów ogólnych, co zwykle oznacza jedną z dwóch rzeczy: albo wydarzenie jest naprawdę ważne, albo wybitnie wyolbrzymione.
Niestety, w tym przypadku mamy do czynienia raczej z tym drugim wariantem.

Dla porządku warto oczywiście przypomnieć, o co tu właściwie chodzi. Test Turinga był zaproponowany w pierwszej połowie zeszłego stulecia jako jedna z możliwości odpowiedzi na pytanie o to, czy komputery mogą “myśleć”. Ogólna idea jest tu bardzo prosta: jeśli maszyna będzie dla postronnego rozmówcy nieodróżnialna od człowieka, wtedy przechodzi test pozytywnie. Szczegóły dotyczą rzecz jasna dokładnego sposobu przeprowadzenia testu: medium komunikacji (np. konsoli tekstowej), dozwolonego czasu odpowiedzi, a przede wszystkim sposobu oceny – co obejmuje chociażby ilość sędziów i metodę ustalania werdyktu.
W przypadku Cleverbota mówimy o rezultacie trochę lepszym niż rzut monetą (ale statystycznie istotnym): 59.3% rozmówców uznało, że mają do czynienia z człowiekiem. W tym samym scenariuszu faktyczni ludzie uzyskiwali wynik… 63.3%. Najwyraźniej komputery są już całkiem blisko, by być lepsze od ludzi w… udawaniu ludzi :)

Czy jednak wynika z tego faktu cokolwiek znaczącego? Nawet jeśli uznamy, że rzeczywiście mamy tu do czynienia z pierwszym sukcesem w teście Turinga (bo diabeł jak zwykle tkwi w szczegółach), to nie wydaje mi się, aby wydarzenie to było czymś więcej niż tylko historycznym symbolem. Mamy tu oczywiście do czynienia ze sztuczną inteligencją (AI), lecz jest ona podobnej klasy co programy do rozpoznawania obrazu i dźwięku, algorytmy szachowe czy systemy automatycznego wnioskowania w stylu 20Q. W każdym z tych przypadków chodzi o wykonywanie określonego zadania, które zazwyczaj lepiej wychodzi ludziom niż komputerom. Sposób zaatakowania problemu jest też zawsze taki sam i polega na rzuceniu na front odpowiednio dużej mocy obliczeniowej, opcjonalnie wspartej pokaźnym zbiorem danych.

Tak też robi Cleverbot, będący w gruncie rzeczy silnikiem do przeszukiwania bazy wiedzy w odpowiedzi na zapytania pisane w określonym języku (w tym przypadku angielskim). Został stworzony w konkretnym celu i okazał się być w swojej domenie wystarczająco dobry, by zacząć konkurować z ludźmi. Dokładnie tak, jak kiedyś Deep Blue – który przynajmniej nie twierdził, że jest jednorożcem ;]

Tags: , ,
Author: Xion, posted under Computer Science & IT, Events » 4 comments

AI na Warsztacie

2010-02-28 12:03

O niezadowalającym poziomie forum Warsztatu słyszałem już wielokrotnie. Że pytania dotyczą głównie podstaw programowania, że wiele z nich to mniej lub bardziej zakamuflowane “No i co tu jest źle?”, że odpowiedzi na większość z nich znajdują się na drugim końcu wyszukiwarki – i tym podobne. A jeśli już jakiś wątek nie podpada pod którąś z tych kategorii, to albo jest kolejnym “genialnym” pomysłem na grę, albo off-topikiem, albo w najlepszym razie dotyczy jakiegoś zagadnienia z zakresu programowania grafiki.

Pewnie coś w tym jest. Jednak ostatnio ku mojemu zaskoczeniu (i pełnej aprobacie) pojawiło się też kilka dyskusji na tematy związane ze sztuczną inteligencją. Niby taki dział też jest, ale jakoś dotąd nie zauważyłem, by był zanadto aktywny.
A tu proszę: kilka ciekawych wątków w ciągu paru dni. Może to nic wielkiego i może niespecjalnie nawet jest tu o czym pisać, bo ich tematyka jest dość ograniczona (głównie sieci neuronowe), a dziedzina raczej akademicka i pewnie nawet niekoniecznie związana z gamedevem. Ale…

Ale myślę, że jednak warto o tym wspomnieć :) Przede wszystkim po to, by nikt nie zapomniał, że gry to nie tylko ładna grafika i że w dzisiejszych czasach powinny one być choć trochę – z braku lepszego słowa – ‘inteligentne’.
A poza tym miałem też ochotę zwrócić uwagę na istnienie tego właśnie działu forum Warsztatu – więc niniejszym właśnie to czynię :]

Tags: , ,
Author: Xion, posted under Internet, Programming » 2 comments

A.I. – wariacja na temat

2008-01-04 0:36

Zawsze byłem sceptycznie nastawiony do tak zwanej ‘sztucznej inteligencji’. Nie chodzi tu bynajmniej o stosunkowo proste algorytmy klasyfikowane dość swobodnie i niezbyt formalnie jako AI, a wykorzystywane chociażby w programowaniu gier: wyszukiwanie najkrótszej drogi, zachowanie się postaci typu NPC, itp. Mam raczej na myśli takie konstrukcje (zarówno programy, jak i urządzenia, a najczęściej połączenie jednych i drugich), które starają się być znacznie bardziej uniwersalne i sprawiać wrażenie inteligentnych w jakimkolwiek z spośród licznych i niezbyt jasnych znaczeń tego słowa.
Mój “problem” polegał mniej więcej na tym, że jakoś ciężko było mi uwierzyć w to, że kiedyś – nawet niekoniecznie w przewidywalnej przyszłości – maszyny będą rzeczywiście myślały. Można to uznać za swego rodzaju zawodowe zboczenie. Wiedząc, że komputery działają zawsze w oparciu o określony, niezmienny i ściśle zdefiniowany algorytm, trudno jest uwierzyć, że wystarczy tylko odpowiedni wzrost mocy obliczeniowej, by nagle zyskały one jakieś nieprzewidziane zdolności. W takim podejściu tkwi jednak pewne dość wątpliwe, a kluczowe założenie, o istnieniu którego zdałem sobie sprawę dopiero niedawno…

Robot Kismet
Kismet – robot “z uczuciami”
© Jared C. Benedict, MIT

Zasadniczo z maszynami, które mają być w jakimś aspekcie podobne do ludzi lub innych istot żywych, wiążą się dwa zasadnicze problemy. Pierwszym jest różnica między właściwościami, jakie faktycznie posiadają, a tymi, które tylko wydają się posiadać. Nietrudno na przykład zauważyć, że spsiały robot Aibo całkiem dobrze naśladuje zachowanie prawdziwego zwierzęcia. Równie szybko można jednak zdać sobie sprawę, że tak naprawdę nie zrobi on niczego, do czego nie został wcześniej zaprogramowany. Nawet jeśli ktokolwiek przypisuje mu więc jakiekolwiek psie cechy, nie czyni go to jeszcze sztucznym psem.
Drugim i znacznie poważniejszym problemem jest to, że konstruując tego rodzaju maszyny, ludzie starają się naśladować coś, o czym tak naprawdę wiedzą niewiele. Wciąż nie mamy dobrych (czyli weryfikowalnych) definicji na takie pojęcia jak ‘życie’, ‘inteligencja’ czy ‘świadomość’. Zwłaszcza ten ostatni termin jest kłopotliwy, gdyż stuprocentowo pewną odpowiedź pozytywną na pytanie “Czy coś jest świadome?” możemy udzielić tylko wtedy, gdy chodzi o… nas samych.

I chociaż filozofia jak zwykle nie dostarcza żadnych konkretnych odpowiedzi, nie przeszkadza to badaczom dociekać, jak świadomość może powstawać – ze szczególnym uwzględnieniem ludzkiej, która musiała przecież wykształcić się w toku ewolucji. Do niedawna najlepszym “wyjaśnieniem”, o jakim słyszałem, była emergencja, czyli powstawanie złożonych zjawisk na kanwie prostych “klocków”. Innymi słowy jest to twierdzenie, że całość jest czymś więcej niż tylko sumą części. W odniesieniu do świadomości oznacza to, że w dostatecznie dużym zbiorze neuronów (albo odpowiednio zaawansowanym komputerze czy też sieci tychże) wyłoni się ona samoistnie. Raczej mało przekonujące, nieprawdaż?
Znacznie ciekawszym przypuszczeniem jest hipoteza, że ludzie są samoświadomi, gdyż używają w stosunku do swojej osoby pewnych modeli, które są wykorzystywane przez mózg w odniesieniu do innych ludzi. Zakładamy na przykład, że inni ludzie też myślą, mają uczucia i że w swoim postępowaniu kierują się jakimiś zasadami. Często takie założenia i oparte na nich modele zachowań bywają trafne, więc przez pokolenia były udoskonalane, bo miały po prostu ewolucyjne uzasadnienie. Ciekawie zaczyna się robić wtedy, kiedy odkrywa się, że z pomocą tzw. neuronów lustrzanych ludzki mózg może budować modele swego posiadacza. Właśnie taki model może być jeśli nie samoświadomością, to przynajmniej jej solidną podstawą.

Uff, to było wyczerpująca dygresja ;-) A jakie są praktyczne wnioski dla sztucznej inteligencji? Otóż jeśli świadomość rzeczywiście tak “działa”, to można nią obdarzyć dowolny byt w relatywnie łatwy sposób. Wystarczy, że będzie on posiadał jakiś mechanizm, umożliwiający mu rozpoznawanie innych bytów, a następnie zastosuje go w stosunku do siebie.
Proponuję teraz zejść wreszcie z tych niebotycznych wyżyn abstrakcji – i to od razu na sam dół: do kodu. Napiszmy po prostu klasę obiektów, które będą świadome w powyższym sensie:

  1. class ConciousObject:
  2.     def perceive(self, obj):
  3.         if (obj != self):
  4.             print "`" + str(obj) + "` is a(n) " + str(obj.__class__)
  5.         else:
  6.             print "I am a(n) " + str(self.__class__)
  7.  
  8.     def introspect(self):
  9.         self.perceive(self)

Tak, to już jest to. To chyba najbardziej prymitywny sposób realizacji całego pomysłu, ale zawiera wszystkie niezbędne elementy. Mamy tutaj metodę perceive, za pomocą której nasz obiekt może “postrzegać” jakiś inny obiekt – co tutaj oznacza po prostu wypisanie jego tekstowej reprezentacji wraz z nazwą jego klasy. Przejawem samoświadomości jest z kolei metoda introspect, która to pozwala obiektowi “postrzegać” w ten sposób siebie. Robi to podobnie jak we wszystkich pozostałych przypadkach, acz nieco inaczej, gdyż wie (tak jak ludzie), że teraz “patrzy” do swojego wnętrza. Mechanizm jest jednak podobny.
A przykładowe wyniki są następujące:

`42` is a(n) <type ‘int’>
`Ala ma kota` is a(n) <type ‘str’>
`<Foo instance at 0x014BDA08>` is a(n) Foo
I am a(n) ConciousObject

To oczywiście tylko żart, ale jeśli wspomniana teoria samoświadomości zdobędzie solidne dowody, to kto wie – może na analogicznej zasadzie będą w przyszłości konstruowane maszyny, które nie tylko myślą, ale też wiedzą, że myślą. Jeżeli bowiem świadomość jest tylko złudzeniem, to być może da się ten artefakt funkcjonowania mózgu zaimplementować także u maszyn.
W każdym razie mam nieodparte wrażenie, że zanim prawdziwego rozpędu nabierze rozwój sztucznej inteligencji, ja zdołam wyprodukować jeszcze sporą ilość podobnych “naturalnych głupot” ;-)

Tags:
Author: Xion, posted under Computer Science & IT, Thoughts » 7 comments
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.