Co to jest zautomatyzowane uczenie maszynowe (AutoML)?

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

Zautomatyzowane uczenie maszynowe, nazywane również zautomatyzowanym uczeniem maszynowym lub rozwiązaniem AutoML, to proces automatyzowania czasochłonnych, iteracyjnych zadań tworzenia modelu uczenia maszynowego. Umożliwia ona analitykom danych, analitykom i deweloperom tworzenie modeli uczenia maszynowego o wysokiej skali, wydajności i produktywności przy jednoczesnym utrzymaniu jakości modelu. Zautomatyzowane uczenie maszynowe w usłudze Azure Machine Edukacja opiera się na przełomie naszego działu badań firmy Microsoft.

Jak działa rozwiązanie AutoML?

Podczas trenowania usługa Azure Machine Edukacja tworzy wiele potoków równolegle, które próbują użyć różnych algorytmów i parametrów. Usługa iteruje za pomocą algorytmów uczenia maszynowego sparowanych z wyborami funkcji, gdzie każda iteracja generuje model z wynikiem trenowania. Lepsze wyniki dla metryki, dla której chcesz zoptymalizować, tym lepiej model jest uznawany za "dopasowany" dane. Zatrzyma się po osiągnięciu kryteriów zakończenia zdefiniowanych w eksperymencie.

Korzystając z usługi Azure Machine Edukacja, możesz zaprojektować i uruchomić eksperymenty zautomatyzowanego trenowania uczenia maszynowego, wykonując następujące kroki:

  1. Zidentyfikuj problem uczenia maszynowego, który ma zostać rozwiązany: klasyfikacja, prognozowanie, regresja, przetwarzanie obrazów lub nlp.

  2. Wybierz, czy chcesz korzystać z środowiska internetowego code-first, czy środowiska internetowego bez programu Code Studio: użytkownicy, którzy preferują środowisko oparte na kodzie, mogą korzystać z zestawu Azure Machine Edukacja SDKv2 lub maszyny azure Edukacja CLIv2. Wprowadzenie do samouczka: trenowanie modelu wykrywania obiektów za pomocą rozwiązania AutoML i języka Python. Użytkownicy, którzy wolą środowisko ograniczone/bez kodu, mogą używać interfejsu internetowego w usłudze Azure Machine Edukacja Studio pod adresem https://ml.azure.com. Wprowadzenie do samouczka: tworzenie modelu klasyfikacji za pomocą zautomatyzowanego uczenia maszynowego w usłudze Azure Machine Edukacja.

  3. Określ źródło oznaczonych danych treningowych: możesz przenieść dane do usługi Azure Machine Edukacja na wiele różnych sposobów.

  4. Skonfiguruj parametry zautomatyzowanego uczenia maszynowego, które określają, ile iteracji w różnych modelach, ustawienia hiperparametrów, zaawansowane przetwarzanie wstępne/cechowanie oraz jakie metryki mają być sprawdzane podczas określania najlepszego modelu.

  5. Prześlij zadanie szkoleniowe.

  6. Przeglądanie wyników

Na poniższym diagramie przedstawiono ten proces. Automated Machine learning

Możesz również sprawdzić zarejestrowane informacje o zadaniu, które zawierają metryki zebrane podczas zadania. Zadanie trenowania tworzy zserializowany obiekt (.pkl plik) języka Python zawierający model i przetwarzanie wstępne danych.

Podczas tworzenia modeli można również dowiedzieć się, jak ważne lub istotne są funkcje dla wygenerowanych modeli.

Kiedy należy używać rozwiązania AutoML: klasyfikacja, regresja, prognozowanie, przetwarzanie obrazów i nlP

Zastosuj zautomatyzowane uczenie maszynowe, gdy chcesz, aby usługa Azure Machine Edukacja trenowała i dostrajała model przy użyciu określonej metryki docelowej. Zautomatyzowane uczenie maszynowe demokratyzuje proces tworzenia modelu uczenia maszynowego i umożliwia użytkownikom, bez względu na wiedzę na temat nauki o danych, zidentyfikowanie kompleksowego potoku uczenia maszynowego dla dowolnego problemu.

