Neuroniniai tinklai. Kur visa tai eina?

Straipsnis susideda iš dviejų dalių:

  1. Trumpas kai kurių tinklo architektūrų, skirtų objektų aptikimui vaizduose ir vaizdų segmentavimui, aprašymas su man suprantamiausiomis nuorodomis į išteklius. Stengiausi pasirinkti vaizdo paaiškinimus ir geriausia rusų kalba.
  2. Antroji dalis – bandymas suprasti neuroninių tinklų architektūros raidos kryptį. Ir jomis paremtos technologijos.

Neuroniniai tinklai. Kur visa tai eina?

1 pav. Suprasti neuroninių tinklų architektūras nėra lengva

Viskas prasidėjo sukūrus dvi demonstracines objektų klasifikavimo ir aptikimo programas „Android“ telefone:

Yra skirtumas tarp vaizdų klasifikavimo, objekto aptikimo vaizde užduočių ir vaizdo segmentavimas. Todėl atsirado poreikis išsiaiškinti, kurios neuroninių tinklų architektūros aptinka objektus vaizduose, o kurios gali segmentuoti. Radau šiuos architektūros pavyzdžius su man suprantamiausiomis nuorodomis į išteklius:

  • Architektūrų serija, pagrįsta R-CNN (Rregionai su Convoliucija Neuras Ntinklo funkcijos): R-CNN, greitas R-CNN, Greitesnis R-CNN, Kaukė R-CNN. Norint aptikti objektą vaizde, ribojantys langeliai skiriami naudojant Regiono pasiūlymo tinklo (RPN) mechanizmą. Iš pradžių vietoj RPN buvo naudojamas lėtesnis selektyvinės paieškos mechanizmas. Tada pasirinkti riboti regionai klasifikuojami į įprastinio neuroninio tinklo įvestį. R-CNN architektūra turi aiškias „už“ kilpas ribotuose regionuose, iš viso iki 2000 paleidimų per AlexNet vidinį tinklą. Aiškios „už“ kilpos sulėtina vaizdo apdorojimo greitį. Aiškių kilpų, einančių per vidinį neuronų tinklą, skaičius mažėja su kiekviena nauja architektūros versija, be to, atliekama daugybė kitų pakeitimų, siekiant padidinti greitį ir pakeisti objekto aptikimo užduotį objektų segmentavimu Mask R-CNN.
  • Yolo (You Onely Lalso Once) yra pirmasis neuroninis tinklas, kuris realiu laiku atpažino objektus mobiliuosiuose įrenginiuose. Skiriamasis bruožas: objektų atskyrimas vienu metu (tik pažiūrėkite vieną kartą). Tai yra, YOLO architektūroje nėra aiškių „už“ kilpų, todėl tinklas veikia greitai. Pavyzdžiui, ši analogija: NumPy, atliekant operacijas su matricomis, taip pat nėra aiškių "for" kilpų, kurios NumPy yra realizuojamos žemesniuose architektūros lygiuose per C programavimo kalbą YOLO naudoja iš anksto nustatytų langų tinklelį. Kad tas pats objektas nebūtų apibrėžtas kelis kartus, naudojamas langų persidengimo koeficientas (IoU). Isankryža oVer Unionas). Ši architektūra veikia plačiame diapazone ir turi aukštą tvirtumas: Modelis gali būti išmokytas fotografuoti, bet vis tiek gerai atlikti ranka pieštus paveikslus.
  • VSD (Sįskaičiuoti Skarštas MultiBox Detector) – naudojami sėkmingiausi YOLO architektūros „hackai“ (pavyzdžiui, ne maksimalus slopinimas) ir pridedami nauji, kad neuroninis tinklas veiktų greičiau ir tiksliau. Skiriamasis bruožas: objektų atskyrimas vienu paleidimu, naudojant tam tikrą langų tinklelį (numatytąjį langelį) vaizdo piramidėje. Vaizdo piramidė yra užkoduota konvoliucijos tenzoriuose, atliekant nuoseklias konvoliucijos ir telkimo operacijas (atliekant maksimalią telkimo operaciją, erdvinis matmuo mažėja). Tokiu būdu viename tinklo bėgime nustatomi ir dideli, ir maži objektai.
  • MobileSSD (MobilusNetV2+ VSD) yra dviejų neuroninių tinklų architektūrų derinys. Pirmasis tinklas MobileNetV2 veikia greitai ir padidina atpažinimo tikslumą. „MobileNetV2“ naudojamas vietoj VGG-16, kuris iš pradžių buvo naudojamas originalus straipsnis. Antrasis SSD tinklas nustato objektų vietą vaizde.
  • SqueezeNet – labai mažas, bet tikslus neuroninis tinklas. Pati savaime tai neišsprendžia objekto aptikimo problemos. Tačiau jis gali būti naudojamas derinant skirtingas architektūras. Ir naudojamas mobiliuosiuose įrenginiuose. Išskirtinis bruožas yra tas, kad duomenys pirmiausia suspaudžiami į keturis 1 × 1 konvoliucinius filtrus, o tada išplečiami į keturis 1 × 1 ir keturis 3 × 3 konvoliucinius filtrus. Viena iš tokių duomenų glaudinimo ir išplėtimo iteracijų vadinama „Ugnies moduliu“.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – objektų segmentavimas vaizde. Išskirtinis architektūros bruožas – išsiplėtusi konvoliucija, išsauganti erdvinę skiriamąją gebą. Po to seka rezultatų papildomo apdorojimo etapas, naudojant grafinį tikimybinį modelį (sąlyginį atsitiktinį lauką), kuris leidžia pašalinti nedidelį segmentavimo triukšmą ir pagerinti segmentuoto vaizdo kokybę. Už didžiulio pavadinimo „grafinis tikimybinis modelis“ slepiasi įprastas Gauso filtras, kuris yra apytikslis penkiais taškais.
  • Bandė išsiaiškinti įrenginį RefineDet (Single Shot Tobulintiobjekto neuroninis tinklas detakcija), bet nelabai supratau.
  • Taip pat pažiūrėjau, kaip veikia „dėmesio“ technologija: vaizdo įrašas1, vaizdo įrašas2, vaizdo įrašas3. Išskirtinis „dėmesio“ architektūros bruožas yra automatinis didesnio dėmesio regionų pasirinkimas vaizde (RoI, Regions of Interest) naudojant neuroninį tinklą, vadinamą Attention Unit. Padidinto dėmesio sritys yra panašios į ribojančius langelius, tačiau skirtingai nei jie, jie nėra užfiksuoti vaizde ir gali turėti neryškias ribas. Tada iš padidinto dėmesio regionų išskiriami ženklai (ypatybės), kurie „pamaitinami“ į pasikartojančius neuroninius tinklus su architektūra. LSDM, GRU arba Vanilla RNN. Pasikartojantys neuroniniai tinklai geba analizuoti ypatybių ryšį sekoje. Pasikartojantys neuroniniai tinklai iš pradžių buvo naudojami tekstui išversti į kitas kalbas, o dabar – vertimui vaizdai į tekstą и teksto į vaizdą.

