Nevro mreže. Kam to vse gre?

Članek je sestavljen iz dveh delov:

  1. Kratak opis nekaterih arhitektur omrežij za odkrivanje objektov na slikah in segmentacijo slik s najbolj razumljivimi povezavami do virov za mene. Poskušal sem izbrati videopojasnila, ki so bila, če je mogoče, v ruščini.
  2. Drugi del je poskus razumeti razvojno smer arhitektur nevronih mrež in tehnologij, ki temeljijo na njih.

Nevro mreže. Kam to vse gre?

Slika 1 – Razumevanje arhitektur nevronih mrež ni preprosto

Vse se je začelo s tem, da sem naredil dve prikazni aplikaciji za klasifikacijo in odkrivanje objektov na telefonu Android:

  • Back-end demo, ko se podatki obdelujejo na strežniku in prenašajo na telefon. Klasifikacija slik (image classification) treh vrst medvedov: rjavi, črni in plišasti.
  • Front-end demo, ko se podatki obdelujejo na sami napravi. Odkritje objektov (object detection) treh vrst: lešnik, figa in datelj.

Obstaja razlika med nalogami klasifikacije slik, odkrivanjem objektov na slikah in segmentacijo slik. Zato se je pojavila potreba po spoznanju, katere arhitekture nevronih mrež odkrivajo objekte na slikah in katere lahko segmentirajo. Našel sem naslednje primere arhitektur z najbolj razumljivimi povezavami do virov:

  • Serija arhitektur na osnovi R-CNN (Regions with Convolution Neural Networks features): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. Za odkrivanje objekta na sliki se s pomočjo mehanizma Regional Proposal Network (RPN) izločijo omejeni regij (bounding boxes). Sprva je bil namesto RPN uporabljen počasnejši mehanizem Selective Search. Nato se izločene omejene regije predložijo običajni nevroni mreži za klasifikacijo. V arhitekturi R-CNN so jasno izraženi 'for' cikli za preizkušnjo omejenih regij, skupno do 2000 ponovitev skozi notranjo mrežo AlexNet. Zaradi očitnih 'for' ciklov se zmanjša hitrost obdelovanja slik. Število očitnih ciklov, ponovitev skozi notranjo nevroni mrežo, se z vsako novo različico arhitekture zmanjšuje, prav tako se izvajajo desetine drugih sprememb za povečanje hitrosti in zamenjavo naloge odkrivanja objektov s segmentacijo objektov v Mask R-CNN.
  • YOLO (You Only Look Once) – prva nevronska mreža koja prepoznaje objekte u stvarnom vremenu na mobilnim uređajima. Odlikuje je sposobnost razlikovanja objekata u jednom prolazu (dovoljno je da pogleda jednom). Drugim rečima, u YOLO arhitekturi nema očiglednih "for" petlji, zbog čega mreža brzo funkcioniše. Na primer, analogija: u NumPy kodu prilikom operacija sa matricama takođe nema očiglednih "for" petlji, što se u NumPy realizuje na nižim nivoima putem jezika C. YOLO koristi mrežu unapred definisanih prozora. Da se isti objekat ne prepoznaje više puta, koristi se koeficijent preklapanja prozora (IoU, Intersection over Union). Ova arhitektura funkcioniše u širokom opsegu i ima visok robustnost: model može biti obučen na fotografijama, ali takođe dobro radi na crtežima.
  • SSD (Single Shot MultiBox Detector) – koriste se najslađi "hackovi" YOLO arhitekture (na primer, non-maximum suppression) i dodaju se novi, kako bi neuronska mreža brže i tačnije radila. Odlikuje je sposobnost razlikovanja objekata u jednom prolazu pomoću definisanih prozora (default box) na piramidi slika. Piramida slika je kodirana u konvolucionim tenzorima kroz sekvencijalne konvolucijske i pooling operacije (prilikom operacije max-pooling prostorna dimenzija se smanjuje). Na taj način se prepoznaju i veliki i mali objekti u jednom prolazu mreže.
  • MobileSSD (MobilniNetV2 + SSD) – kombinacija dve arhitekture neuronskih mreža. Prva mreža MobileNetV2 runs fast and increases recognition accuracy. MobileNetV2 is used instead of VGG-16, which was originally used in originalnem članku. Druga mreža SSD određuje lokaciju objekata na slici.
  • SqueezeNet – veoma mala, ali precizna neuronska mreža. Samo po sebi ne rešava zadatak otkrivanja objekata. Međutim, može se koristiti u kombinaciji različitih arhitektura. I upotrebljava se na mobilnim uređajima. Njena posebna karakteristika je to da se prvobitno podaci kompresuju do četiri 1×1 konvolucijska filtera, a zatim šire do četiri 1×1 i četiri 3×3 konvolucijska filtera. Jedna takva iteracija kompresije-širenja podataka naziva se "Fire Module".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentacija objektov na sliki. Posebnost arhitekture je razpršena (dilated convolution) konvolucija, ki ohranja prostorsko ločljivost. Sledi faza obdelave rezultatov z uporabo grafičnega verjetnostnega modela (conditional random field), kar omogoča odstranitev manjših šumov v segmentaciji in izboljšanje kakovosti odsegljenega vizualnega materiala. Za groznim imenom «grafični verjetnostni model» se skriva običajen Gaussian filter, ki je aproksimiran na petih točkah.
  • Poskušal sem razumeti delovanje RefineDet (Single-Shot Refinement Neural Network for Object Detection), vendar sem malo razumel.
  • Pogledal sem tudi, kako deluje tehnologija «pozornost» (attention): video1, video2, video3. Posebnost arhitekture «pozornost» je avtomatsko izločanje regij povečane pozornosti na sliki (RoI, Regions of Interest) s pomočjo nevronetske mreže z imenom Attention Unit. Regije povečane pozornosti so podobne omejenim regijam (bounding boxes), a za razliko od njih niso zaklenjene na sliki in lahko imajo zamegljene meje. Nato se iz regij povečane pozornosti izločijo značilnosti (features), ki se »predajajo« rekurenčnim nevronetskim mrežam z arhitekturami LSDM, GRU ali Vanilla RNN. Rekurenčne nevronetske mreže znajo analizirati medsebojne odnose značilnosti v zaporedju. Rekurenčne nevronetske mreže so prvotno bile uporabljene za prevajanje besedil v druge jezike, zdaj pa tudi za prevod slik v besedilo in besedila v sliko.