Specjaliści ds. uczenia maszynowego i deweloperzy w różnych branżach mogą używać zautomatyzowanego uczenia maszynowego do:

  • Implementowanie rozwiązań uczenia maszynowego bez obszernej wiedzy programistycznej
  • Oszczędzaj czas i zasoby
  • Korzystanie z najlepszych rozwiązań dotyczących nauki o danych
  • Zapewnianie elastycznego rozwiązywania problemów

Klasyfikacja

Klasyfikacja to rodzaj uczenia nadzorowanego, w którym modele uczą się przy użyciu danych treningowych i stosują te informacje do nowych danych. Usługa Azure Machine Learning oferuje funkcje doboru cech przeznaczone specjalnie dla tych zadań, takie jak funkcje doboru cech tekstu głębokiej sieci neuronowej na potrzeby klasyfikacji. Dowiedz się więcej o opcjach cechowania. Listę algorytmów obsługiwanych przez rozwiązanie AutoML można również znaleźć tutaj.

Głównym celem modeli klasyfikacji jest przewidywanie, na podstawie informacji uzyskanych z danych treningowych, do których kategorii trafią nowe dane. Typowe przykłady klasyfikacji obejmują wykrywanie oszustw, rozpoznawanie pisma ręcznego i wykrywanie obiektów.

Zobacz przykład klasyfikacji i zautomatyzowanego uczenia maszynowego w tym notesie języka Python: Marketing bankowy.

Regresja

Podobnie jak w przypadku klasyfikacji, zadania regresji są również typowym zadaniem uczenia nadzorowanego. Usługa Azure Machine Edukacja oferuje cechowanie specyficzne dla problemów regresji. Dowiedz się więcej o opcjach cechowania. Listę algorytmów obsługiwanych przez rozwiązanie AutoML można również znaleźć tutaj.

Różni się od klasyfikacji, w której przewidywane wartości wyjściowe są podzielone na kategorie, modele regresji przewidują wartości liczbowe danych wyjściowych na podstawie niezależnych predyktorów. W regresji celem jest pomoc w ustanowieniu relacji między zmiennymi tych niezależnych predyktorów przez oszacowanie wpływu jednej zmiennej na inne. Przykładem może być cena samochodu na podstawie takich cech jak spalanie, ocena bezpieczeństwa itp.

Zobacz przykład regresji i zautomatyzowanego uczenia maszynowego, aby uzyskać przewidywania w tych notesach języka Python: Wydajność sprzętu.

Prognozowanie szeregów czasowych

Tworzenie prognoz jest integralną częścią każdej firmy, niezależnie od tego, czy dotyczy to przychodu, zapasów, sprzedaży czy zapotrzebowania klientów. Za pomocą zautomatyzowanego uczenia maszynowego możesz połączyć techniki oraz podejścia i uzyskać zalecaną prognozę szeregów czasowych o wysokiej jakości. Listę algorytmów obsługiwanych przez rozwiązanie AutoML można znaleźć tutaj.

Zautomatyzowany eksperyment szeregów czasowych jest traktowany jako problem regresji wielowariancji. Poprzednie wartości szeregów czasowych są "przestawne", aby stać się dodatkowymi wymiarami regresji wraz z innymi predyktorami. Takie podejście, w przeciwieństwie do klasycznych metod szeregów czasowych, ma zaletę naturalnie dołączania wielu zmiennych kontekstowych i ich relacji ze sobą podczas trenowania. Zautomatyzowane uczenie maszynowe uczy się pojedynczego, ale często wewnętrznie rozgałęzionego modelu dla wszystkich elementów w zestawie danych i horyzontach przewidywania. W związku z tym można oszacować parametry modelu i uogólnienie serii, które nie są dostępne, jest dostępnych więcej danych.

