Nevronske mreže. Kam vse to pelje?

Članek je sestavljen iz dveh delov:

  1. Kratek opis nekaterih omrežnih arhitektur za zaznavanje objektov v slikah in segmentacijo slik z meni najbolj razumljivimi povezavami do virov. Poskušal sem izbrati video razlage in po možnosti v ruščini.
  2. Drugi del je poskus razumevanja smeri razvoja arhitektur nevronskih mrež. In tehnologije, ki temeljijo na njih.

Nevronske mreže. Kam vse to pelje?

Slika 1 – Razumevanje arhitektur nevronskih mrež ni enostavno

Vse se je začelo z izdelavo dveh demo aplikacij za klasifikacijo in odkrivanje objektov na telefonu Android:

  • Zaledni demo, ko se podatki obdelujejo na strežniku in prenašajo v telefon. Slika klasifikacije treh vrst medvedov: rjavega, črnega in plišastega.
  • Front-end demoko se podatki obdelujejo na samem telefonu. Zaznavanje predmetov (object detection) treh vrst: lešniki, fige in datlji.

Obstaja razlika med nalogami klasifikacije slik, odkrivanja objektov na sliki in segmentacija slike. Zato je bilo treba ugotoviti, katere arhitekture nevronskih mrež zaznajo objekte na slikah in katere jih lahko segmentirajo. Našel sem naslednje primere arhitektur z meni najbolj razumljivimi povezavami do virov:

  • Serija arhitektur, ki temeljijo na R-CNN (Rregije z Convolucija Nevral Nomrežne funkcije): R-CNN, hitri R-CNN, Hitrejši R-CNN, Maska R-CNN. Za zaznavanje predmeta na sliki se dodelijo omejevalni okvirji z uporabo mehanizma Region Proposal Network (RPN). Sprva je bil namesto RPN uporabljen počasnejši mehanizem selektivnega iskanja. Nato se izbrana omejena območja podajo na vhod običajne nevronske mreže za klasifikacijo. Arhitektura R-CNN ima eksplicitne zanke "za" v omejenih regijah, skupaj do 2000 izvajanj skozi interno omrežje AlexNet. Eksplicitne zanke "za" upočasnijo hitrost obdelave slike. Število eksplicitnih zank, ki tečejo skozi notranjo nevronsko mrežo, se zmanjša z vsako novo različico arhitekture in izvedenih je na desetine drugih sprememb za povečanje hitrosti in zamenjavo naloge zaznavanja objektov s segmentacijo objektov v Mask R-CNN.
  • YOLO (You Only Look Once) je prva nevronska mreža, ki je prepoznavala predmete v realnem času na mobilnih napravah. Posebnost: razločevanje predmetov v enem zagonu (samo enkrat poglejte). To pomeni, da v arhitekturi YOLO ni eksplicitnih zank "za", zato omrežje deluje hitro. Na primer, ta analogija: v NumPy pri izvajanju operacij z matrikami tudi ni eksplicitnih zank "for", ki so v NumPy implementirane na nižjih ravneh arhitekture prek programskega jezika C. YOLO uporablja mrežo vnaprej določenih oken. Da bi preprečili večkratno definiranje istega objekta, se uporablja koeficient prekrivanja oken (IoU). Ikrižišče oglej Union). Ta arhitektura deluje v širokem razponu in ima visoko robustnost: Model se lahko uri na fotografijah, vendar se še vedno dobro obnese na ročno narisanih slikah.
  • SSD (Single Svroče MultiBox Detector) – uporabljeni so najuspešnejši »heki« arhitekture YOLO (na primer non-maximum suppression) in dodani novi, da nevronska mreža deluje hitreje in natančneje. Posebnost: razločevanje predmetov v enem zagonu z uporabo dane mreže oken (privzeto polje) na slikovni piramidi. Piramida slike je kodirana v konvolucijskih tenzorjih z zaporednimi operacijami konvolucije in združevanja (z operacijo združevanja max se prostorska dimenzija zmanjša). Na ta način se v enem omrežnem teku določijo tako veliki kot majhni objekti.
  • MobileSSD (MobilniNetV2+ SSD) je kombinacija dveh arhitektur nevronske mreže. Prvo omrežje MobileNetV2 deluje hitro in poveča natančnost prepoznavanja. MobileNetV2 se uporablja namesto VGG-16, ki je bil prvotno uporabljen v izvirni članek. Drugo omrežje SSD določa lokacijo predmetov na sliki.
  • SqueezeNet – zelo majhna, a natančna nevronska mreža. Sama po sebi ne reši problema zaznavanja predmetov. Lahko pa se uporablja v kombinaciji različnih arhitektur. In se uporablja v mobilnih napravah. Posebnost je, da so podatki najprej stisnjeni v štiri konvolucijske filtre 1×1 in nato razširjeni v štiri konvolucijske filtre 1×1 in štiri 3×3. Ena taka ponovitev stiskanja-širjenja podatkov se imenuje "požarni modul".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentacija objektov na sliki. Posebnost arhitekture je razširjena konvolucija, ki ohranja prostorsko ločljivost. Temu sledi stopnja naknadne obdelave rezultatov z uporabo grafičnega verjetnostnega modela (pogojno naključno polje), ki vam omogoča, da odstranite majhen šum pri segmentaciji in izboljšate kakovost segmentirane slike. Za mogočnim imenom "grafični verjetnostni model" se skriva običajen Gaussov filter, ki je aproksimiran s petimi točkami.
  • Poskušal ugotoviti napravo RefineDet (En strel IzboljšanoNevronska mreža za objekt Detection), vendar nisem veliko razumel.
  • Ogledal sem si tudi, kako deluje tehnologija »pozornost«: videoposnetek1, videoposnetek2, videoposnetek3. Posebnost arhitekture »pozornosti« je samodejna izbira območij povečane pozornosti na sliki (RoI, Regions of Interest) z uporabo nevronske mreže, imenovane Attention Unit. Območja povečane pozornosti so podobna omejevalnim poljem, vendar za razliko od njih na sliki niso fiksna in imajo lahko zamegljene meje. Nato se iz območij povečane pozornosti izolirajo znaki (lastnosti), ki se »napajajo« v ponavljajoče se nevronske mreže z arhitekturami. LSDM, GRU ali Vanilla RNN. Ponavljajoče se nevronske mreže lahko analizirajo razmerje med značilnostmi v zaporedju. Ponavljajoče se nevronske mreže so se sprva uporabljale za prevajanje besedila v druge jezike, zdaj pa za prevajanje slike v besedilo и besedilo v sliko.

Ko raziskujemo te arhitekture Spoznal sem, da ničesar ne razumem. In ne gre za to, da ima moja nevronska mreža težave z mehanizmom pozornosti. Ustvarjanje vseh teh arhitektur je kot nekakšen ogromen hackathon, kjer avtorji tekmujejo v hekanju. Hack je hitra rešitev težke težave s programsko opremo. To pomeni, da med vsemi temi arhitekturami ni vidne in razumljive logične povezave. Vse, kar ju združuje, je nabor najuspešnejših vdorov, ki si jih sposodita drug od drugega, in skupni za vse konvolucijsko delovanje v zaprti zanki (širjenje napak nazaj, širjenje nazaj). št sistemsko razmišljanje! Ni jasno, kaj spremeniti in kako optimizirati obstoječe dosežke.

Zaradi pomanjkanja logične povezave med vdori si jih je izjemno težko zapomniti in uporabiti v praksi. To je razdrobljeno znanje. V najboljšem primeru se spomnimo nekaj zanimivih in nepričakovanih trenutkov, vendar večina razumljivega in nerazumljivega izgine iz spomina v nekaj dneh. Dobro bo, če se čez teden dni spomniš vsaj imena arhitekture. Toda nekaj ur in celo dni delovnega časa je bilo porabljenih za branje člankov in gledanje preglednih videov!

Nevronske mreže. Kam vse to pelje?

Slika 2 – Živalski vrt nevronskih mrež

Večina avtorjev znanstvenih člankov po mojem osebnem mnenju naredi vse, da tudi to razdrobljeno znanje bralec ne razume. Toda deležni stavki v desetvrstičnih stavkih s formulami, ki so vzete "iz zraka", so tema za ločen članek (problem objavljati ali propadati).

