• Rezultati Niso Bili Najdeni

Kontekstnoodvisnoprilagajanjekompleksnostiraˇcunanjaprimobilnemzaznavanju TimotejKnez

N/A
N/A
Protected

Academic year: 2022

Share "Kontekstnoodvisnoprilagajanjekompleksnostiraˇcunanjaprimobilnemzaznavanju TimotejKnez"

Copied!
81
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Timotej Knez

Kontekstno odvisno prilagajanje kompleksnosti raˇ cunanja pri

mobilnem zaznavanju

MAGISTRSKO DELO

MAGISTRSKI ˇSTUDIJSKI PROGRAM DRUGE STOPNJE RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : doc. dr. Veljko Pejovi´ c

Ljubljana, 2021

(2)
(3)

Avtorske pravice. Rezultati magistrskega dela so intelektualna lastnina avtorja in Fakultete za raˇcunalniˇstvo in informatiko Univerze v Ljubljani. Za objavljanje ali izkoriˇcanje rezultatov magistrskega dela je potrebno pisno soglasje avtorja, Fakultete za raˇcunalniˇstvo in informatiko ter mentorja.

©2021 Timotej Knez

(4)
(5)

Zahvala

Hvala mentorju za odliˇcno vodenje celotne naloge. Hvala Octavianu Machi- donu in Davorju Slugi za pomoˇc pri implementaciji algoritmov. Posebej se zahvaljujem vsem, ki so sodelovali v eksperimentih, potrebnih za izvedbo te naloge. Hvala tudi moji druˇzini za vso pomoˇc, pregled in lektoriranje besedila.

Timotej Knez, 2021

(6)
(7)

Kazalo

Povzetek Abstract

1 Uvod 1

2 Pregled podroˇcja 5

3 Opis problema 9

3.1 Izbira nevronske mreˇze . . . 10

3.2 Preslikava vhodnih podatkov . . . 10

3.3 Podatkovna zbirka za razpoznavanje aktivnosti . . . 11

4 Priprava modela 13 4.1 Any-precision nevronske mreˇze . . . 13

4.2 Tanjˇsane nevronske mreˇze . . . 15

4.3 Rezultati razpoznavanja aktivnosti . . . 16

4.4 Toˇcnost izbire . . . 17

5 Analiza vplivov na pravilnost rezultata 19 5.1 Toˇcnost napovedi glede na izvajano aktivnost . . . 19

5.2 Toˇcnost napovedi pri razliˇcnih uporabnikih . . . 20

5.3 Znaˇcilke, povezane s toˇcnostjo napovedi . . . 21

(8)

KAZALO

6 Napovedovanje uspeˇsnosti klasifikacije 23

6.1 Napovedovanje na podlagi znaˇcilk, izraˇcunanih iz signala . . . 23

6.2 Napovedovanje na podlagi gotovosti mreˇze . . . 24

7 Izbira nivoja optimizacije 27 7.1 Ocenjevanje algoritmov . . . 27

7.2 Izbira smiselnih stopenj optimizacije . . . 28

7.3 Izbira na podlagi najpodobnejˇsih uˇcnih primerov . . . 28

7.4 Deljenje uˇcnih primerov na skupine . . . 31

7.5 Primerjava rezultatov . . . 37

8 Poraba energije 41 8.1 Kvantizirana nevronska mreˇza . . . 41

8.2 Poraba energije tanjˇsanih nevronskih mreˇz . . . 43

9 Uporaba prilagajanja optimizacije v praksi 49 9.1 Zasnova eksperimenta . . . 49

9.2 Prostovoljci . . . 51

9.3 Narejena programska oprema . . . 51

9.4 Izbira algoritma za izbiro nivoja optimizacije . . . 52

9.5 Raˇcunanje znaˇcilk v ˇzivo . . . 52

9.6 Rezultati eksperimenta . . . 54

10 Diskusija 59

11 Zakljuˇcek 61

(9)

Seznam uporabljenih kratic

kratica angleˇsko slovensko

CA classification accuracy klasifikacijska toˇcnost kNN k-nearest neighbors K najbliˇzjih sosedov

MSE Mean squared error Povpreˇcje kvadratov napak

RMSE Root mean squared error Koren povpreˇcja kvadratov napak SVM Support-vector machine Metoda podpornih vektorjev

RF Random forest Nakljuˇcni gozd

LOOCV Leave-one-person-out cross validation

Preˇcno preverjanje z izpuˇsˇcanjem enega uporabnika

LDA Linear discriminant analysis Linearna diskriminantna analiza PCA Principal component analysis Analiza glavnih komponent

(10)
(11)

Povzetek

Naslov: Kontekstno odvisno prilagajanje kompleksnosti raˇcunanja pri mo- bilnem zaznavanju

Uporaba nevronskih mreˇz na podroˇcju mobilnega zaznavanja postaja vse pogostejˇsa. Z visokimi toˇcnostmi pa prinaˇsa tudi teˇzave glede visokih pro- cesnih zahtev in velike porabe energije. To reˇsujemo z uporabo razliˇcnih optimizacij nevronske mreˇze, ki pa poleg zmanjˇsanja raˇcunske zahtevnosti zmanjˇsajo tudi toˇcnost. Ker je okolje mobilnega zaznavanja po naravi di- namiˇcno, se tudi potrebe po optimizaciji spreminjajo skozi ˇcas. V tem delu predlagamo postopek, s katerim lahko sproti izbiramo najbolj optimalen nivo optimizacije nevronske mreˇze, kar pomeni, da lahko pri primerih, ki so pre- prosti za klasifikacijo, energijo privarˇcujemo, pri zahtevnejˇsih primerih pa uporabimo natanˇcnejˇso mreˇzo, kar poskrbi za manjˇsi padec toˇcnosti. Posto- pek smo preizkusili na podroˇcju prepoznave aktivnosti, ki je med pomemb- nejˇsimi problemi mobilnega zaznavanja. Naˇsi rezultati kaˇzejo, da lahko z di- namiˇcnim prilagajanjem optimizacije doseˇzemo boljˇso toˇcnost, kot bi jo lahko ob enaki stopnji optimizacije dosegli, ˇce bi nivo optimizacije izbrali statiˇcno.

Prepoznavanje aktivnosti z nevronskimi mreˇzami smo implementirali tudi na dejanski mobilni napravi in preizkusili delovanje izbire optimizacije z lastnim eksperimentom.

Kljuˇ cne besede

mobilno zaznavanje, nevronske mreˇze, dinamiˇcna optimizacija, kvantizacija, tanjˇsanje nevronske mreˇze

(12)
(13)

Abstract

Title: Context-dependent computational complexity adjustment for mobile sensing

The use of neural networks in mobile sensing is becoming increasingly popular. Neural networks, however, bring high performance at the cost of resource intensiveness and high power consumption. To mitigate that, we can use a variety of optimization techniques, which reduce computational demands, but also reduce accuracy. Since mobile sensing is inherently dy- namic, using only one static level of optimization is not ideal. In this work, we propose an approach to dynamically selecting the level of optimization during real-time classification. By doing so, we can use a simpler model for classifying examples that are easy to classify, thus saving some energy and a more complex classifier for more difficult examples, preventing accuracy drop. We implemented the approach on an activity detection application and showed that by using dynamic optimization selection we can achieve higher accuracy than would be possible by statically selecting the same op- timization level. We also implemented the activity detection pipeline on an actual mobile device and confirmed our results with an experiment of our own.

Keywords

mobile sensing, neural networks, dynamic optimization, quantization, dnn slimming

(14)
(15)

Poglavje 1 Uvod

Podroˇcje mobilnega zaznavanja se je v preteklih letih zelo razvilo. S popu- larizacijo pametnih mobilnih telefonov nas v ˇzivljenju vedno spremlja veliko ˇstevilo senzorjev in podatkov. Z veliko koliˇcino podatkov se pojavljajo po- trebe po vse bolj zahtevnem obdelovanju le-teh. Za podroˇcje raˇcunalniˇstva to pomeni, da je potrebno najti nove reˇsitve, ki bodo omogoˇcale naprednejˇso analizo podatkov.

Danes vse veˇc modelov za napredno razpoznavo in obdelavo podatkov temelji na globokih nevronskih mreˇzah. Te dosegajo dobre rezultate na najrazliˇcnejˇsih podroˇcjih, njihova uporaba pa je mogoˇca tudi na mobilnih napravah. Marsikdaj nevronskih mreˇz ne moremo enostavno nadomestiti s preprostimi modeli strojnega uˇcenja, saj za nekatere naloge nevronske mreˇze delujejo mnogo bolje kot preprostejˇsi modeli. Takˇsne naloge so predvsem prepoznava slik in zvoka, podobno pa opaˇzamo tudi pri drugih problemih.

Obstaja veˇc razlogov, zaradi katerih ˇzelimo obdelavo podatkov izvesti na mobilni napravi. Na ta naˇcin lahko rezultate pridobimo hitreje, kot ˇce bi morali podatke prenesti na oddaljen streˇznik in jih obdelati tam. Poleg tega prenaˇsanje podatkov zahteva uporabo mobilnega omreˇzja, ki poveˇca porabo energije in lahko uporabniku povzroˇca dodatne stroˇske. ˇCe se zanaˇsamo na obdelavo podatkov v oblaku, se prav tako omejimo samo na situacije, kjer ima uporabnik internetno povezavo, pojavijo pa se tudi teˇzave glede uporabnikove

1

(16)

2 POGLAVJE 1. UVOD zasebnosti, saj se morajo v tem primeru merjeni podatki poˇsiljati na oddaljeni streˇznik. Zaradi vseh teh razlogov si ˇzelimo ˇcim veˇc procesiranja podatkov izvesti lokalno na napravi, kar pa prinaˇsa dodatne omejitve. Glavna teˇzava, s katero se sreˇcujemo pri procesiranju na mobilnih napravah, je omejena koliˇcina energije, ki je na voljo v baterijah. Ta predstavlja ˇse posebno oviro v primerih, kjer moramo prepoznavo poganjati dalj ˇcasa. Takˇsna naloga je na primer prepoznava uporabnikove aktivnosti, saj ˇzelimo aktivnost spremljati skozi dalˇse ˇcasovno obdobje. Zaradi tega je pogosto potrebno uporabiti zelo poenostavljen raˇcunski model, ki sicer porabi manj energije, vendar pa tudi deluje slabˇse, kot bi delovala globoka nevronska mreˇza. V tem delu iˇsˇcemo naˇcin, s katerim lahko nevronsko mreˇzo izvajamo tako, da porabi veliko manj energije, hkrati pa doseˇze dovolj dobre rezultate.

Za reˇsitev problemov mobilnega zaznavanja so raziskovalci ˇze razvili veˇc naˇcinov, s katerimi lahko nevronsko mreˇzo poenostavimo in doseˇzemo hitrejˇse delovanje, vendar pa se z njimi tudi zmanjˇsa toˇcnost, ki jo nevronska mreˇza doseˇze [1, 2]. Takˇsne optimizacije ˇze omogoˇcajo uporabo nevronskih mreˇz marsikje, kjer bi bile sicer prezahtevne, vendar pa moramo vedno izbirati med manjˇso porabo energije in veˇcjo toˇcnostjo.

