Sdílet prostřednictvím


Co je automatizované strojové učení (AutoML)?

PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)

Automatizované strojové učení, označované také jako automatizované strojové učení nebo AutoML, je proces automatizace časově náročných iterativních úloh vývoje modelů strojového učení. Umožňuje datovým vědcům, analytikům a vývojářům vytvářet modely ML s vysokou škálovatelností, efektivitou a produktivitou při zachování kvality modelu. Automatizované strojové učení ve službě Azure Machine Learning je založeno na převratu od divize Microsoft Research.

Jak AutoML funguje?

Během trénování azure Machine Learning vytvoří paralelně mnoho kanálů, které za vás vyzkouší různé algoritmy a parametry. Služba iteruje prostřednictvím algoritmů ML spárovaných s výběry funkcí, kde každá iterace vytvoří model s trénovacím skóre. Lepší skóre metriky, pro kterou chcete optimalizovat, tím lépe se model považuje za vhodný pro vaše data. Jakmile dosáhne výstupních kritérií definovaných v experimentu, zastaví se.

Pomocí služby Azure Machine Learning můžete navrhnout a spustit experimenty automatizovaného trénování ML pomocí těchto kroků:

  1. Identifikujte problém ml, který se má vyřešit: klasifikace, prognózování, regrese, počítačové zpracování obrazu nebo NLP.

  2. Zvolte, jestli chcete mít zkušenosti s kódem nebo webové prostředí bez kódu: Uživatelé, kteří dávají přednost prostředí založenému na kódu, můžou používat azure Machine Learning SDKv2 nebo Azure Machine Learning CLIv2. Začínáme s kurzem: Trénování modelu rozpoznávání objektů pomocí AutoML a Pythonu Uživatelé, kteří dávají přednost omezenému prostředí nebo bez kódu, můžou webové rozhraní používat v studio Azure Machine Learning na adrese https://ml.azure.com. Začínáme s kurzem: Vytvoření klasifikačního modelu pomocí automatizovaného strojového učení ve službě Azure Machine Learning

  3. Zadejte zdroj označených trénovacích dat: Data můžete přenést do služby Azure Machine Learning mnoha různými způsoby.

  4. Nakonfigurujte parametry automatizovaného strojového učení, které určují, kolik iterací v různých modelech, nastavení hyperparametrů, pokročilé předběžné zpracování/featurizace a jaké metriky se mají při určování nejlepšího modelu podívat.

  5. Odešlete trénovací úlohu.

  6. Zkontrolujte výsledky.

Tento proces znázorňuje následující diagram. Automatizované strojové učení

Můžete také zkontrolovat informace o protokolované úloze, které obsahují metriky shromážděné během úlohy. Trénovací úloha vytvoří serializovaný objekt Pythonu (.pkl soubor), který obsahuje předzpracování modelu a dat.

I když je sestavování modelů automatizované, můžete se také dozvědět, jak důležité nebo relevantní funkce jsou pro vygenerované modely.

Kdy použít AutoML: klasifikace, regrese, prognózování, počítačové zpracování obrazu a NLP

Automatizované strojové učení použijte, pokud chcete, aby služba Azure Machine Learning trénování a ladění modelu používala zadaná cílová metrika. Automatizované strojové učení demokratizuje proces vývoje modelů strojového učení a umožňuje svým uživatelům bez ohledu na znalosti datových věd identifikovat kompletní kanál strojového učení pro všechny problémy.

Odborníci na strojové učení a vývojáři v různých odvětvích můžou automatizované strojové učení používat k:

  • Implementace řešení ML bez rozsáhlé znalosti programování
  • Úspora času a prostředků
  • Použití osvědčených postupů pro datové vědy
  • Poskytování agilního řešení problémů

Klasifikace

Klasifikace je typ učení pod dohledem, ve kterém se modely učí používat trénovací data a aplikovat je na nová data. Azure Machine Learning nabízí extrakci příznaků speciálně pro tyto úlohy, například nástroje pro extrakci příznaků s využitím hluboké neurální sítě pro účely klasifikace. Další informace o možnostech featurizace naleznete v tématu Featurizace dat. Seznam algoritmů podporovaných službou AutoML najdete také v podporovaných algoritmech.