Zaawansowana konfiguracja prognozowania obejmuje:

  • wykrywanie świąt i dobór cech
  • time-series i DNN uczniów (Auto-ARIMA, Prorok, ForecastTCN)
  • wiele modeli obsługuje grupowanie
  • weryfikacja krzyżowa przy użyciu źródła kroczącego
  • konfigurowalne opóźnienia
  • zagregowane funkcje kroczącego przedziału czasu

Zobacz przykład prognozowania i zautomatyzowanego uczenia maszynowego w tym notesie języka Python: Zapotrzebowanie na energię.

Przetwarzanie obrazów

Obsługa zadań przetwarzania obrazów umożliwia łatwe generowanie modeli wytrenowanych na danych obrazu w scenariuszach, takich jak klasyfikacja obrazów i wykrywanie obiektów.

Dzięki tej możliwości można wykonywać następujące czynności:

  • Bezproblemowa integracja z usługą Azure Machine Edukacja możliwości etykietowania danych
  • Używanie danych oznaczonych etykietami do generowania modeli obrazów
  • Zoptymalizuj wydajność modelu, określając algorytm modelu i dostrajając hiperparametry.
  • Pobierz lub wdróż wynikowy model jako usługę internetową w usłudze Azure Machine Edukacja.
  • Operacjonalizacja na dużą skalę dzięki możliwościom usługi Azure Machine Edukacja MLOps i potoków uczenia maszynowego.

Tworzenie modeli automatycznego uczenia maszynowego na potrzeby zadań przetwarzania obrazów jest obsługiwane za pośrednictwem zestawu AZURE Machine Edukacja python SDK. Dostęp do wynikowych zadań eksperymentowania, modeli i danych wyjściowych można uzyskać z poziomu interfejsu użytkownika usługi Azure Machine Edukacja Studio.

Dowiedz się, jak skonfigurować trenowanie automatycznego uczenia maszynowego dla modeli przetwarzania obrazów.

Computer vision tasks examples. Image from: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Obraz z: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

Zautomatyzowane uczenie maszynowe dla obrazów obsługuje następujące zadania przetwarzania obrazów:

Zadanie Opis
Klasyfikacja obrazów z użyciem wielu klas Zadania, w których obraz jest klasyfikowany tylko za pomocą pojedynczej etykiety z zestawu klas — na przykład każdy obraz jest klasyfikowany jako obraz, na którym jest „kot”, „pies” lub „kaczka”
Klasyfikacja obrazów z użyciem wielu etykiet Zadania, w których obraz może mieć jedną lub więcej etykiet z zestawu etykiet — na przykład obraz może być oznaczony jako ten, na którym jest zarówno „kot”, jak i „pies”
Wykrywanie obiektów Zadania do identyfikowania obiektów na obrazie i lokalizowania każdego obiektu za pomocą pola ograniczenia, np. lokalizowanie wszystkich psów i kotów na obrazie i rysowanie pola ograniczenia wokół każdego z nich.
Segmentacja wystąpień Zadania do identyfikowania obiektów na obrazie na poziomie pikseli i rysowania wielokąta wokół każdego obiektu na obrazie.

Przetwarzanie języka naturalnego: NLP

Obsługa zadań przetwarzania języka naturalnego (NLP) w zautomatyzowanym uczeniu maszynowym umożliwia łatwe generowanie modeli wytrenowanych na danych tekstowych na potrzeby klasyfikacji tekstu i scenariuszy rozpoznawania jednostek nazwanych. Tworzenie wytrenowanych modeli NLP zautomatyzowanego uczenia maszynowego jest obsługiwane za pośrednictwem zestawu SDK języka Python Edukacja Azure Machine. Dostęp do wynikowych zadań eksperymentowania, modeli i danych wyjściowych można uzyskać z poziomu interfejsu użytkownika usługi Azure Machine Edukacja Studio.

