Czym jest machine learning?

To rodzaj sztucznej inteligencji (artificial intelligence — AI), która umożliwia systemowi stopniowe uczenie się na podstawie danych przy użyciu różnych opisujących je algorytmów oraz przewidywanie wyników przez naukę na podstawie danych szkoleniowych tworzących precyzyjne modele.

Wprowadzenie do machine learning

Stworzenie komputerów, które wiedzą, co robić, bez wydawania im konkretnych poleceń, jest marzeniem ludzi od wielu lat.

Przykładem praktycznego wykorzystania technologii machine learning jest skonstruowanie samochodu, który samodzielnie bezpiecznie dowiezie pasażera (oczywiście siedzącego na fotelu kierowcy) do celu, rozpoznając pieszych i dziury w drodze oraz szybko i skutecznie reagując na zmiany otoczenia.

Jak to działa? Zacznijmy od analizy samych danych biznesowych.

Uczenie maszynowe (Machine Learning, ML) to rodzaj sztucznej inteligencji (SI), która umożliwia firmom zdobywanie informacji i wyciąganie wniosków z dużych ilości danych. Weźmy na przykład Twittera. Według Internet Live Stats użytkownicy tego serwisu codziennie wysyłają około 500 milionów tweetów. W skali roku daje to około 200 miliardów tych krótkich wiadomości. Żaden człowiek nie jest w stanie przeanalizować, skategoryzować, posortować i przyswoić takiej ilości danych, a następnie przewidzieć czegokolwiek na ich podstawie.

Zdobycie cennych informacji za pomocą technologii machine learning (uczenia maszynowego – ML) wymaga od firmy dużego nakładu pracy. Aby maksymalnie wykorzystać możliwości ML, należy zdobyć czyste dane i przygotować precyzyjne pytania. Następnie można wybrać optymalny w danej sytuacji model i algorytm. Uczenie maszynowe (ML) nie jest prostym ani łatwym w przeprowadzeniu procesem. Aby odnieść realne korzyści z tej technologii, trzeba wykonać rzetelną pracę.

Uczenie maszynowe (ML) ma określony cykl życia.

  • Zrozumienie — dlaczego korzystasz z machine learning (uczenia maszynowego – ML) i co chcesz zrobić lub czego chcesz się dowiedzieć.
  • Gromadzenie i oczyszczanie danych — masz potrzebną ilość danych o stopniu czystości wystarczającym do tego, aby wydobyć z nich interesujące Cię informacje.
  • Wybór cech —  polega na określeniu danych, które należy wprowadzić do ML, aby zbudować model ML. Metody wyboru cech różnią się w zależności od rodzaju użytego algorytmu. Powiedzmy na przykład, że wybraliśmy algorytm drzewa decyzyjnego. W takim przypadku analityk lub narzędzie modelujące może na przykład zastosować do kolumn bazy danych tzw. „wskaźnik zainteresowania” (interestingness score), aby stwierdzić, czy wykorzystać określone dane do budowy modelu.
  • Wybór modelu — wybór pliku (modelu), który został przeszkolony pod kątem przetwarzania i wyszukiwania określonych „rzeczy” w danych. Model otrzymuje algorytm działania oraz dane testowe i na ich podstawie formułuje swoje wnioski.
  • Szkolenie i strojenie — wnioski sformułowane przez model, pozwalają upewnić się, że uzyskasz odpowiedzi na swoje pytania.
  • Ewaluacja modelu i algorytmu w celu stwierdzenia, czy jest gotowy do użycia, czy trzeba cofnąć się o kilka kroków i udoskonalić model, cechę, algorytm lub dane, aby osiągnąć postawione cele.
  • Wdrożenie przeszkolonego modelu do produkcji.
  • Przegląd wyników istniejącego modelu w środowisku produkcyjnym 

Do czego wykorzystuje się machine learning? Zastosowania machine learning

Uczenie maszynowe (machine learning, ML) to metoda pozwalająca firmom zrozumieć posiadane dane i wyciągać z nich istotne informacje. Firma może wykorzystać tę technologię w wielu różnych poddziedzinach. Wszystko zależy od tego, czy celem jest zwiększenie sprzedaży, stworzenie wyszukiwarki, integracja poleceń głosowych z produktem, czy stworzenie samochodu autonomicznego.

Poddziedziny machine learning