Hlavním cílem klasifikačních modelů je předpovědět kategorie nových dat na základě učení z trénovacích dat. Mezi běžné příklady klasifikace patří odhalování podvodů, rozpoznávání rukopisu nebo rozpoznávání objektů.

Podívejte se na příklad klasifikace a automatizovaného strojového učení v tomto poznámkovém bloku Pythonu: Bank Marketing.

Regrese

Podobně jako klasifikace jsou regresní úlohy také běžným úkolem učení pod dohledem. Azure Machine Learning nabízí funkcionalizaci specifickou pro regresní problémy. Přečtěte si další informace o možnostech featurizace. Seznam algoritmů podporovaných službou AutoML najdete také v podporovaných algoritmech.

Liší se od klasifikace, kde predikované výstupní hodnoty jsou kategorické, regresní modely predikují číselné výstupní hodnoty na základě nezávislých prediktorů. Cílem regrese je pomoct stanovit vztah mezi proměnnými těchto nezávislých ukazatelů tím, že odhaduje, jak se jednotlivé proměnné ovlivňují. Model může například předpovědět cenu automobilů na základě funkcí, jako je například kilometry plynu a bezpečnostní hodnocení.

Podívejte se na příklad regrese a automatizovaného strojového učení pro předpovědi v těchto poznámkových blocích Pythonu: Výkon hardwaru.

Předvídání časových řad

Vytváření prognóz je nedílnou součástí každé firmy, ať už se jedná o prognózy výnosů, inventáře, prodejů nebo poptávky zákazníků. S využitím automatizovaného strojového učení můžete kombinovat různé techniky a přístupy, abyste získali doporučené a vysoce kvalitní prognózy časových řad. Seznam algoritmů podporovaných službou AutoML najdete v podporovaných algoritmech.

Automatizovaný experiment časové řady se považuje za problém s multivariátní regresí. Hodnoty minulých časových řad jsou "otočené", aby se staly více dimenzí regresoru spolu s dalšími prediktory. Tento přístup, na rozdíl od klasických metod časových řad, má výhodu přirozeného začlenění více kontextových proměnných a jejich vztahu k sobě během trénování. Automatizované strojové učení se učí jeden, ale často interně rozvětvený model pro všechny položky v datové sadě a horizontech předpovědí. K dispozici je tedy více dat k odhadu parametrů modelu a je možné zobecnit do nezobecněných řad.

Pokročilá konfigurace prognózování zahrnuje:

  • Detekce svátků a extrakce příznaků
  • Časové řady a studenti DNN (Auto-ARIMA, Prorok, ForecastTCN)
  • Podpora mnoha modelů prostřednictvím seskupení
  • Křížové ověřování původu
  • Konfigurovatelné prodlevy
  • Agregační atributy u pohyblivých oken

Podívejte se na příklad prognózování a automatizovaného strojového učení v tomto poznámkovém bloku Pythonu: Energetická poptávka.

Počítačové zpracování obrazu

Podpora úloh počítačového zpracování obrazu umožňuje snadno generovat modely natrénované na datech obrázků pro scénáře, jako je klasifikace obrázků a detekce objektů.

Díky této funkci můžete:

  • Bezproblémová integrace s možností popisování dat ve službě Azure Machine Learning
  • Pro generování modelů obrázků použijte označená data.
  • Optimalizujte výkon modelu zadáním algoritmu modelu a laděním hyperparametrů.
  • Stáhněte nebo nasaďte výsledný model jako webovou službu ve službě Azure Machine Learning.
  • Zprovoznění ve velkém měřítku s využitím funkcí MlOps a ML Pipelines ve službě Azure Machine Learning

Vytváření modelů AutoML pro úlohy zpracování obrazu se podporuje prostřednictvím sady Azure Machine Learning Python SDK. Výsledné úlohy experimentování, modely a výstupy jsou přístupné z uživatelského rozhraní studio Azure Machine Learning.

Zjistěte, jak nastavit trénování AutoML pro modely počítačového zpracování obrazu.

Příklady úloh počítačového zpracování obrazu Obrázek z: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Obrázek z: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

Automatizované strojové učení pro obrázky podporuje následující úlohy počítačového zpracování obrazu:

Úkol Popis
Klasifikace obrázků s více třídami Úkoly, ve kterých je obrázek klasifikován pouze s jedním popiskem ze sady tříd – například každý obrázek se klasifikuje jako obrázek "kočky" nebo "psa" nebo "kachny".
Klasifikace obrázků s více popisky Úkoly, ve kterých může mít obrázek jeden nebo více popisků ze sady popisků – například obrázek může být označený "kočkou" i "psem".
Detekce objektů Úkoly k identifikaci objektů na obrázku a vyhledání každého objektu s ohraničujícím rámečkem, například vyhledejte všechny psy a kočky na obrázku a nakreslete kolem každého ohraničujícího rámečku.
Segmentace instancí Úlohy identifikace objektů na obrázku na úrovni pixelů a označení jednotlivých objektů na obrázku ohraničujícím mnohoúhelníkem

Zpracování přirozeného jazyka: NLP

Podpora úloh zpracování přirozeného jazyka (NLP) v automatizovaném strojovém učení umožňuje snadno generovat modely natrénované na textových datech pro klasifikaci textu a pojmenované scénáře rozpoznávání entit. Vytváření automatizovaných modelů strojového učení trénovaných NLP se podporuje prostřednictvím sady Azure Machine Learning Python SDK. Výsledné úlohy experimentování, modely a výstupy jsou přístupné z uživatelského rozhraní studio Azure Machine Learning.

Funkce NLP podporuje:

  • Kompletní trénování NLP hluboké neurální sítě s nejnovějšími předem natrénovanými modely BERT
  • Bezproblémová integrace s popisky dat ve službě Azure Machine Learning
  • Použití označených dat pro generování modelů NLP
  • Podpora vícejazyčných jazyků s 104 jazyky
  • Distribuované trénování s využitím Horovodu

Zjistěte, jak nastavit trénování AutoML pro modely NLP.

Trénování, ověřování a testování dat

Pomocí automatizovaného strojového učení poskytnete trénovací data pro trénování modelů ML a můžete určit, jaký typ ověření modelu se má provést. Automatizované strojové učení provádí ověření modelu jako součást trénování. To znamená, že automatizované strojové učení používá ověřovací data k ladění hyperparametrů modelu na základě použitého algoritmu k nalezení kombinace, která nejlépe vyhovuje trénovacím datům. Stejná ověřovací data se ale používají pro každou iteraci ladění, která zavádí předsudky vyhodnocení modelu, protože model stále vylepšuje a odpovídá ověřovacím datům.

Automatizované strojové učení podporuje použití testovacích dat k vyhodnocení konečného modelu, který automatizované strojové učení na konci experimentu doporučuje. Když jako součást konfigurace experimentu AutoML zadáte testovací data, tento doporučený model se ve výchozím nastavení testuje na konci experimentu (Preview).

Důležité

Testování modelů pomocí testovací datové sady pro vyhodnocení vygenerovaných modelů je funkce preview. Tato funkce je experimentální funkce ve verzi Preview a může se kdykoli změnit.

Zjistěte, jak nakonfigurovat experimenty AutoML tak, aby používaly testovací data (Preview) se sadou SDK nebo s studio Azure Machine Learning.

Příprava atributů

Příprava funkcí je proces použití znalostí domény k vytváření funkcí, které pomáhají algoritmům STROJOVÉho učení lépe se učit. Ve službě Azure Machine Learning se používají techniky škálování a normalizace k usnadnění přípravy funkcí. Souhrnně se tyto techniky a inženýrství funkcí označují jako featurizace.

U experimentů automatizovaného strojového učení se featurizace použije automaticky, ale dá se také přizpůsobit na základě vašich dat. Přečtěte si další informace o tom, co je součástí funkce (SDK v1) a jak AutoML pomáhá zabránit nadměrnému přizpůsobení a nevyváženým datům ve vašich modelech.

