Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Anvan ou ankò se travay la nan detekte objè yo. Priyorite a se vitès operasyon ak presizyon akseptab. Ou pran achitekti YOLOv3 ak plis antrene li. Presizyon (mAp75) pi gran pase 0.95. Men, pousantaj kouri a toujou ba. Crap.

Jodi a nou pral kontoune quantization. Ak anba koupe a nou pral gade Koupe modèl — koupe pati redondants nan rezo a pou pi vit Enferans san pèdi presizyon. Li klè ki kote, ki kantite ak ki jan yo koupe. Ann chèche konnen ki jan fè sa manyèlman ak ki kote ou ka otomatize li. Nan fen a gen yon depo sou keras.

Entwodiksyon

Nan plas travay mwen anvan an, Macroscop nan Perm, mwen te pran yon abitid - pou m toujou kontwole tan ekzekisyon algoritm yo. Epi toujou tcheke tan rezo a atravè yon filtè konpetans. Dabitid dènye-, dènye modèl nan pwodiksyon pa pase filtè sa a, ki te mennen m 'nan Koupe.

Koupe se yon ansyen sijè ki te diskite nan Konferans Stanford nan 2017. Lide prensipal la se diminye gwosè a nan rezo a ki resevwa fòmasyon san yo pa pèdi presizyon pa retire divès kalite nœuds. Li son fre, men mwen raman tande sou itilizasyon li yo. Pwobableman, pa gen ase aplikasyon, pa gen okenn atik nan lang Ris, oswa tou senpleman tout moun konsidere li koupe konnen ki jan ak rete an silans.
Men, ann pran li apa

Yon aperçu nan byoloji

Mwen renmen li lè Deep Learning gade lide ki soti nan byoloji. Yo, tankou evolisyon, ou ka fè konfyans (èske w te konnen ke ReLU sanble anpil ak fonksyon aktivasyon newòn nan sèvo a?)

Pwosesis Koupe Modèl la tou pre byoloji. Repons rezo a isit la ka konpare ak plastisit nan sèvo a. Gen yon koup nan egzanp enteresan nan liv la. Norman Doidge:

  1. Sèvo yon fanm ki te fèt ak yon sèl mwatye te repwograme tèt li pou fè fonksyon mwatye ki manke a.
  2. Nèg la tire sou pati nan sèvo li ki responsab vizyon an. Apre yon tan, lòt pati nan sèvo a te pran sou fonksyon sa yo. (nou pa ap eseye repete)

Menm jan an tou, ou ka koupe kèk nan konvolusyon yo fèb nan modèl ou a. Kòm yon dènye rekou, pake ki rete yo pral ede ranplase sa yo koupe yo.

Èske w renmen Transfer Learning oswa èske w ap aprann nan grafouyen?

Opsyon nimewo en. Ou itilize Transfer Learning sou Yolov3. Retin, Mask-RCNN oswa U-Net. Men, pi fò nan tan nou pa bezwen rekonèt 80 klas objè tankou nan COCO. Nan pratik mwen an, tout bagay limite nan klas 1-2. Youn ta ka asime ke achitekti a pou 80 klas se redondants isit la. Lide a sijere tèt li ke achitekti a bezwen fè pi piti. Anplis, mwen ta renmen fè sa san pèdi pwa ki deja egziste deja.

Opsyon nimewo de. Petèt ou gen anpil done ak resous enfòmatik, oswa jis bezwen yon achitekti super-koutim. Pa gen pwoblèm. Men, w ap aprann rezo a soti nan grafouyen. Pwosedi abityèl la se gade estrikti done a, chwazi yon achitekti ki TROPÒ nan pouvwa a, epi pouse moun k ap abandone yo soti nan re-formation. Mwen te wè 0.6 abandon, Karl.

Nan de ka yo, rezo a ka redwi. Motive. Koulye a, ann ale konnen ki kalite koupe sikonsizyon se

Algorithm jeneral

