Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



08.07.2019

Narzędzie EDR

ESET Enterprise Inspector
08.07.2019

Usuwanie skutków awarii

Veeam Availability Orchestrator v2
08.07.2019

Indywidualna konfiguracja

baramundi Management Suite 2019
05.07.2019

Technologia Ceph

SUSE Enterprise Storage 6
05.07.2019

Szybkie i bezpieczne...

Konica Minolta bizhub i-Series
05.07.2019

Edge computing

Atos BullSequana Edge
04.07.2019

Terabitowa ochrona

Check Point 16000 i 26000
04.07.2019

Obsługa wideokonferencji

Poly G7500
04.07.2019

Laptop biznesowy

Fujitsu LIFEBOOK U939X

Automatyczne uczenie maszynowe z usługą Azure ML

Data publikacji: 04-07-2019 Autor: Marcin Szeliga
Korelacja pomiędzy zmiennymi...

Zbudowanie modelu uczenia maszynowego wymaga czasu. Samo przygotowanie danych treningowych zajmuje od kilku dni do wielu tygodni. Do oceny i poprawy jakości danych używa się specjalistycznych narzędzi, ale nadal równie ważna jest wiedza ekspercka. Natomiast znalezienie optymalnej architektury modelu uczenia maszynowego daje się już zautomatyzować.

 

Architekturę modelu określają jego hiperparametry, stąd szukanie optymalnego modelu nazywa się optymalizacją hiperparametrów. Określają one budowę modelu oraz sposób jego uczenia, np. liczbę drzew decyzyjnych, które zostaną utworzone, procent losowo wybranych zmiennych, które zostaną uwzględnione przy tworzeniu węzłów drzewa decyzyjnego, czy szybkość, z jaką model będzie się uczył. Znalezienie optymalnej w danym wypadku kombinacji wartości hiperparametrów modelu jest trudnym zadaniem. Dowiedziono matematycznie, że nie istnieje uniwersalnie najlepsza kombinacja wartości hiperparametrów, czyli model, który doskonale sprawdził się w jednym wypadku, nauczony na innych danych może okazać się bezwartościowy. Dlatego optymalizacja hiperparametrów polega na eksperymentowaniu z ich różnymi wartościami.

> OPTYMALIZACJA HIPERPARAMETRÓW

Najprostszą metodą optymalizacji hiperparametrów jest metoda przeszukiwania siatki (grid search). Polega ona na wygenerowaniu siatki równo rozłożonych możliwych wartości hiperparametrów, a następnie nauczeniu wielu modeli kandydujących na tych samych danych, ale z różnymi wartościami hiperparametrów, ich ocenie i wyborze najlepszego modelu. Jeżeli weźmiemy pod uwagę, że modele mają od kilku do kilkunastu hiperparametrów, a niektóre z tych parametrów mogą przyjąć dziesiątki czy nawet setki różnych wartości, zrozumiemy, czemu metoda ta w praktyce jest rzadko stosowana. Mało kto może sobie pozwolić na uczenie dziesiątków, jeśli nie setek czy tysięcy modeli kandydujących, z których wiele będzie miało bardzo podobną jakość.

Znacznie popularniejsza jest metoda losowego przeszukiwania (random search). Polega ona na sprawdzeniu losowo wybranych kombinacji wartości hiperparametrów. Praktyka pokazuje, że sprawdzenie 5% możliwych kombinacji daje wyniki zbliżone do przeszukania pełnej siatki.

Żadna z tych metod nie pozwala jednak wybrać najlepszego w danym wypadku algorytmu uczenia maszynowego. Rozwiązaniem tego problemu są usługi automatycznego uczenia maszynowego, które upraszczają wszystkie etapy projektu:
 

  • przygotowanie danych – ułatwia to biblioteka Azure Machine Learning Data Prep SDK,
  • wybór optymalnego modelu – proces odbywa się całkowicie automatycznie,
  • naukę modeli kandydujących – uczone są na automatycznie przydzielanych zasobach obliczeniowych,
  • działanie modelu – wybierany jest najlepszy model, a jego działanie może zostać wyjaśnione.


Ostatni punkt jest szczególnie ciekawy.

> METODY WYJAŚNIANIA PREDYKCJI

Trafność i wiarygodność predykcji są ważne, ale nie powinny być jedynymi kryteriami oceny modeli uczenia maszynowego. Ostatnimi czasy coraz większą wagę przywiązuje się do interpretowalności ich predykcji. Po pierwsze dlatego, że traktowanie modeli uczenia maszynowego jak czarnych skrzynek lub magicznych wyroczni ogranicza zaufanie użytkowników do ich wyroków. Po drugie, bo wraz z coraz powszechniejszym użyciem modeli uczenia maszynowego rośnie liczba zastosowań, w których wyjaśnienie decyzji jest równie ważne co sama decyzja. Na przykład bank ma obowiązek podać przyczynę odmowy udzielenia kredytu.

Znalezienie uniwersalnej, dającej się zastosować dla dowolnego modelu uczenia maszynowego metody wyjaśniania predykcji jest przedmiotem intensywnych, trwających od ponad 20 lat, badań. Ich efektem jest opracowanie dwóch głównych metod wyjaśniania:
 

  • metoda LIME (Local Interpretable Model-Agnostic Explanations) – polega na uczeniu kopii modelu na wybranych, najbardziej przypominających oceniany, przykładach. Predykcje prostszego, nauczonego na kilku, góra kilkudziesięciu przykładach, modelu można łatwiej wyjaśnić. W tym celu porównuje się wyniki predykcji zwrócone przez lokalny model dla zmodyfikowanego na wiele sposobów przykładu;
  • metoda SHAP (Shapley Additive Explanation) – polega na obliczeniu wpływu wartości poszczególnych zmiennych na wynik konkretnej predykcji. Stosowanych jest kilka metod dekompozycji wpływu poszczególnych zmiennych, najprostsza polega na zastąpieniu wartości zmiennej wartością losową, wielokrotnym powtórzeniu predykcji i porównaniu uzyskanych wyników.


Inne metody wykorzystują teorię gier do znalezienia optymalnych wartości poszczególnych zmiennych. Usługa Azure ML do wyjaśnienia predykcji modelu używa metody SHAP.

> USŁUGA AZURE ML

Skorzystanie z usługi wymaga zakupu subskrypcji Azure. Osoby, które nie posiadają takiej subskrypcji, mają możliwość wyboru bezpłatnej oferty – korzystania z usług za darmo przez 12 miesięcy (szczegóły dostępne pod adresem azure.microsoft.com/pl-pl/free). Po zalogowaniu się do portalu Azure należy utworzyć nową przestrzeń roboczą usługi Azure ML, czyli dodać zasób Machine Learning service workspace. Tworząc przestrzeń roboczą, będziemy musieli podać nazwę, wskazać subskrypcję Azure, grupę zasobów i lokalizację, w której zostanie ona utworzona. Po chwili od kliknięcia przycisku Create przestrzeń będzie dostępna oraz będzie obejmować pięć zasobów:
 

  • przestrzeń roboczą do przeprowadzania eksperymentów – identyfikuje ją nazwa przestrzeni roboczej uzupełniona o nazwę grupy zasobów i identyfikator subskrypcji Azure,
  • konto magazynu Azure – przechowywane będą w nim pliki eksperymentów,
  • usługę Azure Key Vault – przechowywane tu będą poufne dane,
  • usługę Azure Container Registry – zarządza kontenerami zawierającymi wdrożone modele,
  • usługę Application Insights – pozwala monitorować działanie wdrożonych modeli.


Nazwy wszystkich utworzonych zasobów znajdziemy w sekcji Overview przestrzeni roboczej ML.

Eksperymenty tworzone są w języku Python, za pomocą graficznego interfejsu przypominającego Azure ML Studio, albo automatycznie. Dwie ostatnie opcje dostępne są w wersjach demonstracyjnych. Usługa Azure ML jest w 100% kompatybilna z popularnymi bibliotekami, takimi jak PyTorch, TensorFlow i scikit-learn, oraz edytorami tego języka, takimi jak Jupyter notebooks. W tej części artykułu przykładowy eksperyment będziemy realizować właśnie w notatniku Jupyter.

> NOTATNIKI JUPYTER

Notatniki Jupyter można uruchomić w usłudze Azure Note­books lub na własnym serwerze. Jeżeli planujemy użyć włas­nego serwera, wcześniej należy zainstalować na nim Azure ML SDK. Usługa Azure Notebooks zawiera tę bibliotekę. Azure
ML SDK wymaga wersji 3.6 języka Python.

Notatniki składają się z komórek. Klikając myszką w notatniku, uaktywnimy jedną z jego komórek. Jeżeli aktywną komórką jest komórka kodu, możemy wykonać zawarte w niej instrukcje za pomocą kombinacji klawiszy Shift+Enter lub Ctrl+Enter. Możemy też kliknąć znajdującą się w nagłówku notatnika ikonę Run. Wykonywana w danym momencie komórka oznaczona jest symbolem *. Po wykonaniu symbol gwiazdki zamieniany jest na numer. Dwukrotne kliknięcie komórki lewym przyciskiem myszy pozwala ją edytować. Dodawanie nowej komórki zaczynamy, klikając znajdującą się w nagłówku ikonę +.

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie; jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional. 

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"