Kurz: Koncové řešení s využitím Azure Machine Learning a IoT Edge

Platí pro:  Ikona ano IoT Edge 1.1

Aplikace IoT často chtějí využívat výhod inteligentního cloudu a inteligentních hraničních zařízení. V tomto kurzu vás provedeme trénování modelu strojového učení s daty shromážděných ze zařízení IoT v cloudu, nasazením tohoto modelu do IoT Edge a pravidelným udržováním a vylepšováním modelu.

Poznámka

Koncepty v této sadě kurzů se vztahují na všechny verze IoT Edge, ale na ukázkovém zařízení, které vytvoříte pro vyzkoušejí scénáře, běží IoT Edge verze 1.1.

Primárním cílem tohoto kurzu je zavedení zpracování dat IoT pomocí strojového učení, konkrétně na hraničních zařízeních. I když se dotýkáme mnoha aspektů obecného pracovního postupu strojového učení, tento kurz není určený jako podrobné úvod do strojového učení. V tomto případě se nepokusíme vytvořit vysoce optimalizovaný model pro případ použití – stačí jenom ilustrovat proces vytvoření a použití přijatelného modelu pro zpracování dat IoT.

Tato část kurzu popisuje:

  • Požadavky na dokončení dalších částí kurzu.
  • Cílová skupina kurzu.
  • Případ použití, který kurz simuluje.
  • Celkový proces, který tento kurz následuje pro splnění případu použití.

Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.

Požadavky

K dokončení tohoto kurzu potřebujete přístup k předplatnému Azure, ve kterém máte práva vytvářet prostředky. Za některé služby použité v tomto kurzu se účtují poplatky za Azure. Pokud ještě nemáte předplatné Azure, možná budete moct začít s bezplatným účtem Azure.

Potřebujete také počítač s nainstalovaným PowerShellem, na kterém můžete spouštět skripty pro nastavení virtuálního počítače Azure jako vývojového počítače.

V tomto dokumentu používáme následující sadu nástrojů:

  • Azure IoT Hub pro zachytávání dat

  • Azure Notebooks hlavním front-endem pro přípravu dat a experimentování se strojového učením. Spuštění kódu Pythonu v poznámkovém bloku na podmnožině ukázkových dat je skvělý způsob, jak rychle získat iterativní a interaktivní řešení během přípravy dat. Poznámkové bloky Jupyter je také možné použít k přípravě skriptů pro spouštění ve velkém měřítku ve výpočetním back-endu.

  • Azure Machine Learning jako back-end pro strojové učení ve velkém měřítku a pro generování obrázků strojového učení. Back-end Azure Machine Learning pomocí skriptů připravených a otestovaných v poznámkových blocích Jupyter.

  • Azure IoT Edge pro použití image strojového učení mimo cloud

Samozřejmě jsou k dispozici i další možnosti. V některých scénářích je IoT Central použít jako alternativu bez kódu k zachycení počátečních trénovací dat ze zařízení IoT.

Cílová skupina a role

Tato sada článků je určená pro vývojáře bez předchozích zkušeností s vývojem IoT nebo strojového učení. Nasazení strojového učení na hraničních zařízeních vyžaduje znalost připojení široké škály technologií. Tento kurz se proto zabývá celým scénářem, který předvede jeden ze způsobu spojování těchto technologií pro řešení IoT. V reálném prostředí mohou být tyto úlohy rozděleny mezi několik lidí s různými specializacemi. Vývojáři by se například zaměřili na kód zařízení nebo cloud, zatímco datoví vědci navrhli analytické modely. Aby jednotlivý vývojář tento kurz úspěšně dokončil, poskytujeme dodatečné pokyny s přehledy a odkazy na další informace, o které doufáme, že jsou dostatečné k pochopení toho, co se děje, a také proč.

Alternativně se můžete spojit se spolupracovníky s různými rolemi a postupovat podle tohoto kurzu společně a získat tak všechny odborné znalosti a učit se jako tým, jak spolu věci zapadají.

V obou případech je pro orientaci čtenářů každý článek v tomto kurzu indikovat roli uživatele. Mezi tyto role patří:

  • Vývoj v cloudu (včetně vývojáře cloudu pracujícího v DevOps kapacitě)
  • Analýza dat

Případ použití: Prediktivní údržba

Tento scénář jsme zakládaly na případu použití prezentované na konferenci PHM08 (Prognostics and Health Management) v roce 2008. Cílem je předpovědět zbývající dobu životnosti (RUL) sady letadel s turbofany. Tato data se generují pomocí C-MAPSS, komerční verze softwaru MAPSS (Modular Aero-Propulsion System Simulation). Tento software poskytuje flexibilní simulační prostředí motoru turbofanu, které pohodlně simuluje stav, řízení a parametry motoru.

Data použitá v tomto kurzu pochází z datové sady simulace snížení výkonu motoru Turbofan.

Ze souboru readme:

Experimentální scénář