Nou te deside ke nou te kapab retire pakèt yo. Li sanble byen senp:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Retire nenpòt konvolusyon se estrès pou rezo a, ki anjeneral mennen nan kèk ogmantasyon nan erè. Sou yon bò, ogmantasyon nan erè sa a se yon endikatè ki jan kòrèkteman nou retire konvolusyon (pa egzanp, yon gwo ogmantasyon endike ke nou ap fè yon bagay ki mal). Men, yon ti ogmantasyon se byen akseptab epi li souvan elimine pa fòmasyon adisyonèl limyè ki vin apre ak yon ti LR. Ajoute yon etap fòmasyon adisyonèl:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Koulye a, nou bezwen konnen ki lè nou vle sispann Learning nou an<->Taye bouk. Ka gen opsyon ekzotik isit la lè nou bezwen redwi rezo a nan yon sèten gwosè ak vitès (pa egzanp, pou aparèy mobil). Sepandan, opsyon ki pi komen se kontinye sik la jiskaske erè a vin pi wo pase akseptab. Ajoute yon kondisyon:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Se konsa, algorithm la vin klè. Li rete pou konnen ki jan yo detèmine konvolusyon yo efase.

Chèche pakè efase yo

Nou bezwen retire kèk konvolusyon. Prese devan epi "tire" nenpòt moun se yon move lide, byenke li pral travay. Men, depi ou gen yon tèt, ou ka panse epi eseye chwazi konvolusyon "fèb" pou retire. Gen plizyè opsyon:

  1. Pi piti L1-mezi oswa low_magnitude_pruning. Lide a ke konvolusyon ak ti pwa fè ti kontribisyon nan desizyon final la
  2. Pi piti L1-mezi pran an kont mwayèn ak devyasyon estanda. Nou konplete ak yon evalyasyon sou nati distribisyon an.
  3. Maske konvolusyon ak eksklizyon sa yo ki pi piti enfliyanse presizyon final la. Detèminasyon pi egzak nan konvolusyon ensiyifyan, men anpil tan konsome ak resous ki konsome.
  4. Gen lòt ki

Chak nan opsyon yo gen dwa a lavi ak karakteristik pwòp aplikasyon li yo. Isit la nou konsidere opsyon ki pi piti L1-mezi a

Pwosesis manyèl pou YOLOv3

Achitekti orijinal la gen blòk rezidyèl. Men, kèlkeswa jan yo fre pou rezo gwo twou san fon, yo pral anpeche nou yon ti jan. Difikilte a se ke ou pa ka efase rekonsilyasyon ak endis diferan nan kouch sa yo:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Se poutèt sa, ann chwazi kouch nan ki nou ka lib efase rekonsilyasyon:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Koulye a, ann bati yon sik travay:

  1. TĂŠlĂŠchargement activation
  2. Chache konnen ki kantite pou koupe
  3. Koupe li
  4. Aprann 10 epòk ak LR=1e-4
  5. Tès

Dechaje konvolusyon itil pou estime konbyen pati nou ka retire nan yon sèten etap. Egzanp dechaje:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Nou wè ke prèske tout kote 5% nan konvolusyon yo gen yon trè ba L1-norm epi nou ka retire yo. Nan chak etap, dechaje sa a te repete epi yo te fè yon evalyasyon sou ki kouch ak konbyen yo ta ka koupe.

Tout pwosesis la te konplete nan 4 etap (nimewo isit la ak toupatou pou RTX 2060 Super la):

Etapmap75Kantite paramèt, milyon dolaGwosè rezo a, mbSoti nan premye, %Kouri tan, msKondisyon sikonsizyon
00.965660241100180-
10.962255218911755% nan tout
20.962550197831685% nan tout
30.9633391556415515% pou kouch ki gen plis pase 400 konvolusyon
40.9555311245114610% pou kouch ki gen plis pase 100 konvolusyon

Yon efè pozitif te ajoute nan etap 2 - gwosè pakèt 4 anfòm nan memwa, ki anpil akselere pwosesis la nan fòmasyon adisyonèl.
Nan etap 4, pwosesis la te sispann paske menm fòmasyon adisyonèl alontèm pa t ogmante mAp75 nan ansyen valè.
Kòm yon rezilta, nou jere pi vit enferans la pa 15%, redwi gwosè a pa 35% epi yo pa pèdi egzakteman.

