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 automatyzacji 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 Learning opiera się na przełomie naszego działu badań firmy Microsoft.
- W przypadku klientów korzystających z kodu zestaw SDK języka Python usługi Azure Machine Learning. Wprowadzenie do samouczka: trenowanie modelu wykrywania obiektów (wersja zapoznawcza) przy użyciu rozwiązania AutoML i języka Python.
Jak działa rozwiązanie AutoML?
Podczas trenowania usługa Azure Machine Learning tworzy wiele potoków równolegle, które umożliwiają wypróbowanie różnych algorytmów i parametrów. Usługa iteruje za pomocą algorytmów uczenia maszynowego w połączeniu z wyborami funkcji, gdzie każda iteracja generuje model z wynikiem trenowania. Tym lepsze wyniki dla metryki, dla której chcesz zoptymalizować, tym lepiej model jest uznawany za "dopasowany" do danych. Zostanie zatrzymany po osiągnięciu kryteriów wyjścia zdefiniowanych w eksperymencie.
Korzystając z usługi Azure Machine Learning, możesz zaprojektować i uruchomić eksperymenty zautomatyzowanego trenowania uczenia maszynowego, wykonując następujące kroki:
Zidentyfikuj problem uczenia maszynowego , który ma zostać rozwiązany: klasyfikacja, prognozowanie, regresja, przetwarzanie obrazów lub nlp.
Wybierz, czy chcesz korzystać z środowiska internetowego code-first, czy środowiska internetowego bez kodu: użytkownicy, którzy preferują środowisko code-first, mogą korzystać z zestawu AZURE Machine Learning SDKv2 lub środowiska CLIv2 usługi Azure Machine Learning. Wprowadzenie do samouczka: trenowanie modelu wykrywania obiektów przy użyciu rozwiązania AutoML i języka Python. Użytkownicy, którzy preferują środowisko ograniczonego/bez kodu, mogą używać interfejsu internetowego w Azure Machine Learning studio pod adresem https://ml.azure.com. Wprowadzenie do samouczka: tworzenie modelu klasyfikacji za pomocą zautomatyzowanego uczenia maszynowego w usłudze Azure Machine Learning.
Określ źródło oznaczonych danych treningowych: dane można przenieść do usługi Azure Machine Learning na wiele różnych sposobów.
Skonfiguruj parametry zautomatyzowanego uczenia maszynowego , które określają liczbę iteracji w różnych modelach, ustawienia hiperparametrów, zaawansowane przetwarzanie wstępne/cechowanie oraz metryki, które należy przyjrzeć podczas określania najlepszego modelu.
Prześlij zadanie szkoleniowe.
Przeglądanie wyników
Na poniższym diagramie przedstawiono ten proces.
Możesz również sprawdzić zarejestrowane informacje o zadaniu, które zawierają metryki zebrane podczas zadania. Zadanie trenowania tworzy serializowany obiekt (.pkl
plik) języka Python, który zawiera 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 używać rozwiązania AutoML: klasyfikacja, regresja, prognozowanie, przetwarzanie obrazów & NLP
Zastosuj zautomatyzowane uczenie maszynowe, jeśli chcesz, aby usługa Azure Machine Learning trenowała i dostrajała model przy użyciu określonej metryki docelowej. Zautomatyzowane uczenie maszynowe demokratyzuje proces opracowywania modelu uczenia maszynowego i umożliwia użytkownikom, bez względu na ich wiedzę na temat nauki o danych, zidentyfikowanie kompleksowego potoku uczenia maszynowego dla dowolnego problemu.
Specjaliści ml 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 Learning oferuje cechowanie specyficzne dla problemów z regresją. 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ą liczbowe wartości wyjściowe 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. Wcześniejsze wartości szeregów czasowych są "przestawne", aby stać się dodatkowymi wymiarami regresora 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. Dzięki temu dostępnych jest więcej danych do szacowania parametrów modelu i uogólniania, aby niesłaniać serii staje się możliwe.
Zaawansowana konfiguracja prognozowania obejmuje:
- wykrywanie świąt i cechowanie
- time-series and DNN learners (Auto-ARIMA, Prophet, ForecastTCN)
- obsługa wielu modeli za pomocą grupowania
- weryfikacja krzyżowa przy użyciu źródła kroczącego
- konfigurowalne opóźnienia
- funkcje agregacji okna kroczącego
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 obrazów w scenariuszach, takich jak klasyfikacja obrazów i wykrywanie obiektów.
Daje to następujące możliwości:
- Bezproblemowa integracja z funkcją etykietowania danych usługi Azure Machine Learning
- 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 Learning.
- Operacjonalizacja na dużą skalę, wykorzystując możliwości usługi Azure Machine Learning MLOps i potoków uczenia maszynowego .
Tworzenie modeli automatycznego uczenia maszynowego na potrzeby zadań przetwarzania obrazów jest obsługiwane za pośrednictwem zestawu SDK języka Python usługi Azure Machine Learning. Dostęp do wynikowych zadań eksperymentowania, modeli i danych wyjściowych można uzyskać z interfejsu użytkownika Azure Machine Learning studio.
Dowiedz się, jak skonfigurować trenowanie automatycznego uczenia maszynowego dla modeli przetwarzania obrazów.
: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 zautomatyzowanych modeli NLP wytrenowanych przez uczenie maszynowe jest obsługiwane za pośrednictwem zestawu SDK języka Python usługi Azure Machine Learning. Dostęp do wynikowych zadań eksperymentowania, modeli i danych wyjściowych można uzyskać z interfejsu użytkownika Azure Machine Learning 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 Learning
- 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 udostępniasz 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 weryfikacji 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 poprawia i pasuje do danych walidacji.
Aby potwierdzić, że takie odchylenie nie jest stosowane do ostatecznego zalecanego modelu, zautomatyzowane uczenie maszynowe obsługuje używanie danych testowych do oceny końcowego modelu zalecanego przez zautomatyzowane uczenie maszynowe na końcu eksperymentu. Po podaniu danych testowych w ramach konfiguracji eksperymentu zautomatyzowanego uczenia maszynowego 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) przy użyciu zestawu SDK lub Azure Machine Learning studio.
Inżynieria cech
Inżynieria cech to proces używania wiedzy o domenie danych w celu tworzenia funkcji, które pomagają algorytmom uczenia maszynowego uczyć się lepiej. W usłudze Azure Machine Learning stosowane są techniki skalowania i normalizacji w celu ułatwienia inżynierii cech. Wspólnie 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ż dostosowywać 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 nierównowagowaniu danych w modelach.
Uwaga
Zautomatyzowane kroki cechowania uczenia maszynowego (normalizacja funkcji, 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ą automatycznie stosowane do danych wejściowych.
Dostosowywanie cech
Dostępne są również dodatkowe techniki inżynierii cech, takie jak kodowanie i transformacje.
Włącz to ustawienie za pomocą:
Azure Machine Learning studio: Włącz automatyczną cechowanie w sekcji Wyświetlanie dodatkowej konfiguracji, wykonując następujące kroki.
Zestaw SDK języka Python: określ cechowanie w obiekcie zadania automatycznego uczenia maszynowego . Dowiedz się więcej o włączaniu cechowania.
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 w przeciwieństwie do korzystania z pojedynczych modeli. Iteracje zespołu są wyświetlane jako ostatnia iteracja zadania. Zautomatyzowane uczenie maszynowe używa metod głosowania i stosu grup do łączenia modeli:
- Głosowanie: przewiduje na podstawie ważonej średniej przewidywanego prawdopodobieństwa klasy (dla zadań klasyfikacji) lub przewidywanych celów regresji (dla zadań regresji).
- Tworzenie stosu: łączenie heterogenicznych modeli i szkolenie metamodelu 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 indywidualnymi i sprawdza, czy te modele mieszczą się w zakresie 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 & ONNX
Dzięki usłudze Azure Machine Learning 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, można je uruchamiać na różnych platformach i urządzeniach. Dowiedz się więcej o przyspieszaniu modeli uczenia maszynowego za pomocą platformy ONNX.
Zobacz, jak przekonwertować format NA 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#, więc możesz użyć modelu wbudowanego automatycznie w aplikacjach języka C# bez konieczności ponownego odzyskiwania ani żadnych opóźnień sieci, które wprowadzają punkty końcowe REST. Dowiedz się więcej o korzystaniu z modelu ONNX rozwiązania AutoML w aplikacji platformy .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ące scenariuszy automatycznego uczenia maszynowego.
Aby uzyskać informacje o pierwszym kodzie, wykonaj czynności opisane w artykule Samouczek: trenowanie modelu wykrywania obiektów przy użyciu rozwiązania AutoML i języka Python
Aby uzyskać informacje o niskim lub braku kodu, zobacz Samouczek: trenowanie modelu klasyfikacji bez uczenia maszynowego za pomocą automatycznego uczenia maszynowego bez kodu w Azure Machine Learning studio.
Artykuły z instrukcjami zawierają dodatkowe szczegóły dotyczące funkcji zautomatyzowanych ofert uczenia maszynowego. Na przykład
Konfigurowanie ustawień eksperymentów trenowania automatycznego
Dowiedz się, jak trenować modele przetwarzania obrazów przy użyciu języka Python.
Dowiedz się, jak wyświetlić wygenerowany kod na podstawie zautomatyzowanych modeli uczenia maszynowego (ZESTAW SDK w wersji 1).
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 SDK języka Python
Pogłębij swoją 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