Wprowadzenie do sztucznej inteligencji
Czemu teoria o sztucznej inteligencji była już obecna w latach 50 ubiegłego stulecia, a dopiero teraz to zaczęła nabierać obrotów. O tym będzie rozmowa dzisiaj…
Czy wiesz, że już może za 35 lat komputer może być znacznie mądrzejszy niż najmądrzejszy człowiek na Ziemi? Czy to jest pytanie z fantastyki naukowej? Jeszcze 10 lat temu, odpowiedź była zdecydowanie tak… a teraz, wygląda coraz bardziej realistyczne.
Początki
Ale zaczniemy od początków, które zawsze są trudne. Wiedza z internetu, książek czy telewizji jest na tyle zróżnicowana, że ciężko wnioskować cokolwiek. Na to samo zjawisko jest kilka, a nawet kilkanaście pojęć.
Oczywiście, moje rozumienie tematu można potraktować jako kolejną wersję różnorodności, natomiast robię to z takim nastawieniem, żebyśmy w kolejnych odcinkach, jak mówią Amerykanie, “byli na tej samej stronie”.
Zastanów się na chwilę, ile lat ma pojęcie “sztuczna inteligencja”? Podpowiem Ci – już ponad 60 lat, więc w teorii jeszcze nasi dziadkowie albo przynajmniej rodzice mogli poznawać te tematy kiedy byli dziećmi. Czemu 60 lat czy nawet 20 lat temu o sztucznej inteligencji prawie się nie mówiło? No dobrze, było kilka fajnych książek, taka jak “Ja, Robot” Isaac’a Asimova, która swoją drogą jest bardzo ciekawa -polecam przeczytać w wolnej chwili. Będę czasem cytować tę książkę.
Często mówi się, że otoczenie ma bardzo duży wpływ. To samo można powiedzieć o sztucznej inteligencji… sama chęć to za mało. Wymienię trzy najbardziej ważne czynniki które są konieczne, żeby uczenie maszynowe zaczęło nabierać obrotów.
Pierwszy czynnik – komputery
Tak zwany “hardware”. W latach 60 ubiegłego stulecia jeden z założycieli Intel, Gordon Moore, przewidział, że ilość tranzystorów w pojedynczym procesorze będzie rosnąć wykładniczo. Dla przykładu w roku 1979 – ok. 30 tyś., 1989 – million z kawałkiem, 1999 – ok. 22 miliona, 2009 – ok. 1 miliarda i najnowszy to 10 miliardów.
Istnieją podobne prawa do mocy obliczeniowej, pamięci podręcznej czy dysków twardych.
Czy wiesz, że nawet iphone 6 (w dużym uproszczeniu) jest porównywalny lub wydajniejszy w niektórych kwestiach niż superkomputer z lat 80?
Drugi czynnik – dane
Jak myślisz, ile danych cyfrowych generują ludzie? I jak wygląda ta dynamika z roku na rok? Ilość danych również rośnie eksponencjalnie. Podam Ci kilka przykładów. W roku 1992 generowano około 100 GB dziennie, 5 lat później już wystarczyło godziny (czyli 24 razy więcej), pięć lat później, czyli 2002 już wystarczyły sekundy (czyli 3600 razy więcej za 10 lat). Obecnie jest generowane ok. 50 000 GB lub 50TB na sekundę. W ciągu 15 lat generowanych danych stało się ponad 1.5 miliona razy więcej. I jak domyślasz się, to cały czas się rozpędza. Liczy się że dziennie jest generowane ok. 2.5 miliony TB.
Pozwól, że spróbuję zobrazować, co oznacza taka ilość informacji cyfrowej:
- 1 bajt (byte) to jedna literka.
- 1MB to to mniej więcej jedna książka (ponad 500 stron znormalizowanego maszynopisu).
- Mniej więcej pół miliona książek jest generowane teraz w sekundę.
Największa biblioteka (Kongresowa w Waszyngtonie) ma ok. 30 milionów artykułów (włączając książki, czasopisma itd).
Ludzkość generuje w jedną minutę porównywalność ilość bajtów informacji, ile ma największa biblioteka na świecie.
Oczywiście z jakością jest gorzej.
Trzeci czynnik – algorytmy
Uczenie maszynowe to przede wszystkim optymalizacja pewnego problemu. Wyobraź sobie, że już w latach 50 zaczęła się przygoda z sieciami neuronowymi. Natomiast postęp był falowy (czasem była zima)… wtedy było więcej teorii i prawo zero praktyki (dlatego że moc obliczeniowa jak i dostępność danych była bardzo ograniczona). W uczeniu maszynowym często zakłada się śmieszne rzeczy z punktu widzenia teorii… ale w praktyce to działa, więc ostatecznie rozwiązywanie jest zaakceptowane poprzez eksperyment. W końcu o to chodzi – rozwiązać problem.
Podsumujmy
Wiesz już, że są trzy najważniejsze komponenty dla sztucznej inteligencji: moc komputerowa, dane i algorytmy (na przykład jako sieć neuronowa). Warto jeszcze wspomnieć o czwartym – to zespół (jak na razie ludzi) którzy są wstanie połączyć wymienione trzy elementy.
A teraz chciałbym dodać więcej kontekstu, żeby było bardziej zrozumiałe jak to rozwijało się i gdzie jesteśmy teraz.
Pierwsze kroki
Alan Turing – brytyjski naukowiec, pracował nad stworzeniem maszyny która teraz jest nazywana komputerem. Proszono go o złamanie szyfru niemieckiej maszyny Enigma, używanej do korespodencji podczas drugie wojnej światowej.
W roku 1950 Turing pisze artykuł w czasopiśmie Computing Machinery and Intelligence i rozpoczyna pytaniem. Proponuje rozważyć kwestie:
„Czy maszyna potrafić myśleć?”
Natomiast jak to zdefiniować? Tradycyjne podejście było by rozłożeniem na czynniki pierwsze, czyli “maszyna” i “myśleć” i zdefiniowaniem każdego z nich w sposób jednoznaczny. Natomiast to podejście, zwłaszcza definicja “myśleć” może zaprowadzić w ślepą uliczkę. Turing wybiera inne podejście. Zrobić coś, co potrafi robić osobą myśląca – i na podstawie tego stwierdzić, że komputer „myśli”. Pytanie zostało zmienione na: czy maszyna może robić pewne zadanie, tak jak to robi człowiek? W tym formułowania są dwie możliwe odpowiedzi “tak” albo “nie”. Ten test teraz ma nazwę Test Turinga.
Test Turinga – werjsa pierwsza
Turing zainspirował się grą która polegała na tym, że mężczyzna i kobieta idą do różnych pokoi. Goście zadają pytania, a oni piszą odpowiedź na maszynie do pisania i robią to w taki sposób, żeby wprowadzić gości w błąd. Każdy z nich próbuje udawać, że jest przeciwnej płci. Turing zaproponował zastąpić pierwszą osobę komputerem.
Test Turinga – werjsa druga
Sędzia, czyli człowiek, miał rozmawiać z człowiekiem i komputerem jednocześnie. Jeżeli nie podstawie tej rozmowy sędzia nie jest w stanie powiedzieć jednoznacznie kto jest człowiekiem – to wtedy uważa się, że komputer przeszedł test. Celem testu było badanie inteligencji, dlatego wykluczono rozmowę bezpośrednio (głosem) – tylko był używany tekst (taki sobie chat). Również były wprowadzone określone przedziały czasowe na odpowiedzi. Za czasów Turinga to było koniecznie, bo maszyny były wolniejszy niż człowiek, a teraz są potrzebne, bo już człowiek jest wolniejszy.
Test Turinga – werjsa trzecia
Jest najbardziej znana, sprowadziła się do bardziej prostego testu. Sędzia ma odgadnąć z kim rozmawia – czy to człowiek czy komputer.
Sam Turing twierdził, że maszyna w końcu ma przejść ten test. W okolicy roku 2000 i jego oszacowaniach, wtedy komputer powinien mieć odpowiednią moc. Co do mocy to miał rację, właściwie mamy zdecydowanie bardziej potężne komputery – ale test nadal jest aktualny.
Chociaż tutaj warto powiedzieć, że Test Turinga udało się „złamać” w inny sposób. Człowiek ma różne role w życiu i czasem niektóre z nich są zdecydowanie bardziej przewidywalne niż inne.
W latach 60-tych Joseph Weizenbaum, który swoją drogą również pracował w General Electric (czyli moim obecnym miejsce pracy), wymyślił stworzenie robota – psychiatrę o nazwie ELIZA.
Idea polegała na tym, że odpowiedź na pytanie budowało się na podstawie poprzedniej wypowiedzi. Przykładowy dialog:
- boli mnie głowa…
- Prawdopodobnie powinna skonsultować się z doktorem. Jestem psychiatrą.
- No dobrze, zrobię to…
- Czy możesz to rozwinąć?
- …
Program ten wybierał pewne słowa kluczowe z odpowiedzi człowieka (czyli pacjenta) i bazując na nie tworzy swoją „odpowiedź”. Często używając takie frazy jak:
- “Co to dla Ciebie znaczy?”
- “… zawsze ma sens”
- “Czy możesz to rozwinąć?”
- itd.
Na pytania „Czy jesteś człowiekiem?” mógł dać odpowiedź: „Być człowiekiem… Czy to coś znaczy…?” albo „Co myślisz o mojej matce?” dawał odpowiedź: „Nie znam Twojej matki, opowiedz mi coś więcej o niej”.
Kontynuując ten eksperyment w latach 70-tych był stworzony kolejny program – PARRY. Zadaniem programu było symulowanie człowieka chorego na schizofrenię paranoidalną.
W roku 1972 ELIZA i PARRY poznali się i mieli całkiem ciekawe dialogi, jeden z nich:
- PARRY: Wiem, że mafia kontroluje duże rakiety.
- ELIZA: O czym ty mówisz?
- PARRY: Czy kiedykolwiek myślałeś o mafii?
- ELIZA: Załóżmy, że kiedyś myślałem o mafii
- PARRY: Porozmawiajmy o czymś innym.
- ELIZA: Nie jestem pewien, czy rozumiem cię całkowicie.
- PARRY: Ciągle zadajesz mi te same pytania, może zmieńmy temat?
- ELIZA: W jaki sposób?
- …
Więcej dialogów można znaleźć na stronie Uniwersytetu Stanford
Mówiąc o teście Turinga, warto wspomnieć, że w 1991 roku przez Hugh Loebnera była podjęta inicjatywa, dzięki której teraz ma nazwę – Nagroda Loebnera. Ten kto przejdzie test Turinga dostanie nagrodę 100 tys. dolarów. Dopóki testu nie przejdzie, najlepsza praca dostaje 3 tys. dolarów rocznie.
Dość głośno było na temat bota o nazwie Eugene Goostman w roku 2014. Mówiło się wtedy, że w końcu udało się pokonać test Turinga. Natomiast to było dokładnie to samo podejście jak w latach 60-tych czy 70-tych z ELIZA i PARRY. Kiedy ograniczeniem było to, że Eugene jest 13 letni który pochodzi z Ukrainy i na dodatek nie jest biegły w posługiwaniu się językiem angielskim.
Następnym razem, gdy usłyszysz, że test Turinga jest pokonany po raz pierwszy, sprawdź najpierw czy przypadkiem nie chodzi o sprytne zagranie :).
Wracając do nagrody Loebnera. W roku 2016 zwyciężył bot, nazwa którego ciekawie brzmi po polsku – Mitsuku. Każdy może porozmawiać z tym botem, ta rozmowa jest całkiem ciekawa. Od razu powiem że bot rozumie tylko po angielsku. Warto spróbować…
Teraz chciałbym przejść od Alana Turinga do innej bardzo ważnej postaci w sztucznej inteligencji – jest to Marvin Minsky. Bardzo upraszczając są dwa podejścia do sztucznej inteligencji.
Sztuczne inteligencja – podejście teoretyczne
Pierwsze podejście “czyste” lub teoretyczne opiera się tylko na czystej matematyce. Można powiedzieć, że jego przywódcą był John McCarthy. Natomiast to podejście jest dość ograniczone. Już w moim pierwszym odcinku wspominałem, że matematyka jest dość abstrakcyjna, żeby opisywać rzeczywistość. Jako przykład można wspomnieć podejście “General Problem Solver” która powstało pod koniec lat 50. Chodzi o to, że aby osiągnąć konkretny cel, należy przewidzieć wszystkie możliwe kombinacje w sposób logiczny.
Przykładowym zadaniem robota jest kupić mleko w sklepie. Przed zakupem, taki robot musi odpowiedzieć na kilka pytań. Czy ma wystarczająco pieniędzy na mleko? Czy ma paliwo w samochodzie? Jeżeli nie – to trzeba zatankować. Odpowiedzieć na pytanie gdzie zatankować? Musi sprawdzić na której stacji trzeba to zrobić. Jeżeli teraz (z pewnych przyczyn) nie działa stacja A, to trzeba jechać do stacji B. Później odpowiedzieć na pytania – czy starczy paliwa żeby dojechać do stacji B, oraz pieniędzy żeby zatankować oraz kupić mleko?.. Jak widać proste zadanie nagle staję się zbyt skomplikowane w realizacji. W wyniku następuje tak zwana eksplozja logiczna. Swoją drogą, co jest ciekawe, ludzie które szukają wymówek, działają w podobny sposób :).
Sztuczne inteligencja – podejście praktyczne
Głównie polega na inspiracji naturą. To nazywa się bionika. To podejście jeszcze stosował Leonard De Vinci próbując naśladować ptaki, tworząc skrzydłowiec (czyli mechanizm do latania). Jak pokazuję doświadczenie, takie podejście działa (chociaż, dopiero z czasem człowiek próbuje zrozumieć dlaczego). To jest temat rzeka, w razie zainteresowania postaram się go rozwinąć w następnych odcinkach. To podejście było napędzane przez Marvina, który od samego początku zadawał pytania:
- Jak zbudować świadomą maszynę?
- Jak zbudować myślącą maszynę?
- Jak zbudować maszynę, która potrafi podtrzymać rozmowę, która będzie emocjonalna, czy potrafi grać w grę?
Idea realizacji była genialnie prosta. Należy zrozumieć jak działa mózg człowieka i następnie spróbować to powtórzyć. Temat jest bardzo ciekawy, zwłaszcza postęp w tych badaniach. Myślę, że to zasługuje na kolejny odcinek podcastu – proszę daj mi znać czy jest to temat interesujący dla Ciebie.
Marvin, w swojej książce «The emotion machine» mówi o tym, że wszystkie zjawiska, które my przypisujemy tylko ludziom i traktujemy jedynie jako ludzkie, niekoniecznie muszą być prawdą. Podobne uczucia mogą również przeżywać inteligentne maszyny. I jego pierwszy rozdział w książce ma nazwę „Zakochać się”. Zapraszam do oglądania również wideo z jego lekcji w MIT (jest dostępne na stronie biznesmysli.pl/2).
Minsky odszedł od nas rok temu (czyli 2016) ale jego mózg został zamrożony z nadzieją, że będzie można go odżywić. Ta procedura nazywa się krionika i również jest bardzo ciekawym tematem. Pierwszy człowiek był zamrożony w pod koniec lat 60-tych ubiegłego wieku. Roy Kurzweil – to kolejna ciekawa osoba, która obecnie jest dyrektorem w Google do spraw związanych ze sztuczną inteligencją. Roy przewiduje, że już w okolicy 2045 roku będzie możliwość wrócić jego mentora, czyli Marvina… Ciekawy jestem co to będzie oznaczać w praktyce?
Podsumowanie
Przez dłuższy czas brakowało danych, mocy obliczeniowej i bardziej złożonych algorytmów żeby osiągnąć tak zwany efekt “wow”. Teraz żyjemy w czasach, kiedy te trzy elementy już są na wystarczającym poziomie, żeby dawać wartościowe wyniki.
Na koniec ciekawostka. Zapraszam do obejrzenia wywiadu z Sergiejem Brinem, jednym z założycieli Google. Na spotkaniu “World Economic Forum” przyznał się, że przez dłuższy czas sam miał wątpliwości do praktycznego zastosowania sztucznej inteligencji.
Traktował to jako zabawkę dla “dorosłych dzieci”. A teraz uwaga… Google inwestuje setki milionów, jeśli nie miliardy dolarów wrozwój sztucznej inteligencji i robią w tym całkiem dobre postępy. Na przykład w marcu 2016 roku robot wygrał w grę “Go” z najmocniejszym zawodnika przed spodziewanym czasem. Albo zaoszczędził 40% na chłodzeniu swoich serwerowni, albo na podstawie zdjęcia jest w stanie powiedzieć gdzie to jest zrobione geograficznie (w ramach całej Ziemi), albo potrafi czytać z ruch warg i wiele innych.
Ostatnia ciekawostka na koniec, w lutym tego roku (czyli 2017) robot Libratus pokonał w pokera najmocniejszych zawodników w świecie. Ciekawostką jest to, że nikt go nie uczył grać – sam się nauczył. Temat jest bardzo ciekawy i otwiera kolejną furtkę w sztucznej inteligencji. Jeżeli chcesz dowiedzieć więcej – proszę daj znać poświęcę więcej czasu temu zagadnieniu.
Nadal jeszcze masz wątpliwości co do możliwości sztucznej inteligencji?
Dziękuję Ci bardzo za poświęcony czas. Mam nadzieje, że udało się więcej rozjaśnić co się dzieje w uczeniu maszynowym, jak na razie na poziomie ogólnym. Zapraszam do pozostawienia opinii na itunes czy na stronie podcastu, każda Twoja opinia będzie pomagać mi nagrać kolejny odcinek.
Jeżeli słuchasz tego podcastu podczas jazdy rowerem czy samochodem albo biegania, a chcesz poczytać więcej o tym wszystko co było wspomniane, obejrzeć wideo. To mam dobrą wiadomość dla Ciebie. Proszę wejdź na stronę biznesmysli.pl/2 i znajdzesz tam treść z linkami oraz wideo.
Następnym razem skupimy się na dość złożonym temacie sztuczna inteligencja i ekonomika. Zapraszam.
8 komentarzy
kstopa
Bardzo ciekawy podkast oraz tematyka. Nie tylko dla programistów. Jeżeli można o to prosić to bardzo mnie ciekawi rozwój tematu o tworzeniu umysłu proponowanego przez Minska oraz Kurtzweila.
vladimir
Cześć, temat jest bardzo ciekawy :). Myślę, że o tym również jeszcze będzie…
aa
Bardzo ciekawy i nietypowy temat na podcasty. Super! Oby nie zabrakło Ci chęci do pisania 😉
vladimir
Dziękuję Ci bardzo za miłe słowa, tematów jest sporo (raczej nie do wyczerpania), a chęć będzie – jeżeli to będzie nadal komuś potrzebne :).
Dawid
cześć ,
wszystkie rzeczy o które pytałeś czy chcemy, to chcemy 🙂
vladimir
Cześć Dawid. Dzięki za Twój komentarz :).
Wszystko zwykle ciężko jest w ogarnięciu, łatwiej jest kiedy są pewne preferencję.
P.S> Cieszę mnie, że również interesujesz się tematami które dla mnie są bardzo ciekawe.
Patryk Wójcik - psycholog
W końcu przesłuchałem 2 odcinka, po jakoś mi umknął. Świetnie zobrazowałeś ilość danych, które pojawiają się w każdej sekundzie w dzisiejszym świecie. Prawdę mówiąc, jestem w szoku. Choć już trochę czytałem na ten temat, nadal mnie to zastanawia. Jak z tego oceanu informacji wybrać to co naprawdę istotne i wartościowe? Czy będzie to coraz trudniejsze?
Vladimir
Patryk, technologicznie mamy rozwiązania, które umożliwiają pracować z dużymi zbiorami danych. Natomiast zbierać same dane, moc ich wszystkie przechowywać lub nawet szybko odczytać, to jest za mało, żeby wyciągnąć z nich wartość. Jest słynne powiedzenie po angielsku na ten temat: „Garbage in, garbage out„.