Jak się uczy sztuczna inteligencja

W niemal każdej dyskusji dotyczącej sztucznej inteligencji pojawiają się sformułowania: uczenie maszynowe i uczenie głębokie. Bywa wręcz, że wszystkie te zwroty funkcjonują zamiennie, co świadczy o niezrozumieniu tematu przez używające ich osoby.

Sztuczna inteligencja, uczenie maszynowe i uczenie głębokie to ostatnimi czasy bardzo modne biznesowo pojęcia. Dziedziny te stały się na tyle ważne, że technologiczni giganci skłonni są płacić spore pieniądze za przejmowanie startupów zajmujących się ich rozwojem. Przykładem może być brytyjski startup Deep Mind, za którego swego czasu Google zapłacił ponad 400 milionów dolarów i wdrożył do swoich usług opracowaną przez niego technologię rozpoznawania twarzy i głosów.

Najbardziej ogólnym pojęciem jest sztuczna inteligencja. Obejmuje ono tworzenie modeli inteligentnych zachowań, które mogą być używane w programach komputerowych, np. botach rozmawiających z klientem odwiedzającym stronę internetową, które będą naśladowały przejawy ludzkiej inteligencji. W ten sposób rozwiązuje się problemy, których nie da się rozwiązać użyciu standardowych, klasycznych algorytmów. Przykładowym zastosowaniem sztucznej inteligencji jest podejmowanie decyzji w warunkach niepewności, analiza zdjęć, mowy, języków naturalnych itp.

Zobacz również:

Już z tej pobieżnej, uproszczonej definicji wynika jasno, że machine learning i deep learning są elementami wchodzącymi w skład sztucznej inteligencji, bez których ta nie byłaby w stanie istnieć.

Jednak zarówno uczenie maszynowe, jak i głębokie nie są w jakimkolwiek sensie same z siebie sztuczną inteligencją, a jedynie jej częścią. Innymi słowy, sztuczna inteligencja jest wierzchnią warstwą, która „przykrywa” dwie wymienione składowe.

Uczenie maszynowe

Skoro już wiemy, że deep learning i machine learning są jedynie elementami sztucznej inteligencji, przejdźmy do różnic pomiędzy nimi. Najprostsza definicja uczenia maszynowego mówi, że jest to technologia, która – zamiast precyzyjnie programować komputery – uczy je wykonywania zadań na podstawie analizy danych i otrzymanych wyników.

Proces uczenia maszynowego bazuje na następujących krokach:

  • wprowadzeniu źródła danych do algorytmu,
  • użycia tych danych do uzyskania rezultatu,
  • porównania rezultatu z danymi kontrolnymi,
  • zapamiętania rezultatów i użycia ich do kolejnej iteracji związanej z przetwarzaniem wprowadzonego zbioru danych.

W ten sposób tworzymy sprzężenie zwrotne, które w kolejnych iteracjach ukierunkowuje algorytm na odniesienie sukcesu (czyli znalezienia prawidłowego lub najbliższego prawdzie wyniku) związanego z analizą wprowadzonych danych.

Algorytmy w uczeniu maszynowym nazywa się algorytmami uczącymi. W odróżnieniu od klasycznych algorytmów, które opisują konkretną sekwencje następujących po sobie instrukcji, algorytmy uczące tworzą model zawierający jedynie listę instrukcji do wykonania na podstawie analizy przekazanych im danych uczących. Proces tworzenia wiedzy o rozwiązaniu nazywamy uczeniem, a w wyniku realizacji tego procesu budujemy model danych.

Użyte dane mogą być ustrukturyzowane, czyli powiązane relacjami np. z relacyjnej bazy danych, pół-strukturalne, najczęściej o płaskiej reprezentacji w formie tabeli i nieustrukturyzowane. Do tych ostatnich zalicza się dane multimedialne, takie jak wideo, zdjęcia, dźwięk, strony internetowe, dokumenty tekstowe, e-maile, a także dane otrzymane z systemów internetu rzeczy.

Algorytmy uczenia maszynowego dzieli się na nadzorowane, z tzw. nauczycielem, w których dane szkoleniowe są oznaczone etykietami z odpowiedziami; częściowo nadzorowane, gdzie etykietę ma jedynie niewielka część danych używanych do szkolenia; oraz nienadzorowane (bez nauczyciela), w których algorytm nie ma dostępu do prawidłowych odpowiedzi.

Dodatkowo wyróżnia się tu uczenie na bieżąco z wykorzystaniem danych uczących zawartych w strumieniu danych, gdzie sekwencja danych ulega ciągłej zmianie oraz uczenie ze wzmocnieniem. W tym wypadku model jest iteracyjnie poprawiany na podstawie wzmocnienia (nagrody), które jest miarą oceny jakości działania modelu – wzmocnienie to zwykle dokonywane jest przez nadzorującego proces uczenia człowieka.

W najczęściej wykorzystywanym uczeniu nadzorowanym istotny jest podział zestawu danych na podzbiory do celów szkolenia, walidacji i testowania. Najczęściej przypisuje się 80% danych do zestawu danych szkoleniowych, a po 10% do zestawu danych sprawdzania poprawności wyników (walidacji) i testów. Większość szkolenia odbywa się na podstawie zestawu danych szkoleniowych, a prognozowanie – na podstawie zestawu danych walidacyjnych.

Prognozowanie na podstawie zestawu danych testowych jest zwykle wykonywane na ostatecznym modelu. Jeśli zestaw danych testowych nigdy nie był używany do treningu, nazywany jest zestawem danych przetrzymania.

Istotnym pojęciem jest zadanie uczenia maszynowego, będące abstrakcyjnym opisem problemu, który możemy rozwiązać przy użyciu uczenia maszynowego. Zadania uczenia maszynowego nazywa się też często mianem problemów uczenia maszynowego. Obecnie wyróżnia się następujące zadania: klasyfikację, czyli przyporządkowanie klas do obiektów pochodzących z naszego zbioru danych; regresję, a więc przyporządkowanie obiektom wartości liczbowych; klasteryzację, gdzie chodzi o grupowanie obiektów o podobnych cechach.

Ponadto uczenie maszynowe wykorzystywane jest do wykrywania relacji pomiędzy zmiennymi opisującymi obiekty (reguły asocjacyjne). Stosuje się je też w redukcji wielowymiarowości, czyli obniżeniu liczby używanych atrybutów pochodzących ze zbioru uczącego, na przykład w celu optymalizacji procesu uczenia, gdyż przy mniejszej ilości cech łatwiej znaleźć te, które najbardziej wpływają na wynik.

Głębokie uczenie

Głębokie uczenie jest formą uczenia maszynowego, w której trenowany model ma więcej niż jedną ukrytą warstwę pomiędzy wejściem a wyjściem danych. W większości wypadków pod pojęciem deep learningu rozumie się po prostu wykorzystanie do uczenia maszynowego głębokich, a wiec zawierających szereg ułożonych „jedna na drugiej” warstw sieci neuronowych. Istnieje jednak kilka algorytmów, które realizują głębokie uczenie przy użyciu innych rodzajów ukrytych warstw nie będących sieciami neuronowymi.

Dane zazwyczaj przetwarzane są w jednym kierunku – od warstwy wejściowej, poprzez warstwy ukryte, aż do uzyskania ostatecznego wyniku w warstwie wyjściowej (patrz: schemat obok). Możliwe są również inne konfiguracje, jak np. w rekurencyjnych sieciach neuronowych, które znajdują zastosowania w rozpoznawaniu mowy, obrazów i tłumaczeń tekstów. W takich sieciach połączenia pomiędzy neuronami z różnych warstw mogą tworzyć cykle.

Główną zaletą sieci głębokiego uczenia jest to, że nie potrzebują one uporządkowanych, zaetykietowanych danych. Głębokie sieci neuronowe przesyłają dane wejściowe przez swoje kolejne warstwy, przy czym każda warstwa sieci hierarchicznie definiuje określone cechy wprowadzonych do niej danych.

W podobny sposób działa ludzki mózg przy rozwiązywaniu problemów – w celu znalezienia odpowiedzi przekazuje zapytania do rożnych obszarów mózgu odpowiadające za różne hierarchie pojęć. Po przetworzeniu danych przez poszczególne warstwy w głębokiej sieci neuronowej, system znajduje odpowiednie identyfikatory, które pozwalają sklasyfikować przetwarzane dane.

