Effectieve IoT-applicaties bouwen met tinyML en geautomatiseerde machine learning
IoT maakt continue monitoring van omgevingen en machines mogelijk met behulp van kleine sensoren. Vooruitgang in sensortechnologieën, microcontrollers en communicatieprotocollen maakte massaproductie van IoT-platforms, met veel connectiviteitsopties, mogelijk tegen betaalbare prijzen. Vanwege de lage kosten van IoT-hardware worden sensoren op grote schaal ingezet op openbare plaatsen, woningen en op machines.
Deze sensoren bewaken de fysieke eigenschappen van hun implementatieomgevingen, 24/7, en genereren een enorme hoeveelheid gegevens. Versnellingsmeters en gyroscopen die op roterende machines worden ingezet, registreren bijvoorbeeld constant de trillingspatronen en hoeksnelheid van de rotor die aan de as is bevestigd. Luchtkwaliteitssensoren bewaken continu de gasvormige verontreinigende stoffen in de lucht, binnen of buiten. Microfoons in een babyfoon luisteren altijd. Sensoren in slimme horloges meten voortdurend vitale gezondheidsparameters. Evenzo meten verschillende andere sensoren zoals magnetometer, druk, temperatuur, vochtigheid, omgevingslicht, enz. fysieke omstandigheden, waar ze ook worden ingezet.
Algoritmen voor machine learning (ML) maken de ontdekking van interessante patronen in deze gegevens mogelijk, die het bevattingsvermogen van handmatige analyse en inspectie te boven gaan. De convergentie van IoT-apparaten en ML-algoritmen maakt een breed scala aan slimme toepassingen en verbeterde gebruikerservaringen mogelijk, die mogelijk worden gemaakt door low-power, low-latency en lichtgewicht machine learning-inferentie, d.w.z. tinyML. Veel brancheverticalen ondergaan een revolutie door deze convergentie, zoals weergegeven in figuur 1, inclusief maar niet beperkt tot draagbare technologieën, smart home, slimme fabrieken (Industry 4.0), automotive, machine vision en andere slimme consumentenelektronica.
tinyML met geautomatiseerde machine learning
ML-algoritmen die worden ingezet op kleine microcontrollers (MCU's) in IoT-apparaten zijn bijzonder interessant vanwege meerdere voordelen:
- Gegevensprivacy en -beveiliging:ML-inferentie vindt plaats op de lokale ingebouwde microcontrollers, in plaats van dat gegevensstromen voor verwerking naar de cloud moeten worden verzonden. De gegevens blijven op het apparaat en op locatie, waar ze privé en veilig zijn.
- Energiebesparing:tinyML-algoritmen verbruiken veel minder stroom door geen/weinig gegevensoverdracht.
- Lage latentie en hoge beschikbaarheid:aangezien inferentie lokaal wordt uitgevoerd, is de latentie in de orde van milliseconden en niet afhankelijk van netwerklatentie en beschikbaarheid.
klik voor afbeelding op volledige grootte
Figuur 1:tinyML voegt geavanceerde functionaliteiten toe aan traditionele IoT-apparaten (bron:Qeexo)
Geautomatiseerde machine learning met behulp van sensorgegevens omvat de stappen die in figuur 2 zijn uiteengezet. Voorafgaand aan deze stappen worden de configuratie van sensoren en het verzamelen van kwaliteitsgegevens voor de doel-ML-toepassing voltooid. Een geautomatiseerd machine learning-platform zoals Qeexo AutoML beheert de volledige workflow voor het bouwen van lichtgewicht en krachtige machine learning-modellen voor Arm Cortex-M0-naar-M4-klasse MCU's en andere beperkte omgevingen.
klik voor afbeelding op volledige grootte
Figuur 2:Qeexo AutoML-workflow (bron:Qeexo)
tinyML met ARM® Cortex™ M0+-architectuur
De verspreiding van IoT-technologieën en de grootschalige implementatievereisten van sensoren verleggen de grenzen van microcontroller-architecturen en machine learning-computing. Arm Cortex M0+ MCU's met een snelheid van 48 MHz worden bijvoorbeeld veel gebruikt op sensorkaarten die zijn ontworpen voor IoT-toepassingen vanwege hun lage energieverbruik. Het trekt slechts 7 mA per I/O-pin in vergelijking met de Cortex M4-versie die werkt op 64 MHz en 15 mA trekt.
Het lage stroomverbruik van de Cortex-M0+ MCU's gaat ten koste van minder geheugen en rekenprofiel. M0+ MCU's kunnen alleen 32-bits vaste-punt wiskundige bewerkingen uitvoeren, hebben geen ondersteuning voor verzadigingsberekeningen en missen de DSP-mogelijkheden. Op basis van deze MCU wordt de Arduino Nano 33 IoT, een van de populaire IoT-platforms, geleverd met slechts 256 KB flash en 32 KB SRAM. De Arduino Nano 33 BLE Sense daarentegen, een populaire sensormodule met Cortex M4-architectuur, kan 32-bits drijvende-kommabewerkingen uitvoeren, heeft ondersteuning voor DSP en verzadiging, evenals vier keer de flits en acht keer de SRAM.
De implementatie van machine learning-algoritmen op de M0+ is een grotere uitdaging dan de implementatie op een M4 vanwege deze drie hoofduitdagingen:
- Compute met vaste punten: Typische machine learning met sensorgegevens omvat digitale signaalverwerking, extractie van functies en het uitvoeren van gevolgtrekkingen. Extractie van statistische en frequentiegebaseerde (bijv. FFT-analyse) functies uit sensorsignalen is cruciaal voor de ontwikkeling van hoogwaardige machine learning-modellen. Sensorgegevensstromen die fysieke verschijnselen in de echte wereld vertegenwoordigen, zijn niet-stationair van aard. Over het algemeen geldt:hoe beter de informatie die wordt geëxtraheerd uit niet-stationaire sensorsignalen, hoe beter de mogelijkheden zijn om ML-modellen met hoge prestaties te ontwikkelen. Het is een uitdaging om wiskundige bewerkingen uit te voeren in vaste-puntweergave met behoud van commerciële precisie en prestaties. Een volledig vast punt machine learning-pijplijn begint met de weergave van sensorgegevens en loopt helemaal door tot modelinferentie voor het genereren van classificatie-/regressie-outputs.
- Lage geheugencapaciteit: 256 KB flash en 32 KB SRAM leggen harde beperkingen op aan de grootte van de machine learning-modellen en het runtime-geheugen dat deze modellen tijdens de uitvoering kunnen gebruiken. Problemen met machine learning in de echte wereld hebben vaak gecompliceerde beslissings-/classificatiegrenzen die worden weergegeven door modellen voor machine learning met een groot aantal parameters. Voor op bomen gebaseerde ensemblemodellen kan het oplossen van dergelijke gecompliceerde problemen resulteren in diepe bomen en een groot aantal boosters, wat zowel de modelgrootte als het runtime-geheugen beïnvloedt. Verkleining van de modelgrootte gaat vaak ten koste van het opofferen van modelprestaties - over het algemeen niet het meest wenselijke criterium om in te ruilen.
- Lage CPU-snelheid: Lage latentie is altijd een belangrijke statistiek geweest bij het selecteren van een model voor commerciële implementaties. De kloksnelheid van 16 MHz die we opofferen voor een 48 MHz M0+-architectuur in vergelijking met 64 MHz M4-architectuur maakt een groot verschil als het gaat om latentiemetingen op millisecondenniveau.
AutoML M0+ Framework
Qeexo AutoML is ontwikkeld om deze uitdagingen aan te gaan en biedt een vast-punt machine learning-pijplijn, sterk geoptimaliseerd voor de Arm Cortex M0+-architectuur. Deze pijplijn omvat de verwerking van sensorgegevens in fixed-point, fixed-point feature-berekening en fixed-point inferentie voor de op bomen gebaseerde ensemble-algoritmen zoals Gradient Boosting Machine (GBM), Random Forest (RF) en eXtreme Gradient Boosting ( XGBoost) algoritmen. Qeexo AutoML codeert de parameters van het ensemblemodel in zeer efficiënte datastructuren en combineert ze met een interpretatielogica die resulteert in extreem snelle inferentie op het M0+-doel. Afbeelding 3 illustreert de fixed-point machine learning-pijplijn die door Qeexo is ontwikkeld voor het ingesloten Arm Cortex M0+-doel.
klik voor afbeelding op volledige grootte
Figuur 3:Qeexo AutoML M0+ Inference Pipeline (Bron:Qeexo)
Qeexo AutoML voert modelcompressie en kwantisatie uit, waarvoor patent is aangevraagd, om de geheugenvoetafdruk van de ontwikkelde ensemblemodellen verder te verkleinen zonder de classificatieprestaties in gevaar te brengen. Afbeelding 4 beschrijft het Qeexo AutoML-trainingsproces voor het Cortex M0+ embedded target.
klik voor afbeelding op volledige grootte
Figuur 4:Qeexo AutoML M0+ Training Pipeline (Bron:Qeexo)
Intelligent snoeien
Intelligent snoeien maakt compressie van modellen mogelijk zonder prestatieverlies. Simpel gezegd, Qeexo AutoML bouwt eerst een volledig ensemble-model zoals aanbevolen door een hyperparameter-optimizer en selecteert vervolgens intelligent alleen de krachtigste boosters.
Deze benadering om een groter model te laten groeien en het vervolgens intelligent te snoeien voor de doelimplementatie is veel effectiever dan het bouwen van een kleiner model. Een aanvankelijk groter model biedt de mogelijkheid om krachtige boosters (of bomen) te selecteren, wat uiteindelijk resulteert in betere modelprestaties.
Zoals weergegeven in figuur 5, is het gecomprimeerde ensemblemodel ongeveer 1/10 de de grootte van het volledige model, terwijl de kruisvalidatieprestaties hoger zijn. (X-as vertegenwoordigt het aantal bomen (of booster) in het ensemblemodel en y-as vertegenwoordigt de kruisvalidatieprestaties.) Merk op dat onze Qeexo AutoML intelligente snoeimethode alleen de 20 krachtigste boosters selecteert, wat resulteert in 90% compressie in modelgrootte.
klik voor afbeelding op volledige grootte
Figuur 5:Qeexo AutoML Intelligent Model Snoeien (Bron:Qeexo)
Kwantisering van ensemblemodel
Qeexo AutoML voert post-training kwantisering van ensemble-algoritmen uit. Kwantisering na de training is een standaardfunctie voor op neurale netwerken gebaseerde modellen en wordt out-of-the-box ondersteund in frameworks zoals TensorFlow Lite. Het kwantificeren van ensemblemodellen is echter Qeexo's techniek waarvoor patent is aangevraagd en die de modelgrootte nog verder kan verkleinen en tegelijkertijd de latentie op MCU-niveau kan verbeteren met weinig tot geen verslechtering van de modelprestaties. Qeexo AutoML M0+-pijplijn genereert ensemblemodellen met een vast punt die worden weergegeven met 32-bits precisie. Extra opties voor 16-bits en 8-bits kwantisering kunnen modellen verder verminderen met respectievelijk ½ en ¼, met een versnelling van 2x tot 3x.
Voorbeelden van gebruik van tinyML
Wat zijn enkele tinyML-toepassingen of use-cases? Er zijn onbeperkte mogelijkheden en hier lichten we er een paar uit:
- We willen een slimme muur met AI-functionaliteit maken waarop gebruikers kunnen tikken om de verlichting te regelen (AAN/UIT zetten en de intensiteit van het licht wijzigen). We kunnen de handgebaren definiëren die zijn gekoppeld aan AAN/UIT en intensiteitsregeling, en vervolgens de gebarengegevens verzamelen en labelen met behulp van een versnellingsmeter en gyroscoopmodule die aan de achterkant van de muur is bevestigd. Met deze gelabelde gegevens kan Qeexo AutoML AI-algoritmen gebruiken om een model te bouwen om 'Klop'- en 'Wipe'-bewegingen op de muur te detecteren om de verlichting te regelen. In de onderstaande video zie je binnen enkele minuten een prototype slimme muur ontwikkeld door Qeexo AutoML.
- Met behulp van machine learning en IoT willen we ervoor zorgen dat zendingen met uiterste zorg worden afgehandeld volgens de verzendrichtlijnen. In de onderstaande video kunt u zien hoe een verzenddoos met AI-functionaliteit kan detecteren hoe de zending van bron tot bestemming is afgehandeld.
- De convergentie van AI met IoT kan ook slimme keukenbladen maken. De onderstaande video toont door Qeexo AutoML gebouwde modellen om verschillende keukenapparatuur te detecteren.
- Machinemonitoring is een van de meest veelbelovende use-cases van tinyML. In de onderstaande video worden meerdere machinefoutpatronen gedetecteerd.
- Anomaliedetectie is een ander scenario dat veel baat heeft bij machine learning. In een industriële omgeving is het vaak moeilijk om gegevens te verzamelen voor verschillende storingen, terwijl het relatief eenvoudig is om de gezonde bedrijfstoestand van de machine te bewaken. Alleen al door de gezonde bedrijfstoestand te observeren, kunnen Qeexo AutoML-algoritmen AI-systemen ontwikkelen voor detectie van afwijkingen, zoals weergegeven in deel 1 (hieronder), deel 2, deel 3 en deel 4.
- Activiteitsherkenning met behulp van sensoren die zijn ingebed in wearables is een andere use-case die ons dagelijks leven ten goede komt. De onderstaande video laat zien hoe u binnen enkele minuten een oplossing voor activiteitsherkenning bouwt met Qeexo AutoML.
Internet of Things-technologie
- Hybride Blockchain/Cloud-applicaties bouwen met Ethereum en Google
- De toeleveringsketen en machine learning
- 1G bidirectionele transceivers voor serviceproviders en IoT-toepassingen
- Sensoren en processors komen samen voor industriële toepassingen
- Botten bouwen met Raspberry Pi en Python
- Betrouwbaarheid verhogen en onderhoudsresultaten verbeteren met machine learning
- IoT en onderwijs:de digitale kloof overbruggen
- De monitoring van luchtvervuiling verbeteren met IoT-sensoren
- Industrieel IoT en de bouwstenen voor Industrie 4.0
- Kunnen ERP- en MES-systemen IIoT bijbenen?
- Machinevisie is de sleutel tot Industrie 4.0 en IoT