Inhoudsopgave[Zich verstoppen][Laten zien]
Machine Learning-modellen zijn nu overal te vinden. Overdag gebruikt u deze modellen waarschijnlijk veel meer dan u zich realiseert. Machine learning-modellen worden gebruikt bij veelvoorkomende taken, zoals browsen op sociale media, fotograferen en het controleren van het weer.
Een machine-learning algoritme kan deze blog aan je hebben aanbevolen. We hebben allemaal gehoord hoe tijdrovend het is om deze modellen te trainen. We hebben allemaal gehoord dat het trainen van deze modellen tijdrovend is.
Het is echter vaak rekenkundig kostbaar om conclusies te trekken uit deze modellen.
We hebben computersystemen nodig die snel genoeg zijn om de snelheid aan te kunnen waarmee we machine learning-diensten gebruiken. Als gevolg hiervan draaien de meeste van deze modellen op enorme datacenters met CPU- en GPU-clusters (in sommige gevallen zelfs TPU's).
Als je een foto maakt, wil je machine learning om het meteen te verbeteren. U wilt niet hoeven te wachten tot de afbeelding naar een datacenter is overgebracht, verwerkt en naar u teruggestuurd. In dit geval moet het machine learning-model lokaal worden uitgevoerd.
Als je "Hey Siri" of "OK, Google" zegt, wil je dat je gadgets onmiddellijk reageren. Wachten tot uw stem wordt verzonden naar de computers, waar deze wordt geëvalueerd en gegevens worden verkregen.
Dit kost tijd en heeft een nadelig effect op de gebruikerservaring. In dit geval wil je dat het machine learning-model ook lokaal werkt. Dit is waar TinyML om de hoek komt kijken.
In dit bericht zullen we kijken naar TinyML, hoe het werkt, het gebruik ervan, hoe ermee aan de slag te gaan en nog veel meer.
Wat is TinyML?
TinyML is een geavanceerde discipline die het revolutionaire potentieel van machine learning toepast op de prestatie- en vermogenslimieten van kleine apparaten en ingebedde systemen.
Succesvolle implementatie in deze branche vereist een grondige kennis van applicaties, algoritmen, hardware en software. Het is een subgenre voor machine learning dat modellen voor diep leren en machine learning gebruikt in ingebedde systemen die gebruikmaken van microcontrollers, digitale signaalprocessors of andere gespecialiseerde processors met ultralaag vermogen.
TinyML-compatibele ingebedde apparaten zijn bedoeld om een algoritme voor machine learning uit te voeren voor een specifieke taak, meestal als onderdeel van de edge computing.
Om weken, maanden of zelfs jaren te kunnen werken zonder op te laden of de batterij te vervangen, moeten deze embedded systemen een stroomverbruik hebben van minder dan 1 mW.
Hoe werkt het?
Het enige raamwerk voor machinaal leren dat kan worden gebruikt met microcontrollers en computers is TensorFlow Lite. Het is een set tools waarmee ontwikkelaars hun modellen kunnen uitvoeren op mobiele, embedded en edge-apparaten, waardoor machine learning on-the-fly mogelijk wordt.
De interface van de microcontroller wordt gebruikt om gegevens van sensoren (zoals microfoons, camera's of ingebedde sensoren) te verzamelen.
Voordat ze naar de microcontroller worden gestuurd, worden de gegevens opgenomen in een cloudgebaseerd machine learning-model. Batchtraining in offline modus wordt vaak gebruikt om deze modellen te trainen. De sensorgegevens die worden gebruikt voor leren en gevolgtrekkingen is al bepaald voor de specifieke toepassing.
Als het model wordt getraind om bijvoorbeeld een wake-word te detecteren, is het al ingesteld om een continue audiostream van een microfoon te verwerken.
Alles is al gedaan met behulp van een cloudplatform zoals Google Colab in het geval van TensorFlow Lite, inclusief datasetselectie, normalisatie, onder- of overfitting van het model, regularisatie, data-augmentatie, training, validatie en testen.
Een volledig getraind model wordt uiteindelijk getransformeerd en overgebracht naar de microcontroller, microcomputer of digitale signaalprocessor na offline batchtraining. Het model heeft geen aanvullende training nadat het is verplaatst naar een ingesloten apparaat. In plaats daarvan gebruikt het alleen realtime gegevens van sensoren of invoerapparaten om het model toe te passen.
Als gevolg hiervan moet een TinyML machine learning-model uitzonderlijk duurzaam zijn en na jaren kunnen worden omgeschoold of nooit worden omgeschoold. Alle mogelijke underfitting en overfitting van het model moeten worden onderzocht, zodat het model voor langere tijd, idealiter voor onbepaalde tijd, relevant blijft.
Maar waarom TinyML gebruiken?
TinyML begon als een poging om de afhankelijkheid van het internet der dingen van cloudservices voor eenvoudige kleinschaligheid te elimineren of te verminderen machine learning activiteiten. Dit maakte het gebruik van machine learning-modellen op de edge-apparaten zelf noodzakelijk. Het biedt de volgende grote voordelen:
- Laag vermogen consumptie: Een TinyML-applicatie gebruikt bij voorkeur minder dan 1 milliWatt aan stroom. Met zo'n laag stroomverbruik kan een apparaat maanden of jaren conclusies blijven trekken uit sensorgegevens, zelfs als het wordt gevoed door een knoopcelbatterij.
- Lagere kost: Het is ontworpen om te draaien op goedkope 32-bits microcontrollers of DSP's. Deze microcontrollers kosten meestal een paar cent per stuk en het totale embedded systeem dat ermee wordt ontwikkeld, is minder dan $ 50. Dit is een zeer kosteneffectieve optie om kleine machine learning-programma's op grote schaal uit te voeren, en het is vooral gunstig in IoT-toepassingen waar machine learning moet worden toegepast.
- Lagere latentie: De applicaties hebben een lage latentie omdat ze geen gegevens over het netwerk hoeven te transporteren of uit te wisselen. Alle sensordata wordt lokaal vastgelegd en conclusies worden getrokken met behulp van een reeds getraind model. De resultaten van gevolgtrekkingen kunnen naar een server of cloud worden gestuurd voor logboekregistratie of aanvullende verwerking, hoewel dit niet essentieel is voor de werking van het apparaat. Dit minimaliseert netwerklatentie en elimineert de noodzaak om machine learning-bewerkingen uit te voeren op een cloud of server.
- Privacy: Het is een groot probleem op internet en met het internet der dingen. Het machine learning-werk in TinyML-apps wordt lokaal uitgevoerd, zonder sensor-/gebruikersgegevens op te slaan of te verzenden naar een server/cloud. Als gevolg hiervan zijn deze applicaties, zelfs als ze zijn verbonden met een netwerk, veilig in gebruik en vormen ze geen privacyrisico's.
Toepassingen
- Landbouw - wanneer boeren maken een foto van een plant, de applicatie van TensorFlow Lite detecteert er ziektes in. Het werkt op elk apparaat en vereist geen internetverbinding. De procedure beschermt de landbouwbelangen en is een essentiële noodzaak voor boeren op het platteland.
- Mechanisch onderhoud - TinyML kan, wanneer gebruikt op apparaten met een laag vermogen, voortdurend fouten in een machine identificeren. Het gaat om op voorspelling gebaseerd onderhoud. Ping Services, een Australische start-up, heeft een IoT-gadget geïntroduceerd dat windturbines monitort door zichzelf aan de buitenkant van de turbine te bevestigen. Het brengt de autoriteiten op de hoogte wanneer het een mogelijk probleem of storing detecteert.
- Ziekenhuizen - De Solar Scare is een project. Mosquito gebruikt TinyML om de verspreiding van ziekten zoals dengue en malaria een halt toe te roepen. Het wordt aangedreven door zonne-energie en detecteert de broedomstandigheden van muggen voordat het het water signaleert om het kweken van muggen te remmen.
- Verkeersbewaking - Door door TinyML toe te passen op sensoren die real-time verkeersgegevens verzamelen, kunnen we ze gebruiken om het verkeer beter te sturen en de responstijden voor hulpdiensten te verkorten. Swim.AI gebruikt deze technologie bijvoorbeeld bij het streamen van gegevens om de veiligheid van passagiers te vergroten en tegelijkertijd congestie en uitstoot te verminderen door middel van slimme routering.
- Wet: TinyML kan worden gebruikt bij wetshandhaving om illegale acties zoals rellen en diefstal te identificeren met behulp van machine learning en gebarenherkenning. Een soortgelijk programma kan ook worden gebruikt om geldautomaten van banken te beveiligen. Door het gedrag van gebruikers te observeren, kan een TinyML-model voorspellen of de gebruiker een echte consument is die een transactie voltooit of een indringer die probeert de geldautomaat te hacken of te vernietigen.
Hoe aan de slag met TinyML?
Om aan de slag te gaan met TinyML in TensorFlow Lite, hebt u een compatibel microcontrollerbord nodig. TensorFlow Lite for Microcontrollers ondersteunt de onderstaande microcontrollers.
- Wio-terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI-ontwikkelingsbord
- STM32F746 Discovery-kit
- Adafruit Edge-badge
- Synopsys DesignWare ARC EM-softwareontwikkelingsplatform
- Sony Express
- Arduino Nano 33 BLE Sense
- SparkFun-rand
- Adafruit TensorFlow Lite voor Microcontrollers Kit
- Adafruit Circuit Speeltuin Bluefruit
- Espressif ESP32-DevKitC
- Espressief ESP-EYE
Dit zijn 32-bits microcontrollers met voldoende flashgeheugen, RAM en klokfrequentie om een machine learning-model uit te voeren. De borden hebben ook een aantal ingebouwde sensoren die elk ingebed programma kunnen uitvoeren en machine learning-modellen kunnen toepassen op de beoogde toepassing. Tot een machine learning-model bouwen, heb je naast een hardwareplatform ook een laptop of computer nodig.
Elk hardwareplatform heeft zijn eigen programmeertools voor het bouwen, trainen en porten van machine learning-modellen, die gebruikmaken van het TensorFlow Lite for Microcontrollers-pakket. TensorFlow Lite is gratis te gebruiken en aan te passen omdat het zo is open source.
Om aan de slag te gaan met TinyML en TensorFlow Lite, heb je alleen een van de bovengenoemde embedded hardwareplatforms nodig, een computer/laptop, een USB-kabel, een USB-naar-serieel-converter en de wens om machine learning te oefenen met embedded systemen .
Uitdagingen
Hoewel de vooruitgang van TinyML veel positieve resultaten heeft opgeleverd, wordt de machine learning-industrie nog steeds geconfronteerd met aanzienlijke obstakels.
- Softwarediversiteit – Handcodering, codegeneratie en ML-interpreters zijn allemaal opties voor het implementeren van modellen op TinyML-apparaten, en elk kost een andere hoeveelheid tijd en moeite. Hierdoor kunnen verschillende prestaties ontstaan.
- Hardware-diversiteit - Daar zijn verschillende hardware-opties beschikbaar. TinyML-platforms kunnen van alles zijn, van algemene microcontrollers tot geavanceerde neurale processors. Dit veroorzaakt problemen met de implementatie van modellen in verschillende architecturen.
- Problemen oplossen/foutopsporing - Wanneer een ML-model presteert slecht in de cloud, het is eenvoudig om naar de gegevens te kijken en erachter te komen wat er mis gaat. Wanneer een model is verspreid over duizenden TinyML-apparaten, zonder dat er een gegevensstroom terugkeert naar de cloud, wordt foutopsporing moeilijk en kan een andere methode nodig zijn.
- Geheugenbeperkingen - Traditioneel platforms, zoals smartphones en laptops, hebben gigabytes RAM nodig, terwijl TinyML-apparaten kilobytes of megabytes gebruiken. Hierdoor is de omvang van het in te zetten model beperkt.
- Modeltraining – Hoewel er zijn verschillende voordelen aan het implementeren van ML-modellen op TinyML-apparaten, het grootste deel van de ML-modellen wordt nog steeds in de cloud getraind om de modelnauwkeurigheid te herhalen en continu te verbeteren.
toekomst
TinyML, met zijn kleine voetafdruk, laag batterijverbruik en gebrek aan of beperkte afhankelijkheid van internetconnectiviteit, heeft een enorm potentieel in de toekomst, aangezien de meeste smalle kunstmatige intelligentie zal worden geïmplementeerd op edge-apparaten of onafhankelijke ingebedde gadgets.
Het zal IoT-applicaties privéer en veiliger maken door ze te benutten. Hoewel TensorFlow Lite is momenteel het enige machine learning-framework voor microcontrollers en microcomputers, andere vergelijkbare frameworks zoals Sensor en ARM's CMSIS-NN zijn in de maak.
Hoewel TensorFlow Lite een open-sourceproject is dat een geweldige start heeft gemaakt met het team van Google, heeft het nog steeds ondersteuning van de gemeenschap nodig om mainstream te worden.
Conclusie
TinyML is een nieuwe benadering die ingebedde systemen combineert met machine learning. Naarmate de smalle AI in veel branches en domeinen piekt, kan de technologie naar voren komen als een prominent subveld in machine learning en kunstmatige intelligentie.
Het biedt een oplossing voor tal van uitdagingen waarmee de IoT-sector en professionals die machine learning toepassen in veel domeinspecifieke disciplines nu worden geconfronteerd.
Het concept van het gebruik van machine learning op rand apparaten met een kleine computer voetafdruk en stroomverbruik hebben het potentieel om de manier waarop ingebedde systemen en robotica worden geconstrueerd aanzienlijk te veranderen.
Laat een reactie achter