Machine learning. A tak konkretnie…?

05.05.2020

Artykuł

Machine learning (ML) to chwytliwy ostatnimi czasy temat. Jedni powiadają, że to supernowoczesna technologia, która zrewolucjonizuje świat. Inni rozpowiadają, jak duże pieniądze można zarabiać, będąc ekspertem w tej dziedzinie. Chodzą teorie, że to jest sztuczna inteligencja, która kiedyś odbierze pracę ludziom, a potem zbuntuje się i przejmie władzę nad światem. To wszystko prawda… przemieszana z bujdami. Żeby zabrać się za zrozumienie i oswojenie machine learning, zacznijmy od podstaw: czym to jest?

Z definicji

Nie istnieje tu jedna regułka. Ogólnie można ująć to tak: machine learning, czyli uczenie maszynowe to proces, w którym maszyna – w praktyce oczywiście komputer – na podstawie pewnego doświadczenia nabywa określonej wiedzy. Niewiele to tłumaczy, prawda? Spróbujmy zatem przyjrzeć się temu w odniesieniu do ludzkiego uczenia się.

Po ludzku

Kiedy człowiek uczy się, to:

  • korzysta z jakiegoś źródła (książka, nauczyciel, kurs online, obserwacja innych osób, metoda prób i błędów);
  • zyskuje lub doskonali pewną umiejętność (mnożenia, jazdy samochodem, czytania);
  • przy czym zazwyczaj nie chodzi o dokładne powtarzanie wyuczonej czynności, lecz czegoś podobnego (samochody i charaktery pisma są różne, ale zasady nimi rządzące – zbliżone).

Wkuwanie na pamięć tylko po to, aby coś powtórzyć, trudno nazwać uczeniem się. To raczej zapamiętywanie informacji. Weźmy choćby zdjęcie kota: można je podpisać „kot”, ale samo to nie sprawi, że uda się rozpoznać inne koty na innych zdjęciach. Co innego, kiedy człowiek zdobywa wiedzę. Wtedy może w nieco innej sytuacji posłużyć się nią w pewnym celu. Jak? Obejrzawszy kota naocznie, rozpozna później takie zwierzę na obrazku. Dokonuje więc pewnego uogólnienia żywego futrzaka na podobnego, rysunkowego: nauczył się.

Następny poziom to mądrość – pojęcie jeszcze trudniej definiowalne niż uczenie się. Obejmuje myślenie abstrakcyjne, wyciąganie wniosków, kreatywność, poszerzanie wiedzy itd. itp., zależnie od rozumienia tematu.

W teorii informatyki „informacja” to podstawowe pojęcie, przed laty rozłożone na czynniki pierwsze m.in. przez prace Claude Shannona. Wykazał on, że można ją konkretnie mierzyć, co powiązane jest z rachunkiem prawdopodobieństwa i… termodynamiką. Słyszał ktoś o entropii? Nie będziemy wchodzić w ten temat, bo z nią wszystkie informacje w Internecie nie zwyciężą. Ale to dzięki Shannonowi wszyscy operujemy teraz pojęciami „bajt”, „megabajt” itd., które są niczym innym, jak właśnie mierzeniem ilości danych.

Jednak jak wspomniano wyżej, wiedza to coś więcej i mniej jednocześnie. O co chodzi? Zdjęcie kota może zajmować 10 KB albo 10 MB – to są tylko dane. Natomiast przyswajalny (dla człowieka) komunikat „zdjęcie czarnego kota śpiącego na białej półce” może zawierać tę samą wiedzę, a zajmuje ledwie kilkadziesiąt bajtów. Żeby z danych wyciągnąć wiedzę, potrzebne jest właśnie rozpoznanie, czyli pewna inteligencja. Ludzka lub komputerowa. I analogicznie w drugą stronę: trzeba pewnego intelektu, aby powyższy komunikat zrozumieć i móc nakreślić rysunek kota, śpiącego na półce.

Prosty przykład

Banalna w swym założeniu rzecz może podchodzić pod machine learning: podpowiedzi dla piszącego. Chodzi o program, który w czasie wprowadzania tekstu przewiduje, jakie będzie następne słowo. W podstawowej wersji tworzyłby on spis wszystkich kiedykolwiek napisanych przez użytkownika słów wraz z liczbą wystąpień. Wynik to np. 5 najczęstszych słów-podpowiedzi. Już tutaj widać proces uczenia się, dostosowania do konkretnej osoby: z czasem te 5 słów mogłoby się zmieniać. A przecież można wymyślać rozszerzenia:

  • Obliczenie, jakie słowo może wystąpić po konkretnym, aktualnie wprowadzonym lub po sekwencji kilku poprzednich słów.
  • Rozpatrywanie nie identycznych, tylko podobnych sekwencji słów, aby odnaleźć ten sam sens i przedstawić ten sam wynik.
  • Branie pod uwagę czasu, jaki minął od poprzednich użyć danych sekwencji słów – aby zmieniać się wraz z przyzwyczajeniami użytkownika.
  • Dostosowanie propozycji do odbiorcy i typu tekstu, aby zależnie od potrzeby używać słownictwa formalnego, kolokwialnego, branżowego itd.

Taki system, odpowiednio rozwinięty, wyglądałby jak zgadywanie myśli. A to przecież „tylko” liczenie prawdopodobieństwa na podstawie ciągle wzbogacanego zestawu danych. Ten zestaw danych zawiera informacje, a podpowiedź – to wiedza. System, który nauczył się wysokiej trafności przewidywania, pod tym względem osiągnął mądrość.

Jest pewien haczyk!

Zauważyliście, że mowa była o rozpoznawaniu, przewidywaniu i liczeniu prawdopodobieństwa? Z tego wynika pewne ograniczenie, które bywa zmorą dla twórców machine learning. Niestety nie da się go całkowicie wyeliminować, ponieważ jest jedną z cech inteligencji – również ludzkiej! Chodzi o to, że nigdy nie ma 100% pewności. Brzmi kiepsko? Spokojnie, zaraz się wyjaśni.
W powyższym przykładzie z podpowiadaniem słów łatwo to przedstawić: system nigdy nie będzie w stanie przewidzieć następnego słowa na 100%, bo użytkownik zawsze jest w stanie używać pojęć albo nazw nieznanych wcześniej. Albo jeszcze prościej: może odrobinę zmienić styl wypowiedzi czy po prostu napisać nigdy wcześniej nieużywaną sekwencję słów. To całkowicie zrozumiałe, że bez uprawiania wróżbiarstwa można „tylko” liczyć prawdopodobieństwo. Na 95% następne słowo po „znowu bolą mnie zatoki, jak się…” będzie brzmieć „…schylam”. Ale może też być:
…kładę,
…zmęczę,
…zdenerwuję,
…pochylam,
…kucam (błędnie, ale to przecież dozwolone).

Podobnie jest również przy rozpoznawaniu kotów na obrazkach. Nie udało się? Może to system zawiera błąd (drżyj, programisto!). Może zwyczajnie jeszcze się nie nauczył i potrzeba jeszcze 10 GB podpisanych zdjęć jako zestaw treningowy. A może to ze zdjęciem coś jest nie tak? Jest zbyt niskiej jakości lub kot jest w ruchu, albo sfotografowany pod dziwnym kątem. Ewentualnie system mógł dostać coś, przy czym trudno nie zgłupieć.

Przykłady z życia są często oczywiście poważniejsze. Systemy sztucznej inteligencji, dopasowujące reklamy do odbiorcy, nieraz proponują całkiem chybione oferty. W obrazowaniu medycznym istnieje mnóstwo metod, pomagających lekarzom postawić diagnozę na przykład na podstawie zdjęć z tomografu. Zawsze jest to jednak traktowane jako pomoc, a nie zastąpienie profesjonalisty. Tłumaczenie automatyczne przeszło imponujący rozwój w ostatnich latach, ale wciąż może popełniać błędy rażące dla lingwisty.


Najmądrzejszy z mędrców czasem się w życiu mylił. A przyznać się do błędu bywa często przejawem wielkiej mądrości! Jeżeli sztuczna inteligencja ma podlegać tym samym zasadom, co ludzka, to i ona powinna uwzględniać szansę pomyłki. Warto zdawać sobie z tego sprawę, korzystając z technologii „podszytych” uczeniem maszynowym.

Sieci neuronowe

O tym nie sposób nie wspomnieć, opowiadając o machine learning. To zbiór technologii z dziedziny uczenia maszynowego, które w swojej budowie i działaniu naśladują ludzki mózg. Jest to nie lada wyzwanie, gdyż narząd ten jest powszechnie uważany za najbardziej skomplikowany spośród wszystkich organów jakichkolwiek żywych istot na Ziemi. W mikroskali składa się on z komórek nerwowych – neuronów, które da się względnie prosto zamodelować. Impulsy nerwowe stanowią w nich przepływ informacji. Każdy neuron:

  • Posiada liczne wejścia sygnałów.
  • W swoim ciele dokonuje ciągłej integracji informacji z wejść.
  • Wynik i wyjście ma tylko jedno.

Brzmi prosto, ale biologiczne realia są wręcz nieprawdopodobne. W 2005 r. sporządzono dokładny model komórki móżdżku świnki morskiej. Został on podzielony na 16 000 przedziałów, potrzebował dostrojenia 19 200 parametrów i rozwiązania 32 000 równań różniczkowych. A analogiczne komórki ludzkie są nieporównanie bardziej złożone! W mózgu zaś znajdują się ich miliardy. To wyjaśnia, dlaczego sztucznej inteligencji wciąż jeszcze daleko do ludzkiej.
(Źródło tych informacji znajdziesz TUTAJ.)

W sztucznych sieciach neuronowych neurony to bardzo uproszczone modele matematyczne. Na pierwszy rzut oka wydaje się dziwne, jak tak proste elementy mogą tworzyć inteligencję. Jest to jednak fakt, a każdy człowiek nosi dowód we własnej głowie. Wytłumaczeniem jest gigantyczna liczba połączeń nerwowych (synaps). Symulowanie tej „pajęczyny” jest wielkim wyzwaniem dla sprzętu komputerowego.
Sztuczne sieci neuronowe są więc prawdopodobnie najlepszym sposobem połączenia atutów działania komputera i myślenia człowieka:

  • ogromna, fotograficzna pamięć;
  • szybkość obliczeń matematycznych;
  • zdolność kojarzenia faktów;
  • umiejętność wyciągania wniosków;
  • sprawne wyciąganie ważnej wiedzy z ogromu danych;
  • samodzielne poszerzanie własnych umiejętności.

Co przyniesie przyszłość?

Machine learning ma z pewnością przed sobą długą drogę do przebycia. Nie jest to żadna kosmiczna technologia, której należy się bać. Jak każdą nowinkę, tak i tę da się oswoić. Niepostrzeżenie już wkrada się w nasze życie, stojąc za wieloma serwisami internetowymi lub służąc zaawansowanym badaniom naukowym. Przy okazji jej odkrywania można też zafascynować się możliwościami własnego umysłu. Pod tyloma względami bije on na głowę najlepsze komputery!

A czy kiedyś przeciętny komputer będzie w stanie naśladować ludzki umysł? Czas pokaże…