sobota, 31 marca 2012

Dlaczego Captcha nie spełnia swojej roli ?

Każdy projekt ma zarówno grono przeciwników, jak i zwolenników. Dlaczego należę do tych pierwszych i dlaczego nie widzę przyszłości CAPTCHA w obecnym kształcie, o tym w artykule. 

Problem captcha Turing Test
Rys. 1. Realna sytuacja z którą spotkałem się 30 marca 2012 r. na czołowym polskim portalu. Człowiek nie
może przepisać kodu z obrazka.
Autor: Rafał Lysik
Captcha to system mający na celu zweryfikowanie, czy czynności na stronach www zostały wykonane przez człowieka, czy też przez robota komputerowego. Podwaliny pod projekt Captcha założył Dr Alan Turing, który wymyślił pewien test.

Historia projektu Captcha
W 2000 r. gigant internetowy Yahoo zorganizował konferencję, na której przedstawił swoje problemy. Na konferencji wystąpił szef zespołu naukowców, Dr Udi Manber, który pracował dla Yahoo. Dr Manber miał ogromny problem. W tamtych czasach już boty internetowe dawały o sobie znać, gdyż ktoś dostrzegł w tym źródło zarobku. Yahoo zauważyło ogromny problem, z którym nie umiało sobie poradzić. Na czatach oprócz ludzi były zalogowane także boty. Zadaniem botów było szcztuczne podtrzymanie rozmowy i rozsyłanie linków na czacie, które prowadziły do stron firm, sprzedających różnorakie produkty, np. podróbki Rolexów. Boty mogły taże zbierać informacje o uczestnikach czatu, aby potem wysyłać im reklamy na e-mail. Firmy spamowe siały spustoszenie w Yahoo, gdyż napisane przez nich boty automatycznie rejestrowały konta e-mail w Yahoo. Następnie konta te były używane do wysyłki masowych, niezamówionych e-maili. Yahoo postanowił coś z tym zrobić. Dr Manber omawiał problem z grupą naukowców komputerowych z Carnegie Mellon University. Doszli razem do wniosku, że potrzebują czegoś prostego, co pozwoliłoby wskazać (rozróżnić) człowieka od programu komputerowego. 

Grupa naukowców oparła się na pracach Dr Alana Turinga z wczesnych lat 50 XX wieku. Dr Turing był matematykiem, który zajmował się problemem odróżnienia człowieka od maszyny lub programu komputerowego. Turing wyobraził sobie pewną grę. W jednym pokoju siedział śledczy (człowiek), a w dwóch osobnych pokojach siedzieli człowiek pytany oraz specjalny program komputerowy (wtedy nie było jeszcze komputerów) który miał symulować człowieka. Człowiek pytany nie mógł się z nikim komunikować, a program komputerowy mógł polegać tylko na tym, co zaprogramowano w jego wnętrzu. Zadaniem śledczego było określenie w którym pokoju znajduje się człowiek, czyli istota inteligentna. Test Turinga miał być tak skonstruowany, że dla człowieka nie stanowiłby problemu, natomiast dla maszyny tak. Od czasu publikacji Turinga nie było większego zainteresowania jego pracą, aż do lat 90, kiedy to internet zaczął się gwałtownie rozwijać. Wtedy też powstawały globalne portale internetowe i strony www przeznaczone dla masowych odbiorców. Należało w jakiś sposób zabezpieczyć formularze rejestracyjne. Turing przewidywał, że do roku 2000 (przewidywał 50 lat do przodu) komputery będą tak szybkie, że rozwiążą test Turinga w czasie 5 minut w 30% przypadków. Mając na myśli rozwiązanie testu Turinga mam na myśli takie udzielanie odpowiedzi na pytania, że pytający nie będzie w stanie odróżnić odpowiedzi programu komputerowego od odpowiedzi człowieka o przeciętnej inteligencji, a więc należy uznać, że odpowiadającym jest człowiek. Na szczęście przewidywania Turinga nie sprawdziły się, ujawniły się natomiast silne i słabe domeny komputerów, czyli sztucznej inteligencji. 

Sztuczna inteligencja a inteligencja człowieka - różnice

Przez lata rozwoju komputerów okazało się, że są one w stanie przeprowadzać szybkie obliczenia. Np. nie jest problemem pomnożyć tysiące liczb przez siebie w ciągu sekundy, należy jedynie zaprogramować tą operację. Przykładowo operacja mnożenia jest bardzo prosta do wykonania na komputerze, gdyż wymaga n-krotnego dodawania liczby k do siebie.

Przykład
13x73= ?
Komputer oblicza wynik powyższego równania w ten sposób, że trzynaście razy dodaje do siebie liczbę 73.
13x73=73+73+73+73+73+73+ 73+73+73+73+73+73+73
Człowiek nie jest w stanie podać wyniku tego działania w czasie poniżej 20 s (w 99% przypadków).

 Współczesne komputery potrafią grać w szachy i potrafią wygrywać z człowiekiem. Nie oznacza to jednak, że komputery posiadają inteligencję, bo jej nie posiadają. Oznacza to tylko tyle, że człowiek zaprogramował w komputerze miliony kombinacji szachowych, a komputer korzystając ze swojej szybkości może w ułamku sekundy porównać aktualną sytuację do tej z przeszłości (bo przecież kiedyś ktoś wykonał taki ruch szachowy) i postawić taki ruch, który kiedyś doprowadził do wygranej.

