Programování

Vysvětleno automatické strojové učení nebo AutoML

Dvě největší překážky v používání strojového učení (klasického strojového učení i hlubokého učení) jsou dovednosti a výpočetní prostředky. Druhý problém můžete vyřešit házením peněz, ať už za nákup zrychleného hardwaru (například počítačů s GPU vyšší třídy), nebo za pronájem výpočetních prostředků v cloudu (například instance s připojenými GPU, TPU a FPGA).

Na druhou stranu je řešení problému s dovednostmi těžší. Vědci v oblasti dat často velí statným platům a může být stále těžké je získat. Google dokázal vyškolit mnoho svých zaměstnanců na svém vlastním rámci TensorFlow, ale většina společností sotva má lidi dostatečně kvalifikovaní na to, aby si sami vytvořili modely strojového učení a hlubokého učení, natož aby ostatní učili, jak.

Co je AutoML?

Automatizované strojové učení neboli AutoML si klade za cíl snížit nebo eliminovat potřebu kvalifikovaných datových vědců vytvářet modely strojového učení a hlubokého učení. Místo toho vám systém AutoML umožňuje poskytnout označené tréninkové údaje jako vstup a přijímat optimalizovaný model jako výstup.

Existuje několik způsobů, jak toho dosáhnout. Jedním z přístupů je, aby software jednoduše trénoval každý druh modelu na datech a vybral ten, který funguje nejlépe. Zdokonalením by bylo vytvořit jeden nebo více modelů souborů, které kombinují ostatní modely, což někdy (ale ne vždy) přináší lepší výsledky.

Druhou technikou je optimalizace hyperparametrů (vysvětleno níže) nejlepšího modelu nebo modelů pro vycvičení ještě lepšího modelu. Inženýrství funkcí (také vysvětleno níže) je cenným doplňkem každého tréninku modelu. Jedním ze způsobů odstranění hlubokého učení je použití přenosu učení, v podstatě přizpůsobení dobře vyškoleného obecného modelu pro konkrétní data.

Co je optimalizace hyperparametru?

Všechny modely strojového učení mají parametry, což znamená váhy pro každou proměnnou nebo prvek v modelu. Ty jsou obvykle určeny zpětným šířením chyb plus iterací pod kontrolou optimalizátoru, jako je stochastický gradient.

Většina modelů strojového učení má také hyperparametry, které jsou nastaveny mimo tréninkovou smyčku. Mezi ně často patří rychlost učení, míra předčasného ukončení a parametry specifické pro model, jako je počet stromů v náhodném lese.

Ladění hyperparametru nebo optimalizace hyperparametru (HPO) je automatický způsob zametání nebo prohledávání jednoho nebo více hyperparametrů modelu za účelem nalezení sady, která vede k nejlépe trénovanému modelu. To může být časově náročné, protože je třeba model trénovat znovu (vnitřní smyčku) pro každou sadu hodnot hyperparametru v zatáčce (vnější smyčka). Pokud trénujete mnoho modelů paralelně, můžete snížit čas potřebný na úkor použití více hardwaru.

Co je to inženýrství funkcí?

A Vlastnosti je jednotlivá měřitelná vlastnost nebo charakteristika pozorovaného jevu. Pojem „funkce“ souvisí s pojmem vysvětlující proměnné, která se používá ve statistických technikách, jako je lineární regrese. A vektor funkcí kombinuje všechny funkce pro jeden řádek do číselného vektoru. Inženýrství funkcí je proces hledání nejlepší sady proměnných a nejlepšího kódování a normalizace dat pro vstup do modelu tréninkového procesu.

Součástí umění výběru funkcí je vybrat minimální sadu nezávislý proměnné, které vysvětlují problém. Pokud jsou dvě proměnné vysoce korelované, je třeba je zkombinovat do jedné funkce, nebo by jedna měla být zrušena. Někdy lidé provádějí analýzu hlavních komponent (PCA) za účelem převodu korelovaných proměnných na sadu lineárně nekorelovaných proměnných.

Chcete-li pro klasifikaci strojů použít kategorická data, musíte textové štítky zakódovat do jiného formuláře. Existují dvě společná kódování.