Med raziskovanjem teh arhitektur sem spoznal, da nič ne razumem. In ne gre za to, da bi imela moja nevronetska mreža težave z mehanizmom pozornosti. Ustvarjanje vseh teh arhitektur se zdi kot nek ogromen hackathon, kjer avtorji tekmujejo v hackih. Hack (hack) je hitro rešitev težkega programskega problema. Torej, med vsemi temi arhitekturami ni vidne in razumljive logične povezave. Vse, kar jih povezuje, je skupek najbolj uspešnih hackov, ki si jih izposojajo drug od drugega, plus skupna za vse operacija konvolucije z povratno zanko (povratno širjenje napake, backpropagation). Ni sistemske miselnosti! Ni jasno, kaj spremeniti in kako optimizirati obstoječe dosežke.

Kot rezultat pomanjkanja logične povezave med haki je, da si jih je izjemno težko zapomniti in uporabiti v praksi. To so fragmentirana znanja. V najboljšem primeru se zapomnijo nekateri zanimivi in nepričakovani trenutki, a večina razumljenega in nerazumljenega izgine iz spomina že v nekaj dneh. Dobro bi bilo, če bi se vsaj ime arhitekture spomnilo po tednu dni. In to je ob branju člankov in gledanju preglednih videov vzelo več ur in celo dni delovnega časa!

Nevro mreže. Kam to vse gre?

Slika 2 – Zoološki vrt nevronskih mrež

Večina avtorjev znanstvenih člankov, po mojem osebnem mnenju, dela vse, kar je v njihovi moči, da tudi to fragmentirano znanje ostane nejasno bralcu. Toda depričastni stavki v desetih vrstnih stavkih s formulami, ki so vzeti 's stropa', so tema za poseben članek (problem publish or perish).