Funkcja NLP obsługuje następujące funkcje:

  • Kompleksowe trenowanie głębokiej sieci neuronowej NLP przy użyciu najnowszych wstępnie wytrenowanych modeli BERT
  • Bezproblemowa integracja z etykietowaniem danych usługi Azure Machine Edukacja
  • Używanie danych oznaczonych etykietami do generowania modeli NLP
  • Obsługa wielu języków językowych w 104 językach
  • Uczenie rozproszone przy użyciu struktury Horovod

Dowiedz się, jak skonfigurować trenowanie automatycznego uczenia maszynowego dla modeli NLP.

Trenowanie, walidacja i testowanie danych

Dzięki zautomatyzowanemu uczeniu maszynowemu dostarczasz dane szkoleniowe do trenowania modeli uczenia maszynowego i możesz określić typ weryfikacji modelu do wykonania. Zautomatyzowane uczenie maszynowe przeprowadza walidację modelu w ramach trenowania. Oznacza to, że zautomatyzowane uczenie maszynowe używa danych walidacji do dostrajania hiperparametrów modelu na podstawie zastosowanego algorytmu w celu znalezienia kombinacji, która najlepiej pasuje do danych treningowych. Jednak te same dane weryfikacji są używane dla każdej iteracji dostrajania, która wprowadza stronniczość oceny modelu, ponieważ model nadal ulepsza dane weryfikacji i pasuje do nich.

Aby potwierdzić, że takie stronniczość nie jest stosowana do ostatecznego zalecanego modelu, zautomatyzowane uczenie maszynowe obsługuje korzystanie z danych testowych w celu oceny końcowego modelu zalecanego przez zautomatyzowane uczenie maszynowe na końcu eksperymentu. Po podaniu danych testowych w ramach konfiguracji eksperymentu rozwiązania AutoML ten zalecany model jest domyślnie testowany na końcu eksperymentu (wersja zapoznawcza).

Ważne

Testowanie modeli przy użyciu zestawu danych testowych w celu oceny wygenerowanych modeli jest funkcją w wersji zapoznawczej. Ta funkcja jest eksperymentalną funkcją w wersji zapoznawczej i może ulec zmianie w dowolnym momencie.

Dowiedz się, jak skonfigurować eksperymenty rozwiązania AutoML do korzystania z danych testowych (wersja zapoznawcza) za pomocą zestawu SDK lub programu Azure Machine Edukacja Studio.

Inżynieria cech

Inżynieria cech to proces używania wiedzy o domenie danych w celu tworzenia funkcji, które ułatwiają algorytmom uczenia maszynowego lepsze uczenie się. W usłudze Azure Machine Edukacja stosowane są techniki skalowania i normalizacji w celu ułatwienia inżynierii cech. Łącznie te techniki i inżynieria cech są określane jako cechowanie.

W przypadku eksperymentów zautomatyzowanego uczenia maszynowego cechowanie jest stosowane automatycznie, ale można je również dostosować na podstawie danych. Dowiedz się więcej o tym, jakie cechowanie jest zawarte (zestaw SDK w wersji 1) i jak rozwiązanie AutoML pomaga zapobiegać nadmiernemu dopasowywaniu i niezrównoważonym danym w modelach.

Uwaga

Zautomatyzowane kroki cechowania uczenia maszynowego (normalizacja cech, obsługa brakujących danych, konwertowanie tekstu na liczbowe itp.) stają się częścią modelu bazowego. W przypadku korzystania z modelu do przewidywania te same kroki cechowania stosowane podczas trenowania są stosowane automatycznie do danych wejściowych.

Dostosowywanie cechowania

Dostępne są również dodatkowe techniki inżynierii cech, takie jak kodowanie i przekształcenia.

Włącz to ustawienie za pomocą:

Modele grupowe