Zaradi tega obstaja potreba po sistematizaciji informacij z uporabo nevronskih mrež in s tem povečanju kakovosti razumevanja in pomnjenja. Zato je bila glavna tema analize posameznih tehnologij in arhitektur umetnih nevronskih mrež naslednja naloga: ugotovite, kam vse to pelje, in ne naprave katere koli posebne nevronske mreže posebej.

Kam gre vse to? Glavni rezultati:

  • Število zagonov strojnega učenja v zadnjih dveh letih močno padla. Možen razlog: "nevronske mreže niso več nekaj novega."
  • Vsakdo lahko ustvari delujočo nevronsko mrežo za rešitev preprostega problema. Če želite to narediti, vzemite že pripravljen model iz "modelnega živalskega vrta" in trenirajte zadnjo plast nevronske mreže (transferno učenje) na že pripravljenih podatkih iz Google Dataset Search ali od 25 tisoč naborov podatkov Kaggle v prostem oblak Jupyter Notebook.
  • Začeli so ustvarjati veliki proizvajalci nevronskih mrež "vzorčni živalski vrtovi" (model živalskega vrta). Z njihovo uporabo lahko hitro ustvarite komercialno aplikacijo: TF Hub za TensorFlow, MMDetection za PyTorch, Detectron za Caffe2, verigar-modelzoo za Chainer in drugi.
  • Delovanje nevronskih mrež v realnem času (v realnem času) na mobilnih napravah. Od 10 do 50 sličic na sekundo.
  • Uporaba nevronskih mrež v telefonih (TF Lite), v brskalnikih (TF.js) in v gospodinjski predmeti (IoT, Internet of Ttečaji). Predvsem pri telefonih, ki na strojni ravni že podpirajo nevronske mreže (nevronski pospeševalci).
  • »Vsaka naprava, kos oblačila in morda celo hrana bo imela naslov IP-v6 in komunicirajo drug z drugim" - Sebastian Thrun.
  • Število objav o strojnem učenju je začelo naraščati presegajo Moorov zakon (podvojitev vsaki dve leti) od leta 2015. Očitno potrebujemo nevronske mreže za analizo člankov.
  • Naslednje tehnologije pridobivajo na priljubljenosti:
    • PyTorch – priljubljenost hitro narašča in zdi se, da prehiteva TensorFlow.
    • Samodejna izbira hiperparametrov AutoML – priljubljenost gladko raste.
    • Postopno zmanjšanje natančnosti in povečanje hitrosti izračuna: mehka logika, algoritmi krepitev, nenatančni (približni) izračuni, kvantizacija (ko se uteži nevronske mreže pretvorijo v cela števila in kvantizirajo), nevronski pospeševalniki.
    • Prevod slike v besedilo и besedilo v sliko.
    • ustvarjanje XNUMXD objekti iz videa, zdaj v realnem času.
    • Glavna stvar pri DL je, da je podatkov veliko, zbiranje in označevanje pa ni preprosto. Zato se razvija avtomatizacija označevanja (avtomatizirano označevanje) za nevronske mreže z uporabo nevronskih mrež.
  • Z nevronskimi mrežami je računalništvo nenadoma postalo eksperimentalna znanost in vstal kriza ponovljivosti.
  • IT denar in priljubljenost nevronskih mrež sta se pojavila sočasno, ko je računalništvo postalo tržna vrednost. Gospodarstvo se spreminja iz ekonomije zlata in valute v zlata-valuta-računalništvo. Oglejte si moj članek o ekonofizika in razlog za pojav IT denarja.

Postopoma se pojavi nov Metodologija programiranja ML/DL (Machine Learning & Deep Learning), ki temelji na predstavitvi programa kot niza naučenih modelov nevronske mreže.

Nevronske mreže. Kam vse to pelje?

Slika 3 – ML/DL kot nova metodologija programiranja

Vendar se nikoli ni pojavilo "teorija nevronske mreže", znotraj katerega lahko razmišljate in delate načrtno. Kar se zdaj imenuje "teorija", so pravzaprav eksperimentalni, hevristični algoritmi.

Povezave do mojih in drugih virov:

Спасибо за внимание!

Vir: www.habr.com

Dodaj komentar