Otomatik pou achitekti ki pi senp

Pou achitekti rezo ki pi senp (san yo pa ajoute kondisyonèl, konkaterasyon ak blòk rezidyèl), li se byen posib yo konsantre sou trete tout kouch konvolusyonèl ak otomatize pwosesis la nan koupe soti konvolusyon.

Mwen aplike opsyon sa a isit la.
Li senp: ou bezwen sèlman yon fonksyon pèt, yon optimiseur ak dèlko pakèt:

import pruning
from keras.optimizers import Adam
from keras.utils import Sequence

train_batch_generator = BatchGenerator...
score_batch_generator = BatchGenerator...

opt = Adam(lr=1e-4)
pruner = pruning.Pruner("config.json", "categorical_crossentropy", opt)

pruner.prune(train_batch, valid_batch)

Si sa nesesè, ou ka chanje paramèt konfigirasyon yo:

{
    "input_model_path": "model.h5",
    "output_model_path": "model_pruned.h5",
    "finetuning_epochs": 10, # the number of epochs for train between pruning steps
    "stop_loss": 0.1, # loss for stopping process
    "pruning_percent_step": 0.05, # part of convs for delete on every pruning step
    "pruning_standart_deviation_part": 0.2 # shift for limit pruning part
}

Anplis de sa, yon limit ki baze sou devyasyon estanda a aplike. Objektif la se limite pati yo retire, eksepte konvolusyon ki deja "ase" mezi L1:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Kidonk, nou pèmèt ou retire sèlman konvolusyon fèb nan distribisyon ki sanble ak youn nan dwa epi yo pa afekte retire elèv la nan distribisyon ki sanble ak youn nan gòch la:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Lè distribisyon an apwoche nòmal, koyefisyan pruning_standart_deviation_part a ka chwazi nan:

Teknik Jedi pou diminye rezo konvolusyonèl - koupe
Mwen rekòmande yon sipozisyon 2 sigma. Oswa ou ka inyore karakteristik sa a, kite valè a <1.0.

Pwodiksyon an se yon graf gwosè rezo, pèt, ak tan rezo a pou tout tès la, nòmalize a 1.0. Pou egzanp, isit la gwosè rezo a te redwi a prèske 2 fwa san pèt nan bon jan kalite (ti rezo konvolusyon ak pwa 100k):

Teknik Jedi pou diminye rezo konvolusyonèl - koupe

Vitès la kouri se sijè a fluctuations nòmal epi li rete nòmalman chanje. Gen yon eksplikasyon pou sa a:

  1. Nimewo a nan konvolusyon chanje soti nan pratik (32, 64, 128) nan pa pi pratik pou kat videyo - 27, 51, elatriye. Mwen ta ka mal isit la, men gen plis chans li gen yon efè.
  2. Achitekti a pa laj, men konsistan. Pa diminye lajè a, nou pa afekte pwofondè a. Kidonk, nou redwi chaj la, men nou pa chanje vitès la.

Se poutèt sa, amelyorasyon an te eksprime nan yon rediksyon nan chaj la CUDA pandan kouri a pa 20-30%, men se pa nan yon rediksyon nan tan an kouri.

Rezilta

Ann reflechi. Nou konsidere 2 opsyon pou koupe - pou YOLOv3 (lè ou gen travay ak men ou) ak pou rezo ak achitekti ki pi senp. Li ka wè ke nan tou de ka li se posib reyalize rediksyon gwosè rezo ak vitès san pèt nan presizyon. Rezilta:

  • Diminye gwosè a
  • Akselerasyon kouri
  • Diminye chaj CUDA
  • Kòm yon rezilta, zanmitay anviwònman an (Nou optimize itilizasyon nan lavni nan resous informatique. Yon kote yon moun kontan Greta Thunberg)

Apendis

  • Apre etap koupe a, ou ka ajoute quantization (pa egzanp, ak TensorRT)
  • Tensorflow bay kapasite pou koupe_mayitid_ba. Travay.
  • depo Mwen vle devlope epi mwen pral kontan ede

Sous: www.habr.com

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster