Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:
 IoT Edge 1.1
Belangrijk
IoT Edge 1.1 einddatum van de ondersteuning was 13 december 2022. Raadpleeg het levenscyclusbeleid van Microsoft voor informatie over hoe dit product of deze service, technologie of API wordt ondersteund. Zie IoT Edge-bijwerken voor meer informatie over het bijwerken naar de nieuwste versie van IoT Edge.
Vaak willen IoT-toepassingen profiteren van de intelligente cloud en de intelligente rand. In deze zelfstudie wordt u begeleid bij het trainen van een machine learning-model met gegevens die zijn verzameld van IoT-apparaten in de cloud, het implementeren van dat model in IoT Edge en het periodiek onderhouden en verfijnen van het model.
Notitie
De concepten in deze reeks zelfstudies zijn van toepassing op alle versies van IoT Edge, maar het voorbeeldapparaat dat u maakt om het scenario uit te proberen, voert IoT Edge versie 1.1 uit.
Het belangrijkste doel van deze handleiding is het introduceren van de verwerking van IoT-gegevens met machine learning, specifiek aan de rand van het netwerk. Hoewel we veel aspecten van een algemene machine learning-werkstroom aanraken, is deze zelfstudie niet bedoeld als een diepgaande inleiding tot machine learning. In dit geval proberen we geen sterk geoptimaliseerd model te maken voor de use-case. We doen gewoon genoeg om het proces van het maken en gebruiken van een levensvatbaar model voor IoT-gegevensverwerking te illustreren.
In deze sectie van de zelfstudie wordt het volgende besproken:
- De vereisten voor het voltooien van de volgende onderdelen van de zelfstudie.
 - De doelgroep van de handleiding.
 - Het gebruiksscenario dat door de tutorial wordt gesimuleerd.
 - Het algemene proces dat de zelfstudie volgt om de use-case te realiseren.
 
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Benodigdheden
Voor het voltooien van de zelfstudie hebt u toegang nodig tot een Azure-abonnement waarin u rechten hebt om resources te maken. Voor verschillende services die in deze zelfstudie worden gebruikt, worden Azure-kosten in rekening gebracht. Als u nog geen Azure-abonnement hebt, kunt u mogelijk aan de slag met een gratis Azure-account.
U hebt ook een machine nodig waarop PowerShell is geïnstalleerd, waar u scripts kunt uitvoeren om een virtuele Azure-machine in te stellen als uw ontwikkelcomputer.
In dit document gebruiken we de volgende set hulpprogramma's:
Een Azure IoT-hub voor gegevensopname
Azure Notebooks als de belangrijkste front-end voor gegevensvoorbereiding en machine learning-experimenten. Het uitvoeren van Python-code in een notebook op een subset van de voorbeeldgegevens is een uitstekende manier om snel iteratieve en interactieve omloop te krijgen tijdens het voorbereiden van gegevens. Jupyter-notebooks kunnen ook worden gebruikt om scripts voor te bereiden voor uitvoering op schaal in een rekenback-end.
Azure Machine Learning als back-end voor machine learning op schaal en voor het genereren van machine learning-afbeeldingen. We sturen de Azure Machine Learning-back-end aan met behulp van scripts die zijn voorbereid en getest in Jupyter-notebooks.
Azure IoT Edge voor off-cloud toepassing van een machine learning-afbeelding
Uiteraard zijn er andere opties beschikbaar. In bepaalde scenario's kan IoT Central bijvoorbeeld worden gebruikt als alternatief zonder code om initiële trainingsgegevens van IoT-apparaten vast te leggen.
Doelgroep en rollen
Deze set artikelen is bedoeld voor ontwikkelaars zonder eerdere ervaring in IoT-ontwikkeling of machine learning. Voor het implementeren van machine learning aan de rand is kennis vereist van het verbinden van een breed scala aan technologieën. Daarom wordt in deze zelfstudie een volledig end-to-end scenario behandeld om een manier te demonstreren om deze technologieën samen te voegen voor een IoT-oplossing. In een echte omgeving kunnen deze taken worden verdeeld over verschillende personen met verschillende specialisaties. Ontwikkelaars richten zich bijvoorbeeld op apparaat- of cloudcode, terwijl gegevenswetenschappers de analysemodellen hebben ontworpen. Om een individuele ontwikkelaar in staat te stellen deze zelfstudie met succes te voltooien, hebben we extra begeleiding gegeven, met inzichten en links naar meer informatie, zodat er begrepen kan worden wat er wordt gedaan en waarom.
U kunt ook samenwerken met collega's van verschillende rollen om de zelfstudie samen te volgen, uw volledige expertise te dragen en te leren als team hoe dingen bij elkaar passen.
In beide gevallen geeft elk artikel in deze zelfstudie de rol van de gebruiker aan om de lezer(s) te helpen oriënteren. Deze rollen zijn onder andere:
- Cloudontwikkeling (inclusief een cloudontwikkelaar die in een DevOps-capaciteit werkt)
 - Gegevensanalyse
 
Use case: Predictief onderhoud
We hebben dit scenario gebaseerd op een use case die in 2008 werd gepresenteerd tijdens de Conferentie over Prognostics and Health Management (PHM08). Het doel is om de resterende levensduur (RUL) van een set turbofan vliegtuigmotoren te voorspellen. Deze gegevens zijn gegenereerd met C-MAPSS, de commerciële versie van MAPSS -software (Modular Aero-Propulsion System Simulation). Deze software biedt een flexibele turbofan engine simulatieomgeving om gemakkelijk de status, controle en motorparameters te simuleren.
De gegevens die in deze handleiding worden gebruikt, zijn afkomstig uit de degradatiesimulatiegegevensset van de turbofanmotor.
Uit het README-bestand:
Experimenteel Scenario
Gegevenssets bestaan uit meerdere multivariate tijdreeksen. Elke gegevensset wordt verder onderverdeeld in trainings- en testsubsets. Elke tijdreeks is afkomstig van een andere motor, dat wil bijvoorbeeld: de gegevens kunnen worden beschouwd als uit een vloot van motoren van hetzelfde type. Elke motor begint met verschillende mate van initiële slijtage en productievariatie die onbekend is voor de gebruiker. Deze slijtage en variatie wordt beschouwd als normaal, dus het wordt niet beschouwd als een foutvoorwaarde. Er zijn drie operationele instellingen die een aanzienlijk effect hebben op de prestaties van de motor. Deze instellingen zijn ook opgenomen in de gegevens. De gegevens zijn verontreinigd met sensorruis.
De motor werkt normaal aan het begin van elke tijdreeks en vertoont een storing op een bepaald moment tijdens die reeks. In de trainingsset neemt de fout in omvang toe totdat het systeem mislukt. In de testset eindigt de tijdreeks enige tijd vóór de systeemfout. Het doel van de competitie is om het aantal resterende operationele cycli te voorspellen voordat de testopstelling faalt, dat wil zeggen, het aantal operationele cycli na de laatste cyclus waarin de motor blijft draaien. Biedt ook een vector van werkelijke resterende levensduurwaarden (RUL) voor de testgegevens.
Omdat de gegevens zijn gepubliceerd voor een wedstrijd, zijn er verschillende benaderingen voor het afleiden van machine learning-modellen onafhankelijk gepubliceerd. We hebben vastgesteld dat het bestuderen van voorbeelden nuttig is bij het begrijpen van het proces en de redenering die betrokken is bij het maken van een specifiek machine learning-model. Zie bijvoorbeeld:
Voorspellingsmodel voor fouten van vliegtuigmotor door GitHub-gebruiker jancervenka.
Degradatie van turbofanmotoren door GitHub-gebruiker hankroark.
Proces
In de onderstaande afbeelding ziet u de ruwe stappen die we in deze zelfstudie volgen:
              
              
            
Trainingsgegevens verzamelen: het proces begint met het verzamelen van trainingsgegevens. In sommige gevallen zijn er al gegevens verzameld en beschikbaar in een database of in de vorm van gegevensbestanden. In andere gevallen, met name voor IoT-scenario's, moeten de gegevens worden verzameld van IoT-apparaten en -sensoren en moeten ze worden opgeslagen in de cloud.
We gaan ervan uit dat u geen verzameling turbofan-engines hebt, dus de projectbestanden bevatten een eenvoudige apparaatsimulator waarmee de NASA-apparaatgegevens naar de cloud worden verzonden.
gegevensvoorbereiden. In de meeste gevallen moeten de onbewerkte gegevens die zijn verzameld van apparaten en sensoren, worden voorbereid op machine learning. Deze stap kan betrekking hebben op het opschonen van gegevens, het opnieuw opmaken van gegevens of het vooraf verwerken van aanvullende informatie die machine learning kan inschakelen.
Voor onze machinegegevens van de vliegtuigmotor omvat gegevensvoorbereiding het berekenen van expliciete time-to-failure-tijden voor elk gegevenspunt in de steekproef op basis van de werkelijke waarnemingen van de gegevens. Met deze informatie kan het machine learning-algoritme correlaties vinden tussen werkelijke sensorgegevenspatronen en de verwachte resterende levensduur van de engine. Deze stap is zeer domeinspecifiek.
een machine learning-model bouwen. Op basis van de voorbereide gegevens kunnen we nu experimenteren met verschillende machine learning-algoritmen en parameteriseringen om modellen te trainen en de resultaten met elkaar te vergelijken.
In dit geval vergelijken we voor het testen het voorspelde resultaat dat door het model wordt berekend met het werkelijke resultaat dat is waargenomen op een set engines. In Azure Machine Learning kunnen we de verschillende iteraties van modellen beheren die we in een modelregister maken.
Het model implementeren. Zodra we een model hebben dat voldoet aan onze succescriteria, kunnen we overstappen op implementatie. Dit omvat het verpakken van het model in een webservice-app die kan worden ingevoerd met gegevens met behulp van REST-aanroepen en analyseresultaten retourneren. De webservice-app wordt vervolgens verpakt in een Docker-container, die op zijn beurt kan worden geïmplementeerd in de cloud of als een IoT Edge-module. In dit voorbeeld richten we ons op implementatie naar IoT Edge.
het model onderhouden en verfijnen. Ons werk wordt niet uitgevoerd zodra het model is geïmplementeerd. In veel gevallen willen we doorgaan met het verzamelen van gegevens en die gegevens periodiek uploaden naar de cloud. Vervolgens kunnen we deze gegevens gebruiken om ons model opnieuw te trainen en verfijnen, die we vervolgens opnieuw kunnen implementeren naar IoT Edge.
Hulpmiddelen opruimen
Deze zelfstudie maakt deel uit van een set waarin elk artikel voortbouwt op het werk dat in de vorige artikelen is uitgevoerd. Wacht met het opschonen van resources totdat u de laatste zelfstudie hebt voltooid.
Volgende stappen
Deze handleiding is onderverdeeld in de volgende secties:
- Stel uw ontwikkelcomputer en Azure-services in.
 - Genereer de trainingsgegevens voor de machine learning-module.
 - De machine learning-module trainen en implementeren.
 - Configureer een IoT Edge-apparaat om te fungeren als een transparante gateway.
 - IoT Edge-modules maken en implementeren.
 - Gegevens verzenden naar uw IoT Edge-apparaat.
 
Ga door naar het volgende artikel om een ontwikkelcomputer in te stellen en Azure-resources in te richten.