Kai tyrinėjame šias architektūras Supratau, kad nieko nesuprantu. Ir ne tai, kad mano neuroninis tinklas turi problemų su dėmesio mechanizmu. Visų šių architektūrų kūrimas yra tarsi koks didžiulis hakatonas, kuriame autoriai varžosi hackuose. „Hack“ yra greitas sudėtingos programinės įrangos problemos sprendimas. Tai yra, tarp visų šių architektūrų nėra matomo ir suprantamo loginio ryšio. Viskas, kas juos vienija, yra sėkmingiausių įsilaužimų rinkinys, kurį jie pasiskolino vienas iš kito, ir vienas bendras visiems uždaro ciklo konvoliucijos operacija (klaida backpropagation, backpropagation). Nr sisteminis mąstymas! Neaišku, ką keisti ir kaip optimizuoti esamus pasiekimus.

Dėl loginio ryšio tarp įsilaužimų trūkumo juos labai sunku įsiminti ir pritaikyti praktikoje. Tai yra suskaidytos žinios. Geriausiu atveju prisimenamos kelios įdomios ir netikėtos akimirkos, tačiau didžioji dalis to, kas suprasta ir nesuvokiama, per kelias dienas dingsta iš atminties. Bus gerai, jei po savaitės prisiminsite bent architektūros pavadinimą. Tačiau kelios valandos ir net dienos darbo laiko buvo praleistos skaitant straipsnius ir žiūrint apžvalginius vaizdo įrašus!

Neuroniniai tinklai. Kur visa tai eina?

2 pav. – Neuroninių tinklų zoologijos sodas

Dauguma mokslinių straipsnių autorių, mano asmenine nuomone, daro viską, kas įmanoma, kad net šios fragmentiškos žinios nesuprastų skaitytojui. Tačiau dalyvaujamosios frazės dešimties eilučių sakiniuose su formulėmis, kurios paimtos „iš oro“ yra atskiro straipsnio tema (problema paskelbti ar žūti).