W pewnych sytuacjach sztuczna inteligencja komputera jest zaletą, natomiast w pewnych sytuacjach komputer nie jest w stanie poradzić sobie z problemem, które rozwiązałoby 5 letnie dziecko.
Człowiek w ciągu miliardów lat ewolucji perfekcyjnie rozwinął mechanizmy kontroli i analizowania informacji ze swoich zmysłów. Mózg ludzki analizuje w ciągu sekundy miliardy informacji które do niego docierają i stara się wydzielić te, które są ważne dla człowieka. Pozostałe informacje stanowią szum w gąszczu innych informacji, który jest bezwartościowy. Tu ujawnia się potężna zaleta człowieka nad komputerem. 

Jak rozwiązano problem Yahoo i czyja w tym zasługa 
W konferencji zorganizowanej przez Yahoo w 2000 r. uczestniczył także Dr Manuel Blum z Carnegie Mellon University. Dr Blum zauważył, że można opracować nowy test Turinga, który uwzględniałby problemy z którymi nie umie poradzić sobie sztuczna inteligencja. Doktorowi Manberowi sposobało się rozwiązanie doktora Bluma. Dr Blum opracował ze swoimi doktorantami zbiór zagadek zadawanych pytanym, który miał określić jego inteligencję (człowiek czy maszyna). Zagadki te nazwano Captcha, od angielskiego Completely Automated Public Turing Test to Tell Computers and Humans Apart.

Obecne implementacje Captcha
Captcha to nie tylko znane nam z formularzy rejestracyjnych przepisywanie kodu z obrazka. To także wybieranie spośród kilku losowych obrazków zdjęcia kota, podawanie wyniku działania matematycznego czy odpowiadania na pytania (np. podaj rok bitwy pod Grunwaldem). Istnieje także wersja Captcha, która czyta na głos zbiór liter, a zadaniem wpisującego jest je prawidłowo wpisać.

Słabości mechanizmu Captcha
Wiele modyfikacji obrazkowego systemu Captcha zauważyłem w Polsce począwszy od roku 2005, kiedy to powstawało wiele katalogów Qlweb i standardowo były w nich zabezpieczenia Captcha. Równolegle do katalogów Qlweb powstawały automatyczne dodawarki do katalogów, a najbardziej rozbudowane z nich dzięki wbudowanemu mechanizmowi OCR potrafiły odczytywać kody z obrazka. Webmasterzy katalogów poszli w inną stronę, nakładając na kod z obrazka różnorakie wzory, np. kratki, linie, stosując rozmazane niektóre znaki, stosująć różną wielkość poszczególnych znaków i różny krój czcionki, stosując obracanie znaków. Ten kierunek rozwoju był niewłaściwy, gdyż deweloperzy systemu Captcha zapomnieli o podstawowej roli, jaką system ten miał spełniać. 

"Zadaniem mechanizmu Captcha było tworzenie zadań, które dla 5 letniego dziecka nie stanowią problemu, ale które stanowią poważny problem nawet dla najszybszego komputera".

Od kilku lat obserwuję pewne zmiany w tym temacie. Na podpisach pod obrazkami Captcha pojawiały się wskazówki "Proszę przepisać znaki wspak" lub też "Prosze wpisać wynik zadania matematycznego "7x3=". To dobry moim zdaniem kierunek.

W którym kierunku powinien rozwijać się projekt Captcha, czyli Quo vadis Captcha ?
Doskonale wszystkim wiadomo, że Captcha ma w dzisiejszym świecie tysiące zastosowań. Cały czas pamiętać należy o założeniach, jakie postawili Turing i Blum. One są i będą ciągle aktualne, przynajmniej do czasu wynalezienia komputerów kwantowych. Należy dalej iść w tym kierunku i wykorzystać cechy ludzkiego mózgu. Mianowicie, człowiek stopniowo poznaje otaczający go świat i uczy się, często na własnych błedach. Osiągając pewien wiek (poziom inteligencji) człowiek jest w stanie rozwiązywać bezbłędnie pewne problemy (zadania). Człowiek umie doskonale przetwarzać informacje ze swoich zmysłów, człowiek posiada także dobre cechy motoryczne. Komputery posiadają sztuczną inteligencję, tzn. są w stanie interpretować docierające sygnały w taki sposób, jak je zaprogramowano. Wprawdzie istnieją dziedziny wiedzy takie jak sieci neuronowe i systemy samouczące (bez nauczyciela) które wykorzystują procesy zachodzące w ludzkim mózgu, ale nie są one w stanie skutecznie i ze 100% dokładnością rozwiązywać zadań powiązanych ze zmysłami człowieka i z jego inteligencją. Zadanie pytania w teście Turinga "Z czym kojarzy się Tobie Marzanna? " (odpowiedzi: pieniądze, wiosna, pora roku, woda) lub "Podaj kolor tła niniejszej strony" (odpowiedzi: szary, czarny, biały, czerwony) pokazuje wyższość ludzkiego mózgu nad mikroprocesorem. Człowiek przy udzielaniu odpowiedzi na pytania Captcha powinien korzystać ze swoich zmysłów i inteligencji, a nie polegać wyłącznie na wpojonej wiedzy. Pamiętać należy, że nie jest żadnym problemem stworzenie programu komputerowego, który posiadałby wiedzę zgromadzoną w całej Wikipedii. 

Kopiowanie i rozpowszechnianie tekstu w całości lub części bez zgody autora zabronione!

0 komentarzy:

Prześlij komentarz