Umetna inteligenca (UI) je v zadnjih letih naredila izjemen napredek in revolucionirala
različne industrije z omogočanjem inteligentnega odločanja in avtomatizacije.
Zaradi hitre rasti aplikacij umetne inteligence se je povečalo povpraševanje
po odločanju v realnem času.
Cilj magistrskega dela je bil raziskati možnosti prenosa tehnologije umetne
inteligence iz oblaka na rob, torej na mikrokrmilnik, ki omogoča odločanje v
realnem času. Premik modela iz oblaka na rob ponuja številne prednosti, ki
vključujejo zmanjšanje zakasnitve, izboljšanje zasebnosti, večjo zanesljivost in
optimizacijo stroškov.
Pri prenosu trenutno uporabljenega modela umetne inteligence na mikrokrmilnik
smo naleteli na tehnične izzive zaradi omejenih računskih virov in pomnilniških
omejitev tovrstnih naprav. Preizkusili smo več tehnik optimizacije, da
bi dosegli zmanjšanje velikosti modela. Zaključili smo, da običajne tehnike optimizacije,
kot sta obrezovanje in združevanje uteži, niso primerne za uporabo
z mikrokrmilniki. Po drugi strani pa je kvantizacija znatno zmanjšala velikost
modela in se je tako izkazala za primerno rešitev v našem primeru.
Sekundarni cilj tega dela je bil raziskati, kateri modeli računalniškega vida
so najbolj primerni za uporabo v robnem računalništvu. Preizkusili smo različne
modele, vključno z MobileNetV2, EfficientNetB0, ResNet50 in CNNLSTM,
ter razvili drugačen pristop za zmanjšanje velikosti modela ob ohranjanju
natančnosti. Naša metoda torej efektivno zmanjšuje velikost modela brez izgube
njegove natančnosti.
Uporabili smo prednaučene modele, iz katerih smo uporabili samo plasti določevalnika značilk. Prvi korak pri zmanjševanju velikosti modela je bil
odstranitev zadnje plasti iz določevalnika značilk. Če je bila velikost modela
še vedno prevelika, smo odstranili plasti, ki vsebujejo zapletene značilke, specifične
za originalni primer uporabe. V nasprotnem primeru smo obdržali vse
plasti določevalnika značilk. V obeh primerih smo dobljene plasti določevalnika
značilk zamrznili in doučili razvrščevalnik na naši učni množici. Nato smo model
doučili tako, da smo odmrznili plasti določevalnika značilk z izjemo plasti za
normalizacijo paketov. Z zamrznitvijo plasti normalizacije paketov smo ohranili
pridobljene statistične podatke iz nabora učne množice ImageNet, kot je opisano
v [1].
Ker opisani postopek še vedno ni zadoščal za pridobitev modela, ki bi se lahko
izvajal na mikrokrmilniku, smo za bolj efektivne izračune in dodatno zmanjšanje
velikosti modela uporabili postopek kvantizacije. Obstajajo različne metode kvantizacije
modela. Najenostavnejši tip je kvantizacija že naučenega modela. Drugi
tip kvantizacije je kvantizacijsko ozaveščeno učenje, ki omogoča učenje modela s
pomočjo simulacije celoštevilskega modela, kar omogoča doseganje bolj natančnih
rezultatov.
Poleg natančnosti razpoznavanja modela je za našo uporabo pomembna tudi
cena končne rešitve in čas, potreben za inferenco. V ta namen smo preizkusili
dva mikrokrmilnika, ki nimata posebne strojne opreme, prilagojene za nevronske
mreže, STM32H747 in ESP32-S3.
Za izvajanje modelov na izbranih mikrokrmilnikih obstajajo številne programske
rešitve, odvisno od družine mikrokrmilnikov. Za mikrokrmilnik STM32
smo uporabili X-CUBE-AI, za ESP32 pa TensorFlow Lite za mikrokrmilnike.
Izvedli smo večje število eksperimentov. Začeli smo s tem, da smo naučili
le razvrščevalnik ob zamrznjenem določevalniku značilk in dobili rezultate, ki še
niso bili zadovoljivi. Nadaljevali smo z uglaševanjem vseh slojev modelov, pri
čemer smo dosegli precejšnje izboljšanje rezultatov. S to metodo smo dosegli v
povprečju 20% izboljšanje rezultatov.
Eksperimente smo nadaljevali z uporabo obeh postopkov kvantizacije in prišli
do pomembnih ugotovitev. Pri uporabi kvantizacije naučenega modela je prišlo
do padca natančnosti, med tem ko smo z uporabo kvantizacijsko ozaveščenega učenja uspeli doseči celo boljši rezultat kot z njegovo različico pred kvantizacijo.
Tako smo prišli do pomembnega zaključka, da kvantizacija ne pomeni nujno
poslabšanja delovanja modela.
Na koncu smo izmerili še čas inference na obeh mikrokrmilnikih in med seboj
primerjali rezultate vseh naučenih modelov. Izkazalo se je, da je čas inference
modelov na mikrokrmilniku STM32 bistveno hitrejši v primerjavi z mikrokrmilnikom
ESP32.
Med preizkušenimi modeli smo najboljše rezultate dosegli z MobileNetV2, ki
je v metriki makro F1 dosegel rezultat 79% za nekvantiziran model in 82% za
kvantiziran model, pri čemer je čas inference znašal 155.999 ms.
|