Jedním z nich je kódování štítků, což znamená, že každá hodnota textového štítku je nahrazena číslem. Druhý je jednorázové kódování, což znamená, že každá hodnota textového štítku se změní na sloupec s binární hodnotou (1 nebo 0). Většina rámců strojového učení má funkce, které za vás provedou převod. Obecně se upřednostňuje kódování za horka, protože kódování štítků může někdy zaměnit algoritmus strojového učení za myšlenku, že je objednaný kódovaný sloupec.

Chcete-li použít numerická data pro regresi stroje, je obvykle nutné data normalizovat. V opačném případě by čísla s většími rozsahy mohla mít tendenci ovládat euklidovskou vzdálenost mezi vektory funkcí, jejich účinky by mohly být zvětšeny na úkor ostatních polí a nejstrmější optimalizace sestupu by mohla mít potíže s konvergováním. Existuje řada způsobů, jak normalizovat a standardizovat data pro strojové učení, včetně normalizace min-max, průměrné normalizace, standardizace a škálování na délku jednotky. Tento proces se často nazývá škálování funkcí.

Některé transformace, které lidé používají ke konstrukci nových funkcí nebo ke snížení rozměrnosti vektorů prvků, jsou jednoduché. Například odečíst Rok narození z Rok smrti a ty konstruuješ Věk smrti, což je hlavní nezávislá proměnná pro analýzu života a úmrtnosti. V ostatních případech konstrukční prvek nemusí být tak zřejmé.

Co je přenosové učení?

Přenos učení se někdy nazývá vlastní strojové učení a někdy se nazývá AutoML (většinou Google). Spíše než začít od nuly při trénování modelů z vašich dat, Google Cloud AutoML implementuje automatické hluboké přenosové učení (to znamená, že začíná od existující hluboké neurální sítě trénované na jiných datech) a vyhledávání neurální architektury (což znamená, že najde správnou kombinaci síťové vrstvy) pro překlad jazykových párů, klasifikaci přirozeného jazyka a klasifikaci obrázků.

Jedná se o jiný proces, než jaký obvykle myslí AutoML, a nepokrývá tolik případů použití. Na druhou stranu, pokud potřebujete přizpůsobený model hlubokého učení v podporované oblasti, přenosové učení často vytvoří vynikající model.

Implementace AutoML

Existuje mnoho implementací AutoML, které můžete vyzkoušet. Některé jsou placené služby a některé jsou zdrojovým kódem zdarma. Níže uvedené seznamy nejsou v žádném případě úplné ani konečné.

Služby AutoML

Všechny velké tři cloudové služby mají nějaký druh AutoML. Amazon SageMaker ladí hyperparametry, ale automaticky nevyzkouší několik modelů ani neprovede funkce. Azure Machine Learning má jak AutoML, které prochází funkcemi a algoritmy, tak vyladění hyperparametru, které obvykle spouštíte podle nejlepšího algoritmu vybraného AutoML. Google Cloud AutoML, jak jsem již zmínil dříve, je hluboké přenosové učení pro překlad jazykových párů, klasifikaci přirozeného jazyka a klasifikaci obrázků.

AutoML služby nabízí také řada menších společností. Například DataRobot, který tvrdí, že vynalezl AutoML, má na trhu silnou reputaci. A zatímco dotData má malý podíl na trhu a průměrné uživatelské rozhraní, má silné možnosti inženýrství funkcí a pokrývá mnoho případů podnikového použití. H2O.ai Driverless AI, který jsem zkontroloval v roce 2017, může pomoci datovému vědci ukázat modely jako Kaggle master, provádět jednotné inženýrství funkcí, algoritmy a optimalizaci hyperparametrů.

Rámce AutoML

AdaNet je lehký rámec založený na TensorFlow pro automatické učení vysoce kvalitních modelů s minimálním zásahem odborníka. Auto-Keras je softwarová knihovna s otevřeným zdrojovým kódem pro automatizované strojové učení vyvinutá v Texasu A&M, která poskytuje funkce pro automatické vyhledávání architektury a hyperparametrů modelů hlubokého učení. NNI (Neural Network Intelligence) je sada nástrojů od společnosti Microsoft, která pomáhá uživatelům efektivně a automaticky navrhovat a ladit modely strojového učení (např. Hyperparametry), architektury neuronových sítí nebo parametry komplexního systému.

Na GitHubu najdete další projekty AutoML a poměrně úplný a aktuální seznam článků o AutoML.