Poznámka:

Kroky automatického featurizace strojového učení (například normalizace funkcí, zpracování chybějících dat a převod textu na číselnou hodnotu) se stanou součástí základního modelu. Při použití modelu pro předpovědi se na vstupní data automaticky použijí stejné kroky featurizace použité během trénování.

Přizpůsobení featurizace

K dispozici jsou také další techniky přípravy funkcí, jako je kódování a transformace.

Povolte toto nastavení pomocí:

Souborové modely

Automatizované strojové učení podporuje modely souborů, které jsou ve výchozím nastavení povolené. Souborové učení zlepšuje výsledky strojového učení a prediktivní výkon kombinováním více modelů na rozdíl od použití jednotlivých modelů. Iterace souboru se zobrazí jako konečné iterace vaší úlohy. Automatizované strojové učení používá pro kombinování modelů hlasovací i skládanou sadu metod:

  • Hlasování: Predikuje na základě váženého průměru predikovaných pravděpodobností tříd (pro klasifikační úkoly) nebo predikovaných regresních cílů (pro regresní úkoly).
  • Stacking: Kombinuje heterogenní modely a trénuje metamodel založený na výstupu jednotlivých modelů. Aktuální výchozí metamodely jsou LogisticRegression pro úlohy klasifikace a ElasticNet pro regresní a prognózovací úlohy.

Algoritmus výběru souboru Caruana s inicializací seřazeného souboru se používá k rozhodnutí, které modely se mají použít v rámci souboru. Na vysoké úrovni tento algoritmus inicializuje soubor až s pěti modely s nejlepším individuálním skóre a ověří, že tyto modely jsou v rámci 5% prahové hodnoty nejlepšího skóre, aby se zabránilo špatnému počátečnímu souboru. Pak se pro každou iteraci souboru přidá nový model do existujícího souboru a výsledná skóre se vypočítá. Pokud nový model vylepšil stávající skóre souboru, soubor se aktualizuje tak, aby zahrnoval nový model.

Informace o změně výchozího nastavení souborů v automatizovaném strojovém učení najdete v balíčku AutoML.

AutoML &ONNX

Pomocí služby Azure Machine Learning můžete pomocí automatizovaného strojového učení sestavit model Pythonu a převést ho do formátu ONNX. Jakmile jsou modely ve formátu ONNX, je možné je spustit na různých platformách a zařízeních. Přečtěte si další informace o urychlení modelů ML pomocí ONNX.

V tomto příkladu poznámkového bloku Jupyter se dozvíte, jak převést na formát ONNX. Zjistěte, které algoritmy jsou podporovány v ONNX.

Modul runtime ONNX také podporuje jazyk C#, takže model vytvořený automaticky v aplikacích jazyka C# můžete používat bez nutnosti překódování nebo jakékoli latence sítě, které zavádí koncové body REST. Přečtěte si další informace o použití modelu AutoML ONNX v aplikaci .NET s ML.NET a odvozování modelů ONNX pomocí rozhraní API modulu runtime ONNX v jazyce C#.

Další kroky

K dispozici je několik prostředků, které vám pomůžou začít používat AutoML.

Kurzy / postupy

Kurzy jsou kompletní úvodní příklady scénářů AutoML.

Články s postupy poskytují podrobnější informace o funkcích, které automatizované strojové učení nabízí. Příklad:

Ukázky poznámkového bloku Jupyter

Podrobné příklady kódu a případy použití najdete v ukázkách automatizovaného strojového učení v úložišti poznámkových bloků na GitHubu.

Referenční informace o sadě Python SDK

Prohlubte své znalosti vzorů návrhu sady SDK a specifikací tříd pomocí referenční dokumentace ke třídě úloh AutoML.

Poznámka:

Funkce automatizovaného strojového učení jsou k dispozici také v jiných řešeních Microsoftu, jako jsou ML.NET, HDInsight, Power BI a SQL Server.