Trace Id is missing
Przejdź do głównej zawartości

Algorytmy uczenia maszynowego

Wprowadzenie do zagadnień matematycznych i logicznych, na których bazuje uczenie maszynowe.

Co to są algorytmy uczenia maszynowego?

Algorytmy uczenia maszynowego są kodem ułatwiającym eksplorowanie, analizowanie i rozumienie złożonych zestawów danych. Każdy algorytm to skończony zestaw jednoznacznych instrukcji krok po kroku, które może wykonać komputer, aby osiągnąć określony cel. Celem modelu uczenia maszynowego jest ustanowienie lub odnalezienie wzorców, których ludzie mogą używać do przewidywania lub kategoryzowania informacji. Co to jest uczenie maszynowe?

Algorytmy uczenia maszynowego używają parametrów, które są oparte na danych trenujących — podzbiorze danych reprezentującym większy zestaw. Gdy dane trenujące zostaną rozszerzone tak, aby lepiej reprezentowały rzeczywistość, algorytm obliczy dokładniejsze wyniki.

Różne algorytmy analizują dane na różne sposoby. Często grupuje się je według technik uczenia maszynowego, dla których są używane: uczenie nadzorowane, uczenie nienadzorowane i uczenie przez wzmacnianie. Najczęściej używane algorytmy stosują regresję i klasyfikację do przewidywania kategorii docelowych, znajdowania nietypowych punktów danych, przewidywania wartości i odnajdywania podobieństw.

Techniki uczenia maszynowego

Gdy uzyskasz więcej informacji o algorytmach uczenia maszynowego, dowiesz się, że zwykle używają one jednej z trzech technik uczenia maszynowego:


Uczenie nadzorowane

W uczeniu nadzorowanym algorytmy tworzą przewidywania na podstawie przedstawionego zestawu przykładów z etykietami. Ta technika jest przydatna, gdy wiesz, jak powinien wyglądać wynik.
 

Załóżmy na przykład, że dostarczasz zestaw danych obejmujący populacje miast według roku w ciągu ostatnich 100 lat i chcesz wiedzieć, jaka będzie populacja określonego miasta za cztery lata. Na potrzeby wyniku są używane etykiety, które już istnieją w zestawie danych: populacja, miasto i rok.
 

Uczenie nienadzorowane

W uczeniu nienadzorowanym punkty danych nie mają etykiet — algorytm samodzielnie oznacza je etykietami, porządkując dane lub opisując ich strukturę. Ta technika jest przydatna, gdy nie wiesz, jak powinien wyglądać wynik.

 

Załóżmy na przykład, że dostarczasz dane klientów i chcesz utworzyć segmenty klientów lubiących podobne produkty. Dostarczone dane nie mają etykiet, a etykiety w wyniku są generowane na podstawie podobieństw wykrytych między punktami danych.

 

Uczenie przez wzmacnianie

Uczenie przez wzmacnianie używa algorytmów, które uczą się na podstawie wyników i decydują, jaką następną akcję należy wykonać. Po każdej akcji algorytm otrzymuje informacje zwrotne, które ułatwiają mu określenie, czy dokonany wybór był poprawny, neutralny, czy niepoprawny. Jest to dobra technika w przypadku zautomatyzowanych systemów, które muszą podejmować wiele drobnych decyzji bez wskazówek człowieka.

 

Załóżmy na przykład, że projektujesz samochód autonomiczny i chcesz zapewnić, że będzie on działał zgodnie z prawem i zasadami bezpieczeństwa ludzi. Zdobywając doświadczenie i historię wzmocnień, samochód uczy się, jak pozostawać na swoim pasie, przestrzegać ograniczeń prędkości i hamować na widok pieszych.

Co można robić z algorytmami uczenia maszynowego

Algorytmy uczenia maszynowego pomagają odpowiadać na pytania zbyt skomplikowane, aby można było uzyskać odpowiedź przez analizę ręczną. Istnieje wiele różnych typów algorytmów uczenia maszynowego, ale przypadki użycia dla algorytmów uczenia maszynowego zazwyczaj należą do jednej z tych kategorii.

Przewidywanie kategorii docelowej

Algorytmy klasyfikacji z dwiema klasami (binarne) dzielą dane na dwie kategorie. Są one przydatne w przypadku pytań, które mają tylko dwie możliwe odpowiedzi wykluczające się wzajemnie, na przykład pytania typu tak/nie. Na przykład:

  • Czy ta opona ulegnie uszkodzeniu w ciągu następnych 1000 kilometrów: tak czy nie?
  • Co bardziej zwiększa liczbę rekomendacji: bon na 10 zł czy rabat 15%?

 

Algorytmy klasyfikacji wieloklasowej (wielomianowej) dzielą dane na trzy lub więcej kategorii. Są one przydatne w przypadku pytań mających trzy lub więcej możliwych odpowiedzi, które wzajemnie się wykluczają. Na przykład:

  • W którym miesiącu większość podróżnych kupuje bilety lotnicze?
  • Jakich emocji doznaje osoba widoczna na tym zdjęciu?

Znajdowanie nietypowych punktów danych

Algorytmy wykrywania anomalii identyfikują punkty danych, które wykraczają poza zdefiniowane parametry „normalnych” danych. Za pomocą algorytmów wykrywania anomalii można na przykład odpowiadać na pytania takie jak:

  • Gdzie znajdują się wadliwe części w tej partii?
  • Które zakupy kartami kredytowymi mogą być nieuczciwe?

Przewidywanie wartości

Algorytmy regresji przewidują wartość nowego punktu danych na podstawie danych historycznych. Ułatwiają one odpowiadanie na pytania takie jak:

  • Ile będzie średnio kosztować dom z dwiema sypialniami w moim mieście w następnym roku?
  • Ile pacjentów zostanie przyjętych w szpitalu we wtorek?

Sprawdzanie, jak zmieniają się wartości w czasie

Algorytmy szeregów czasowych pokazują, jak dana wartość zmienia się w czasie. W ramach analizy szeregów czasowych i ich prognozowania dane są zbierane w regularnych odstępach czasu i używane do przewidywania oraz identyfikowania trendów, sezonowości, cykliczności oraz nieregularności. Algorytmy szeregów czasowych są używane do udzielania odpowiedzi na pytania takie jak:

  • Czy cena określonych akcji może wzrosnąć, czy spaść w nadchodzącym roku?
  • Jakie będą moje wydatki w następnym roku?

Odkrywanie podobieństw

Algorytmy klastrowania dzielą dane na wiele grup, ustalając poziom podobieństwa między punktami danych. Algorytmy klastrowania sprawdzają się dobrze w przypadku pytań takich jak:

  • Którzy widzowie lubią te same rodzaje filmów?
  • Które modele drukarek ulegają awarii w ten sam sposób?

Klasyfikacja

Algorytmy klasyfikacji używają obliczeń predykcyjnych do przypisywania danych do wstępnie ustawionych kategorii. Algorytmy klasyfikacji są trenowane na danych wejściowych i służą do odpowiedzi na takie pytania jak:

  • Czy ta wiadomość e-mail jest spamem?
  • Jaka jest tonacja (pozytywna, negatywna lub neutralna) danego tekstu?

Algorytmy regresji liniowej pokazują lub przewidują relację między dwiema zmiennymi lub czynnikami, dopasowując ciągłą linię prostą do danych. Ta linia jest często obliczana przy użyciu kwadratowej funkcji kosztu błędów. Regresja liniowa jest jednym z najpopularniejszych typów analizy regresji.

Algorytmy regresji logistycznej dopasowują ciągłą krzywą w kształcie S do danych. Regresja logistyczna to inny popularny typ analizy regresji.

Algorytmy naiwnego klasyfikatora bayesowskiego obliczają prawdopodobieństwo wystąpienia zdarzenia na podstawie wystąpienia powiązanego zdarzenia.

Maszyny wektorów nośnych (SVM) wyznaczają hiperpłaszczyznę między dwoma najbliższymi punktami danych. Powoduje to separację klas i maksymalizację odległości między nimi, aby je wyraźniej odróżnić.

Algorytmy drzew decyzyjnych dzielą dane na co najmniej dwa jednorodne zestawy. Używają one reguł jeśli-to, aby rozdzielać dane na podstawie najbardziej znaczącego rozróżnienia między punktami danych.

Algorytmy K-najbliższego sąsiada przechowują wszystkie dostępne punkty danych i klasyfikują każdy nowy punkt danych na podstawie najbliższych mu punktów danych, mierzonych funkcją odległości.

Algorytmy lasów losowych bazują na drzewach decyzyjnych, ale zamiast tworzenia jednego drzewa tworzą las drzew, a następnie rozmieszczają losowo drzewa w tym lesie. Następnie agregują głosy od różnych losowych formacji drzew decyzyjnych, aby ustalić ostateczną klasę obiektu testowego.

Algorytmy wzmacniania gradientowego tworzą model predykcyjny, który łączy słabe modele predykcyjne — zazwyczaj drzewa decyzyjne — w procesie tworzenia zestawu, co zwiększa ogólną jakość modelu.

Algorytmy K-średnich klasyfikują dane w klastrach, gdzie K jest równe liczbie klastrów. Punkty danych wewnątrz każdego klastra są jednorodne oraz są heterogeniczne względem punktów danych w innych klastrach.

Co to są biblioteki uczenia maszynowego?

Biblioteka uczenia maszynowego to zestaw funkcji, struktur, modułów i procedur napisanych w danym języku. Deweloperzy używają kodu w bibliotekach uczenia maszynowego jako bloków konstrukcyjnych do tworzenia rozwiązań uczenia maszynowego, które mogą wykonywać złożone zadania. Zamiast ręcznie kodować każdy algorytm i formułę w rozwiązaniu uczenia maszynowego, deweloperzy mogą znaleźć potrzebne funkcje oraz moduły w jednej z wielu dostępnych bibliotek uczenia maszynowego i zastosować je do utworzenia rozwiązania spełniającego ich potrzeby.

Rozpocznij eksperymentowanie z usługą Azure Machine Learning

Poznaj sposoby analizowania danych przez różne algorytmy, tworząc i wdrażając własne modele uczenia maszynowego przy użyciu usługi Azure Machine Learning.