Procesiranje na mobilni napravi za razliko od klasiˇcnih streˇznikov deluje v zelo dinamiˇcnem okolju. Kadar je naprava na primer prikljuˇcena na zu- nanji vir napajanja, varˇcevanje z energijo ni enako pomembno, kot je, kadar je baterija skoraj prazna. Prav tako lahko na mobilni napravi uporabnik z odpiranjem drugih aplikacij omeji vire, ki so na voljo za obdelavo podatkov.

Zaradi tega je smiselno nivo optimizacije nevronske mreˇze prilagajati sproti, ne pa zgolj izbrati ene statiˇcne vrednosti. Verjamemo tudi, da je pri mnogih problemih prepoznava nekaterih primerov zahtevnejˇsa kot prepoznava dru- gih. ˇCe to upoˇstevamo, lahko za prepoznavo enostavnih primerov uporabimo bolj optimizirano mreˇzo in privarˇcujemo z energijo, saj bo tudi preprostejˇsa mreˇza verjetno pravilno klasificirala enostaven primer. Nasprotno lahko za zahtevnejˇse primere uporabimo manj optimizirano nevronsko mreˇzo in tako prepreˇcimo velik upad toˇcnosti zaradi poenostavljenosti modela.

(17)

3

V tej nalogi predlagamo algoritem, ki bi za vsak primer posebej izbral najboljˇso stopnjo optimizacije. S tem bi omogoˇcili varˇcevanje z energijo z minimalno izgubo toˇcnosti. Uporabili bomo dva pristopa optimizacije ne- vronskih mreˇz (Any-precision nevronske mreˇze [3] in tanjˇsane (ang. slimma- ble) nevronske mreˇze [4]), ki do sedaj ˇse nista bila preizkuˇsena na podroˇcju mobilnega zaznavanja. Prav tako teh metod po nam znanih podatkih ˇse niso poskusili izvajati na mobilni napravi. Naˇsa naloga je bila prepoznava ak- tivnosti uporabnika z uporabo javne podatkovne zbirke in izvedba lastnega eksperimenta, s katerim bomo preverili delovanje na pravi mobilni napravi.

Prispevki k podroˇcju znanosti:

• Uporaba Any-precision in tanjˇsanih nevronskih mreˇz na domeni mobil- nega zaznavanja

• Uporaba nevronskih mreˇz ResNet-50 in MobileNet-v2 za prepoznavo aktivnosti

• Implementacija tanjˇsanih nevronskih mreˇz in Any-precision nevronskih mreˇz na mobilni napravi

• Predlagan postopek izbire stopnje optimizacije glede na posamezne vhodne vektorje.

• Meritev dejanske porabe energije med poganjanjem tanjˇsane nevronske mreˇze na mobilni napravi

• Izvedba lastnega eksperimenta - zbiranje podatkov o gibanju med iz- vajanjem razliˇcnih aktivnosti.

• Primerjava rezultatov dinamiˇcnega optimiziranja na lastnih in javno dostopnih podatkih.

Z uporabo dinamiˇcne optimizacije nevronske mreˇze lahko moˇcno zmanjˇsamo njeno zahtevnost brez velikega upada toˇcnosti. S tem se odpira moˇznost uporabe nevronskih mreˇz tudi na napravah, ki imajo zelo omejeno proce- sorsko moˇc in omejeno baterijsko napajanje. Uporabe nevronskih mreˇz ni

(18)

4 POGLAVJE 1. UVOD

vredno preuˇcevati zgolj za potrebe pametnih telefonov, marveˇc tudi za upo- rabo na drugih preprostih napravah, kot so na primer sluˇsalke z vgrajenim pospeˇskomerom [5] za merjenje aktivnosti, ali pa celo za zahtevnejˇse analize, kot so npr. znaki Parkinsonove bolezni. Podobno se nevronske mreˇze upo- rablja za obdelavo slikovnih podatkov. V primeru omejene procesorske moˇci in napajanja, na primer pri razpoznavi posevkov s pomoˇcjo drona, predla- gana metoda lahko uˇcinkovito pohitri obdelavo podatkov in zmanjˇsa porabo energije.

Koda, ki smo jo uporabili za izvajanje testov, je na voljo v repozitoriju https://github.com/TimotejK/Any-Precision-DNNs.

(19)

Poglavje 2

Pregled podroˇ cja

Nevronske mreˇze ˇze vrsto let predstavljajo eno najmoˇcnejˇsih orodij za reˇsevanje nekaterih problemov, s katerimi se raˇcunalniˇstvo spopada. Njihova uporaba postaja vse pogostejˇsa tudi na podroˇcju mobilnega zaznavanja. V ˇclanku [6]

sta Lane in Georgiev pokazala, da lahko z uporabo nevronskih mreˇz dobimo odliˇcne rezultate tudi na nalogah, s katerimi se spopada mobilno zaznavanje, kot so prepoznava aktivnosti, prepoznava govorca, zaznava ˇcustev iz zvoka in podobno. Opazila sta tudi, da je velika prednost nevronskih mreˇz v tem, da jih lahko po potrebi razˇsirimo na veˇcje ˇstevilo razredov. Uporaba globokega uˇcenja na mobilnih napravah je ˇse posebej zanimiva za velika podjetja, ki se spopadajo z ogromnimi koliˇcinami podatkov. Takˇsne podatke je smiselno obdelati ˇze na sami napravi in s tem zmanjˇsati promet po omreˇzju in ˇcas, ki je potreben, da uporabnik prejme odgovor, prav tako pa s tem poveˇcamo uporabnikovo zasebnost. Wu et. al. so v ˇclanku [7] predstavili, kako se s poganjanjem modelov strojnega uˇcenja na mobilnih napravah spopadajo v podjetju Facebook.

Pomembna lastnost nevronskih mreˇz je ogromno ˇstevilo parametrov, ki jih lahko nastavimo in z njimi doseˇzemo reˇsevanje najrazliˇcnejˇsih problemov.

Ravno ta velika kompleksnost pa predstavlja tudi veliko oviro, saj nevronske mreˇze za svoje izvajanje zahtevajo veliko raˇcunskih in pomnilniˇskih virov.

Raziskovalci se ˇze dolgo spraˇsujejo, ali je to veliko ˇstevilo parametrov in 5

(20)

6 POGLAVJE 2. PREGLED PODRO ˇCJA

slojev pri nevronskih mreˇzah res potrebno. Raziskovalca Ba in Caruana sta v ˇclanku [8] ugotovila, da se lahko preprostejˇse plitve mreˇze pogosto nauˇcijo reˇsevati iste probleme, kot jih obiˇcajno reˇsujejo globoke nevronske mreˇze.

Ena izmed prvih metod za pripravo preprostejˇse nevronske mreˇze, ki de- luje podobno kot kompleksnejˇsa mreˇza ali pa celo skupina veˇc mreˇz, je desti- lacija nevronskih mreˇz. Bucila et. al. so v ˇclanku [9] pokazali, kako je mogoˇce uporabiti kompleksen model, zgrajen iz veˇc nevronskih mreˇz, da nauˇcimo eno samo mreˇzo, ki doseˇze podobne rezultate, kot bi jih dosegli z uporabo mnogo kompleksnejˇsega modela. Pristop so kasneje ˇse dodatno razvili Hinton et. al.

v ˇclanku [10].

Vsi pristopi do tu zahtevajo, da roˇcno pripravimo manj zahtevno nevron- sko mreˇzo, ki jo nauˇcimo delovati podobno kot kompleksnejˇsa mreˇza. Razi- skanih je bilo tudi veˇc metod za avtomatsko poenostavitev nevronske mreˇze z le majhno izgubo toˇcnosti. Takˇsen primer je delo raziskovalcev Lane et.

al. [2]. V njem so raziskovalci predstavili programski pospeˇsevalec DeepX, ki omogoˇca izvajanje globokih nevronskih mreˇz na ˇsibkejˇsih napravah tako, da nevronsko mreˇzo razdeli na veˇc delov in vsakega izvede na najprimer- nejˇsi strojni opremi. Poleg tega tudi poenostavi dele nevronske mreˇze, tako da zmanjˇsa ˇstevilo nevronov. V delu so raziskovalci pokazali, da lahko s tem pospeˇsijo izvajanje nevronskih mreˇz in izgubijo celo le pet odstotkov toˇcnosti.

Raziskanih je bilo tudi veˇc generiˇcnih pristopov za optimizacijo nevronske mreˇze. Eden pogosteje uporabljenih je kvantizacija nevronskih mreˇz. Nayak et. al. so v ˇclanku [11] predstavili metodo za kvantizacijo mreˇze po treni- ranju, ki lahko doseˇze polno toˇcnost ˇze pri zapisu ˇstevil samo s tremi biti.

Podroˇcje kvantizacije nevronskih mreˇz je podrobneje preiskal Krishnamoorthi v delu [12]. V delu prikaˇze, da lahko s kvantiziranjem nevronske mreˇze po treniranju doseˇze rezultate, ki so le 2% slabˇsi od rezultatov prvotne mreˇze.

Pri tem je uporabil 4-bitno kvantizacijo. S treniranjem, prilagojenim kvan- tizaciji, pa je rezultate mogoˇce ˇse nekoliko izboljˇsati. Predstavi tudi, da je z uporabo 8-bitne kvantizacije mogoˇce pospeˇsiti izvajanje nevronske mreˇze za dvakrat ali celo trikrat. Nekatere naprave omogoˇcajo tudi vektorske operacije

(21)

7

za cela ˇstevila, kar lahko ˇse dodatno pospeˇsi kvantizirane mreˇze.

Yu et. al. v ˇclanku [3] predstavijo ogrodje Any-precision, ki omogoˇca treniranje nevronskih mreˇz tako, da so prilagojene za veˇc razliˇcnih nivojev kvantizacije hkrati. S tem lahko med izvajanjem sproti prilagajamo nivo kvantizacije in kljub temu dobimo toˇcnosti, ki zahtevajo treniranje, prilago- jeno kvantizaciji. Any-precision nevronske mreˇze se trenutno ˇse vedno izva- jajo z uporabo 32-bitnih decimalnih ˇstevil, tako da v praksi njihova uporaba ne prinese prihrankov glede ˇcasa izvajanja.

Se ena izmed znanih metod za poenostavitev izvajanja nevronskih mreˇˇ z je uporaba kaskadnih mreˇz [13]. Pri tem je mreˇza razdeljena na veˇc delov, pri ˇcemer lahko rezultat pridobimo po vsakem izmed njih. ˇCe ˇzelimo dobiti natanˇcnejˇso klasifikacijo, lahko tako izvedemo celotno nevronsko mreˇzo, ˇce pa ˇzelimo zmanjˇsati raˇcunsko zahtevnost, lahko izvedemo tudi samo del mreˇze in rezultat dobimo ˇze takoj po tem delu. Uporaba kaskadnih mreˇz omogoˇca tudi, da del mreˇze izvedemo na lokalni napravi, del pa na zunanjem streˇzniku, kar je v nekaterih primerih zelo koristno.

