Czym jest uczenie maszynowe i jak można je wykorzystać?

| Gospodarka Projektowanie i badania

Uczenie maszynowe (machine learning, ML) wciąż może wydawać się futurystycznym i trudnym do realizacji zagadnieniem. W rzeczywistości jednak, otacza ono każdego dnia niemal każdą osobę korzystającą z elektroniki. Aby w pełni zrozumieć rolę i możliwości ML, należy poznać jego działanie.

Czym jest uczenie maszynowe i jak można je wykorzystać?

Termin "uczenie maszynowe" często używany jest zamiennie z terminem "sztuczna inteligencja". Pomimo że pojęcia te są ze sobą ściśle powiązane, nie są tożsame. Sztuczna inteligencja jest dziedziną nauki zajmującą się tworzeniem systemów umiejących naśladować ludzką inteligencję i rozwiązywać złożone problemy, które dotąd mogły być realizowane tylko i wyłącznie przez człowieka. Ma ona nie tylko zdolność do rozpoznawania, analizy i oceny zadanych problemów, ale również tworzenia samodzielnie zupełnie nowych rzeczy. Obecnie głównym zastosowaniem sztucznej inteligencji są aplikacje takie jak asystenci (Siri, Cortana), chatboty potrafiące samodzielnie rozwiązywać proste problemy na stronach internetowych, gry wideo, w których zachodzi potrzeba symulacji przeciwnika lub nawet w robotyce.

Uczenie maszynowe z kolei jest jedynie częścią pojęcia sztucznej inteligencji. Jest to technologia pozwalająca systemowi samodzielnie się doskonalić na podstawie dostarczanych mu danych. Zadania ML ograniczone są do wąskiego, specyficznego zakresu, w którym ma działać dany system. W przeciwieństwie do sztucznej inteligencji, proces uczenia maszynowego nie jest w stanie stworzyć czegoś nowego, a jedynie uzyskiwać najbardziej optymalne rozwiązania w zadanym problemie. Najpopularniejszymi aplikacjami wykorzystującymi możliwości ML są wyszukiwarki online, algorytmy podpowiadające najciekawsze dla użytkowników materiały w mediach społecznościowych, rozpoznawanie obrazów czy filtrowanie spamu ze skrzynek e-mail.

Jak maszyna się uczy?

Uczenie maszynowe odbywa się poprzez stworzone specjalnie w tym celu algorytmy pozwalające systemowi przyswajać i analizować nowe dane.
Można podzielić je na 3 główne kategorie:

  1. Uczenie nadzorowane.
    Jest najpopularniejszym algorytmem wykorzystywanym w ML. Polega ono na stałej kontroli człowieka w postaci dostarczania maszynie danych, zawierających od razu gotową odpowiedź na zadany problem. Przykładowo, mogą to być wiadomości e-mail razem z etykietą, czy zawierają one pożądaną wiadomość, czy też spam lub zdjęcia zawierające podpis, co przedstawiają. Po wprowadzeniu do systemu odpowiedniej ilości prawidłowo sklasyfikowanych danych, będzie on w stanie samodzielnie ocenić napływające do niego dane surowe - niezawierające żadnej etykiety o ich zawartości. Oczywiście ocena taka będzie możliwa jedynie, jeśli napływające dane będą z dokładnie tej samej kategorii, której system analizował wcześniej.
  2. Uczenie nienadzorowane.
    Proces uczenia nienadzorowanego przebiega w podobny sposób jak w przypadku nadzorowanego. W jego przypadku do systemu trafiają jednak jedynie dane bez etykiet dotyczących ich zawartości. System samodzielnie dzieli podane mu dane na kategorie, których etykiety określane są później przez człowieka. W większości przypadków użytkownik musi zdefiniować wcześniej liczbę kategorii, do których system będzie przydzielał dane.
  3. Uczenie poprzez wzmacnianie.
    Zachodzi w środowiskach nieznanych, czyli takich, w których dane zarówno wejściowe, jak i wyjściowe są nieokreślone. Jedyne dane, które otrzymuje maszyna, to sygnał wzmocnienia docierający do niej po ustaleniu przez nią wyniku. Sygnał ten może być zarówno pozytywny, jak i negatywny. Metoda ta jest zbliżona do metody prób i błędów - maszyna będzie zmieniała wynik dopóty, dopóki nie uzyska sygnału pozytywnego. Z uczenia poprzez wzmacnianie korzystają między innymi wyszukiwarki internetowe - jeśli użytkownik po wpisaniu hasła kliknie w proponowany przez nie link, system traktuje to jako sygnał pozytywny, w przeciwnym wypadku jako negatywny.

Intrusion Prevention System (IPS) - aplikacja sieciowa zwiększająca bezpieczeństwo poprzez wykrywanie ataków w czasie rzeczywistym.
Wykorzystuje ona dwie główne metody:

  • analizę heurystyczną - sprawdzającą nagłówki napływających pakietów, a następnie typującą te mogące stanowić zagrożenie dla systemu,
  • analizę sygnaturową - wyszukującą w pakietach ciągi danych charakterystyczne dla ataków sieciowych.