Zautomatyzowane uczenie maszynowe obsługuje modele grupowe, które są domyślnie włączone. Uczenie zespołowe poprawia wyniki uczenia maszynowego i wydajność predykcyjną, łącząc wiele modeli, a nie przy użyciu pojedynczych modeli. Iteracji zespołu są wyświetlane jako ostatnie iteracji zadania. Zautomatyzowane uczenie maszynowe używa metod głosowania i stosu zespołów do łączenia modeli:

  • Głosowanie: przewiduje na podstawie ważonej średniej przewidywanych prawdopodobieństwa klas (dla zadań klasyfikacji) lub przewidywanych celów regresji (dla zadań regresji).
  • Stos: tworzenie stosu łączy heterogeniczne modele i trenuje metamodel na podstawie danych wyjściowych z poszczególnych modeli. Bieżące domyślne meta-modele to LogisticsRegression dla zadań klasyfikacji i ElasticNet na potrzeby zadań regresji/prognozowania.

Algorytm wyboru zespołu Caruana z posortowaną inicjacją zespołu służy do decydowania, które modele mają być używane w ramach zespołu. Na wysokim poziomie ten algorytm inicjuje zespół z maksymalnie pięcioma modelami z najlepszymi wynikami i sprawdza, czy te modele znajdują się w granicach 5% progu najlepszego wyniku, aby uniknąć słabego początkowego zespołu. Następnie dla każdej iteracji zespołu zostanie dodany nowy model do istniejącego zespołu, a wynikowy wynik jest obliczany. Jeśli nowy model poprawił istniejący wynik zespołu, zespół zostanie zaktualizowany w celu uwzględnienia nowego modelu.

Zobacz pakiet AutoML, aby zmienić domyślne ustawienia zespołu w zautomatyzowanym uczeniu maszynowym.

AutoML i ONNX

Za pomocą usługi Azure Machine Edukacja możesz użyć zautomatyzowanego uczenia maszynowego do utworzenia modelu języka Python i przekonwertowania go na format ONNX. Gdy modele są w formacie ONNX, mogą być uruchamiane na różnych platformach i urządzeniach. Dowiedz się więcej o przyspieszaniu modeli uczenia maszynowego za pomocą platformy ONNX.

Zobacz sposób konwertowania na format ONNX w tym przykładzie notesu Jupyter. Dowiedz się, które algorytmy są obsługiwane w środowisku ONNX.

Środowisko uruchomieniowe ONNX obsługuje również język C#, dzięki czemu można używać modelu wbudowanego automatycznie w aplikacjach języka C# bez konieczności ponownego odzyskiwania ani dowolnego z opóźnień sieci, które wprowadzono w punktach końcowych REST. Dowiedz się więcej na temat używania modelu ONNX rozwiązania AutoML w aplikacji .NET z ML.NET i wnioskowania modeli ONNX za pomocą interfejsu API języka C# środowiska uruchomieniowego ONNX.

Następne kroki

Istnieje wiele zasobów, które umożliwiają rozpoczęcie pracy z rozwiązaniem AutoML.

Samouczki/ instrukcje

Samouczki to kompleksowe przykłady wprowadzających scenariuszy rozwiązania AutoML.

Artykuły z instrukcjami zawierają dodatkowe szczegółowe informacje na temat funkcji zautomatyzowanych ofert uczenia maszynowego. Przykład:

Przykłady notesów Jupyter

Przejrzyj szczegółowe przykłady kodu i przypadki użycia w repozytorium notesów GitHub, aby zapoznać się z przykładami zautomatyzowanego uczenia maszynowego.

Dokumentacja zestawu Python SDK

Pogłębij wiedzę na temat wzorców projektowych i specyfikacji klas zestawu SDK, aby uzyskać dokumentację referencyjną klas rozwiązania AutoML.

Uwaga

Funkcje zautomatyzowanego uczenia maszynowego są również dostępne w innych rozwiązaniach firmy Microsoft, takich jak ML.NET, HDInsight, Power BI i SQL Server