Datové sady se skládají z několika více různých časových řad. Každá datová sada je dále rozdělená na podmnožiny pro trénování a testování. Každá časová řada pochází z jiného motoru – data je možné považovat za z vozového parku motorů stejného typu. Každý motor začíná různými stupni počátečního ošitřování a výrobní variace, který uživatel nezná. Toto opotřebování a variace se považují za normální, tj. nepovažují se za vadný stav. Existují tři provozní nastavení, která mají významný vliv na výkon motoru. Tato nastavení jsou také součástí dat. Data jsou kontaminovaná šumem ze senzorů.

Modul funguje normálně na začátku každé časové řady a v nějakém okamžiku během této řady vyvine chybu. V trénovací sadě roste velikost chyby až do selhání systému. V testovací sadě časová řada skončí nějakou dobu před selháním systému. Cílem konkurence je předpovědět počet zbývajících provozních cyklů před selháním v testovací sadě, tj. počet provozních cyklů po posledním cyklu, kdy bude motor dál fungovat. Také jsme poskytli vektor hodnot true Remaining Useful Life (RUL) pro testovací data.

Vzhledem k tomu, že data byla publikována pro konkurenci, bylo nezávisle publikováno několik přístupů k odvození modelů strojového učení. Zjistili jsme, že studium příkladů je užitečné při pochopení procesu a úvah, které jsou součástí vytváření konkrétního modelu strojového učení. Podívejte se například na:

Model předpovědi selhání leteckého motoru GitHub jancervenka.

Snížení výkonu motoru Turbofan GitHub uživatelem

Proces

Následující obrázek znázorňuje hrubý postup, který v tomto kurzu sledujeme:

Diagram architektury pro kroky procesu

  1. Shromažďování trénovací dat: Proces začíná shromažďováním trénovací data. V některých případech se data již shromáždila a jsou k dispozici v databázi nebo ve formě datových souborů. V jiných případech, zejména ve scénářích IoT, je potřeba data shromažďovat ze zařízení a senzorů IoT a ukládat v cloudu.

    Předpokládáme, že nemáte kolekci motorů turbofanu, takže soubory projektu obsahují jednoduchý simulátor zařízení, který odesílá data zařízení NASA do cloudu.

  2. Příprava dat: Ve většině případů budou nezpracovaná data shromážděná ze zařízení a senzorů vyžadovat přípravu na strojové učení. Tento krok může zahrnovat čištění dat, přeformátování dat nebo předběžné zpracování pro vložení dalších informací, které strojové učení může vypnout.

    U našich dat o stroji motoru letadla zahrnuje příprava dat výpočet explicitní doby do selhání pro každý datový bod ve vzorku na základě skutečných pozorování dat. Tyto informace umožňují algoritmus strojového učení najít korelace mezi skutečnými vzory dat senzorů a očekávanou zbývající životností motoru. Tento krok je vysoce specifický pro doménu.

  3. Vytvoření modelu strojového učení Na základě připravených dat teď můžeme experimentovat s různými algoritmy strojového učení a parametrizacemi a trénovat modely a porovnávat výsledky mezi sebou.

    V tomto případě při testování porovnáme předpovězený výsledek vypočítaný modelem se skutečným výsledkem pozorovaný na sadě modulů. V Azure Machine Learning můžeme spravovat různé iterace modelů, které vytvoříme v registru modelů.

  4. Nasaďte model. Jakmile máme model, který splňuje naše kritéria úspěchu, můžeme přejít k nasazení. To zahrnuje zabalení modelu do aplikace webové služby, která se dodá pomocí volání REST a vrátí výsledky analýzy. Aplikace webové služby se pak zabalí do kontejneru Dockeru, který se pak může nasadit buď v cloudu, nebo jako IoT Edge modul. V tomto příkladu se zaměříme na nasazení do IoT Edge.

  5. Udržujte a upřesťte model. Po nasazení modelu se naše práce neučiní. V mnoha případech chceme pokračovat ve shromažďování dat a pravidelně je nahrávat do cloudu. Tato data pak můžeme použít k přetrénování a zpřesnění našeho modelu, který pak můžeme znovu nasadit do IoT Edge.

Vyčištění prostředků

Tento kurz je součástí sady, kde každý článek vychází z práce, která byla provedena v předchozích sadě. Počkejte na vyčištění všech prostředků, dokud nedokončíte poslední kurz.

Další kroky

Tento kurz je rozdělený do následujících částí:

  1. Nastavte si vývojový počítač a služby Azure.
  2. Vygenerování trénovací dat pro modul strojového učení
  3. Trénování a nasazení modulu strojového učení
  4. Nakonfigurujte IoT Edge zařízení tak, aby se chovalo jako transparentní brána.
  5. Vytvoření a nasazení IoT Edge modulů
  6. Odeslání dat do IoT Edge zařízení

Pokračujte k dalšímu článku a nastavte vývojový počítač a zřstavte prostředky Azure.