Yu et. al. so leta 2018 v ˇclanku [4] predstavili tanjˇsane (ang. slimmable) nevronske mreˇze. Te so trenirane tako, da lahko pri izvajanju uporabimo samo del nevronov na vsaki plasti. S tem zmanjˇsamo raˇcunanje, ki je po- trebno za uporabo nevronske mreˇze. Leta 2019 so v ˇclanku [14] predstavili ˇse tako imenovane ’universally slimmable’ nevronske mreˇze. Te omogoˇcajo uporabo poljubne ˇsirine mreˇze in ne samo ene izmed tistih, za katere je bila mreˇza nauˇcena. Dodatna dobra lastnost tega pristopa je, da lahko ˇsirino mreˇze spreminjamo za vsako klasifikacijo posebej, ne da bi s tem upoˇcasnili njeno delovanje.

Opisani ˇclanki sicer omogoˇcajo prilagajanje nivoja optimizacije za vsako klasifikacijo posebej, vendar pa ne predlagajo postopka, ki bi omogoˇcal pri- lagajanje optimizacije kontekstu, v katerem se izvaja. V delu bomo razi- skali sprotno prilagajanje optimizacije. Predstavili bomo postopek, s katerim lahko med klasifikacijo v realnem ˇcasu sproti prilagajamo nivo optimizacije glede na to, kako zahtevno mreˇzo potrebujemo za klasifikacijo doloˇcenega

(22)

8 POGLAVJE 2. PREGLED PODRO ˇCJA

primera. Priˇcakujemo, da bomo na ta naˇcin lahko dosegli viˇsje toˇcnosti, kot jih je mogoˇce doseˇci, ˇce uporabimo samo en nivo optimizacije. Metode bomo preizkusili na Any-precision in tanjˇsanih nevronskih mreˇzah na podroˇcju raz- poznave aktivnosti. Poleg tega bomo tanjˇsane nevronske mreˇze uporabili na mobilni napravi in jih preizkusili z lastnim eksperimentom, ˇcesar do sedaj ˇse nismo zasledili v literaturi.

(23)

Poglavje 3

Opis problema

S ˇsiroko uporabo pametnih telefonov se je pojavila ˇzelja po njihovi upo- rabi za spremljanje telesne aktivnosti. Spremljanje aktivnosti je koristno za razliˇcne namene, med drugim spremljanje gibanja lahko uporabimo za spod- bujanje telesne vadbe in zdravega naˇcina ˇzivljenja. Zgoden primer uporabe prepoznave aktivnosti za spodbujanje gibanja lahko vidimo v ˇclanku Kla- snja et. al. [15]. Poleg tega lahko preko zaznave gibanja prepoznamo tudi nekatere bolezni, kot je na primer Parkinsonova bolezen. Prepoznava aktiv- nosti je lahko koristna tudi za avtomatsko prilagajanje uporabniˇske izkuˇsnje.

V ˇclanku [16] je predstavljeno eksperimentalno socialno omreˇzje CenceMe, pri katerem lahko uporabniki s pomoˇcjo avtomatske prepoznave aktivnosti s prijatelji delijo, kje so in kaj delajo.

Tudi danes se s prepoznavo aktivnosti ukvarja veliko raziskovalcev in podjetij. Prepoznava aktivnosti poteka na primer ˇze na nivoju operacijskega sistema za mobilne telefone Android. S spremljanjem aktivnosti se ukvar- jajo tudi uspeˇsna podjetja, na primer Fitbit. Tudi veliko raziskovalnih ekip deluje na podroˇcju prepoznave aktivnosti. Eden zgodnejˇsih ˇclankov o pre- poznavi aktivnosti so napisali Ravi et. al. [17]. V njem so raziskovalci za prepoznavo izvajane aktivnosti uporabili podatke o pospeˇskih. V ˇclanku [18] so Huynh et. al. raziskali, katere znaˇcilke so za prepoznavo aktivno- sti najkoristnejˇse. Ordonez in Roggen sta v ˇclanku [19] predstavila, kako

9

(24)

10 POGLAVJE 3. OPIS PROBLEMA

lahko namesto znaˇcilk za prepoznavo aktivnosti uporabimo globoko nevron- sko mreˇzo. Uporabljata mreˇze, ki vsebujejo tako konvolucijske kot LSTM rekurzivne elemente. ˇCeprav je na podroˇcju prepoznave aktivnosti narejeno ˇze veliko, predstavlja nenehno zaznavanje ˇse vedno problem, zlasti pri uporabi prepoznave aktivnosti na nosljivih napravah, sluˇsalkah, napravah interneta stvari (IoT) in podobno.

3.1 Izbira nevronske mreˇ ze

Za potrebe naloge smo prepoznavo aktivnosti izvedli s pomoˇcjo nevronske mreˇze. Za poenostavljanje nevronske mreˇze smo uporabili ogrodji Any- precision, ki je podrobneje opisano v poglavju 4.1, in tanjˇsanje nevronskih mreˇz, ki je opisano v poglavju 4.2. Any-precision ogrodje omogoˇca treniranje veˇc razliˇcnih nevronskih mreˇz. V javno dostopnem repozitoriju, ki je pred- stavljen v ˇclanku [3], sta ˇze implementirani mreˇzi ResNet-18 in ResNet-50.

Preizkusili smo delovanje obeh in se odloˇcili za uporabo mreˇze ResNet-50, saj smo z njo dosegli nekoliko boljˇse rezultate. Ker ta mreˇza na mobilnih napravah deluje poˇcasi, smo za izvedbo eksperimentov implementirali tudi MobileNet-V2 nevronsko mreˇzo, ki deluje hitreje in dosega podobne rezul- tate. Za prilagajanje MobileNet-V2 mreˇze smo uporabili tudi tanjˇsanje, ki nam omogoˇca resniˇcne prihranke pri porabi energije. Konvolucijska nevron- ska mreˇza MobileNet-V2 se obiˇcajno uporablja za prepoznavo slik, njena uporaba za namen prepoznave aktivnosti pa je v veliki meri ˇse neraziskana.

3.2 Preslikava vhodnih podatkov

Vse uporabljene nevronske mreˇze so bile zasnovane za analizo slik, zato je bilo potrebno podatke o izmerjenih signalih preoblikovati v sliko, ki jo nevronska mreˇza lahko obdeluje. Uporabili smo slike velikosti 32 krat 32 slikovnih toˇck s tremi barvnimi kanali. To pomeni, da smo na vsako sliko lahko zapisali 3072 vrednosti. Primer takˇsne slike je prikazan na sliki 3.2.

(25)

3.3. PODATKOVNA ZBIRKA ZA RAZPOZNAVANJE AKTIVNOSTI 11

3.3 Podatkovna zbirka za razpoznavanje ak- tivnosti

Za treniranje nevronske mreˇze smo potrebovali dovolj veliko zbirko podatkov razliˇcnih aktivnosti. Odloˇcili smo se za uporabo prosto dostopne podatkovne zbirkeHuman Activity Recognition Using Smartphones [20], saj je ta ˇze uve- ljavljena v literaturi. Zbirka vsebuje podatke 30 udeleˇzencev, ki so izvajali 6 razliˇcnih aktivnosti. Med izvajanjem aktivnosti so imeli udeleˇzenci za pas pritrjen pametni telefon, ki je meril pospeˇske z uporabo pospeˇskomera ter kotne hitrosti z uporabo ˇziroskopa. V zbirki je na podlagi merjenih signa- lov vnaprej izraˇcunanih tudi 561 znaˇcilk, ki opisujejo gibanje uporabnikov.

Za potrebe tega eksperimenta smo mreˇzo natrenirali na surovih merjenih signalih brez uporabe znaˇcilk.

Podatkovna zbirka, ki smo jo uporabili, vsebuje devet razliˇcnih signalov, kjer trije predstavljajo nizkofrekvenˇcni del pospeˇska v treh pravokotnih sme- reh, trije predstavljajo visokofrekvenˇcni del pospeˇska, zadnji trije pa pred- stavljajo kotno hitrost v vseh treh smereh. Signali so razdeljeni na okna, ki vsebujejo 128 zaporednih podatkov. Vsako okno tako vsebuje 1152 vredno- sti. Da smo zbrali dovolj vrednosti za napolnitev celotne slike, smo skupaj zdruˇzili po tri zaporedna okna. Tako vsaka slika vsebuje podatke o 5,3 se- kundah gibanja. Primere, kjer zaporedna okna niso vsebovala iste aktivnosti, smo zavrgli.

Podatki so bili v sliko preoblikovani tako, da smo vsakega izmed barvnih kanalov uporabili za eno izmed smernih komponent signalov, na sliko pa smo v zgornjo tretjino dali podatke o visoki frekvenci pospeˇskov, ki predstavljajo uporabnikovo gibanje, v srednjo tretjino smo postavili podatke o kotni hi- trosti naprave, v spodnjo tretjino slike pa smo vnesli podatke o celotnem pospeˇsku, vkljuˇcno z gravitacijskim pospeˇskom. Na sliki 3.1 je prikazan dia- gram pretvorbe surovih signalov v sliko. Poskusili smo tudi veˇc drugih oblik slik, vendar je ta oblika delovala najbolje.

(26)

12 POGLAVJE 3. OPIS PROBLEMA

Slika 3.1: Diagram pretvorbe signalov v sliko. Tri signale, ki opisujejo pospeˇsek, ter tri, ki opisujejo kotno hitrost, obdelamo tako, da odstranimo ˇsum. Vsako komponento pospeˇska glede na frekvenco loˇcimo na gravitacijski del in gibanje telesa. Tako dobimo 9 signalov, ki jih zloˇzimo v sliko.

Slika 3.2: Primer slike, ki opisuje gibanje.

(27)

Poglavje 4

Priprava modela

Na podroˇcju mobilnega zaznavanja pogosto ˇzelimo podatke obdelati lokalno na napravi, ki je raˇcunsko zelo omejena. Lokalno procesiranje je potrebno, kadar ˇzelimo podpreti delovanje brez omreˇzne povezave, zaˇsˇcititi uporab- nikovo zasebnost in podobno. Poleg omejenih raˇcunskih kapacitet imamo pogosto ˇse dodatne omejitve glede energije, ki jo lahko porabimo, saj mo- bilne naprave pogosto delujejo s pomoˇcjo baterij. Kljub tem omejitvam je v mnogih primerih koristna uporaba nevronskih mreˇz, saj te vˇcasih dosegajo veliko boljˇse rezultate kot ostali modeli [21].

4.1 Any-precision nevronske mreˇ ze

Ena izmed bolj uveljavljenih oblik optimizacije nevronskih mreˇz je uporaba kvantizacije. Pri tem uteˇzi in aktivacijske vrednosti na posameznih plasteh, ki so obiˇcajno zapisana kot 32-bitna decimalna ˇstevila, pretvorimo v cela ˇstevila, ki so obiˇcajno zapisana z osmimi biti. S tem omogoˇcimo raˇcunanje operacij znotraj nevronske mreˇze na delu procesorja, ki je namenjen delu s celimi ˇstevili in obiˇcajno deluje hitreje kot enote za delo z decimalnimi ˇstevili.

Z zmanjˇsanjem natanˇcnosti zapisanih ˇstevil zmanjˇsamo tudi prostor, ki je potreben za shranjevanje nevronske mreˇze tako na delovnem pomnilniku kot v trajnem pomnilniku. To nam omogoˇca laˇzje delo z nevronskimi mreˇzami

13

(28)

14 POGLAVJE 4. PRIPRAVA MODELA

predvsem na mobilnih napravah.

