Maszyny vs. ludzie

Maszyny stają się “mądrzejsze”. Potrafią rozpoznać kota na obrazku, którego nigdy wcześniej nie widziały, nauczyć się grać w grę, której nie znają, wygrać z człowiekiem, najpierw w warcaby, później w szachy, a obecnie już w go. Jednak różne są sposoby poznawania świata i uczenia się maszyn (a używając tego terminu mamy na myśli superkomputery), podobnie jak tego efekty.
Zamyślony człowiek z gliny i android siedzący naprzeciw siebie; logo Intel.
Zamyślony człowiek z gliny i android siedzący naprzeciw siebie; logo Intel.

Obietnice o stworzeniu sztucznej inteligencji takiej, jak komputer HAL 9000 z “Odysei kosmicznej 2001” Stanleya Kubricka słyszymy od lat 60. ubiegłego wieku. Mimo niewątpliwie znacznego postępu w badaniach nad sztuczną inteligencją, dopiero od niedawna udaje się nam opracować rozwiązania wykorzystujące SI, które nie byłyby wyjątkowo “głupie”. Maszyny nie dorównują nam inteligencją ogólną, ale nie jest to w żadnym razie ich wada. Potrafią się natomiast dość szybko uczyć, co wcale nie oznacza, że stają się rozumne.

Sednem uczenia maszynowego jest możliwość wykształcenia przez maszynę pewnych użytecznych umiejętności bez konieczności zrozumienia przez nią wszystkich niuansów związanych z powierzonym jej zadaniem. Pisząc inaczej: uczenie maszynowe to zbiór technik, dzięki którym maszyny odnajdują schematy, którym jednak nie one, lecz człowiek nadaje sens. Wyuczona maszyna może przewidzieć za to wystąpienie w przyszłości takiego schematu na podstawie analizy zebranych danych. Brzmi skomplikowanie? Posłużmy się więc przykładem.

Cegły i pióra – czyli jak ogólnie działa uczenie maszynowe?

Liczne rozprawy o uczeniu maszynowym, próbujące przybliżyć Czytelnikom charakter tej procedury skupiają się na wymienianiu metod uczenia (np. uczenie bayesowskie, “góra-dół”, nadzorowane/nienadzorowane, z wykorzystaniem drzew decyzyjnych, uczenie głębokie itp.) czy określaniu typów reprezentacji wiedzy przez komputer. OK, my też przybliżamy Czytelnikom w skrócie czym charakteryzują się poszczególne metody uczenia maszynowego (zestawienie metod pod koniec artykułu), ale naszym celem było raczej wyjaśnienie ogólnej idei uczenia maszyn, a nie epatowanie skomplikowanymi terminami, z którymi muszą mierzyć się studenci kierunków związanych z SI i uczeniem maszynowym. Pokazanie, że uczenie maszynowe jest czymś innym niż to, w jaki sposób uczą się ludzie.

Załóżmy, że chcemy “nauczyć” komputer odpowiadania na pytanie: który z przedmiotów zrzucanych z tej samej wysokości spadnie pierwszy? Ludzie rozwiązują ten problem dzięki znajomości praw fizyki: prawa powszechnego ciążenia, oporu powietrza itp. W przypadku maszyny może ona udzielić poprawnej odpowiedzi, bez konieczności wtłaczania jej bagażu ludzkich doświadczeń.

Wyobraźmy sobie, że stoimy – jak Galileusz  – na szczycie krzywej wieży w Pizie i zrzucamy z jej szczytu dwa przedmioty, np. białe ptasie pióro i czerwoną cegłę. Oczywiście wiemy, który przedmiot spadnie na ziemię pierwszy, a który z powodu oporu powietrza będzie znacznie dłużej dryfował w powietrzu zanim ostatecznie osiągnie poziom gruntu. Rozumiemy i potrafimy wyjaśnić to zjawisko. Jednak maszyna, czy komputer, któremu każemy obserwować nasz eksperyment oraz rejestrować parametry przedmiotów nie ma o tym bladego pojęcia. Nie wie dlaczego stało się to, co się stało. Zarejestrowała jedynie właściwości  zrzucanych obiektów: ich ciężar, rozmiar, kolor i kształt.