W dzisiejszym biznesie machine learning ma bardzo szeroki wachlarz zastosowań, który z czasem z pewnością będzie się powiększał. Poddziedziny ML obejmują m.in. media społecznościowe i rekomendacje produktów, rozpoznawanie obrazów, diagnostykę medyczną, tłumaczenie językowe, rozpoznawanie mowy oraz data mining.

Platformy mediów społecznościowych, takie jak Facebook, Instagram i LinkedIn wykorzystują ML do proponowania na podstawie polubionych przez użytkownika wpisów stron, które można obserwować lub grup, do których można dołączyć. Technologia ta analizuje dane historyczne na temat tego, co polubili inni lub dotyczące treści podobnych do tych, które polubił użytkownik, aby przygotować rekomendacje lub dodać je do jego kanału wiadomości.  

Ponadto technologię ML można wykorzystywać w sklepach internetowych do polecania produktów na podstawie poprzednich zakupów, wyszukiwań i innych czynności wykonywanych przez podobnych użytkowników.

Bardzo ważną dziedziną zastosowania technologii ML w dzisiejszych czasach jest rozpoznawanie obrazu. Dzięki niej platformy mediów społecznościowych umożliwiają oznaczanie ludzi na zdjęciach. Policja wykorzystuje ją do wyszukiwania podejrzanych na zdjęciach lub nagraniach wideo. Dzięki niezliczonym kamerom zainstalowanym na lotniskach, w sklepach i przy dzwonkach do drzwi można wykryć wielu sprawców przestępstw lub sprawdzić, dokąd się oddalili.

Kolejną ważną dziedziną zastosowań ML jest diagnostyka medyczna. Po incydencie takim, jak zawał serca można przejrzeć dane, aby odkryć sygnały, które zostały przeoczone. Do systemu używanego przez lekarzy lub szpitale można wprowadzać historyczne dane medyczne, aby wykryć powiązania między danymi wejściowymi (zachowanie, wynik badania, objaw) i wyjściowymi (np. zawał serca). Kiedy w przyszłości lekarz wprowadzi swoje notatki i wyniki badań do systemu, algorytm będzie mógł wykrywać objawy zawału serca znacznie skuteczniej niż potrafią to robić ludzie, co pozwoli na wdrożenie działań profilaktycznych.

Następnym przykładem zastosowania technologii ML jest tłumaczenie treści stron WWW i aplikacji na platformach mobilnych. Niektóre aplikacje spisują się lepiej, a inne gorzej, co jest efektem zastosowania różnych modeli ML, technik i algorytmów.

W dzisiejszych czasach technologia ML stanowi chleb powszedni w bankowości i systemach obsługi kart kredytowych. Wykrycie pewnych oznak oszustwa, które dla ML nie stanowi żadnego wyzwania, człowiekowi zajęłyby bardzo dużo czasu lub byłyby całkowicie poza jego zasięgiem. Analiza i oznakowanie ogromnej ilości transakcji (uczciwa czy fałszywa) w przyszłości mogą umożliwić wykrywanie oszustw w pojedynczych operacjach. Idealnym rodzajem machine learning (uczenia maszynowego – ML) do tego celu jest data mining.

Data mining

Data mining to typ machine learning, który polega na analizie danych, aby formułować prognozy lub wykrywać wzorce w wielkich zbiorach danych. Termin ten jest trochę mylący, ponieważ technologia ta wcale nie polega na przeczesywaniu przez kogokolwiek, czy to przestępcę czy pracownika, danych w celu znalezienia czegoś przydatnego. Tak naprawdę jest to proces polegający na odkrywaniu w danych wzorców, które mogą się przydać przy podejmowaniu decyzji w przyszłości.

Weźmy na przykład firmę obsługującą karty kredytowe. Jeśli masz kartę kredytową, to Twój bank z pewnością choć raz w życiu informował Cię o podejrzanej aktywności związanej z tą kartą. W jaki sposób bank tak szybko to wykrył i błyskawicznie wysłał Ci ostrzeżenie? Tego typu ochronę przed oszustwami zapewniają właśnie działające bez przerwy algorytmy data mining. Na początku 2020 r. w samych Stanach Zjednoczonych było ponad 1,1 biliona kart kredytowych. Przeprowadzane z ich użyciem transakcje generują ogromną ilość danych wykorzystywanych do data mining, wyszukiwania wzorców i nauki identyfikacji podejrzanych zachowań w przyszłości.

Deep learning

Deep learning (uczenie głębokie) to specyficzny typ ML oparty na sieciach neuronowych. Sieć neuronowa naśladuje sposób działania neuronów w ludzkim mózgu, aby podejmować decyzje lub coś rozumieć. Na przykład sześcioletnie dziecko jest w stanie odróżnić po twarzy swoją mamę od osoby pilnującej przejścia dla pieszych, ponieważ jego mózg bardzo szybko analizuje wiele szczegółów – kolor włosów, rysy twarzy, blizny itd. Machine learning odtwarza te procesy w formie uczenia głębokiego.

Sieć neuronowa ma od trzech do pięciu warstw – jedną wejściową, od jednej do trzech warstw ukrytych i jedną warstwę wyjściową. Warstwy ukryte podejmują decyzje pozwalające stopniowo dojść do warstwy wyjściowej lub wniosku. Jaki jest kolor włosów? Jaki jest kolor oczu? Czy widać bliznę? Kiedy warstw jest kilkaset, mamy do czynienia z uczeniem głębokim.

Rodzaje machine learning

Wyróżnia się cztery zasadnicze typy algorytmów machine learning: nadzorowane, półnadzorowane, nienadzorowane i wzmocnione. Specjaliści od ML uważają, że około 70% algorytmów ML, które są obecnie w użyciu, to algorytmy nadzorowane. Operują one na znanych lub oznakowanych zbiorach danych, na przykład zdjęciach psów i kotów. Te dwa gatunki zwierząt są znane, więc administratorzy mogą oznaczyć zdjęcia przed wprowadzeniem ich do algorytmu.

Nienadzorowane algorytmy ML uczą się na podstawie nieznanych zbiorów danych. Weźmy na przykład filmy z serwisu TikTok. Jest ich tam tak wiele i obejmują tak wiele tematów, że nie da się wyszkolić algorytmu na ich podstawie w nadzorowany sposób. Te dane są jeszcze nieoznakowane.

Częściowo nadzorowane algorytmy ML szkoli się wstępnie na niewielkiej próbce danych, która jest znana i oznakowana. Następnie kontynuuje się szkolenie z użyciem większych nieoznakowanych zbiorów danych.

Wzmocnione algorytmy ML nie są wstępnie szkolone. Uczą się metodą prób i błędów na bieżąco. Wyobraź sobie robota, który uczy się jeździć pośród skał. Każdy upadek uczy go, co się nie sprawdza, dzięki czemu robot może zmieniać swoje zachowanie, aż mu się uda. Pomyśl o tresowaniu psa i stosowaniu gróźb w celu nauczenia go wykonywania różnych poleceń. Jeśli zastosujemy wzmocnienie pozytywne, to pies będzie wykonywał polecenia oraz będzie zmieniał te zachowania, które nie wywołują pozytywnej reakcji.  

Uczenie maszynowe (machine learning, ML) nadzorowane i nienadzorowane

Nadzorowane uczenie maszynowe

Ta technika wykorzystuje znane, ustanowione i sklasyfikowane zbiory danych do wyszukiwania wzorców. Umożliwia rozwinięcie opisanej wcześniej idei wykorzystania zdjęć psów i kotów. Możesz mieć ogromny zbiór danych zawierający wizerunki tysięcy zwierząt na milionach zdjęć. Jako że te gatunki są znane, można je pogrupować i oznakować przed wprowadzeniem do nadzorowanego algorytmu ML, aby nauczyć go ich rozpoznawania.

Następnie taki algorytm nadzorowany porównuje to, co dostanie na wejściu z tym, co pojawia się na wyjściu oraz zdjęcie z etykietą gatunku zwierzęcia. W końcu nauczy się rozpoznawać określony gatunek zwierzęcia na nowych zdjęciach, które zostaną mu „pokazane”.

Nienadzorowane uczenie maszynowe

Nienadzorowane algorytmy ML są dziś jak filtry SPAM-u. Pierwsze takie filtry definiowane przez administratorów szukały określonych słów w wiadomościach e-mail, aby zrozumieć SPAM. Teraz to niemożliwe, więc dobrze sprawdzają się algorytmy nienadzorowane. Nienadzorowany algorytm ML otrzymuje wiadomości e-mail, które nie zostały oznakowane, aby rozpocząć wyszukiwanie wzorców. Kiedy je wykryje, nauczy się, jak wygląda SPAM i będzie go identyfikować w środowisku produkcyjnym.

Techniki machine learning (uczenia maszynowego, ML)

Techniki ML rozwiązują problemy. Jedną z nich wybiera się na podstawie problemu, który trzeba rozwiązać. Oto sześć najczęściej używanych technik ML.

Technika regresji

Za pomocą regresji można przewidywać ceny na rynku nieruchomości lub określić optymalną cenę łopaty do śniegu w Minnesocie w grudniu. Regresja opiera się na zasadzie, że choć ceny mogą się wahać, zawsze wracają do pewnej wartości średniej. Mimo że z czasem ceny domów rosną, istnieje średnia cena, która zawsze będzie się powtarzać. Aby odkryć średnią na podstawie zmian cen w czasie, można je nanieść na wykres. Czerwona linia wykresu pnąca się w górę umożliwia formułowanie prognoz na przyszłość.

Klasyfikacja

Klasyfikacja służy do grupowania danych w znane kategorie. Można na przykład szukać takich osób, które prawdopodobnie zostaną dobrymi klientami (takimi, którzy zawsze wracają i wydają więcej pieniędzy) lub prawdopodobnie zmienią miejsce robienia zakupów. Jeśli dzięki retrospekcji uda Ci się znaleźć typowe cechy klientów należących do określonej grupy, będziesz mógł przewidywać, do której z nich trafi każdy nowy klient. To umożliwi Ci skuteczniejsze prowadzenie kampanii marketingowych i ewentualne zdobycie bardzo lojalnego klienta, który w innym przypadku poszedłby gdzieś indziej. To jest dobry przykład ML nadzorowanego.

Grupowanie

W odróżnieniu od klasyfikacji, technika grupowania należy do kategorii ML nienadzorowanego. W przypadku grupowania system znajdzie sposób na podzielenie na grupy danych, których Ty nie wiesz jak pogrupować. Ten rodzaj ML doskonale sprawdza się w analizie obrazów medycznych i media społecznościowych oraz w wyszukiwaniu anomalii.

Google wykorzystuje grupowanie do generalizacji, kompresji danych i zachowywania prywatności w produktach, na przykład filmach na YouTube, aplikacjach w sklepie Play i utworach muzycznych.

Wykrywanie anomalii

Wykrywanie anomalii stosuje się w celu znalezienia nietypowych obiektów, na przykład czarnej owcy w stadzie. Ich znalezienie w ogromnej masie danych jest niemożliwe dla człowieka. Jeśli natomiast badacz wprowadzi do algorytmu wyszukiwania anomalii dane rozliczeniowe z systemu medycznego wielu szpitali, ten znajdzie sposób na ich pogrupowanie. Dzięki temu może wykryć anomalie będące oznakami oszustwa.

Analiza koszyka rynkowego

Logika analizy koszyka rynkowego umożliwia formułowanie prognoz. Prosty przykład: jeśli klienci włożą do swojego koszyka mieloną wołowinę, pomidory i taco, to można przewidywać, że dołożą do tego jeszcze ser i śmietanę. Na podstawie takich prognoz można stymulować dodatkową sprzedaż przez podsuwanie klientom sklepów internetowych atrakcyjnych propozycji zakupu produktów, o których mogliby zapomnieć lub można grupować produkty w sklepie.

Z pomocą tej techniki dwóch profesorów z MIT odkryło „zwiastuny klapy”. Okazało się, że niektórzy klienci lubią kupować produkty, które są skazane na porażkę. Dzięki dostrzeżeniu ich obecności wiesz, czy kontynuować sprzedaż danego produktu oraz jakie działania promocyjne wdrożyć, aby zmaksymalizować sprzedaż w odpowiedniej grupie klientów.

Szeregi czasowe

Dane w postaci szeregów czasowych powszechnie gromadzą noszone przez nas na nadgarstkach monitory sprawności. Zapisują liczbę uderzeń serca na minutę, liczbę kroków robionych na minutę lub godzinę, a niektóre z nich mierzą już nawet saturację. Na podstawie takich danych można przewidzieć, kiedy ktoś będzie biegać. Można by było też zbierać dane maszyn, na przykład na temat poziomu wibracji, natężenia hałasu i ciśnienia, aby przewidywać awarie.

Algorytmy machine learning

Skoro ML ma uczyć się na podstawie danych, to jak stworzyć algorytm do nauki i wyszukiwania statystycznie istotnych danych? Algorytmy ML wspierają procesy ML nadzorowanego, nienadzorowanego i wzmocnionego.

Specjaliści od przetwarzania danych piszą algorytmy, które umożliwiają maszynom naukę lub znajdowanie istotnych danych.

Przyjrzymy się paru najczęściej używanym algorytmom tego typu. Oto pięć najpopularniejszych algorytmów ML.

  • Algorytmy regresji liniowej ustalają relacje przez umieszczenie na wykresie niezależnych i zależnych zmiennych oraz nakreślenie prostej linii wyznaczającej średnią lub trend. Słownik Merriam-Webster definiuje regresję jako „funkcję zwracającą wartość średnią losowej zmiennej pod warunkiem, że jedna lub więcej niezależnych zmiennych ma określone wartości”." Ta definicja odnosi się także do regresji logistycznej.
Algorytm machine learning
  • Regresja logistyczna, podobnie jak liniowa, także umieszcza zmienne na wykresie, ale nie tworzą one linii prostej, tylko o kształcie esowatym.
Regresja logistyczna
  • Bardzo często używanym rodzajem algorytmu w nadzorowanym ML jest drzewo decyzyjne. Z jego pomocą można dokonać klasyfikacji danych na podstawie zmiennych kategorialnych i ciągłych.
Schemat drzewa decyzyjnego
  • Maszyna wektorów nośnych wyznacza hiperpłaszczyznę na podstawie dwóch najbardziej zbliżonych do siebie punktów danych. To pozwala na rozdzielenie danych z maksymalnym marginesem przykładów należących do dwóch klas. Klasyfikacja danych odbywa się na podstawie przestrzeni n-wymiarowej. Parametr n reprezentuje liczbę posiadanych przez Ciebie różnych cech.
Wykres Hyperlane
  • Naiwny klasyfikator bayesowski oblicza prawdopodobieństwo wystąpienia określonego wyniku. Jest bardzo skuteczny i przewyższa efektywnością bardziej zaawansowane modele klasyfikacji. Naiwny klasyfikator bayesowski rozumie, że jakakolwiek dana cecha nie jest powiązana z obecnością innych określonych cech.
Naiwny model bayesowski

Modele uczenia maszynowego (machine learning, ML)

Z połączenia typu ML (nadzorowane, nienadzorowane itd.), technik i algorytmów powstaje wyszkolony plik. Można do niego wprowadzać nowe dane, aby rozpoznawał wzorce i formułował prognozy lub podejmował decyzje biznesowe, związane z zarządzaniem bądź odnoszące się do klientów.

Najlepsze języki programowania do uczenia maszynowego (machine learning)

Języki programowania służą do pisania instrukcji nauki systemów machine learning. Każdy z nich skupia społeczność użytkowników, od których można się wiele nauczyć. I każdy zawiera specjalne biblioteki do uczenia maszynowego (machine learning).

Oto 10 najpopularniejszych z nich według portalu GitHub. 10 najpopularniejszych języków wg ankiety z 2019 r.

  • Python
  • C++
  • JavaScript
  • Java
  • C#
  • Julia
  • Shell
  • R
  • TypeScript
  • Scala – wykorzystywany do pracy z dużymi zbiorami danych


Machine learning w Pythonie

Poniżej znajduje się garść podstawowych informacji o języku Python, który cieszy się największą popularnością w ML.

Python to interpretowany obiektowy język programowania open-source, którego nazwa pochodzi od Monty Pythona. Jako że jest to język interpretowany, jego kod źródłowy przed wykonaniem przez maszynę wirtualną jest konwertowany na kod bajtowy.

Python ma kilka cech, które zapewniły mu popularność w dziedzinie ML.

  • Jedną z nich jest duży zbiór zaawansowanych pakietów dostępnych od ręki. Wiele spośród nich, na przykład numpy, scipy i panda, jest specjalnie przeznaczonych do zastosowań w machine learning.
  • Łatwe i szybkie tworzenie prototypów.
  • Istnieje szeroki wybór narzędzi umożliwiających współpracę.
  • Kiedy specjalista od obróbki danych przechodzi od etapu ekstrakcji do modelowania, a potem aktualizacji opracowanych rozwiązań ML, język Python nadal jest najlepszym wyborem. Analityk danych nie musi zmieniać języka w trakcie pracy.

Zasoby