Indholdsfortegnelse[Skjule][At vise]
Machine Learning-modeller er overalt lige nu. I løbet af dagen bruger du sandsynligvis disse modeller meget mere, end du er klar over. Maskinlæringsmodeller bruges til almindelige opgaver som at browse på sociale medier, fotografere og tjekke vejret.
En maskinlæringsalgoritme kan have anbefalet denne blog til dig. Vi har alle hørt om, hvor tidskrævende det er at træne disse modeller. Vi har alle hørt, at træning af disse modeller er tidskrævende.
Men det er ofte beregningsmæssigt dyrt at konkludere på disse modeller.
Vi har brug for computersystemer, der er hurtige nok til at håndtere den hastighed, hvormed vi bruger maskinlæringstjenester. Som følge heraf køres størstedelen af disse modeller på massive datacentre med CPU- og GPU-klynger (selv TPU'er i nogle tilfælde).
Når du tager et billede, vil du machine learning for øjeblikkeligt at forbedre det. Du ønsker ikke at skulle vente på, at billedet bliver overført til et datacenter, behandlet og returneret til dig. I dette tilfælde skal maskinlæringsmodellen udføres lokalt.
Når du siger "Hey Siri" eller "OK, Google", vil du have, at dine gadgets svarer med det samme. Venter på, at din stemme bliver overført til computerne, hvor den vil blive evalueret og data indhentet.
Dette tager tid og har en skadelig effekt på brugeroplevelsen. I dette tilfælde ønsker du, at maskinlæringsmodellen også skal fungere lokalt. Det er her, TinyML kommer ind.
I dette indlæg vil vi se nærmere på TinyML, hvordan det virker, dets anvendelser, hvordan man kommer i gang med det og meget mere.
Hvad er TinyML?
TinyML er en banebrydende disciplin, der anvender det revolutionerende potentiale ved maskinlæring til ydeevne- og effektgrænserne for små enheder og indlejrede systemer.
Succesfuld implementering i denne branche kræver en grundig forståelse af applikationer, algoritmer, hardware og software. Det er en maskinlæringsundergenre, der bruger deep learning og maskinlæringsmodeller i indlejrede systemer, der anvender mikrocontrollere, digitale signalprocessorer eller andre specialiserede processorer med ultra-lav effekt.
TinyML-aktiverede indlejrede enheder er beregnet til at køre en maskinlæringsalgoritme til et specifikt job, typisk som en del af enhedens kant computing.
For at kunne køre i uger, måneder eller endda år uden genopladning eller batteriudskiftning skal disse indlejrede systemer have et strømforbrug på mindre end 1 mW.
Hvordan virker det?
Den eneste maskinlæringsramme, der kan bruges med mikrocontrollere og computere er TensorFlow Lite. Det er et sæt værktøjer, der lader udviklere køre deres modeller på mobile, indlejrede og edge-enheder, hvilket giver mulighed for maskinlæring på farten.
Mikrocontrollerens grænseflade bruges til at indsamle data fra sensorer (såsom mikrofoner, kameraer eller indlejrede sensorer).
Inden de sendes til mikrocontrolleren, bliver dataene inkorporeret i en cloud-baseret maskinlæringsmodel. Batchtræning i offline-tilstand bruges almindeligvis til at træne disse modeller. De sensordata, der vil blive brugt til læring og slutning er allerede fastlagt for den specifikke anvendelse.
Hvis modellen er ved at blive trænet til at detektere et wake word, for eksempel, er den allerede sat op til at håndtere en kontinuerlig lydstream fra en mikrofon.
Alt er allerede gjort ved hjælp af en cloud-platform som Google Colab i tilfælde af TensorFlow Lite, herunder datasætvalg, normalisering, undertilpasning eller overtilpasning af modellen, regularisering, dataforøgelse, træning, validering og test.
En fuldt trænet model transformeres til sidst og overføres til mikrocontrolleren, mikrocomputeren eller den digitale signalprocessor efter offline batchtræning. Modellen har ingen yderligere træning efter at være blevet flyttet til en indlejret enhed. I stedet bruger den udelukkende realtidsdata fra sensorer eller inputenheder til at anvende modellen.
Som et resultat skal en TinyML-maskinelæringsmodel være usædvanlig holdbar og i stand til at blive genoptrænet efter år eller aldrig blive genoplært. Al potentiel modelunder- og overfitting skal undersøges, så modellen forbliver relevant i længere tid, ideelt på ubestemt tid.
Men hvorfor bruge TinyML?
TinyML begyndte som et forsøg på at eliminere eller mindske IoT's afhængighed af cloud-tjenester til grundlæggende småskala machine learning operationer. Dette nødvendiggjorde brugen af maskinlæringsmodeller på selve edge-enhederne. Det giver følgende store fordele:
- Lav strøm forbrug: En TinyML-applikation skal helst bruge mindre end 1 milliWatt strøm. Med et så lavt strømforbrug kan en enhed fortsætte med at udlede konklusioner fra sensordata i måneder eller år, selvom den drives af et møntbatteri.
- Lavere omkostninger: Den er designet til at køre på billige 32-bit mikrocontrollere eller DSP'er. Disse mikrocontrollere er typisk et par cents hver, og det samlede indlejrede system udviklet med dem er mindre end $50. Dette er en meget omkostningseffektiv mulighed for at køre små maskinlæringsprogrammer i stor skala, og det er især fordelagtigt i IoT-applikationer, hvor maskinlæring skal anvendes.
- Lavere latens: Dens applikationer har lav latenstid, da de ikke behøver at transportere eller udveksle data over netværket. Alle sensordata registreres lokalt, og konklusioner drages ved hjælp af en model, der allerede er trænet. Resultaterne af konklusioner kan sendes til en server eller sky til logning eller yderligere behandling, selvom dette ikke er afgørende for, at enheden kan fungere. Dette minimerer netværksforsinkelse og eliminerer behovet for, at maskinlæringsoperationer skal udføres på en sky eller server.
- Privatliv: Det er en stor bekymring på internettet og med tingenes internet. Maskinlæringsarbejdet i TinyML apps udføres lokalt, uden at gemme eller sende sensor-/brugerdata til en server/sky. Som et resultat, selv mens de er forbundet til et netværk, er disse applikationer sikre at bruge og udgør ingen privatlivsrisici.
Applikationer
- Landbrug – Hvornår landmænd tager et billede af en plante, TensorFlow Lites applikation registrerer sygdomme i den. Det virker på enhver enhed og kræver ikke en internetforbindelse. Proceduren beskytter landbrugets interesser og er en kritisk nødvendighed for landmændene.
- Mekanik vedligeholdelse – TinyML, når det bruges på enheder med lav effekt, kan konstant identificere fejl i en maskine. Det medfører forudsigelsesbaseret vedligeholdelse. Ping Services, en australsk start-up, har introduceret en IoT-gadget, der overvåger vindmøller ved at fastgøre sig til møllens yderside. Den underretter myndighederne, når den opdager et muligt problem eller fejlfunktion.
- Hospitaler - Solar Scare er et projekt. Mosquito bruger TinyML til at standse spredningen af sygdomme som dengue og malaria. Den er drevet af solenergi og registrerer myggeavl, før den signalerer vandet for at hæmme myggeavl.
- Trafikovervågning – Af Ved at anvende TinyML på sensorer, der indsamler trafikdata i realtid, kan vi bruge dem til bedre at dirigere trafikken og reducere responstider for udrykningskøretøjer. Swim.AI bruger for eksempel denne teknologi til streaming af data for at øge passagersikkerheden og samtidig reducere trængsel og emissioner gennem smart routing.
- Lov: TinyML kan bruges i retshåndhævelse til at identificere ulovlige handlinger såsom optøjer og tyveri ved hjælp af maskinlæring og gestusgenkendelse. Et lignende program kan også bruges til at sikre bankautomater. Ved at se brugeradfærd kan en TinyML-model forudsige, om brugeren er en reel forbruger, der gennemfører en transaktion, eller en ubuden gæst, der forsøger at hacke eller ødelægge pengeautomaten.
Hvordan kommer man i gang med TinyML?
For at komme i gang med TinyML i TensorFlow Lite skal du bruge et kompatibelt mikrocontrollerkort. TensorFlow Lite til mikrocontrollere understøtter nedenstående mikrocontrollere.
- Wio-terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- STM32F746 Discovery kit
- Adafruit EdgeBadge
- Synopsys DesignWare ARC EM Softwareudviklingsplatform
- Sony Express
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Adafruit TensorFlow Lite til mikrocontrollere kit
- Adafruit Circuit Legeplads Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
Disse er 32-bit mikrocontrollere, der har nok flashhukommelse, RAM og clockfrekvens til at udføre en maskinlæringsmodel. Tavlerne har også en række indbyggede sensorer, der er i stand til at køre ethvert indlejret program og anvende maskinlæringsmodeller til den målrettede applikation. Til bygge en maskinlæringsmodel, skal du bruge en bærbar eller computer ud over en hardwareplatform.
Hver hardwareplatform har sine egne programmeringsværktøjer til opbygning, træning og portering af maskinlæringsmodeller, som bruger TensorFlow Lite for Microcontrollers-pakken. TensorFlow Lite er gratis at bruge og ændre, fordi det er det open source.
For at komme i gang med TinyML og TensorFlow Lite behøver du blot en af de ovennævnte indlejrede hardwareplatforme, en computer/laptop, et USB-kabel, en USB-til-seriel-konverter – og ønsket om at øve maskinlæring med indlejrede systemer .
Udfordringer
Selvom TinyMLs fremskridt har givet mange positive resultater, står maskinlæringsindustrien stadig over for betydelige forhindringer.
- Softwarediversitet – Håndkodning, kodegenerering og ML-fortolkere er alle muligheder for at implementere modeller på TinyML-enheder, og hver af dem tager forskellig tid og kræfter. Forskellige præstationer kan opstå som følge heraf.
- Hardwarediversitet – der er flere hardware muligheder tilgængelige. TinyML-platforme kan være alt fra mikrocontrollere til generelle formål til banebrydende neurale processorer. Dette forårsager problemer med modelimplementering på tværs af forskellige arkitekturer.
- Fejlfinding/fejlretning – Hvornår en ML-model klarer sig dårligt på skyen, det er nemt at se på dataene og finde ud af, hvad der går galt. Når en model er spredt på tusindvis af TinyML-enheder, uden at nogen datastrøm vender tilbage til skyen, bliver fejlfinding vanskelig og kan nødvendiggøre en anden metode.
- Hukommelsesbegrænsninger - Traditionel platforme, såsom smartphones og bærbare computere, har brug for gigabyte RAM, hvorimod TinyML-enheder bruger kilobyte eller megabyte. Som følge heraf er størrelsen af den model, der kan implementeres, begrænset.
- Modeltræning – Skønt der er flere fordele ved at implementere ML-modeller på TinyML-enheder, størstedelen af ML-modeller trænes stadig i skyen til at gentage og løbende forbedre modelnøjagtigheden.
Fremtid
TinyML har med sit lille fodaftryk, lave batteriforbrug og manglende eller begrænsede afhængighed af internetforbindelse et enormt potentiale i fremtiden, da størstedelen af smalle kunstig intelligens vil blive implementeret på edge-enheder eller uafhængige indlejrede gadgets.
Det vil gøre IoT-applikationer mere private og sikre ved at udnytte dem. Selvom TensorFlow Lite er i øjeblikket den eneste maskinlæringsramme for mikrocontrollere og mikrocomputere, andre sammenlignelige rammer såsom sensor og ARM's CMSIS-NN er på vej.
Mens TensorFlow Lite er et open source-projekt i gang, der fik en fantastisk start med Googles team, har det stadig brug for fællesskabsstøtte for at komme ind i mainstream.
Konklusion
TinyML er en ny tilgang, der kombinerer indlejrede systemer med maskinlæring. Da den smalle AI topper i mange vertikaler og domæner, kan teknologien dukke op som et fremtrædende underområde inden for maskinlæring og kunstig intelligens.
Det giver en løsning på adskillige udfordringer, som IoT-sektoren og fagfolk, der anvender maskinlæring til mange domænespecifikke discipliner, nu står over for.
Konceptet med at bruge maskinlæring på edge-enheder med en lille computer fodaftryk og strømforbrug har potentialet til markant at ændre, hvordan indlejrede systemer og robotter er konstrueret.
Giv en kommentar