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.
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.
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.
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.
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.
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 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.
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 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.
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 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.
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.
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.
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.
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.
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.
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.