Zaradi tega se je pojavila potreba po sistematizaciji informacij o nevronkih mrežah in tako povečanju kakovosti razumevanja in zapomnitve. Zato je glavna tema analize posameznih tehnologij in arhitektur umetnih nevronskih mrež postala naslednja naloga: izvedeti, kam vse to vodi, ne pa o delovanju neke konkretne nevronke posebej.

Kam se to vse giblje. Glavni rezultati:

  • Število start-up podjetij na področju strojnega učenja v zadnjih dveh letih je drastično padlo. Možen razlog: 'nevronske mreže so prenehale biti nekaj novega.'
  • Vsakdo bo lahko ustvaril delujočo nevronko za reševanje preproste naloge. Za to bo vzel že pripravljeni model iz 'zoološkega vrta modelov' (model zoo) in usposobil zadnjo plast nevronke (transfer learning) na pripravljenih podatkih iz Google Dataset Search ali iz 25 tisočih zbirk podatkov Kaggle v brezplačnem oblaku Jupyter Notebook.
  • Veliki proizvajalci nevronk so začeli ustvarjati 'zoološke vrtove modelov' (model zoo). S pomočjo njih lahko hitro naredite komercialno aplikacijo: TF Hub za TensorFlow, MMDetection za PyTorch, Detectron za Caffe2, chainer-modelzoo za Chainer in projekti z odprto kodo,.
  • Nevronske mreže, ki delujejo v realnem času (real-time) na mobilnih naprava. Od 10 do 50 slik na sekundo.
  • Uporaba nevronk na telefonih (TF Lite), v brskalnikih (TF.js) in v domačih predmetih (IoT, Iinternet of Tstvari). Še posebej na telefonih, ki že podpirajo nevronke na nivoju 'železa' (nevroakseratorji).
  • „Vsaka naprava, oblačila in morda celo hrana bodo imela IP-v6 naslov in se med seboj povezovala“ – Sebastian Thrun.
  • Rast števila objav o strojno učenju je začela presegati Mooreov zakon (podvojitev vsaka dve leti) od leta 2015. Očitno so potrebne nevronske mreže za analizo člankov.
  • Naslednje tehnologije postajajo vse bolj priljubljene:
    • PyTorch – priljubljenost raste hitro in, zdi se, prehiteva TensorFlow.
    • Samodejna izbira hiperpamoč AutoML – priljubljenost raste postopoma.
    • Postopno zmanjšanje natančnosti in povečanje hitrosti izračunov: nejasna logika, algoritmi boostinga, nedoločeni (približni) izračuni, kvantizacija (ko se teže nevronske mreže pretvorijo v cela števila in kvantizirajo), nevronski pospeševalniki.
    • Prevod slik v besedilo in besedila v sliko.
    • Ustvarjanje 3D objekti iz videa, zdaj že v realnem času.
    • Osnovno v DL – to je veliko podatkov, toda zbrati in označiti jih ni enostavno. Zato se razvija avtomatizacija označevanja (automated annotation) za nevronske mreže s pomočjo nevronskih mrež.
  • Z nevronskimi mrežami je računalništvo nenadoma postalo eksperimentalna znanost in nastal je krizni reprodukcije.
  • IT-denar in priljubljenost nevronskih mrež sta se pojavila hkrati, ko so postali izračuni tržna vrednost. Ekonomija iz zlato-valutne postane zlato-valutno-računska.. Oglejte si moj članek o ekonofiziki in razlogu za pojav IT-denarja.

Počasi se razvija nova metodologija programiranja ML/DL (Strojno učenje & Globoko učenje), ki temelji na predstavljanju programa kot zbirke usposobljenih modelov nevronskih mrež.

Nevro mreže. Kam to vse gre?

Slika 3 – ML/DL kot nova metodologija programiranja

Vendar pa se ni pojavila „teorija nevronskih mrež“, v okviru katere bi bilo mogoče razmišljati in delati sistematično. To, kar se danes imenuje „teorija“, so v resnici eksperimentalni, heuristični algoritmi.

Povezave do mojih in drugih virov:

Hvala za pozornost!

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster