Zadanie uczenia maszynowego to rodzaj przewidywania lub wnioskowania, które jest oparte na:
Problem lub pytanie
Dostępne dane
Na przykład zadanie klasyfikacji przypisuje dane do kategorii, a zadanie klastrowania grupuje dane według podobieństwa.
Zadania uczenia maszynowego polegają na wzorcach w danych, a nie na jawnym programowanym programie.
W tym artykule opisano różne zadania uczenia maszynowego, które są dostępne w ML.NET i niektóre typowe przypadki użycia.
Po podjęciu decyzji, które zadanie działa w danym scenariuszu, musisz wybrać najlepszy algorytm do wytrenowania modelu. Dostępne algorytmy są wymienione w sekcji dla każdego zadania.
Klasyfikacja binarna to zadanie nadzorowanego uczenia maszynowego, które służy do przewidywania, które z dokładnie dwie klasy (kategorie) należą do wystąpienia danych. Dane wejściowe algorytmu klasyfikacji to zestaw z etykietami przykładów, w których każda etykieta jest liczbą całkowitą 0 lub 1. Dane wyjściowe algorytmu klasyfikacji binarnej to klasyfikator, którego można użyć do przewidywania klasy nowych nieoznakowanych wystąpień. Przykłady scenariuszy klasyfikacji binarnej obejmują:
Aby uzyskać najlepsze wyniki z klasyfikacją binarną, dane treningowe powinny być zrównoważone (czyli równe liczby dodatnich i negatywnych danych treningowych). Brakujące wartości powinny być przetworzone przed trenowaniem.
Dane kolumny etykiety wejściowej muszą być Boolean.
Dane kolumn danych wejściowych muszą być wektorem o stałym rozmiarze Single.
Przewidywana etykieta na podstawie znaku wyniku. Wynik ujemny odpowiada false, a wynik dodatni odpowiada true.
Klasyfikacja wieloklasowa
Klasyfikacja wieloklasowa to nadzorowane zadanie uczenia maszynowego używane do klasyfikowania wystąpienia danych w jednej z co najmniej trzech klas (kategorii). Dane wejściowe algorytmu klasyfikacji to zestaw przykładów oznaczonych etykietami. Każda etykieta zwykle zaczyna się jako tekst. Następnie przechodzi przez proces TermTransform, który konwertuje go na Klucz (typ liczbowy). Dane wyjściowe algorytmu klasyfikacji to klasyfikator, którego można użyć do przewidywania klasy nowych nieoznakowanych wystąpień. Przykłady scenariuszy klasyfikacji wieloklasowej obejmują:
Kategoryzowanie lotów jako "wcześnie", "na czas" lub "późno".
Zrozumienie recenzji filmów jako "pozytywne", "neutralne" lub "negatywne".
Kategoryzowanie recenzji hotelowych jako "lokalizacja", "cena" lub "czystość", na przykład.
Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, aby należeć do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i. Należy pamiętać, że i jest indeksem zerowym.
Indeks przewidywanej etykiety. Jeśli jej wartość wynosi i, rzeczywista etykieta to i. kategoria w etykietach wejściowych z typem wartości klucza.
Klasyfikacja tekstu
Klasyfikacja tekstu jest podkategorią klasyfikacji wieloklasowej, która zajmuje się specjalnie nieprzetworzonym tekstem. Tekst stanowi interesujące wyzwania, ponieważ musisz uwzględnić kontekst i semantyka, w której występuje tekst. W związku z tym kodowanie znaczenia i kontekstu może być trudne.
modele uczenia głębokiego pojawiły się jako obiecująca technika rozwiązywania problemów z językiem naturalnym. W szczególności typ sieci neuronowej znany jako transformator stał się dominującym sposobem rozwiązywania problemów z językiem naturalnym, takich jak klasyfikacja tekstu, tłumaczenie, podsumowanie i odpowiadanie na pytania. Niektóre popularne architektury transformerów dla zadań języka naturalnego to:
Reprezentacje kodera dwukierunkowego z transformatorów (BERT)
Silnie zoptymalizowane podejście do przetrenowania BERT (RoBERTa)
Interfejs API klasyfikacji tekstu ML.NET jest obsługiwany przez TorchSharp. TorchSharp to biblioteka platformy .NET, która zapewnia dostęp do biblioteki obsługującej bibliotekę PyTorch. TorchSharp zawiera bloki konstrukcyjne trenowania sieci neuronowych od podstaw na platformie .NET. ML.NET upraszcza niektóre aspekty złożoności TorchSharp do poziomu scenariusza. Używa wstępnie wytrenowanej wersji modelu NAS-BERT i dostraja go przy użyciu Twoich danych.
Klasyfikacja obrazów to nadzorowane uczenie maszynowe zadanie używane do przewidywania klasy (kategorii) obrazu. Dane wejściowe to zestaw przykładów z etykietami. Każda etykieta zwykle zaczyna się jako tekst. Następnie przechodzi przez proces TermTransform, który konwertuje go na Klucz (typ liczbowy). Dane wyjściowe algorytmu klasyfikacji obrazów to klasyfikator, którego można użyć do przewidywania klasy nowych obrazów. Zadanie klasyfikacji obrazów jest typem klasyfikacji wieloklasowej. Przykłady scenariuszy klasyfikacji obrazów obejmują:
Określanie rasy psa jako "Syberyjski Husky", "Golden Retriever", "Poodle", itp.
Określenie, czy produkt produkcyjny jest wadliwy, czy nie.
Określanie typów kwiatów jako "Róża", "Słonecznik" itp.
Trenerzy klasyfikacji obrazów
Model klasyfikacji obrazów można wytrenować przy użyciu następujących algorytmów trenowania:
Wyniki wszystkich klas. Wyższa wartość oznacza większe prawdopodobieństwo, aby należeć do skojarzonej klasy. Jeśli element i-th ma największą wartość, przewidywany indeks etykiety będzie i. (i jest indeksem opartym na zera).
PredictedLabel
typ klucza
Indeks przewidywanej etykiety. Jeśli jej wartość wynosi i, rzeczywista etykieta to i. kategoria w etykietach wejściowych z typem wartości klucza.
Regresja
Regresja to nadzorowane uczenie maszynowe zadanie używane do przewidywania wartości etykiety z zestawu powiązanych funkcji. Etykieta może być dowolną rzeczywistą wartością i nie pochodzi z skończonego zestawu wartości, jak w zadaniach klasyfikacji. Algorytmy regresji modelują zależność etykiety od powiązanych funkcji, aby określić, w jaki sposób etykieta zmieni się, gdy wartości cech są zróżnicowane. Dane wejściowe algorytmu regresji to zestaw przykładów z etykietami znanych wartości. Dane wyjściowe algorytmu regresji to funkcja, której można użyć do przewidywania wartości etykiety dla dowolnego nowego zestawu funkcji wejściowych. Przykłady scenariuszy regresji obejmują:
Przewidywanie cen domów na podstawie atrybutów domu, takich jak liczba sypialni, lokalizacja lub rozmiar.
Przewidywanie przyszłych cen akcji na podstawie danych historycznych i bieżących trendów rynkowych.
Przewidywanie sprzedaży produktu na podstawie budżetów reklamowych.
Znajdowanie powiązanych artykułów w publikacji (podobieństwo zdań).
Trenerzy regresji
Model regresji można wytrenować przy użyciu następujących algorytmów:
Klastrowanie to nienadzorowane zadanie uczenia maszynowego używane do grupowania wystąpień danych w klastry zawierające podobne cechy. Klastrowanie może również służyć do identyfikowania relacji w zestawie danych, które mogą nie być logicznie uzyskiwane przez przeglądanie lub prostą obserwację. Dane wejściowe i wyjściowe algorytmu klastrowania zależą od wybranej metodologii. Można stosować podejście oparte na dystrybucji, centroidie, łączności lub gęstości. ML.NET obecnie obsługuje podejście oparte na centroidu, stosując klastrowanie metodą K-Średnich. Przykłady scenariuszy klastrowania obejmują:
Zrozumienie segmentów gości hotelowych w oparciu o nawyki i cechy wyborów hotelowych.
Identyfikowanie segmentów klientów i danych demograficznych w celu ułatwienia tworzenia ukierunkowanych kampanii reklamowych.
Kategoryzowanie spisu na podstawie metryk produkcyjnych.
Trener klastrowania
Model klastrowania można wytrenować przy użyciu następującego algorytmu:
Indeks najbliższego klastra przewidywany przez model.
Wykrywanie anomalii
Zadanie wykrywania anomalii tworzy model wykrywania anomalii przy użyciu analizy głównych składników (PCA). Wykrywanie anomalii oparte na PCA pomaga zbudować model w scenariuszach, w których łatwo jest uzyskać dane treningowe z jednej klasy, na przykład prawidłowe transakcje, ale trudno jest uzyskać wystarczającą liczbę próbek anomalii, na które się skupiamy.
Ustanowiona technika uczenia maszynowego pcA jest często używana w eksploracyjnej analizie danych, ponieważ ujawnia wewnętrzną strukturę danych i wyjaśnia wariancję danych. PCA polega na analizie danych, które zawierają wiele zmiennych. Szuka korelacji między zmiennymi i określa kombinację wartości, które najlepiej przechwytują różnice w wynikach. Te połączone wartości funkcji służą do tworzenia bardziej kompaktowej przestrzeni funkcji nazywanej głównymi składnikami.
Wykrywanie anomalii obejmuje wiele ważnych zadań w uczeniu maszynowym:
Identyfikowanie transakcji, które są potencjalnie fałszywe.
Wzorce uczenia wskazujące, że doszło do włamania do sieci.
Znajdowanie nietypowych klastrów pacjentów.
Sprawdzanie wartości wprowadzonych w systemie.
Ponieważ anomalie są rzadkimi zdarzeniami według definicji, zbieranie reprezentatywnej próbki danych do użycia do modelowania może być trudne. Algorytmy uwzględnione w tej kategorii zostały specjalnie zaprojektowane, aby sprostać podstawowym wyzwaniom związanym z tworzeniem i trenowaniem modeli przy użyciu niezrównoważonych zestawów danych.
Trener wykrywania anomalii
Model wykrywania anomalii można wytrenować przy użyciu następującego algorytmu:
true, jeśli dane wejściowe są anomalią lub false, jeśli tak nie jest.
Ranking
Zadanie rankingowe konstruuje ranker z zestawu oznaczonych przykładów. Ten przykładowy zestaw składa się z grup wystąpień, które można ocenić przy użyciu określonych kryteriów. Etykiety klasyfikacji to { 0, 1, 2, 3, 4 } dla każdego wystąpienia. Ranker jest trenowany do szeregowania nowych grup instancji z nieznanymi wynikami dla każdej instancji. ML.NET algorytmy uczące się do rankingów to oparte na rankingu uczeniu maszynowym.
Klasyfikowanie algorytmów trenowania
Model klasyfikacji można wytrenować przy użyciu następujących algorytmów:
Typ danych etykiety wejściowej musi być klucz typ lub Single. Wartość etykiety określa istotność, gdzie wyższe wartości wskazują na większe znaczenie. Jeśli etykieta jest kluczem typu, to indeks klucza jest wartością istotności, gdzie najmniejszy indeks jest najmniej istotny. Jeśli etykieta jest Single, większe wartości wskazują na większe znaczenie.
Dane funkcji muszą być stałym wektorem rozmiaru Single, a kolumna grupy wierszy wejściowych musi być typu klucza.
Niezwiązany wynik obliczony przez model w celu określenia przewidywania.
Zalecenie
Zadanie rekomendacji umożliwia utworzenie listy zalecanych produktów lub usług. ML.NET używamatrix factorization (MF), wspólnego filtrowania algorytmu rekomendacji w przypadku historycznych danych klasyfikacji produktów w katalogu. Na przykład masz historyczne dane klasyfikacji filmów dla użytkowników i chcesz zalecić inne filmy, które prawdopodobnie będą oglądać dalej.
Algorytmy szkoleniowe systemów rekomendacji
Model rekomendacji można wytrenować przy użyciu następującego algorytmu:
Zadanie prognozowania używa poprzednich danych szeregów czasowych, aby przewidywać przyszłe zachowanie. Scenariusze mające zastosowanie do prognozowania obejmują prognozowanie pogody, prognozy sprzedaży sezonowej i konserwację predykcyjną.
Trenerzy prognozowania
Model prognozowania można wytrenować przy użyciu następującego algorytmu:
Wykrywanie obiektów to zadanie nadzorowanego uczenia maszynowego, które jest używane do przewidywania klasy (kategorii) obrazu, ale także określa ramkę ograniczającą, gdzie ta kategoria znajduje się na obrazie. Zamiast klasyfikować pojedynczy obiekt na obrazie, wykrywanie obiektów może wykrywać wiele obiektów na obrazie. Przykłady wykrywania obiektów to:
Wykrywanie samochodów, znaków lub osób na zdjęciach drogi.
Wykrywanie wad na obrazach produktów.
Wykrywanie obszarów obaw na zdjęciach X-Ray.
Trenowanie modelu wykrywania obiektów jest obecnie dostępne tylko w programie Model Builder przy użyciu usługi Azure Machine Learning.
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
Zarządzanie pozyskiwaniem i przygotowywaniem danych, trenowanie i wdrażanie modelu oraz monitorowaniem rozwiązań uczenia maszynowego za pomocą języka Python, usługi Azure Machine Learning i MLflow.