Uczenie sieci neuronowej realizowane jest najczęściej za pomocą spadku gradientowego i algorytmu propagacji wstecznej. Wagi połączeń pomiędzy neuronami są modyfikowane w trakcie kolejnych iteracji tak, aby zmniejszać popełniany przez sieć błąd, czyli minimalizować tzw. funkcję kosztu. W tej metodzie uczenia należy korzystać ze specjalnego zbioru treningowego danych, dla którego algorytm uczenia dobierze ustawienia minimalizujące zapisaną w nim funkcję kosztu. Funkcję tę oczywiście można zmieniać, jeśli uzyskiwane wyniki nie są zadowalające.

W ten sposób wychodząc od relatywnie prostych danych wejściowych można stopniowo otrzymywać coraz bardziej złożone, wysokopoziomowe informacje – np. rozpoznawać osoby na zdjęciach, podczas gdy na wejściu mamy po prostu piksele. W trakcie procesu uczenia sieć neuronowa może nauczyć się pewnych złożonych zależności występujących w danych wejściowych. Innymi słowy, część neuronów sieci aktywuje się tylko w momencie, gdy w danych wejściowych występują pewne określone, wyuczone wzorce.

W sieciach głębokich neurony w poszczególnych warstwach uczą się wykrywania pewnych nieoczywistych, złożonych właściwości danych, które użyte zostały w procesie uczenia. W kolejnych warstwach te prostsze właściwości agregowane są w bardziej skomplikowane struktury, dzięki czemu na wyjściu z systemu można uzyskiwać bardzo złożone analizy.

Jest to jedna z najważniejszych cech decydujących o sukcesie głębokiego uczenia. W wypadku standardowego uczenia maszynowego potrzebna jest bowiem ingerencja człowieka, który często musi dysponować dużą wiedzą z danej dziedziny. To człowiek – inżynier, analityk, naukowiec – jest odpowiedzialny za właściwe dobranie atrybutów do obiektów występujących w danych, aby metoda uczenia maszynowego dobrze zadziałała. W deep learningu algorytmy same uczą się najważniejszych, złożonych cech związanych z dostarczanymi do nich danymi.

Dzięki temu algorytmy sztucznej inteligencji bazujące na głębokim uczeniu do pewnego stopnia zaczynają zastępować człowieka, niemniej wymagają znacznie większej mocy obliczeniowej – m.in. w tym celu wykorzystuje się akceleratory obliczeniowe bazujące na układach graficznych.

Uczenie maszynowe i głębokie - zastosowania

Algorytmy sztucznej inteligencji z zaimplementowanymi mechanizmami uczenia maszynowego I głębokiego uczenia stosowane są obecnie wszędzie – począwszy od prostych botów na stronach internetowych, poprzez asystentów głosowych, takich jak Siri, systemy rozpoznawania znaków drogowych wspomagające kierowców i systemy automatycznego tłumaczenia, po oprogramowanie pojazdów autonomicznych i oprogramowanie zarządzające lotem oraz śledzeniem celów w myśliwcach F35.

W biznesie, a ściślej w marketingu, algorytmy uczenia maszynowego i głębokiego uczenia wykorzystuje się do personalizacji treści reklamowych, proponowania materiałów i produktów, które mogą zainteresować daną osobę czy śledzenia zachowań konsumenckich. Uczenie maszynowe i deep learning pozwalają na analizowanie dużych ilości złożonych danych, a także danych strumieniowych, np. zbieranych na bieżąco z mediów społecznościowych i wyciągania wniosków, w tym również prowadzenia analiz predykcyjnych, będących w tak krótkim czasie poza zasięgiem człowieka. Dzięki temu można podejmować trafne decyzje i ukierunkowywać działania.

Algorytmy uczenia maszynowego potrafią też ustalać priorytety i automatyzować podejmowanie decyzji, a także sygnalizować szanse i wskazywać właściwe działania, które należy natychmiast podjąć. Dlatego od wielu lat są one częścią w zasadzie wszystkich systemów analityki biznesowej, a także systemów bezpieczeństwa IT, gdzie w ten sposób można wykryć zagrożenia typu zero-day.


TOP 200