V ˇclanku so Yu et. al.[3] razˇsirili kvantizacijo nevronskih mreˇz v tako imenovanih Any-precision globokih nevronskih mreˇzah. V tem ˇclanku so raziskovalci predstavili naˇcin za prilagoditev nevronske mreˇze in njeno treni- ranje, ki omogoˇca, da lahko mreˇza deluje na razliˇcnih natanˇcnostnih nivojih, ne da bi pri tem izgubila veliko toˇcnosti ali da bi jo bilo potrebno ponovno trenirati. ˇStevilo bitov, uporabljenih za zapis uteˇzi in aktivacijskih vredno- sti, je mogoˇce dinamiˇcno prilagajati med posameznimi klasifikacijami (glej diagram 4.1). To doseˇzejo tako, da pred vsako konvolucijsko plast dodajo ˇse operacijo normalizacije. Normalizacijske vrednosti so nauˇcene za vsako stopnjo kvantizacije posebej. Ob uporabi mreˇze se tako uporabijo vrednosti, ki so bile nauˇcene ob uporabi trenutno nastavljene stopnje kvantizacije.

Slika 4.1: Diagram any-precision nevronske mreˇze.

Za naˇse potrebe je projekt Any-precision posebej zanimiv, saj omogoˇca sprotno prilagajanje nivoja kvantizacije. S tem lahko nevronsko mreˇzo pri- lagajamo trenutnim potrebam. Any-precision nevronsko mreˇzo bomo tako nadgradili s sprotnim prilagajanjem stopnje kvantizacije, s ˇcimer bomo po- skusili izboljˇsati rezultate. Poleg tega so Any-precision nevronske mreˇze do sedaj preizkuˇsali le na moˇcnih raˇcunalnikih. V tem delu bomo preizkusili tudi njihovo delovanje na pravi mobilni napravi. Uporaba takˇsnih nevron- skih mreˇz na mobilnih napravah ni preprosta, saj se any-precision zanaˇsa na knjiˇznico PyTorch, ki ima na mobilni strojni opremi slabo podporo.

Ena od pomanjkljivosti Any-precision nevronskih mreˇz je, da je kvantiza- cija implementirana tako, da se uteˇzem zmanjˇsa natanˇcnost, vendar pa so ˇse

(29)

4.2. TANJˇSANE NEVRONSKE MRE ˇZE 15

vedno shranjene kot 32-bitna decimalna ˇstevila. To pomeni, da v praksi samo simulira obnaˇsanje, ki ga lahko priˇcakujemo ob uporabi prave kvantizacije in ne omogoˇca pravih energijskih prihrankov.

4.2 Tanjˇ sane nevronske mreˇ ze

V nalogi smo ˇzeleli tudi demonstrirati prihranke energije v resniˇcnem oko- lju, zato smo poleg kvantiziranih mreˇz uporabili tudi tanjˇsane nevronske mreˇze (ang. Slimmable neural network) [4]. Takˇsne mreˇze omogoˇcajo, da zmanjˇsamo ˇstevilo nevronov, ki se uporabijo na vsaki plasti (glej dia- gram 4.2). Z zmanjˇsanjem ˇstevila nevronov se pohitri izvajanje, saj je po- trebno manj raˇcunanja, hkrati pa se zmanjˇsa toˇcnost klasifikacij. Tanjˇsane nevronske mreˇze je potrebno trenirati na poseben naˇcin, saj bi sicer uporaba zmanjˇsanega ˇstevila nevronov povsem pokvarila rezultate. Podobno kot pri Any-precision nevronskih mreˇzah tudi pri tanjˇsanih nevronskih mreˇzah pred vsako konvolucijsko plast dodamo normalizacijsko plast, ki se spreminja glede na izbrano ˇsirino mreˇze. Pri treniranju se tako normalizacijske vrednosti za vsako ˇsirino mreˇze nauˇcijo posebej.

Slika 4.2: Diagram tanjˇsane nevronske mreˇze iz ˇclanka [4].

Tanjˇsane nevronske mreˇze omogoˇcajo, da za vsako prepoznavo posebej doloˇcimo ˇsirino mreˇze, ki se bo uporabila. Yu et. al. so v ˇclanku [14]

predlagali tudi razˇsirjeno implementacijo, ki omogoˇca tudi izbiro ˇsirin, na katerih mreˇza ni bila trenirana.

Tudi tanjˇsane nevronske mreˇze ˇse niso bile preizkuˇsne na pravih mobilnih

(30)

16 POGLAVJE 4. PRIPRAVA MODELA

napravah. V tej nalogi bomo tako kot Any-precision nevronske mreˇze tudi te poganjali na mobilni napravi z ARM procesorjem in preizkusili njihovo delovanje na praktiˇcnem primeru.

4.3 Rezultati razpoznavanja aktivnosti

Pripravljene podatke smo uporabili za treniranje obeh nevronskih mreˇz. Tako kvantizirano mreˇzo ResNet-50 kot tanjˇsano mreˇzo MobileNet-V2 smo treni- rali s kodo, ki je bila napisana v Any-Precision projektu in je dostopna na Github strani [22], saj smo s tem dosegli boljˇse toˇcnosti kot pri treniranju s kodo iz projekta slimmable networks [23]. Razlika med kodama za treni- ranje je v tem, da Any-Precision podpira uporabo Adam optimizacijskega algoritma, medtem ko koda iz projekta slimmable networks uporablja stoha- stiˇcni gradientni spust, ki je v naˇsem primeru dosegel slabˇse rezultate. Izme- rili smo toˇcnosti, ki sta jih mreˇzi dosegli pri razliˇcnih stopnjah optimizacije.

Pri treniranju smo uporabili delitev podatkov, ki je bila vnaprej definirana v podatkovni zbirki [20]. Tako so bili podatki 21 uporabnikov uporabljeni za treniranje mreˇze, podatki 9 uporabnikov pa so bili uporabljeni za testiranje.

Med treniranjem mreˇze smo opazili, da so v nekaterih primerih mreˇze z natanˇcnejˇsimi ˇstevili delovale slabˇse kot tiste z manj natanˇcnimi ˇstevili.

Predvidevamo, da se to zgodi, ker se natanˇcnejˇse mreˇze prekomerno prila- godijo na uˇcne podatke, medtem ko so manj natanˇcne mreˇze nauˇcene bolj sploˇsno. Zaradi tega lahko na testnih podatkih preprostejˇse mreˇze delujejo bolje. Poenostavljanje mreˇze za prepreˇcevanje prekomernega prilagajanja je opisano tudi v ˇclanku [24]. Ta problem smo uspeli v veliki meri reˇsiti z uporabo zmanjˇsevanja uteˇzi med treniranjem, ki prepreˇcuje prekomerno prileganje.

(31)

4.4. TO ˇCNOST IZBIRE 17

4.4 Toˇ cnost izbire

Najprej si ogledamo toˇcnosti, ki jih je dosegla kvantizirana nevronska mreˇza pri razliˇcnih natanˇcnostih zapisa aktivacijskih vrednosti in uteˇzi. Toˇcnosti so prikazane na sliki 4.3. Nevronska mreˇza je pri napovedovanju aktivnosti na testnih podatkih uspela doseˇci pribliˇzno 92% toˇcnost. Vidimo, da uporaba veˇcjega ˇstevila bitov veˇcinoma prinese tudi veˇcjo toˇcnost. To ne drˇzi le v primeru uporabe 32-bitnih ˇstevil, kjer mreˇza doseˇze manjˇso toˇcnost kot pri uporabi 8-bitnih ˇstevil. Razlog za to je verjetno ˇse vedno prekomerno prile- ganje uˇcnim podatkom, vendar pa smo pri poveˇcevanju regularizacije opazili upad toˇcnosti, zato regularizacije nismo poveˇcali.

Slika 4.3: Toˇcnost kvantizirane nevronske mreˇze glede na uporabljeno ˇstevilo bitov za zapis aktivacijskih vrednosti ter uteˇzi.

Na sliki 4.4 smo prikazali toˇcnosti, ki jih je dosegla tanjˇsana nevronska mreˇza pri razliˇcnih stopnjah tanjˇsanja. Nevronska mreˇza je uspela aktivnosti napovedovati s pribliˇzno 94% toˇcnostjo. Vidimo, da so toˇcnosti na sploˇsno nekoliko viˇsje kot pri kvantizirani nevronski mreˇzi, tudi tukaj pa velja, da veˇcje mreˇze veˇcinoma doseˇzejo viˇsjo toˇcnost. Zanimivo je, da tudi v tem

(32)

18 POGLAVJE 4. PRIPRAVA MODELA

primeru najveˇcja mreˇza deluje slabˇse kot druga najveˇcja. Netanjˇsana mreˇza se najverjetneje ponovno prekomerno prilagaja uˇcnim podatkom in zato de- luje malenkost slabˇse kot mreˇza s 75% ˇsirino, vendar pa gre za zelo majhno razliko, ki je lahko tudi rezultat nakljuˇcnih razlik pri treniranju.

Slika 4.4: Toˇcnost tanjˇsane nevronske mreˇze glede na uporabljeno ˇsirino mreˇze.

(33)

Poglavje 5

Analiza vplivov na pravilnost rezultata

Eno izmed kljuˇcnih vpraˇsanj za izbiro ustreznega nivoja optimizacije ne- vronske mreˇze je, zakaj so nekateri primeri klasificirani pravilno, drugi pa napaˇcno. Ugotoviti ˇzelimo predvsem, v katerih primerih pride do vhodov, ki jih je teˇzje oziroma laˇzje pravilno klasificirati.

5.1 Toˇ cnost napovedi glede na izvajano ak- tivnost

Ogledali smo si, kakˇsne toˇcnosti doseˇzejo razliˇcno kvantizirane nevronske mreˇze, ˇce podatke razdelimo glede na to, katero aktivnost je uporabnik iz- vajal. Razlog, da bi aktivnost lahko vplivala na doseˇzeno toˇcnost, je v tem, da je nekatere aktivnosti morda teˇzko razloˇciti in bi bilo zanje smiselno upo- rabiti natanˇcnejˇso nevronsko mreˇzo, medtem ko je druge aktivnosti morda laˇzje prepoznati, zaradi ˇcesar zadostuje ˇze preprosta mreˇza.

Doseˇzena toˇcnost glede na aktivnost je prikazana na sliki 5.1. Opazili smo, da nevronska mreˇza res napoveduje nekatere aktivnosti natanˇcneje kot druge. Vidimo lahko, da je leˇzanje skoraj vedno pravilno prepoznano, ne glede na uporabljeno stopnjo kvantizacije, medtem ko je sedenje prepoznano

19

(34)

20 POGLAVJE 5. ANALIZA VPLIVOV NA PRAVILNOST REZULTATA

nekoliko slabˇse. Glede na ta rezultat vidimo, da bi se za podatke, ki opisujejo leˇzanje, najbolj izplaˇcalo uporabiti kvantizacijo z le enim bitom, za podatke o sedenju pa bi se na primer najbolj izplaˇcalo uporabiti ˇstiri- ali osembitno kvantizacijo. Ugotovili smo, da bi bilo smiselno postopek za izbiro stopnje kvantizacije nevronske mreˇze izdelati tako, da upoˇsteva ocenjeno aktivnost.

Slika 5.1: Toˇcnost kvantizirane nevronske mreˇze glede na uporabljeno ˇstevilo bitov, razdeljene po aktivnostih.