Przechodzimy do drugiej fazy uczenia: rzucamy kolejne białe piórka i kolejne czerwone cegły – zgodnie z prawami fizyki osiągają one ziemię w różnym czasie zależnym od oporu, jaki stawia im powietrze. Powtarzalność powoduje, że komputer zaczyna “rozumieć” schemat: czerwona cegła spada pierwsza, białe pióro zawsze po niej. Jednak na obecnym etapie maszyna, choć poprawnie odpowiada na pytanie “co spadnie pierwsze?” nie wie jeszcze, jakie cechy obserwowanych przedmiotów mają znaczenie. Powierzchnia? Ciężar? A może kolor? Dlatego, mimo że komputer już się czegoś nauczył, to wie jeszcze zbyt mało, by pomagać ludziom w obliczaniu czasu spadania różnych przedmiotów, a nie tylko białych piór i czerwonych cegieł.

Zawężenie skuteczności SI było powszechnym problemem pierwszych sztucznych inteligencji w połowie ubiegłego wieku. Opracowywane wówczas sztuczne inteligencje radziły sobie z niezwykle wąskim zestawem problemów, a próba ekstrapolacji ich umiejętności na szerszy zakres zawsze kończyła się fiaskiem. Najczęściej z powodu niedostatku danych i mocy obliczeniowej oraz eksplozji kombinatorycznej. (Eksplozja kombinatoryczna to olbrzymi wzrost liczby  wymaganych obliczeń związany z rosnącą, nawet nieznacznie, liczbą danych wejściowych i istotnych zmiennych opisujących rzeczywistość, w której dana SI ma działać.)

Przed nami kolejna faza nauczania komputera: oprócz rzucanych wcześniej białych, lekkich piór i czerwonych ciężkich cegieł zaczynamy rzucać także czarne, lekkie kawałki papieru i zielone, ciężkie piłki lekarskie. A w kolejnym kroku inne przedmioty różniące się masą, kolorem i powierzchnią. Maszyna obserwująca nasze działania i rejestrująca parametry przedmiotów zaczyna “dostrzegać”, co jest istotne. Komputer zaczyna “rozumieć”, że po pierwsze nieistotny jest kolor. Jeśli ma dość danych “zauważy” też, że nie liczy się również ciężar. Istotna jest jedynie powierzchnia rzucanego przedmiotu. To w zupełności wystarczy, by w tym wycinku rzeczywistości maszyna poprawnie odpowiadała na pytanie “co spadnie pierwsze?”. W ten sposób nauczyliśmy komputer wykonywania pewnej czynności: przewidywania zachowania przedmiotów wyłącznie na podstawie ich istotnych parametrów. Ponieważ komputer przetwarza dane znacznie szybciej od człowieka, może w znacznie krótszym czasie analizować większą liczbę przedmiotów i w tym sensie będzie wydajniejszy od najlepszego fizyka.

Na tym właśnie polega uczenie maszynowe – uczymy komputer poprawnie wykonywać zadania z pewnej ograniczonej dziedziny. Ale nietrudno dostrzec, że maszyna dalej nie rozumie, czym jest opór powietrza i nie zna prawa ciążenia. Nie musi jednak tego wiedzieć, by poprawnie wykonywać swoje zadanie. Komputer, który wygrał z mistrzem świata w go, z pewnością fenomenalnie gra w tę klasyczną i trudną grę, ale nie potrafi odpowiedzieć na proste dla każdego przedstawiciela homo sapiens pytanie: co spadnie pierwsze: piórko czy cegła?

Niemniej skuteczność maszynowego uczenia pozwoliła nam zbudować sztuczne inteligencje skutecznie rozpoznające mowę, pismo, obrazy, określające skuteczne strategie w wymagających grach (szachy, go), sterujące autonomicznymi samochodami, nawigowanie w nieznanym środowisku, klasyfikowanie różnych obiektów, wyszukiwanie istotnych danych w oceanie informacji (vide Google – tak, najpopularniejsza wyszukiwarka również bazuje na SI), grę na rynkach finansowych i wiele innych działań, które maszyny wykonują znacznie szybciej od ludzi, choć zupełnie nie rozumieją tego co robią.

Szybciej nie znaczy mądrzej. W pułapce algorytmów

Wyuczona maszyna będzie wykonywać zadania, do których została zaprojektowana, znacznie szybciej od człowieka. W przeciwnym razie projektowanie takiego systemu nie miałoby sensu. Dlatego właśnie coraz więcej komputerów odpowiada za ocenę zdolności kredytowej klientów banków, analizę cen na rynkach giełdowych, czy ocenę zdolności kandydatów do pracy. Po prostu maszyny robią to szybciej. Zresztą nie tylko o szybkość tu chodzi. Ważna jest też skala działania oraz jego złożoność. Współczesne banki, czy firmy ubezpieczeniowe korzystają z algorytmów, które podejmują znacznie więcej decyzji, w znacznie krótszym czasie i przy większej złożoności analizowanych czynników. Jest jednak pewien problem. Jakkolwiek decyzje podejmowane przez maszyny mogą wydawać się optymalne, uwzględniające olbrzymie ilości danych wejściowych, to często o ważności i przewadze pewnych cech nad innymi decydują ludzie – twórcy danego systemu SI. Dr Cathy O’Neil, amerykańska matematyczka z Harvardu doskonale dostrzega zagrożenia wynikające z wadliwie nauczonych systemów sztucznej inteligencji, które zamiast rzeczywiście pomagać ludzkości ugruntowują stereotypy działając – jak to maszyny – znacznie szybciej i na masową skalę. W swoim wykładzie zarejestrowanym przez serwis TED.com ostrzega, że ślepa ufność algorytmom i wielkim zbiorom danych (big data) może się źle skończyć.

Problem polega na tym, że decyzje podejmowane są przez maszyny bezmyślnie, na podstawie zadanych, wyuczonych cech i wartości. W ciągłym zalewie medialnych przekazów donoszących o kolejnych sukcesach sztucznej inteligencji możemy o tym zapomnieć i wpaść w pułapkę rzeczywistości ograniczanej przez decyzje otaczających nas “inteligentnych” zero-jedynkowych systemów. A przecież życie nie jest zero-jedynkowe, wymyka się wszelkim schematom. Z pewnością nie jest to przyszłość, jakiej byśmy sobie życzyli.

Big data i pułapki korelacji

Popularny jest pogląd, że uczenie maszynowe jest tym skuteczniejsze, im większą ilość danych wejściowych otrzyma system, który chcemy czegoś nauczyć. Jest to przesadne uproszczenie. Uczenie maszynowe i analizy wielkich zbiorów danych pozwalają maszynom znaleźć korelacje tam, gdzie ludzie, stosując tradycyjne metody statystyczne nie znaleźliby ich przez bardzo długi czas. Sukces? Niekoniecznie. Znalezienie korelacji samo w sobie nie oznacza jeszcze, że “wyhodowaliśmy” system, który dzięki temu pozwoli nam głębiej wejrzeć w rzeczywistość, z której olbrzymie zbiory danych poddaliśmy analizie. Wielu ludzi myli bowiem często dwa pojęcia: korelację i przyczynowość. Tymczasem to nie jest to samo! Istnienie związku pomiędzy zmiennymi w analizowanej próbie danych mówi nam, że jedna zmienna może wpływać na inną (pierwsza na drugą, druga na pierwszą, lub wpływają na siebie wzajemnie). Może jednak też oznaczać, że istnieje jeszcze inna, niewykryta zmienna, która wpływa na obie zmienne skorelowane lub – i to jest najciekawsze – że znaleziony związek jest czystym przypadkiem.

To ostatnie może kłócić się z naszą intuicją. Jeśli bowiem jakaś zmienna zmienia się niemal tak samo jak inna, to musi być jakiś związek, prawda? Nie. W klasycznej, czy też “przedinformatycznej” statystyce, praktycznie nie wykrywano korelacji przypadkowych, głównie dlatego, że wszelkie badania statystyczne, jakie prowadziliśmy były w znacznym stopniu intencjonalne. Na przykład poszukiwaliśmy związku między wiekiem obywateli a zapadalnością na różne choroby, bądź poziomem wykształcenia a poziomem zarobków itp. Takie przypadki intuicyjnie narzucają się jako warte zbadania. Maszyny, które przetrawiają gigantyczne zbiory danych (big data), rządzą się jednak innymi prawami. One wykrywają korelacje wskazujące na silną zależność pomiędzy zmiennymi, co do których nasze, ludzkie umysły mają pewność, że nie mają absolutnie żadnego związku!

fałszywe korelacje - przykład
Spożycie sera per capita powiązane z liczbą zgonów z powodu zaplątania się w pościel?! Gdybyśmy ślepo ufali algorytmom, uwierzylibyśmy komputerom, które w tym przypadku widzą istotną zależność… (fot. tylervigen.com)

Proponuję w tym momencie odwiedzić serwis “Spurious Correlations” (z ang. fałszywe korelacje), w którym znajdziemy mnóstwo absurdalnych i zabawnych przykładów (jeden z nich na powyższej ilustracji). Np. wskaźnik rozwodów w stanie Maine charakteryzuje się niezwykle silną korelacją (99,26%) z konsumpcją margaryny, a liczba utonięć z powodu wpadnięcia do basenu  jest skorelowana z… liczbą filmów, w których występował Nicolas Cage. Wierząc ślepo algorytmom można by sądzić, że ograniczymy liczbę wypadków na basenie posyłając pana Cage’a na emeryturę. Z pewnością dostrzegacie ten absurd.

Jakkolwiek przykłady pochodzące ze wspomnianego serwisu mogą być śmieszne, to po głębszym zastanowieniu i uzmysłowieniu sobie skali w jakiej maszynowe uczenie i “wykształcone” za jego pomocą komputery coraz bardziej wpływają na życie nas wszystkich,  w wyobraźni zaczyna kiełkować dość ponura, dystopijna wizja świata opanowanego przez inteligentne, ale jednocześnie bezrozumne algorytmy. Inteligencja bez rozumu? Brzmi strasznie, ale to nic złego, dopóki mamy nad tym pełną kontrolę.

Czy warto uczyć maszyny?

Zdecydowanie tak. W otaczającej nas rzeczywistości znajdziemy mnóstwo pozytywnych przykładów, kiedy odpowiednio wyedukowany komputer (lub ich sieć) staje się niezwykle użytecznym narzędziem w rękach ludzi, którzy do tych samych wyników dochodziliby znacznie dłużej. Weźmy na przykład badania genomu. Maszyny dzięki swojej wydajności pomagają nam rozwijać zupełnie nową dziedzinę medycyny: medycynę precyzyjną, zwaną też medycyną spersonalizowaną.

laboratorium firmy QIAGEN
Firma QIAGEN świadcząca usługi laboratoryjne, dzięki maszynowo uczonemu systemowi Intela jest w stanie rozkodować ludzki genom za 22 dolary (fot. QIAGEN)

Chodzi o metody leczenia wypracowane dla konkretnego pacjenta, bazujące na jego indywidualnym kodzie genetycznym. Operacja sekwencjonowania pierwszego ludzkiego genomu rozpoczęta w 1990 roku (sama idea projektu Human Genome Project pojawiła się już w 1984 roku) trwała trzynaście lat i kosztowała ok. 3 miliardy dolarów. Dziś firma QIAGEN korzystająca z maszynowo uczonego systemu Intela (Scalable System Framework) jest w stanie zaoferować badanie ludzkiego genomu za zaledwie 22 dolary (ok. 80 zł). Zmniejszenie kosztów sekwencjonowania oznacza m.in. możliwość opracowania specjalnych terapii przeciwnowotworowych, które bazując na konkretnym genomie nowotworu są w stanie zlikwidować zagrożenie bez wyniszczających pacjenta działań klasycznych metod walki z rakiem takich jak radioterapia czy chemioterapia. Jednak medycyna precyzyjna nie byłaby możliwa, gdyby właśnie nie uczenie maszynowe. Podobnie jest ze spersonalizowaną diagnostyką medyczną. Wyuczone maszynowo sztuczne inteligencje wspomagające lekarzy diagnostów dostrzegają istotne korelacje w wynikach badań chorych czy danych dotyczących stylu życia pacjentów i pozwalają przewidzieć, które osoby mają podwyższone ryzyko zachorowania na konkretne choroby. To z kolei doskonale wpisuje się w maksymę Hipokratesa “Morbum evitare quam curare facilius est” (“Lepiej zapobiegać niż leczyć”).

Innym przykładem wykorzystania uczonej maszynowo sztucznej inteligencji w służbie ludzkości jest partnerstwo Intela oraz organizacji non-profit National Center for Missing & Exploited Children. Organizacja ta zajmuje się poszukiwaniami zaginionych dzieci oraz przeciwdziała prześladowaniu i seksualnemu wykorzystywaniu nieletnich. Michelle DeLaune, starsza wiceprezes National Center for Missing & Exploited Children mówi wprost: mamy 25 analityków. Nie ma możliwości, by oni sami byli w stanie sprawdzić 8 milionów raportów i doniesień. Jednak dzięki uczeniu maszynowemu i sztucznej inteligencji jest to możliwe i pozwala znacznie szybciej odnaleźć zaginione dzieci lub powstrzymać sprawców prześladowań. Jak widać do realizacji szczytnych celów maszynie nie jest potrzebne rozumienie idei stojącej za podejmowanymi przez nią działaniami.

Metody maszynowego uczenia

Na koniec przedstawmy jeszcze w bardzo ogólnym zarysie i bez wnikania w zawiłości matematyki stojącej za algorytmami maszynowego uczenia metody za pomocą jakich maszyny się uczą. Wiemy już czym ogólnie jest maszynowe uczenie, ale jakie są metody tego uczenia? Poniżej kilka definicji, przyznajemy – uproszczonych – ale nie chcieliśmy w artykule popularnonaukowym epatować skomplikowanymi wzorami matematycznymi i trudnymi pojęciami.

Uczenie nadzorowane –  w tym trybie komputer otrzymuje zarówno dane wejściowe, jak i wynik, decyzję czy też działanie jakie powinno być podjęte na podstawie otrzymanych danych. To jedna z najczęściej stosowanych metod uczenia maszynowego. W tym przypadku dane powinny być starannie dobrane przez człowieka. To człowiek odpowiada za opis formalny danych stanowiących podstawę nauki (np. opisanie konkretnych wiadomości jako spam, a innych jako właściwą korespondencję). Niewłaściwy opis danych wejściowych spowoduje negatywne wyniki maszynowego uczenia.

Uczenie nienadzorowane – w tym przypadku maszyna otrzymuje wyłącznie surowe dane wejściowe, bez odgórnie wytyczonego wyniku, a zadaniem algorytmu jest znalezienie konkretnych wzorców, które mogą być użyteczne w dalszej analizie danych, jednak ten typ maszynowego uczenia najczęściej nie jest wykorzystywany do tworzenia SI rozwiązujących konkretne problemy. Taki tryb uczenia się jest wykorzystywany, gdy chcemy znaleźć w danych coś, czego z góry nie jesteśmy w stanie przewidzieć. Należy jednak pamiętać, że wyniki wypracowane w wyniku uczenia nienadzorowanego mogą być błędne, dlatego wymagają dokładnej weryfikacji

Uczenie DTL (Decision Tree Learning) – czyli uczenie za pomocą algorytmu drzew decyzyjnych to metoda uczenia maszyn intuicyjnie zrozumiała dla człowieka, głównie dlatego, że grafy acykliczne w postaci drzew decyzyjnych, są czytelne dla naszych umysłów.

Uczenie bayesowskie – metoda uczenia wykorzystująca tzw. naiwny klasyfikator bayesowski oraz twierdzenie Bayesa. Ta metoda uczenia bazuje na wnioskowaniu probabilistycznym.

Uczenie z przykładów – to jedna z najprostszych form uczenia maszynowego, wykorzystywana m.in. do uczenia perceptronów (pierwszego typu sieci neuronowych). W tej metodzie automatycznie dobiera się wagi na podstawie napływających przykładów.

Uczenie się zbioru reguł – to w zasadzie wariant uczenia maszynowego wykorzystującego drzewa decyzyjne, które w tym przypadku są przedstawiane jako zbiory reguł warunkowych (jeżeli [warunek] to [kategoria]).

Uczenie przez wzmacnianie – metoda wzorująca się z nauk behawioralnych w ludzkiej psychologii; generalnie poszukiwanie rozwiązania optymalnego jest tu wyznaczane przez ekwiwalenty “nagród” (wysokie wartości) i “kar” (niskie wartości). “Nagrody” wzmacniają wypracowaną ścieżkę optymalizacji.

Głębokie uczenie maszynowe – metoda będąca w zasadzie połączeniem wielu wcześniej wymienionych metod, stosowana względem wielowarstwowych sieci neuronowych (stąd określenie “głębokie”), w których każda warstwa jest wstępnie uczona. Maszyny uczone tą techniką osiągają najbardziej spektakularne wyniki. Przykład: sztuczna inteligencja o nazwie AlphaGo, która wygrała z mistrzem świata w Go.

Wszystkim, którzy chcieliby jeszcze bardziej pogłębić wiedzę dotyczącą opisywanych zagadnień polecamy lekturę źródeł, z których korzystano podczas opracowywania niniejszego materiału:

| CHIP