Uczenie maszynowe

menu icon

Uczenie maszynowe

Uczenie maszynowe służy do tworzenia aplikacji, które uczą się na podstawie doświadczeń oraz stopniowo poprawiają skuteczność podejmowania decyzji i dokładność prognoz.

Na czym polega uczenie maszynowe?

Uczenie maszynowe to segment sztucznej inteligencji (AI) umożliwiający tworzenie aplikacji, które uczą się na podstawie danych i wraz z upływem czasu poprawiają precyzję działania bez specjalnego programowania.  

W rozumieniu analityki danych algorytm to sekwencja etapów przetwarzania statystycznego. Podczas uczenia maszynowego algorytmy są „szkolone”, by odnajdować wzorce i cechy w dużych ilościach danych i na podstawie nowych danych podejmować decyzje i stawiać prognozy. Im lepszy jest algorytm, tym większa dokładność decyzji i prognoz, ponieważ przetwarzana jest większa ilość danych.

Dzisiaj przykłady uczenia maszynowego są wszędzie wokół nas. Asystenci cyfrowi przeszukają sieć i odtwarzają muzykę w odpowiedzi na polecenia głosowe. W witrynach internetowych polecane są produkty, filmy i piosenki na podstawie tego, co kupowaliśmy, oglądaliśmy lub słuchaliśmy wcześniej. Roboty odkurzają nasze podłogi, a my możemy dzięki temu inaczej wykorzystać nasz czas. Czujki antyspamowe blokują niechciane wiadomości e-mail, zanim dotrą one do naszych skrzynek pocztowych. Systemy analizy obrazów medycznych pomagają lekarzom diagnozować nowotwory, których mogliby nie zauważyć. Na drogi wyjeżdżają natomiast pierwsze samochody autonomiczne.

Możemy spodziewać się więcej. Wielkie zbiory danych stale się powiększają, procesy obliczeniowe stają się wydajniejsze i tańsze, a analitycy danych opracowują skuteczniejsze algorytmy. Dlatego też wzrasta znaczenie uczenia maszynowego w naszym życiu osobistym i zawodowym. 

Jak działa uczenie maszynowe

Istnieją cztery podstawowe etapy tworzenia aplikacji (lub modelu) uczenia maszynowego. Są one najczęściej wykonywane przez analityków danych blisko współpracujących ze specjalistami biznesowymi, dla których opracowywany jest model.

Krok 1: Wybierz i przygotuj zestaw danych szkoleniowych

Dane szkoleniowe to zbiór poglądowych danych, które model uczenia maszynowego musi przyswoić, aby rozwiązywać problemy, z myślą o których został zaprojektowany. W niektórych wypadkach dane szkoleniowe to dane oznaczone „etykietą” informującą o cechach i klasach, które model będzie musiał identyfikować. Inne dane to elementy nieoznaczone, dla których model będzie musiał pobierać te cechy i samodzielnie przypisywać klasy.

W obu przypadkach dane szkoleniowe muszą być odpowiednio przygotowane — wybrane losowo, zdeduplikowane i sprawdzone pod kątem braku równowagi lub odchyleń, które mogłyby wpłynąć na szkolenie. Należy je również podzielić na dwa podzbiory: podzbiór szkoleniowy, który jest używany do szkolenia aplikacji orazpodzbiór oceny używany do jej testowania i doskonalenia.

Krok 2: Wybierz algorytm, który ma być uruchamiany w zestawie danych szkoleniowych

Przypomnijmy, że algorytm jest zbiorem etapów przetwarzania statystycznego. Typ algorytmu zależy od rodzaju (oznaczone albo nieoznaczone) oraz ilości danych znajdujących się w zbiorze danych szkoleniowych oraz od rodzaju problemu, który należy rozwiązać.

Standardowe rodzaje algorytmów uczenia maszynowego używanych z danymi nieoznaczonymi obejmują:

  • Algorytmy regresji: regresja liniowa i logistyczna to przykłady algorytmów regresji używanych do zrozumienia związków pomiędzy zbiorami danych. Regresja liniowa jest używana do prognozowania wartości zmiennej zależnej na podstawie wartości zmiennej niezależnej. Regresja logistyczna może być używana, gdy zmienna zależna ma charakter binarny: A lub B. Przykładowo algorytm regresji liniowej można przeszkolić, aby prognozować roczne wyniki sprzedaży handlowca (zmienna zależna), wiążąc je z wykształceniem sprzedawcy lub latami doświadczenia (zmienna niezależna). Inny rodzaj algorytmu regresji, nazywany maszyną wektorów nośnych, jest użyteczny, gdy zmienne zależne są trudniejsze do sklasyfikowania.
  • Drzewa decyzyjne: drzewa decyzyjne wykorzystują sklasyfikowane dane do tworzenia zaleceń na podstawie zbioru reguł decyzyjnych. Na przykład w drzewie decyzyjnym, w którym sugerowane jest postawienie na konkretnego konia wyścigowego, dany podmiot może wykorzystać dane takiego konia (np. wiek, procent wygranych, rodowód) i zastosować do tych czynników reguły, aby sformułować zalecenie wykonania konkretnego działania lub podjęcia konkretnej decyzji.
  • Algorytmy oparte na instancjach: dobrym przykładem algorytmu opartego na instancji jest k najbliższych sąsiadów lub k-nn. W algorytmie tym wykorzystywana jest metoda klasyfikacji do ustalenia prawdopodobieństwa, że punkt danych będzie należeć do jednej lub innej grupy na podstawie jego bliskości do innych punktów danych.

Algorytmy używane z danymi nieoznaczonymi obejmują:

  • Algorytmy klasteryzacji: klastry należy rozumieć jako grupy. Technika klasteryzacji polega na identyfikowaniu grup podobnych rekordów oraz etykietowaniu rekordów zgodnie z grupą, do której należą. Jest to realizowane bez wcześniejszej wiedzy na temat grup oraz ich cech. Typy algorytmów klasteryzacji obejmują grupowanie K-średnie, dwustopniowe oraz sieć Kohonena.
  • Algorytmy asocjacji: algorytmy odnajdują wzorce i powiązania w zbiorach danych oraz identyfikują częste relacje „jeżeli... to...” nazywane regułami asocjacji. Są one podobne do reguł używanych w procesach eksploracji danych.
  • Sieci neuronowe: sieć neuronowa to algorytm definiujący warstwową sieć kalkulacji zbudowaną z warstwy wejściowej, w której dane są wprowadzane; co najmniej jednej warstwy ukrytej, w której przeprowadzane są obliczenia i wyciągane są różne wnioski na temat danych wejściowych; oraz warstwy wyjściowej, w której do wszystkich wniosków przypisuje się prawdopodobieństwo. Głęboka sieć neuronowa to sieć z wieloma ukrytymi warstwami, z których każda sukcesywnie uszczegóławia wyniki z poprzedniej warstwy. (Więcej na ten temat przeczytasz w poniższej sekcji „Głębokie uczenie”).

Krok 3: Przeszkól algorytm w celu stworzenia modelu

Szkolenie algorytmu jest procesem iteracyjnym — zakłada przetwarzanie zmiennych przez algorytm, porównywanie wyniku faktycznego z oczekiwanym, dostosowywanie wagi i odchyleń w algorytmie, co może zapewniać bardziej precyzyjne wyniki, a także ponowną analizę zmiennych do momentu, w którym algorytm będzie regularnie generował prawidłowe rezultaty. Uzyskany w ten sposób przeszkolony, precyzyjny algorytm stanowi model uczenia maszynowego — należy zwrócić szczególną uwagę, że terminy „algorytm” i „model” są niesłusznie używane zamiennie, nawet przez ekspertów z dziedziny uczenia maszynowego.

Krok 4: Wykorzystuj i doskonal model 

Ostatni etap obejmuje wykorzystanie modelu z nowymi danymi, aby w optymalnym scenariuszu wraz upływem czasu poprawił precyzję i skuteczność. Pochodzenie nowych danych zależy od rozwiązywanego problemu. Przykładowo model uczenia maszynowego zaprojektowany z myślą o identyfikacji spamu będzie przyswajał wiadomości e-mail, natomiast model uczenia maszynowego odpowiedzialny za działanie automatycznego odkurzacza będzie przyswajał dane ze świata rzeczywistego związane z rozmieszczeniem mebli czy wstawianiem nowych obiektów do pomieszczenia.

Metody uczenia maszynowego

Metody uczenia maszynowego (zwane również stylami uczenia maszynowego) dzielą się na trzy podstawowe kategorie.

Aby poznać szczegółowe różnice pomiędzy metodami, należy sprawdzić część „Uczenie nadzorowane i nienadzorowane: jaka jest różnica?

Uczenie maszynowe nadzorowane              

Nadzorowane uczenie maszynowe przebiega na oznaczonych zbiorach danych. Tutaj dane są oznaczane informacjami, które model uczenia maszynowego powinien, zgodnie z przypisanym projektem, ustalać i które mogą być klasyfikowane zgodnie z metodami klasyfikacji przewidzianymi dla modelu. Przykładowo model przetwarzania obrazów zaprojektowany do identyfikowania rasowych owczarków niemieckich może być szkolony na zbiorze danych składającym się z różnych oznaczonych zdjęć psów.

Nadzorowane uczenie maszynowe wymaga mniej danych szkoleniowych niż inne metody uczenia maszynowego i ułatwia szkolenie, ponieważ wyniki modelu można porównać z prawdziwymi oznaczonymi wynikami. Właściwe oznaczenie danych jest jednak kosztowne, a dodatkowo występuje niebezpieczeństwo przeuczenia albo stworzenia modelu tak blisko powiązanego z danymi szkoleniowymi, że nie będzie w stanie dokładnie przetwarzać zmieniających się danych.

Dowiedz się więcej o nauce nadzorowanej.   

Nienadzorowane uczenie maszynowe

Podczas nienadzorowanego uczenia maszynowego obsługiwane są dane nieoznaczone — ich bardzo duże ilości. W tym procesie używa się algorytmów do pozyskiwania informacji na temat istotnych cech potrzebnych do etykietowania, sortowania i klasyfikowania danych w czasie rzeczywistym bez interwencji człowieka. Uczenie nienadzorowane w mniejszym stopniu polega na automatyzacji decyzji i prognoz, a w większym na identyfikowaniu schematów i relacji pomiędzy danymi, których nie zauważyliby ludzie. Przykładem może być wykrywanie spamu: użytkownicy generują takie ilości wiadomości e-mail, że żaden zespół analityków danych nie byłby w stanie ich oznaczyć ani sklasyfikować przez całe swoje życie. Algorytm uczenia nienadzorowanego może analizować olbrzymie ilości wiadomości e-mail oraz odkrywać cechy i wzorce charakterystyczne dla spamu (a z czasem poprawiać skuteczność oznaczania spamu).

Dowiedz się więcej o uczeniu nienadzorowanym.

Uczenie częściowo nadzorowane 

Uczenie częściowo nadzorowane oferuje dobrą równowagę pomiędzy uczeniem nadzorowanym i nienadzorowanym. Podczas szkolenia wykorzystywany jest mniejszy zbiór oznaczonych danych w celu klasyfikacji i pozyskiwania cech z większego, nieoznaczonego zbioru danych. Uczenie częściowo nadzorowane pozwala rozwiązać problem posiadania niewystarczająco oznaczonych danych (lub braku środków na wystarczające oznaczenie danych) i umożliwia opracowanie algorytmu uczenia nadzorowanego. 

Uczenie przez wzmacnianie

Uczenie przez wzmacnianie to model behawioralnego uczenia maszynowego, który jest podobny do uczenia nadzorowanego, przy czym w tym przypadku algorytm nie jest szkolony za pomocą przykładowych danych. Model pozwala uczyć się na zasadzie prób i błędów. Sekwencja udanych wyników służy do opracowywania najlepszych zaleceń i procedur, aby rozwiązać dany problem.

Dobrym przykładem jest superkomputer IBM Watson®, który wygrał w grze telewizyjnej Jeopardy! w 2011 roku. System został oparty na metodzie uczenia przez wzmacnianie, która pozwalała skutecznie decydować o udzielaniu odpowiedzi (ewentualnie zadawaniu pytania) odnośnie tego, który kwadrat z tablicy wybrać i ile postawić — zwłaszcza w przypadku zakładów podwójnych.

Dodatkowe informacje o uczeniu przez wzmacnianie.    

Głębokie uczenie

Głębokie uczenie jest podzbiorem uczenia maszynowego (każdy rodzaj uczenia głębokiego jest uczeniem maszynowym, ale nie wszystkie przypadki uczenia maszynowego to głębokie uczenie). Algorytmy głębokiego uczenia pozwalają definiować sieć neuronową projektowaną z myślą o uczeniu się w sposób charakterystyczny dla ludzkiego umysłu. Modele głębokiego uczenia wymagają dużej ilości danych, które przechodzą przez wiele warstw obliczeń, wprowadzając wagi i odchylenia do każdych kolejnych warstw, aby dostosowywać i doskonalić rezultaty.

Modele głębokiego uczenia są zazwyczaj nienadzorowane lub częściowo nadzorowane. Modele uczenia przez wzmacnianie również mogą być modelami głębokiego uczenia. Niektóre modele głębokiego uczenia — w tym splotowe sieci neuronowe (CNN) oraz rekurencyjne sieci neuronowe (RNN) — pozwalają notować postęp w takich obszarach jak przetwarzanie obrazów, przetwarzanie języka naturalnego (w tym rozpoznawanie mowy) czy też samochody autonomiczne. 

Przeczytaj artykuł na blogu „AI, uczenie maszynowe, głębokie uczenie i sieci neuronowe: Jaka jest różnica?”, aby lepiej poznać związek pomiędzy różnymi koncepcjami.

Dodatkowe informacje o głębokim uczeniu.                                                               

Przypadki zastosowania technologii uczenia maszynowego

Jak już zauważyliśmy na samym początku, uczenie maszynowe otacza nas z każdej strony. Oto tylko kilka przykładów uczenia maszynowego, z którymi można się spotkać każdego dnia:

  • Asystenci cyfrowi: Siri firmy Apple, Alexa od firmy Amazon, Asystent Google oraz inni asystenci cyfrowi działają dzięki technologii przetwarzania języka naturalnego (NLP), aplikacji uczenia maszynowego, która pozwala komputerom przetwarzać dane tekstowe i głosowe oraz „rozumieć” ludzką mowę tak samo jak ludzie. Przetwarzanie języka naturalnego odpowiada też za działanie aplikacji głosowych, takich jak nawigacja GPS czy moduł rozpoznawania mowy.
  • Zalecenia: modele głębokiego uczenia pozwalają stosować rekomendacje typu „często wybierane” lub „wybrane dla Ciebie”, które oferują Amazon, Netflix, Spotify i inne platformy handlowe, rozrywkowe, podróżnicze, portale pracy czy serwisy informacyjne.
  • Reklama kontekstowa online: modele uczenia maszynowego oraz głębokiego uczenia pozwalają oceniać zawartość witryny internetowej — nie tylko same treści, ale również niuanse, na przykład opinie lub postawy autora — oraz prezentować reklamy dostosowane do zainteresowań użytkownika.
  • Chatboty: chatboty mogą używać połączenia funkcji rozpoznawania wzorców, przetwarzania języka naturalnego czy głębokich sieci neuronowych do interpretowania tekstu i przekazywania odpowiedzi.
  • Wykrywanie oszustw: modele regresji i klasyfikacji zastąpiły systemy wykrywania oszustw, które mają wysoką liczbę alertów fałszywie pozytywnych podczas informowania o użyciu skradzionej karty kredytowej, i którym rzadko udaje się wykryć przypadek przestępczego użycia lub kradzieży danych finansowych.
  • Cyberbezpieczeństwo: uczenie maszynowe pozwala wyodrębniać informacje z raportów o zdarzeniach, alertów, artykułów na blogach i z innych miejsc, aby identyfikować potencjalne zagrożenia, doradzać analitykom bezpieczeństwa i przyspieszać reakcję.
  • Analiza obrazów medycznych: zdecydowanie wzrosła ilość i różnorodność danych związanych z obrazowaniem medycznym, przez co informacje umożliwiające postawienie diagnozy są łatwiej dostępne, ale wzrasta też ryzyko ludzkiego błędu podczas interpretacji takich danych. Splecione sieci neuronowe (CNN), rekurencyjne sieci neuronowe (RNN) oraz inne modele głębokiego uczenia są coraz skuteczniejsze w pozyskiwaniu cech charakterystycznych i danych z obrazów medycznych w celu stawiania precyzyjniejszych diagnoz.
  • Samochody samosterujące:  samochody samosterujące wymagają wielkiego potencjału uczenia maszynowego — muszą stale identyfikować obiekty w otoczeniu samochodu, przewidywać, jak będą się zmieniać lub przesuwać, a także nawigować samochód wokół obiektów i kierować prowadzącego do miejsca przeznaczenia. Praktycznie każda wspomniana powyżej forma algorytmów uczenia maszynowego i głębokiego uczenia w taki czy inny sposób wpływa na jazdę samochodem autonomicznym.

Uczenie maszynowe i chmura IBM Cloud

IBM Watson Machine Learning obsługuje pełen cykl życia uczenia maszynowego. Program jest dostępny w wielu wersjach, które pozwalają tworzyć modele uczenia maszynowego, aby wykorzystać aktywne dane, oraz wdrażać te modele w hybrydowym środowisku wielochmurowym. 

IBM Watson Machine Learning on IBM Cloud Pak for Data pomaga analitykom danych i zespołom ds. AI przyspieszyć rozwijanie mechanizmów AI oraz wdrażać je na wszystkich platformach danych i sztucznej inteligencji stworzonych z myślą o chmurze. IBM Watson Machine Learning Cloud, usługa zarządzana dostępna w środowisku IBM Cloud, oferuje najszybszą metodę przenoszenia modeli z fazy testowej do produkcyjnej. Mniejszym zespołom planującym wykorzystanie uczenia maszynowego IBM Watson Machine Learning Server oferuje prostą instalację w dowolnej chmurze prywatnej lub publicznej.

Aby rozpocząć, zarejestruj się w IBMid i utwórz swoje konto w IBM Cloud.