5.2 Toˇ cnost napovedi pri razliˇ cnih uporabni- kih

Ogledali smo si tudi, kako na toˇcnost nevronske mreˇze vpliva, kateri uporab- nik je aktivnost izvajal. Opazili smo, da se napovedne toˇcnosti med razliˇcnimi uporabniki moˇcno razlikujejo. Na sliki 5.2 lahko vidimo, da je na primer pri uporabniku 10 nevronska mreˇza dosegla veliko slabˇse rezultate kot na primer pri uporabniku 12.

Eden izmed mogoˇcih razlogov za te razlike med uporabniki je lahko, da so imeli uporabniki razliˇcno nameˇsˇcene telefone, ki so podatke merili.

(35)

5.3. ZNA ˇCILKE, POVEZANE S TO ˇCNOSTJO NAPOVEDI 21

Slika 5.2: Toˇcnosti kvantizirane nevronske mreˇze glede na uporabljeno ˇstevilo bitov, razdeljene po uporabnikih.

5.3 Znaˇ cilke, povezane s toˇ cnostjo napovedi

Za izbiro nivoja kvantizacije bi bilo koristno, ˇce bi lahko nivo izbrali glede na vrednost nekaj preprostih znaˇcilk. Pri tem smo obravnavali 561 znaˇcilk, ki so bile vnaprej izraˇcunane ob pripravi podatkovne zbirke [20]. Znaˇcilke smo ocenili s pomoˇcjo algoritma RReliefF [25] glede na to, kako dobro opisujejo, ali je bil primer pravilno klasificiran. Ugotovili smo, da so najpomembnejˇse vse tri znaˇcilke, ki opisujejo korelacijo med gravitacijskim delom pospeˇska v dveh smereh. Tega rezultata si sicer ne znamo intuitivno obrazloˇziti, vendar pa je kljub temu smiselno poskusiti izbrati stopnjo kvantizacije na podlagi teh znaˇcilk.

(36)

22 POGLAVJE 5. ANALIZA VPLIVOV NA PRAVILNOST REZULTATA

(37)

Poglavje 6

Napovedovanje uspeˇ snosti klasifikacije

Ne moremo vnaprej vedeti, ali bo nevronska mreˇza trenutni vhod klasificirala pravilno. Za uˇcinkovito uporabo dinamiˇcnega prilagajanja je potrebno, pre- den zaˇcnemo s klasifikacijo, oceniti, ali bo doloˇcena mreˇza uspeˇsna, in izbrati tisto, ki potrebuje najmanj virov za uspeˇsno klasifikacijo.

6.1 Napovedovanje na podlagi znaˇ cilk, izraˇ cunanih iz signala

Z napovedovanjem pravilnosti klasifikacije ˇzelimo posredno napovedovati teˇzavnost klasifikacije posameznih primerov. S tem lahko uporabimo zahtevnejˇso ne- vronsko mreˇzo za klasifikacijo zahtevnejˇsih primerov in preprostejˇso za kla- sifikacijo preprostejˇsih primerov.

Podatke o pravilnih in nepravilnih klasifikacijah, ki jih je naredila mreˇza, smo uvozili v program Orange in poskusili na podlagi vseh 561 znaˇcilk iz podatkovne zbirke napovedati, ali je bila klasifikacija pravilna ali ne. Pri tem smo uporabili veˇc preprostih modelov strojnega uˇcenja. Pri uporabi modelov strojnega uˇcenja moramo upoˇstevati, da ne smemo uporabiti preveˇc kompleksnih modelov, ki bi porabili veliko energije, saj bi s tem zgreˇsili

23

(38)

24 POGLAVJE 6. NAPOVEDOVANJE USPEˇSNOSTI KLASIFIKACIJE

namen uporabe poenostavljenih nevronskih mreˇz, ki je zmanjˇsevanje porabe energije.

Kot ciljno spremenljivko smo uporabili toˇcnost. Toˇcnost smo definirali kot deleˇz bitnih ˇsirin, ki so pravilno klasificirale primer. ˇCe je na primer ne- vronska mreˇza primer pravilno klasificirala pri treh izmed petih bitnih ˇsirin, je bila toˇcnost 0,6. Tako je pomembno samo ˇstevilo nivojev optimizacije, ki so pravilno klasificirali primer, ne pa tudi to, katere izmed optimizacij so kla- sificirale pravilno. Za oceno uspeˇsnosti napovedovanja toˇcnosti smo uporabili petkratno preˇcno validacijo. Primerjali smo algoritme: k najbliˇzjih sosedov (kNN), nakljuˇcni gozd (RF), metodo podpornih vektorjev (SVM), linearno regresijo in konstantno vrednost, ki je sluˇzila za osnovo. Podrobni rezultati so predstavljeni v tabeli 6.1. Modele smo ocenili s povpreˇcno vrednostjo kva- dratov napake (MSE) in s korenom povpreˇcne vrednosti kvadratov napake (RMSE).

Tabela 6.1: Napake, ki so jih naredili razliˇcni algoritmi pri napovedovanju uspeˇsnosti klasifikacije posameznih primerov aktivnosti.

MSE RMSE

kNN 0.039 0.198

SVM 0.051 0.225

Nakljuˇcni gozd 0.051 0.226 Linearna regresija 0.056 0.236 Konstantna vrednost 0.056 0.238

Ugotovili smo, da je bil pri napovedovanju pravilnosti klasifikacije naju- speˇsnejˇsi algoritem k najbliˇzjih sosedov (kNN), ki vrednost napove glede na vrednost, ki prevladuje med uˇcnimi primeri, ki so najbliˇzji testnemu primeru.

6.2 Napovedovanje na podlagi gotovosti mreˇ ze

Na podlagi vrednosti na zadnji plasti je mogoˇce oceniti stopnjo zanesljivosti klasifikacije. To vrednost bomo v nadaljevanju imenovali gotovost mreˇze.

(39)

6.2. NAPOVEDOVANJE NA PODLAGI GOTOVOSTI MRE ˇZE 25

Gotovost izraˇcunamo tako, da na zadnji plasti uporabimo softmax funkcijo, ki zagotovi, da je vsota vseh vrednosti 1. Kadar je ena vrednost veliko veˇcja od ostalih, pogosto obstaja veˇcja verjetnost, da je ta vrednost prava, kot ˇce imamo veˇc vrednosti, ki so pribliˇzno enako velike.

Preverili smo, ali so vrednosti gotovosti v naˇsem primeru povezane s toˇcnostjo, ki jo doseˇze nevronska mreˇza. Rezultati so prikazani na sliki 6.1.

Vidimo, da veˇcja gotovost res sovpada z veˇcjo toˇcnostjo.

Slika 6.1: Primerjava toˇcnosti in gotovosti nevronske mreˇze za razliˇcne bitne ˇsirine.

Povezavo med toˇcnostjo in gotovostjo smo si ˇse podrobneje ogledali tako, da smo primere razdelili na aktivnosti in primerjavo pripravili za vsako ak- tivnost posebej. S tem smo ˇzeleli videti, ali povezava med gotovostjo in toˇcnostjo drˇzi za vse aktivnosti. Na sliki 6.2 smo predstavili gotovosti in toˇcnosti za vsako aktivnost posebej. Vidimo lahko, da pri nekaterih aktiv- nostih, kot so hoja po stopnicah navzgor in leˇzanje, povezava med toˇcnostjo in gotovostjo ni zelo moˇcna. Kljub temu smo opazili, da gotovost v veˇcini primerov naraˇsˇca s toˇcnostjo, dokler mreˇza ne doseˇze maksimalne toˇcnosti.

Ker nas pri izbiri poenostavitve mreˇze zanimajo predvsem primeri, kjer ˇse

(40)

26 POGLAVJE 6. NAPOVEDOVANJE USPEˇSNOSTI KLASIFIKACIJE

ni doseˇzena maksimalna toˇcnost, menimo, da je gotovost primerna mera za izbiro stopnje poenostavitve mreˇze. Pri tem se je potrebno zavedati, da povezava ni povsem linearna in da samo iz gotovosti ne moremo natanˇcno napovedati toˇcnosti. Tudi Gal in Ghahramani sta v ˇclanku [26] pokazala, da izhod s softmax plasti ni enak pravi zanesljivosti klasifikacije. V ˇclanku [27] so Guo et. al. predstavili, kako je s pomoˇcjo kalibracije nevronske mreˇze mogoˇce popraviti gotovost, da ustreza verjetnosti za pravilno klasifikacijo.

Slika 6.2: Primerjava toˇcnosti in gotovosti nevronske mreˇze za razliˇcne bitne ˇsirine, razdeljene po aktivnostih.

(41)

Poglavje 7

Izbira nivoja optimizacije

Glavni cilj naloge je najti postopek, po katerem lahko izberemo najprimer- nejˇso stopnjo optimizacije nevronske mreˇze.

7.1 Ocenjevanje algoritmov

Izbiro nivoja optimizacije smo ocenjevali na dveh nevronskih mreˇzah z razliˇcnima arhitekturama in razliˇcnima sistemoma poenostavitve, da bi tako videli, kako se dinamiˇcno prilagajanje obnaˇsa pri razliˇcnih sistemih poenostavitve in arhi- tekturah nevronske mreˇze. Uporabili smo dinamiˇcno kvantizirano ResNet-50 nevronsko mreˇzo in tanjˇsano MobileNet-V2 nevronsko mreˇzo. S tem ko delo- vanje predstavimo na dveh razliˇcnih sistemih optimizacije nevronske mreˇze, lahko dobimo tudi nekaj vpogleda v sploˇsnost predlaganih algoritmov.

Izbiro nivoja kvantizacije smo ocenili tako, da smo algoritem najprej na- trenirali na nekaterih podatkih, ki niso bili uporabljeni za treniranje mreˇze, nato pa smo prepoznavo aktivnosti pognali na preostalih podatkih, ki prav tako niso bili uporabljeni za treniranje nevronske mreˇze. Pri tem smo opa- zovali povpreˇcno stopnjo optimizacije, ki jo je algoritem izbral, ter doseˇzeno toˇcnost. Te rezultate smo nato primerjali z rezultati, ki jih dobimo, ˇce izbe- remo konstantno vrednost ene od moˇznih stopenj optimizacije. Za deljenje podatkov na dela za uˇcenje in testiranje algoritma smo uporabili preˇcno pre-

27

(42)

28 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

verjanje z izpuˇsˇcanjem enega uporabnika (LOOCV).

7.2 Izbira smiselnih stopenj optimizacije

Pri pregledu toˇcnosti smo ugotovili, da vˇcasih niso vsi nivoji optimizacije smiselni, saj se lahko zgodi, da bolj optimizirana mreˇza doseˇze boljˇso toˇcnost kot manj optimizirana. V tem primeru uporaba manj optimizirane mreˇze ni smiselna, saj bomo porabili veˇc energije, dosegli pa manjˇso toˇcnost.

Prvi korak pri uˇcenju algoritma za izbiro stopnje optimizacije je tako torej izraˇcun toˇcnosti, ki jih doseˇzejo vse stopnje optimizacije, nakar preverimo, ali kakˇsna od stopenj doseˇze slabˇse ali enake rezultate kot viˇsja stopnja op- timizacije. S tem lahko poskrbimo, da bo algoritem izbiral samo smiselne stopnje optimizacije.

