A Study of Artificial Neural Networks on 8-bit Microcontrollers
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2824254Utgivelsesdato
2021Metadata
Vis full innførselSamlinger
Sammendrag
Temaene om maskinlæring og 8-bit mikrokontrollere blir generelt ansett som inkompatible, som følge av den begrensede prosesseringskraften man har tilgjengelig. Kunstige nevrale nettverk er et unntak av dette generelle utsagnet, som et resultat av at den ressurskrevende prosessen skjer under treningsfasen av nettverket. Behovet for prosesseingskraft er betydelig redusert når nettverket er ferdig trent, og implementert til å utføre dens designerte oppgave. Slike nevrale nettverksmodeller kan derfor trenes på en maskin med tilstrekkelig prosesseringskraft, og deretter overføres til en 8-bit mikrokontroller.
Denne masteroppgaven utforsker mulighetene for å kjøre slike nevrale nettverk på 8-bit mikrokontrollere. En implementasjonsprosess blir presentert, i tillegg til forskjellige optimaliseringsteknikker, med formål å begrense behovet for program- og dataminne. Flere tester blir presentert, som undersøker ytelsen til de nevrale nettverkene på 8-bit systemer, og som undersøker påvirkningen av de forskjellige optimaliseringsteknikkene.
Oppgaven konkluderer med at 8-bit mikrokontrollere er godt rustet til å kjøre kunstige nevrale nettverk. Implementasjonene viser til at prediksjonsnøyaktigheten i nettverkene ikke endres mellom maskinen det trente på, og mikrokontrolleren det kjører på. Eksekveringstiden til nettverksprediksjonene har vist typiske verdier lavere enn 50ms. The topics of machine learning and 8-bit microcontroller units (MCUs) are generally regarded as incompatible, due to the limited computational resources available. Artificial neural networks (ANNs) are an exception to this general statement, seeing as the resource demanding process of this technique happens during its training phase, while performing model inference requires significantly less processing power. ANNs can therefore be trained on a computationally resourceful machine, and later deployed on the 8-bit MCU.
This thesis explores the feasibility of running such networks on 8-bit MCUs. An implementation process is presented, as well as different optimization techniques to limit the data and program memory requirements for the system. Several tests are presented, evaluating the performance of the deployed models, and the impacts of different optimization techniques.
The thesis concludes with stating ANNs on 8-bit MCUs as well within the realm of feasibility. Accuracy drops for deployed models are shown to be virtually non-existent, and inference times are shown with typical values below 50ms.