Network Traffic Analysis (NTA) - narzędzie do analizy bezpieczeństwa używane przez administratorów sieci komputerowych do wykrywania problemów, które mogą wpływać na funkcjonalność, dostępność i bezpieczeństwo ruchu sieciowego. Jego główne zadanie to sprawdzanie ruchu sieciowego urządzeń podłączonych do Internetu, typu danych pobieranych przez urządzenia oraz poziomu przepustowości wykorzystywanego przez każde urządzenie. Dzięki wykrywaniu anomalii w trybie rzeczywistym NTA może zablokować ataki DDoS oraz inne szkodliwe akcje przeprowadzane przez urządzenia podłączone do sieci.

Zastosowania uczenia maszynowego

Najpopularniejsze zastosowanie uczenia maszynowego to przeważnie aplikacje do rekomendacji produktów, autokorekty w edytorach tekstowych, systemy nawigacyjne czy wyszukiwarki online. Możliwości ML są jednak dużo większe. Zgodnie z szacunkami Gartnera, z uczenia maszynowego korzysta już niemal każda firma z listy 500 największych na świecie, a globalnie rozwiązanie to wdrożyło ok. 15% przedsiębiorstw. Główne zastosowanie ML w biznesie to analizy finansowe, dopasowywanie właściwych produktów do właściwych klientów oraz inteligentny marketing. Uczenie maszynowe wykorzystywane jest również szeroko w cyberbezpieczeństwie, najważniejsze aplikacje z tej dziedziny - Intrusion Prevention System (IPS) i Network Traffic Analysis (NTA), wykorzystywane są już globalnie przez niemal każdy system wymagający ruchu sieciowego.

Jednym z segmentów, w którym rola uczenia maszynowego jest równie ważna jak w biznesie, jest medycyna. Aplikacje wykorzystujące ML są w stanie wykrywać anomalie, choroby czy zwyrodnienia na podstawie produktów medycznej diagnostyki obrazowej (zdjęcia RTG, USG itp.) znacznie dokładniej niż człowiek. ML umożliwia również dobór najlepszej terapii dla pacjenta poprzez analizę jego danych, takich jak ryzyko genetyczne, tryb życia, inne zażywane leki czy nawet aktywność w mediach społecznościowych. Te same dane są również szeroko wykorzystywane w badaniach klinicznych, w szczególności przy wprowadzaniu na rynek nowego produktu. Zastosowanie zaawansowanej analizy predykcyjnej opartej na uczeniu maszynowym do identyfikacji kandydatów do badań klinicznych skutkuje osiągnięciem identycznego efektu przy dużo mniejszej grupie kontrolnej, co przekłada się pozytywnie zarówno na czas badań, jak i koszty.

Tiny ML

Uczenie maszynowe stanowi również ważną część rynku IoT oraz mikrokontrolerów. Większość operacji związanych z ML wymaga do pracy dużych zasobów pamięci i mocy procesora, często nieosiągalnych w małych aplikacjach IoT i chipach zasilanych z baterii, przez co aplikacje muszą działać na zasadzie offloadingu - obliczenia wysyłane są do chmur obliczeniowych, gdzie następuje ich przetworzenie. Względnie nowy trend na rynku - Tiny ML - może jednak zmienić ten stan rzeczy. Dzięki zastosowaniu znacznie wydajniejszych algorytmów uczenia maszynowego oraz wzrostowi wydajności 32-bitowych mikrokontrolerów możliwe jest przeniesienie niektórych zadań ML z chmury bezpośrednio na urządzenia o małej mocy. Giganci technologiczni, tacy jak Apple, Huawei, Google, Intel i ARM, wprowadzili już na rynek chipy do pracy zgodnie z tą koncepcją. Do przykładowych aplikacji wykorzystujących uczenie maszynowe klasy TinyML można zaliczyć detektory anomalii korzystające z akcelerometrów (np. alarmy sejsmiczne).

Rynek ML

 
Rynek uczenia maszynowego

Uczenie maszynowe już dawno temu przestało być jedynie akademickimi rozważaniami, a stało się jednym z większych sektorów rynku elektronicznego i informatycznego. Jego rosnące rozpowszechnienie w różnych branżach odzwierciedla skuteczność jego algorytmów, struktur i technik w szybkim rozwiązywaniu złożonych problemów. Zgodnie z danymi zebranymi przez serwis LinkedIn, ponad 100 tys. ofert pracy opublikowanych w serwisie wymagało znajomości ML jako niezbędnego kryterium dla danego stanowiska, 12 tysięcy z nich wymagało dobrej znajomości TensorFlow - najpopularniejszej biblioteki programistycznej do ML.

Zgodnie z badaniem przeprowadzonym przez Market Research Future rynek uczenia maszynowego jest wart obecnie ponad 8 mld dolarów, a jego skumulowany roczny wskaźnik wzrostu na lata 2020-2024 będzie wynosił 42%.

Za największą część rynku ML - niemal 50% - odpowiada hardware, a w szczególności chipy przystosowane do pracy przy ML. Ich największym producentem od lat pozostaje Nvidia, kolejne miejsca zajmują ARM oraz Intel. Kolejną częścią, stanowiącą 35% wartości rynku, jest samo oprogramowanie, niezmiennie liderem w tym segmencie pozostaje Google. Pozostały fragment rynku zajmują usługi ML as a Service, umożliwiające wypożyczanie zarówno sprzętu, jak i oprogramowania do wykonywania zadań z zakresu uczenia maszynowego. Największe platformy oferujące taką usługę to Amazon Web Services, Microsoft Azure oraz Google Cloud Platform. (PM)

Zobacz również