7.3 Izbira na podlagi najpodobnejˇ sih uˇ cnih primerov

Pri napovedovanju pravilnosti klasifikacije v poglavju 6.1 smo opazili, da pravilnost najbolje napoveduje algoritem kNN. Enak princip smo uporabili tudi za izbiro najboljˇse stopnje optimizacije. Algoritem v fazi uˇcenja za vse uˇcne podatke izraˇcuna toˇcnosti za vsako izmed stopenj optimizacije in te podatke shrani. Ko ˇzelimo klasificirati novo okno signala, algoritem poiˇsˇce k najbliˇzjih primerov iz uˇcne mnoˇzice in preveri, katera izmed stopenj opti- mizacije je na njih dosegla najveˇcjo toˇcnost. V primeru, da je veˇc stopenj doseglo enako toˇcnost, izbere najbolj optimizirano. Za mero podobnosti smo uporabili evklidsko razdaljo glede na izraˇcunane znaˇcilke.

7.3.1 Rezultati na kvantizirani nevronski mreˇ zi

Delovanje algoritma smo preverili na kvantizirani nevronski mreˇzi ResNet- 50. Uporabili smo tri razliˇcice algoritma, kjer prva upoˇsteva 20, druga 40

(43)

7.3. IZBIRA NA PODLAGI NAJPODOBNEJˇSIH U ˇCNIH PRIMEROV 29

in tretja 100 najbliˇzjih sosedov. Rezultati so prikazani na sliki 7.1. Naˇs cilj je, da se algoritmi ˇcimbolj pribliˇzajo zgornjemu levemu kotu, ki predstavlja najviˇsjo toˇcnost ob najmanjˇsi porabi energije.

Za izraˇcun povpreˇcne stopnje kvantizacije smo vsaki izmed stopenj doloˇcili ceno, tako da so se cene 1, 2, 4, 8 in 32-bitne mreˇze linearno poveˇcevale (glej tabelo 7.1). Povpreˇcna izbrana kvantizacija je bila tako izraˇcunana kot povpreˇcna cena izbrane kvantizacije. S tem smo se izognili prekomernemu kaznovanju izbire velikega ˇstevila bitov. Za boljˇso predstavo smo na grafih namesto cene oznaˇcili ˇstevilo bitov, ki so bili uporabljeni.

Tabela 7.1: Cene, ki smo jih doloˇcili posameznim stopnjam kvantizacije.

Bitna ˇsirina 1 2 4 8 32

Cena 1 2 3 4 5

Slika 7.1: Toˇcnosti algoritma za izbiro optimizacije kvantizirane mreˇze na podlagi najbliˇzjih sosedov. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Na sliki 7.1 vidimo, da so vse razliˇcice algoritma dosegle veˇcjo toˇcnost, kot bi jo lahko dosegli s statiˇcno izbiro nivoja kvantizacije. Vidimo, da je

(44)

30 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

algoritem, ki upoˇsteva 100 najbliˇzjih sosedov celo dosegel viˇsjo toˇcnost, kot je bila najviˇsja doseˇzna toˇcnost s statiˇcno izbrano kvantizacijo. To je mogoˇce, ker v nekaterih primerih preprostejˇsa mreˇza deluje bolje kot bolj zapletena.

Ce uspemo te primere prepoznati in zanje uporabiti preprostejˇso mreˇˇ zo, lahko toˇcnost dvignemo celo nad toˇcnost, ki jo sicer doseˇze bolj kompleksna mreˇza.

7.3.2 Rezultati na tanjˇ sani nevronski mreˇ zi

Zanima nas tudi, kako se algoritem za izbiro optimizacije obnaˇsa, kadar ga uporabimo na tanjˇsani nevronski mreˇzi. Testiranje smo pognali na tanjˇsani mreˇzi MobileNet-V2 in rezultate prikazali na sliki 7.2.

Slika 7.2: Toˇcnosti algoritma za izbiro optimizacije tanjˇsane mreˇze na pod- lagi najbliˇzjih sosedov. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Vidimo lahko, da so rezultati istega algoritma na tanjˇsani mreˇzi MobileNet- V2 precej drugaˇcni, kot so bili na kvantizirani mreˇzi. V tem primeru sta razliˇcici algoritma z 20 in 40 najbliˇzjimi sosedi delovali malenkost bolje kot statiˇcni nivo tanjˇsanja, algoritem s 100 najbliˇzjimi sosedi pa je deloval slabˇse.

Algoritem sicer odliˇcno deluje pri izbiri nivoja kvantizacije, vendar pa deluje precej slabˇse pri izbiri tanjˇsanja mreˇze. Na podlagi teh rezultatov sklepamo,

(45)

7.4. DELJENJE U ˇCNIH PRIMEROV NA SKUPINE 31

da so pri tanjˇsani nevronski mreˇzi morda nekatere znaˇcilke pomembnejˇse kot druge, ˇcesar pa kNN algoritem ne upoˇsteva, saj vektorje primerja izkljuˇcno na podlagi evklidske razdalje.

7.4 Deljenje uˇ cnih primerov na skupine

Drugi naˇcin za izbiro najprimernejˇse stopnje optimizacije je, da uˇcne primere razdelimo v veˇc skupin. Za vsako skupino nato doloˇcimo najboljˇso stopnjo optimizacije. Ko ˇzelimo izbrati optimizacijo za nov primer, moramo samo doloˇciti, v katero izmed skupin spada primer, in izbrati nivo, ki je najbolje deloval za to skupino. Pomembno je, na podlagi ˇcesa primere razdelimo v razliˇcne skupine. Preizkusili smo dva razliˇcna pristopa, ki sta predstavljena v nadaljevanju.

7.4.1 Razdelitev v skupine glede na gotovost

Prvi naˇcin za razdelitev v skupine, ki smo ga preizkusili, je gradnja skupin glede na gotovost. Kot smo pokazali v poglavju 6.2, je gotovost povezana s toˇcnostjo, ki jo doseˇze nevronska mreˇza. Zato je smiselno primere, pri katerih je gotovost mreˇze podobna, dodeliti v isto skupino. Mejne vrednosti za skupine doloˇcimo na podlagi uˇcnih primerov, in sicer tako, da vsaka izmed skupin vsebuje enako ˇstevilo uˇcnih primerov.

Pri tem algoritmu skupino za posamezen primer doloˇcimo tako, da pri- mer najprej klasificiramo z najpreprostejˇso nevronsko mreˇzo in izraˇcunamo gotovost. Na podlagi te gotovosti nato primer dodelimo eni izmed skupin in izberemo stopnjo optimizacije, ki najbolje deluje za to skupino. V primeru, da izbrana mreˇza ni najpreprostejˇsa, klasifikacijo ponovimo.

Glavna pomanjkljivost tega pristopa je, da je potrebno v nekaterih prime- rih klasifikacijo izvesti dvakrat, kar zmanjˇsa prihranek energije. Pri testiranju algoritma smo za ceno klasifikacije v tem primeru uporabili vsoto cen vseh nivojev optimizacije, ki jih je bilo potrebno uporabiti.

(46)

32 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

Namesto da gotovost mreˇze izraˇcunamo tako, da vsakiˇc poˇzenemo naj- preprostejˇso nevronsko mreˇzo, lahko uporabimo vrednost gotovosti, ki je bila doseˇzena pri prejˇsnjem vhodnem vektorju. Da bi ugotovili, ali je to smi- selno, smo izraˇcunali korelacijo med dvema zaporednima gotovostma in do- bilir = 0,397, kar pomeni srednje moˇcno povezanost [28]. To smo izraˇcunali tako, da smo ohranili vrstni red oken iz podatkovne zbirke in med sabo pri- merjali okna, ki so oddaljena za 2, saj so okna zgrajena s 50% prekrivanjem in bi tako dve sosednji okni vsebovali iste podatke. Na podlagi tega rezultata smo algoritem implementirali tudi tako, da uporabi gotovost prejˇsnjega pri- mera. Slabost tega pristopa je, da gotovosti niso vedno izraˇcunane na enako optimizirani nevronski mreˇzi, saj gotovost izraˇcunamo na podlagi mreˇze, ki je bila uporabljena za klasifikacijo, ta pa se od primera do primera spreminja.

Zato pri tem algoritmu priˇcakujemo slabˇse rezultate.

Izbira nivoja optimizacije za izbrano skupino

Ko vemo, kateri skupini pripada vhodni vektor, moramo doloˇciti, katero sto- pnjo optimizacije bi bilo najbolj smiselno uporabiti za to skupino. V ta na- men smo za vsako izmed skupin izraˇcunali toˇcnost, ki jo doseˇze vsaka izmed optimizacij, in te toˇcnosti predstavili z linearnim modelom. Ko je potrebno izbrati stopnjo optimizacije, doloˇcimo ciljno toˇcnost in pogledamo, pri kateri stopnji model doseˇze izbrano toˇcnost.

Za izbrano toˇcnost smo uporabili povpreˇcno toˇcnost, ki so jo dosegle vse razliˇcne stopnje optimizacije na vseh uˇcnih primerih, vendar pa je to vrednost mogoˇce tudi prilagajati glede na to, ali ˇzelimo imeti hitrejˇse izvajanje ali veˇcjo toˇcnost. ˇSe ena dobra lastnost tega pristopa je, da se lahko nivo optimizacije izbira tudi zvezno. Izbira zveznih vrednosti sicer v nobenem izmed naˇsih primerov ni podprta, vendar pa priˇcakujemo, da bo to postalo smiselno v prihodnosti. Ena od obetavnih moˇznosti je na primer uporaba univerzalno tanjˇsanih nevronskih mreˇz, ki so jo predlagali Yu et. al [14].

(47)

7.4. DELJENJE U ˇCNIH PRIMEROV NA SKUPINE 33

Rezultati na kvantizirani nevronski mreˇzi

Algoritem smo preizkusili na kvantizirani nevronski mreˇzi in rezultate pred- stavili na sliki 7.3.

Slika 7.3: Toˇcnosti algoritma za izbiro optimizacije kvantizirane nevron- ske mreˇze na podlagi gotovosti. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Vidimo lahko, da algoritem, ki uporabi toˇcnost tega primera na preprosti nevronski mreˇzi, deluje dobro in doseˇze skoraj enako toˇcnost kot 4-bitno kvantizirana nevronska mreˇza, ˇceprav v povpreˇcju uporabi bolj optimizirano razliˇcico mreˇze.

V nasprotju s tem vidimo, da algoritem, ki uporablja gotovost prejˇsnjega vhodnega vektorja, deluje veliko slabˇse. To je verjetno zato, ker korela- cija med gotovostjo zaporednih vektorjev ni dovolj moˇcna, poleg tega pa so skupine doloˇcene glede na gotovosti, ki jih vhodni vektorji doseˇzejo na naj- preprostejˇsi mreˇzi, te pa se lahko razlikujejo od gotovosti, ki jih doseˇzejo na kompleksnejˇsih mreˇzah.

(48)

34 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

Rezultati na tanjˇsani nevronski mreˇzi

Delovanje algoritma za izbiro stopnje optimizacije z deljenjem v skupine glede na gotovost smo preverili tudi na tanjˇsani nevronski mreˇzi MobileNet-V2.

Rezultati so predstavljeni na sliki 7.4.

Slika 7.4: Toˇcnosti algoritma za izbiro optimizacije tanjˇsane nevronske mreˇze na podlagi gotovosti. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Vidimo, da obe razliˇcici algoritma na tej mreˇzi delujeta izredno dobro.

Kadar uporabljamo gotovost trenutnega vhodnega vektorja, je doseˇzena toˇcnost celo opazno viˇsja od najviˇsje toˇcnosti, ki jo lahko doseˇzemo s statiˇcnim ni- vojem tanjˇsanja, ˇceprav je povpreˇcna izbira nivoja tanjˇsanja precej manjˇsa.

Tudi v tem primeru opazimo, da z uporabo gotovosti prejˇsnjega vektorja doseˇzemo veliko niˇzje rezultate, vendar pa so pri tanjˇsani nevronski mreˇzi tudi ti rezultati veliko boljˇsi kot tisti, ki jih dobimo s statiˇcnim nivojem tanjˇsanja.

Pomembno je razmisliti, zakaj ta pristop na tanjˇsanih nevronskih mreˇzah deluje bolje kot na kvantiziranih nevronskih mreˇzah. Opazili smo, da je padec toˇcnosti pri uporabi gotovosti prejˇsnjega primera pri obeh mreˇzah pribliˇzno enak, vendar pa vidimo, da pri tanjˇsani mreˇzi gotovost bolje napoveduje, ali

(49)

7.4. DELJENJE U ˇCNIH PRIMEROV NA SKUPINE 35

je bila klasifikacija pravilna ali ne.

7.4.2 Skupine glede na poloˇ zaj v podprostoru

Drugi naˇcin za delitev vhodnih vektorjev v skupine, ki smo ga raziskali, je uporaba linearne diskriminantne analize (LDA), pri kateri v prostoru vho- dnih vektorjev poiˇsˇcemo podprostor, ki ˇcimbolj loˇcuje pravilno klasificirane elemente od nepravilno klasificiranih. Skupine nato doloˇcimo tako, da ele- mente zdruˇzimo glede na njihov poloˇzaj v nastalem podprostoru. S tem ˇzelimo pridobiti skupine, ki primere loˇcijo glede na to, kako verjetno bodo klasificirani pravilno. Tako pridobljene skupine imenujemo skupine glede na toˇcnost.

Kot vhod v LDA algoritem smo uporabili vektorje znaˇcilk, ki so bili izraˇcunani kot del podatkovne zbirke [20]. Slabost takˇsnega pristopa je, da se je zaradi velikega ˇstevila znaˇcilk LDA algoritem prekomerno prilagodil uˇcnim podatkom in ni dobro loˇceval testnih podatkov. To smo popravili tako, da smo vektorjem znaˇcilk pred uporabo LDA algoritma zmanjˇsali ˇstevilo dimen- zij z uporabo analize glavnih komponent (PCA) [29]. ˇStevilo dimenzij smo zmanjˇsali na 10, kar je odpravilo teˇzave s prekomernim prileganjem.

Stopnja optimizacije je za vsako izmed skupin izbrana na enak naˇcin kot pri skupinah na podlagi gotovosti.

Poleg tega smo uporabili tudi dodatno razliˇcico algoritma, ki s pomoˇcjo LDA loˇci vhodne vektorje glede na to, ali je bila izvajana ena izmed pre- mikajoˇcih aktivnosti (hoja, hoja po stopnicah navzgor in hoja po stopnicah navzdol) ali ena izmed statiˇcnih aktivnosti (sedenje, stanje in leˇzanje). S tem smo ˇzeleli izbrati nivo optimizacije glede na to, koliko se je uporabnik med aktivnostjo premikal. Tudi v tem primeru smo ˇstevilo znaˇcilk zmanjˇsali z uporabo PCA.

Rezultati na kvantizirani nevronski mreˇzi

Tudi pri algoritmu, pri katerem smo skupine doloˇcili glede na poloˇzaj v pod- prostoru, smo obe razliˇcici najprej ocenili na kvantizirani ResNet mreˇzi in

(50)

36 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

primerjali s toˇcnostmi statiˇcno kvantizirane nevronske mreˇze. Rezultati so predstavljeni na sliki 7.5.

Slika 7.5: Toˇcnosti algoritma za izbiro optimizacije kvantizirane nevronske mreˇze glede na poloˇzaj v LDA podprostoru. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Vidimo, da algoritem s podprostorom glede na toˇcnost klasifikacije v tem primeru deluje pribliˇzno enako dobro, kot ˇce bi stopnjo kvantizacije izbrali statiˇcno. Kljub temu pa bi bil algoritem uporaben v praksi, saj smo z njim dosegli dobro razmerje med toˇcnostjo in stopnjo optimizacije in s tem reˇsili problem izbire nivoja optimizacije.

Razliˇcica algoritma, pri kateri se vhodni vektorji razdelijo v skupine glede na to, koliko se je uporabnik premikal med izvajanjem aktivnosti, v tem primeru doseˇze niˇzjo toˇcnost, ˇceprav uporabi skoraj enako povpreˇcno stopnjo kvantizacije. Ta razliˇcica algoritma je zato v praksi manj uporabna.

Rezultati na tanjˇsani nevronski mreˇzi

Algoritem smo, tako kot preostale, preizkusili tudi na tanjˇsani nevronski mreˇzi MobileNet-V2. V tem primeru sta obe razliˇcici algoritma dosegli opa-

(51)

7.5. PRIMERJAVA REZULTATOV 37

zno boljˇse toˇcnosti, kot bi jih pri enaki ˇsirini nevronske mreˇze lahko dosegli s statiˇcno izbranim nivojem tanjˇsanja. Rezultati so prikazani v sliki 7.6

Slika 7.6: Toˇcnosti algoritma za izbiro optimizacije kvantizirane nevronske mreˇze glede na poloˇzaj v LDA podprostoru. Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

7.5 Primerjava rezultatov

Rezultate smo zdruˇzili v tabeli 7.2 ter slikah 7.7 in 7.8. Videli smo, da se algoritmi obnaˇsajo precej drugaˇce na tanjˇsani nevronski mreˇzi MobileNet- V2 kot na kvantizirani mreˇzi ResNet-50. Algoritmi, ki dobro delujejo na eni, lahko na drugi delujejo slabˇse. To pomeni, da je za vsako nevronsko mreˇzo in naˇcin optimizacije smiselno posebej izbrati algoritem za izbiro optimizacije, ki dobro deluje pod pogoji, ki jih imamo v konkretnem primeru.

Poleg tega je pri izbiri algoritma potrebno upoˇstevati, da je pri nekaterih algoritmih potrebno prepoznavo pognati veˇckrat, kar omeji moˇznosti za pri- hranek energije. Glede na rezultate, ki smo jih dobili, se nam zdi najsploˇsneje uporaben algoritem za izbiro nivoja optimizacije na podlagi skupin glede na toˇcnost. Ta algoritem je namreˇc dosegel zelo dobre rezultate na tanjˇsani ne-

(52)

38 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

Tabela 7.2: Toˇcnosti in povpreˇcni nivoji optimizacije

Kvantizirana mreˇza Tanjˇsana mreˇza Toˇcnost Kvantizacija Toˇcnost Sirinaˇ

kNN-20 0,917 1,730 0,925 0,526

kNN-40 0,928 2,146 0,932 0,625

kNN-100 0,929 2,532 0,934 0,746

Uporaba prejˇsnje gotovosti 0,902 1,966 0,930 0,412 Skupine na podlagi gotovosti 0,924 2,600 0,944 0,502 Skupine glede na toˇcnost 0,919 2,101 0,938 0,520 Skupine glede na premikanje 0,912 2,039 0,939 0,558 vronski mreˇzi, hkrati pa je dosegel tudi dovolj dobre rezultate na kvantizirani nevronski mreˇzi. Prav tako je zanj potrebno prepoznavo aktivnosti pognati samo enkrat.

(53)

7.5. PRIMERJAVA REZULTATOV 39

Slika 7.7: Povzetek rezultatov na kvantizirani ResNet-50 nevronski mreˇzi.

Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

Slika 7.8: Povzetek rezultatov na tanjˇsani MobileNet-V2 nevronski mreˇzi.

Modra ˇcrta prikazuje toˇcnosti, ki jih lahko doseˇzemo s statiˇcno optimizacijo.

(54)

40 POGLAVJE 7. IZBIRA NIVOJA OPTIMIZACIJE

(55)

Poglavje 8

Poraba energije

Eden izmed kljuˇcnih razlogov za uporabo optimizacije nevronskih mreˇz na mobilnih napravah je zmanjˇsanje porabe energije. V ta namen smo pregle- dali, koliko energije lahko prihranimo z uporabo razliˇcnih nivojev optimizacij nevronskih mreˇz.

8.1 Kvantizirana nevronska mreˇ za

Ena izmed prednosti pri uporabi kvantiziranih nevronskih mreˇz z nizko na- tanˇcnostjo je zmanjˇsana poraba energije. V literaturi smo zasledili veˇc ˇclankov, ki opisujejo rezultate, pridobljene z uporabo kvantizacije. Hashemi et. al.

so v svoji raziskavi [30] uspeli z uporabo 8-bitne kvantizacije prihraniti 85%

energije, s 4-bitno kvantizacijo pa kar 92% energije. Podobno so se s kvanti- zacijo ukvarjali Yao et. al. [31], ki so pri uporabi 4-bitne kvantizacije opazili 4,5-kratno, pri uporabi 8-bitne kvantizacije pa 3,1-kratno pohitritev glede na 32-bitna decimalna ˇstevila. Rezultati, ki smo jih zasledili v literaturi, so zelo spodbudni, vendar pa jih v svojem delu nismo uspeli ponoviti.

Naˇs glavni cilj je bil uporaba kvantizacije za zmanjˇsanje porabe ener- gije na ARM procesorju, saj je energijska optimizacija najpomembnejˇsa za mobilne naprave, ki obiˇcajno uporabljajo ARM arhitekturo procesorja.

41

(56)

42 POGLAVJE 8. PORABA ENERGIJE

8.1.1 Uporaba simulirane kvantizacije

Kot smo omenili ˇze v poglavju 4.1, ogrodje Any-precision implementira kvan- tizacijo tako, da se vse operacije ˇse vedno izvajajo z 32-bitnimi ˇstevili s pla- vajoˇco vejico. To pomeni, da nam rezultati, pridobljeni s temi mreˇzami, samo pokaˇzejo, kako kvantizacija vpliva na toˇcnost, ne dobimo pa prihrankov pri porabi energije. Ker smo ˇzeleli prikazati tudi praktiˇcne prihranke energije, smo iskali naˇcin za implementacijo prave kvantizacije.

8.1.2 Uporaba kvantizacije s knjiˇ znico PyTorch

Knjiˇznica PyTorch, s katero so napisane Any-precision nevronske mreˇze, ˇze vsebuje nekaj orodij za raˇcunanje z 8-bitnimi celimi ˇstevili.