Dėl šios priežasties reikia sisteminti informaciją naudojant neuroninius tinklus ir taip pagerinti supratimo bei įsiminimo kokybę. Todėl pagrindinė atskirų dirbtinių neuroninių tinklų technologijų ir architektūros analizės tema buvo tokia užduotis: sužinok, kur viskas vyksta, o ne kokio nors konkretaus neuroninio tinklo įrenginį atskirai.

Kur visa tai vyksta? Pagrindiniai rezultatai:

  • Mašininio mokymosi paleidimų skaičius per pastaruosius dvejus metus smarkiai nukrito. Galima priežastis: „neuroniniai tinklai nebėra kažkas naujo“.
  • Kiekvienas gali sukurti veikiantį neuroninį tinklą, kad išspręstų paprastą problemą. Norėdami tai padaryti, paimkite paruoštą modelį iš „modelio zoologijos sodo“ ir apmokykite paskutinį neuroninio tinklo sluoksnį (perduoti mokymąsi) apie paruoštus duomenis iš Google duomenų rinkinio paieška arba iš 25 tūkst. Kaggle duomenų rinkinių nemokamai debesis Jupyter Notepad.
  • Pradėjo kurti stambūs neuroninių tinklų gamintojai „pavyzdiniai zoologijos sodai“ (zoologijos sodo modelis). Naudodami juos galite greitai sukurti komercinę programą: TF Hub „TensorFlow“, MMD aptikimas „PyTorch“, Detektronas Caffe2, grandininis-modelzoo už Chainer ir kiti.
  • Veikia neuroniniai tinklai realiu laiku (realiuoju laiku) mobiliuosiuose įrenginiuose. Nuo 10 iki 50 kadrų per sekundę.
  • Neuroninių tinklų naudojimas telefonuose (TF Lite), naršyklėse (TF.js) ir viduje namų apyvokos daiktai (IoT, Internet of Tvyriai). Ypač telefonuose, kurie jau palaiko neuroninius tinklus aparatūros lygiu (neuronų greitintuvai).
  • „Turės kiekvienas prietaisas, drabužis ir galbūt net maistas IP-v6 adresas ir bendrauti tarpusavyje“ – Sebastianas Thrunas.
  • Publikacijų apie mašininį mokymąsi skaičius pradėjo augti viršyti Moore'o dėsnį (kas dvejus metus padvigubėja) nuo 2015 m. Akivaizdu, kad straipsniams analizuoti mums reikia neuroninių tinklų.
  • Populiarėja šios technologijos:
    • „PyTorch“ – populiarumas sparčiai auga ir tarsi aplenkia TensorFlow.
    • Automatinis hiperparametrų pasirinkimas „AutoML“ – populiarumas auga sklandžiai.
    • Palaipsniui mažėja tikslumas ir didėja skaičiavimo greitis: miglota logika, algoritmai skatinantis, netikslūs (apytiksliai) skaičiavimai, kvantavimas (kai neuroninio tinklo svoriai paverčiami sveikaisiais skaičiais ir kvantuojami), neuroniniai greitintuvai.
    • Vertimas vaizdai į tekstą и teksto į vaizdą.
    • kūrimas XNUMXd objektai iš vaizdo įrašo, dabar realiu laiku.
    • Svarbiausia, kad DL yra daug duomenų, tačiau juos surinkti ir pažymėti nėra lengva. Todėl tobulėja žymėjimo automatizavimas (automatizuota anotacija) neuroniniams tinklams naudojant neuroninius tinklus.
  • Su neuroniniais tinklais kompiuterių mokslas staiga tapo eksperimentinis mokslas ir iškilo atkuriamumo krizė.
  • IT pinigai ir neuroninių tinklų populiarumas išryškėjo vienu metu, kai kompiuterija tapo rinkos vertybe. Ekonomika keičiasi iš aukso ir valiutos ekonomikos į auksas-valiuta-kompiuterija. Žiūrėkite mano straipsnį apie ekonomofizika ir IT pinigų atsiradimo priežastis.

Pamažu atsiranda naujas ML/DL programavimo metodika (Machine Learning & Deep Learning), kuris pagrįstas programos vaizdavimu kaip parengtų neuroninių tinklų modelių rinkiniu.

Neuroniniai tinklai. Kur visa tai eina?

3 pav. ML/DL kaip nauja programavimo metodika

Tačiau tai niekada nepasirodė "neuroninio tinklo teorija", kurioje galite sistemingai mąstyti ir dirbti. Tai, kas dabar vadinama „teorija“, iš tikrųjų yra eksperimentiniai euristiniai algoritmai.

Nuorodos į mano ir kitus šaltinius:

Dėkojame už dėmesį!

Šaltinis: www.habr.com

Добавить комментарий