Nevronsko mreˇzo smo implementirali tako, da smo Any-precision kvan- tizacijo zamenjali s PyTorch kvantizacijo in vse konvolucije nadomestili s kvantiziranimi konvolucijami. S tem je nevronska mreˇza v resnici upora- bljala ˇstevila, zapisana z manjˇso natanˇcnostjo, vendar pa se izvajanje kljub temu ni pohitrilo. Ugotovili smo, da se v naˇsem primeru kvantizirane ope- racije konvolucije izvajajo celo poˇcasneje kot nekvantizirane. To je morda posledica tega, da so kvantizirane operacije v knjiˇznici PyTorch ˇse vedno precej nove in morda niso enako dobro optimizirane za naˇso strojno opremo.

Poleg tega smo pri poganjanju kvantiziranih operacij na ARM procesorju na- leteli na teˇzavo, da je mreˇza vedno napovedovala isto aktivnost ne glede na vhodne podatke. Na podlagi teh ugotovitev smo zakljuˇcili, da v naˇsem pri- meru trenutno ˇse ne moremo uporabiti PyTorch kvantizacije za zmanjˇsanje porabe energije.

8.1.3 Uporaba izvajalnih okolij za optimizirano izvaja- nje

Druga moˇznost za zmanjˇsanje porabe energije z uporabo kvantizacije je upo- raba izvajalnega okolja, ki podpira kvantizacijo, vendar ne omogoˇca spro- tnega spreminjanja njenega nivoja. Uporaba takˇsnega okolja bi za naˇs pro-

(57)

8.2. PORABA ENERGIJE TANJˇSANIH NEVRONSKIH MRE ˇZ 43

jekt pomenila, da stopnje kvantizacije ne bi mogli prilagajati sproti. Kljub temu pa bi lahko uporabili veˇc loˇcenih nevronskih mreˇz, ki se razlikujejo samo po kvantizaciji, in izbirali, katero izmed njih bomo uporabili za klasifikacijo aktivnosti.

Okolje TVM

Prvo okolje za izvajanje nevronskih mreˇz, ki smo si ga ogledali, je okolje Apache TVM [32]. Okolje omogoˇca izvajanje nevronskih mreˇz na mnogih razliˇcnih sistemih, omogoˇca pa tudi uporabo kvantizacije.

Preizkusili smo delovanje kvantizacije tako, da smo primerjali hitrost de- lovanja testne nevronske mreˇze pri razliˇcnih nivojih kvantizacije. Ugotovili smo, da na naˇsem sistemu daleˇc najhitreje deluje mreˇza s polno natanˇcnostjo, mreˇza zapisana s 32 in 8-bitnimi celimi ˇstevili deluje pribliˇzno enako hitro, mreˇza s 64-bitnimi celimi ˇstevili pa deluje ˇse nekoliko poˇcasneje. Na spletu smo naˇsli omembe podobnih opaˇzanj, vendar pa nismo naˇsli nobene ustrezne reˇsitve.

Ker z uporabo kvantizacije v okolju TVM nismo uspeli pohitriti izvajanja nevronske mreˇze, smo presodili, da tega pristopa v naˇsem primeru ni smiselno uporabiti.

Okolje OpenVINO

Poleg TVM okolja smo si podrobneje ogledali tudi okolje OpenVINO, ki je na- menjeno optimiziranemu izvajanju nevronskih mreˇz na Intel napravah, pred kratkim pa so dodali tudi podporo za ARM procesorje. Ob podrobnejˇsem pregledu smo ugotovili, da kvantizacija na ARM procesorjih na ˇzalost ˇse ni podprta.

8.2 Poraba energije tanjˇ sanih nevronskih mreˇ z

Z uporabo kvantizacije v praksi nismo uspeli doseˇci ˇzeljenih energijskih pri- hrankov, zato smo se odloˇcili za uporabo tanjˇsanih nevronskih mreˇz [4], ki

(58)

44 POGLAVJE 8. PORABA ENERGIJE

nam omogoˇcajo zmanjˇsanje porabe energije tudi v praksi, kar smo sami tudi potrdili z meritvami.

Nevronsko mreˇzo smo izvajali na ploˇsˇcici UDOO Neo, ki vsebuje ARM procesor in vse potrebne senzorje za prepoznavo aktivnosti. To napravo smo izbrali, ker omogoˇca izvajanje PyTorch nevronskih mreˇz, hkrati pa je podobna pogostim mobilnim napravam, kot so pametni telefoni.

8.2.1 Merjenje porabe energije

Porabo energije, potrebne za uporabo nevronske mreˇze pri razliˇcnih ˇsirinah, smo izmerili z Monsoon orodjem za merjenje energije [33]. Porabo smo merili na ploˇsˇcici UDOO Neo (glej sliko 8.3). Merili smo celotno energijo, ki jo je ploˇsˇcica porabila med poganjanjem mreˇze s posameznim nivojem tanjˇsanja, vkljuˇcno z energijo, ki jo porabi v tem ˇcasu ob mirovanju. Meritve smo ponovili dvanajstkrat in izraˇcunali povpreˇcne vrednosti.

Eno izmed meritev energije smo prikazali tudi na sliki 8.1. Slika prikazuje grafa napetosti in toka, ki ju je izmerila naprava Monsoon med izvajanjem nevronske mreˇze na ˇstirih razliˇcnih stopnjah tanjˇsanja.

Slika 8.1: Posnetek zaslona v programu PowerTool. Prikazano je spremi- njanja toka (oranˇzna ˇcrta) in napetosti (vijoliˇcna ˇcrta) skozi napravo med izvajanjem nevronske mreˇze s ˇstirimi razliˇcnimi ˇsirinami.

(59)

8.2. PORABA ENERGIJE TANJˇSANIH NEVRONSKIH MRE ˇZ 45

8.2.2 Poraba pri razliˇ cnih nivojih tanjˇ sanja

Izmerjene vrednosti smo predstavili na sliki 8.2. Polna nevronska mreˇza je za svoje izvajanje porabila 543 µAh s standardnim odklonom 52 µAh. Na 75% ˇsirini je mreˇza porabila 328 µAh s standardnim odklonom 4µAh, kar je 60% energije polne mreˇze. Pri 50% ˇsirini je mreˇza v povpreˇcju porabila 231 µAh s standardnim odklonom 6 µAh, kar je 43% energije, ki jo porabi polna mreˇza. Mreˇza s 35% ˇsirino pa je porabila 170 µAh s standardnim odklonom 5 µAh, kar je 31% porabe energije najveˇcje nevronske mreˇze. Pri meritvah smo opazili, da polna nevronska mreˇza porabi nekoliko veˇc energije, kot bi priˇcakovali glede na ostale ˇsirine.

Slika 8.2: Koliˇcina energije, porabljene za klasifikacijo z nevronsko mreˇzo pri razliˇcnih ˇsirinah.

8.2.3 Poraba energije za izbiro nivoja optimizacije

Pomembno je, da algoritem za izbiro nivoja optimizacije ne porabi veˇc ener- gije, kot je prihrani. Zaradi tega smo bili pri snovanju algoritmov pozorni

(60)

46 POGLAVJE 8. PORABA ENERGIJE

tudi na njihovo raˇcunsko zahtevnost.

Za preprosto oceno porabe energije algoritmov smo pognali prepoznavo aktivnosti na vseh testnih podatkih in merili, koliko ˇcasa se je izvajal algo- ritem za izbiro optimizacije glede na ˇcas, ki smo ga potrebovali za celotno klasifikacijo. Vsi algoritmi, ki smo jih predstavili v poglavju 7, so pri izvaja- nju klasifikacije podatkov na raˇcunalniku porabili manj kot 2% celotnega ˇcasa prepoznave aktivnosti. S tem smo se prepriˇcali, da bi bila poraba energije za izvajanje algoritmov v praktiˇcnem okolju zanemarljiva.

Podrobnejˇsa analiza energije za izbiro nivoja optimizacije

Poleg merjenja ˇcasa, ki ga algoritmi porabijo za izvajanje, smo izvedli tudi resniˇcno merjenje energije na enem izmed algoritmov. Izbrali smo algoritem, ki deluje s pomoˇcjo LDA podprostora na osnovi pravilnosti klasifikacije pri- merov (glej poglavje 7.4.2). Ta algoritem smo izbrali, ker je dosegel dobre rezultate, poleg tega pa je to eden izmed kompleksnejˇsih algoritmov, zato priˇcakujemo, da bodo ostali algoritmi porabili enako ali manj energije.

Vpliv algoritma na porabo energije smo izmerili tako, da smo na UDOO Neo ploˇsˇcici pognali prepoznavo aktivnosti dvakrat. Pri tem smo vsakiˇc upo- rabili celotno nevronsko mreˇzo. V enem primeru smo pred vsako klasifikacijo pognali tudi algoritem za izbiro ˇsirine mreˇze, v drugem pa smo ta algoritem izpustili. Klasificirani so bili vsi podatki enega izmed uporabnikov, merili pa smo energijo, porabljeno za vse klasifikacije skupaj.

Klasifikacija vseh aktivnosti brez algoritma za izbiro nivoja optimizacije je porabila 4,88 mAh, z algoritmom pa 4,87 mAh. Na podlagi teh rezultatov smo zakljuˇcili, da je energija, ki jo porabi algoritem, zanemarljiva, saj je manjˇsa od merilne napake.

(61)

8.2. PORABA ENERGIJE TANJˇSANIH NEVRONSKIH MRE ˇZ 47

Slika 8.3: UDOO neo ploˇsˇcica prikljuˇcena na Monsoon napravo za merjenje porabe energije.

(62)

48 POGLAVJE 8. PORABA ENERGIJE

Reference

POVEZANI DOKUMENTI

Ta koliˇ cina igralcev in pa uporaba tehnologije omogoˇ ca igranje veˇ c iger pokra naenkrat, veˇ cina poker aplikacij namreˇ c omogoˇ ca, da ima igralec od- prtih veˇ c razliˇ

V ta namen imajo veˇ cje spletne aplikacije loˇ ceno podatkovno plast, ki je po moˇ znosti ˇ cim bolj abstraktna, kar omogoˇ ca tako laˇ zji razvoj za veˇ c SUPB-jev kot

Centralni sistem za upravljanje sicer omogoˇ ca veˇ c razliˇ cnih protokolov (Zi- gbee, Z-Wave, Wi-fi) za komunikacijo, vendar smo za konˇ cne naprave izbrali tiste, ki komunicirajo

Zato mora biti en modul, ki upravlja z ostalimi moduli jedro aplikacije (lahko bi imel tudi veˇ c razliˇ cnih srediˇsˇ c).. Vse soodvisnosti so zapisane v project.xml datoteki, ki

Primarni produkt Firebase je tako imenovana realtime database storitev, ki razvijalcem ponuja API s katerim lahko shranjujejo in sihronizirajo podatke preko veˇ c razliˇ cnih

Razvili so shranjevalni mehanizem Connect, ki omogoˇ ca preslikovanje podatkov, ki so v razliˇ cnih oblikah (TXT, CSV, TSV, datoteke Excel in druge), v MariaDB tabele, nakar so

clanku [10] omeni, da nikjer v ˇ clanku [6] ni eksplicitno dokazano, da dvodelni Cayleyjevi grafi komutativnih grup vsebujejo hamiltonsko pot med poljubnima vozliˇsˇ cema iz razliˇ

Prav tako smo za n = 48 naˇsli 562 reˇsitev igre in obstoj 140 razliˇ cnih parov kock s standardno porazdeljeno vsoto pik.. O ˇstevilu parov, trojic in ˇ cetveric avtorja v ˇ