Neuroverkot. Mihin tämä kaikki on menossa?

Artikkeli koostuu kahdesta osasta:

  1. Lyhyt kuvaus eräistä verkkoarkkitehtuureista kohteiden havaitsemiseen kuvissa ja kuvien segmentointiin sekä minulle ymmärrettävimmät linkit resursseihin. Yritin valita videoselityksiä ja mieluiten venäjäksi.
  2. Toinen osa on yritys ymmärtää hermoverkkoarkkitehtuurien kehityssuunta. Ja niihin perustuvat teknologiat.

Neuroverkot. Mihin tämä kaikki on menossa?

Kuva 1 – Neuroverkkoarkkitehtuurien ymmärtäminen ei ole helppoa

Kaikki alkoi tekemällä kaksi esittelysovellusta objektien luokitteluun ja havaitsemiseen Android-puhelimessa:

  • Taustademo, kun tietoja käsitellään palvelimella ja siirretään puhelimeen. Kolmen tyyppisten karhujen kuvaluokitus: ruskea, musta ja nalle.
  • Etupään demokun tietoja käsitellään itse puhelimessa. Kolmen tyyppisten esineiden havaitseminen (esinetunnistus): hasselpähkinät, viikunat ja taatelit.

Kuvan luokittelun, kohteen havaitsemisen ja kuvassa olevien tehtävien välillä on ero kuvan segmentointi. Siksi oli tarpeen selvittää, mitkä hermoverkkoarkkitehtuurit havaitsevat kuvissa olevat objektit ja mitkä voivat segmentoida. Löysin seuraavat esimerkit arkkitehtuureista, joissa on minulle ymmärrettävimmät linkit resursseihin:

  • Sarja R-CNN:ään perustuvia arkkitehtuureja (Ralueilla Convoluutio Neural Nverkko-ominaisuudet): R-CNN, nopea R-CNN, Nopeampi R-CNN, Maski R-CNN. Objektin havaitsemiseksi kuvassa rajoitusruudut allokoidaan RPN (Region Proposal Network) -mekanismin avulla. Aluksi käytettiin hitaampaa valikoivaa hakumekanismia RPN:n sijaan. Sitten valitut rajoitetut alueet syötetään tavanomaisen hermoverkon tuloon luokittelua varten. R-CNN-arkkitehtuurissa on selkeät "for"-silmukat rajoitetuilla alueilla, yhteensä jopa 2000 ajoa AlexNetin sisäisen verkon kautta. Selkeät "for"-silmukat hidastavat kuvankäsittelyn nopeutta. Sisäisen hermoverkon läpi kulkevien eksplisiittisten silmukoiden määrä vähenee jokaisen uuden arkkitehtuurin version myötä, ja kymmeniä muita muutoksia tehdään nopeuden lisäämiseksi ja objektien havaitsemisen korvaamiseksi objektin segmentoinnilla Mask R-CNN:ssä.
  • Yolo (You Only Look Once) on ensimmäinen hermoverkko, joka tunnisti objektit reaaliajassa mobiililaitteissa. Erottuva ominaisuus: objektien erottaminen yhdellä kertaa (katso vain kerran). Toisin sanoen YOLO-arkkitehtuurissa ei ole nimenomaisia ​​"for"-silmukoita, minkä vuoksi verkko toimii nopeasti. Esimerkiksi tämä analogia: NumPyssä, kun suoritetaan operaatioita matriiseilla, ei myöskään ole eksplisiittisiä "for" silmukoita, jotka NumPyssä toteutetaan arkkitehtuurin alemmilla tasoilla C-ohjelmointikielen kautta YOLO käyttää ennalta määritettyjen ikkunoiden ruudukkoa. Jotta samaa objektia ei määritettäisi useita kertoja, käytetään ikkunan päällekkäisyyttä (IoU). IRisteys over Unioni). Tämä arkkitehtuuri toimii laajalla alueella ja on korkea kestävyys: Mallia voidaan kouluttaa valokuviin, mutta se toimii silti hyvin käsin piirretyissä maalauksissa.
  • SSD (SIngle Skuuma MultiBox Detector) – käytetään YOLO-arkkitehtuurin menestyneimpiä "hakkereita" (esimerkiksi ei-maksimaalinen vaimennus) ja uusia lisätään, jotta hermoverkko toimisi nopeammin ja tarkemmin. Erottuva ominaisuus: objektien erottaminen yhdellä kertaa käyttämällä kuvapyramidin tiettyä ikkunoiden ruudukkoa (oletusruutu). Kuvapyramidi koodataan konvoluutiotensoreihin peräkkäisten konvoluutio- ja poolausoperaatioiden kautta (max pooling -operaatiolla spatiaalinen ulottuvuus pienenee). Tällä tavalla sekä suuret että pienet kohteet määritetään yhdellä verkkoajolla.
  • MobileSSD (PuhelinnumeroNetV2+ SSD) on kahden hermoverkkoarkkitehtuurin yhdistelmä. Ensimmäinen verkko MobileNetV2 toimii nopeasti ja lisää tunnistustarkkuutta. MobileNetV2:ta käytetään VGG-16:n sijaan, jota alun perin käytettiin alkuperäinen artikkeli. Toinen SSD-verkko määrittää kohteiden sijainnin kuvassa.
  • PuristaNet – hyvin pieni mutta tarkka hermoverkko. Se ei sinänsä ratkaise objektien havaitsemisen ongelmaa. Sitä voidaan kuitenkin käyttää eri arkkitehtuurien yhdistelmässä. Ja käytetään mobiililaitteissa. Erottuva piirre on, että tiedot ensin pakataan neljäksi 1 × 1 -konvoluutiosuodattimeksi ja laajennetaan sitten neljäksi 1 × 1 -konvoluutiosuodattimeksi ja neljäksi 3 × 3 -konvoluutiosuodattimeksi. Yhtä tällaista tietojen pakkaamisen ja laajentamisen iteraatiota kutsutaan "Fire-moduuliksi".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – kuvassa olevien objektien segmentointi. Arkkitehtuurin erottuva piirre on laajentunut konvoluutio, joka säilyttää avaruudellisen resoluution. Tätä seuraa tulosten jälkikäsittelyvaihe graafisella todennäköisyysmallilla (ehdollinen satunnaiskenttä), jonka avulla voit poistaa segmentoinnista pientä kohinaa ja parantaa segmentoidun kuvan laatua. Valtavan nimen "graafinen todennäköisyysmalli" taakse kätkeytyy tavanomainen Gaussin suodatin, joka on likimääräinen viidellä pisteellä.
  • Yritti selvittää laitetta RefineDet (Yksittäinen laukaus HioaNeural Network for Object setoiminto), mutta en ymmärtänyt paljoakaan.
  • Katsoin myös, kuinka "attention"-tekniikka toimii: video1, video2, video3. "Huomio"-arkkitehtuurin erottuva piirre on lisääntyneen huomion kohteena olevien alueiden automaattinen valinta kuvassa (RoI, RVeneton alueiden of Interest) käyttämällä hermoverkkoa nimeltä Attention Unit. Lisääntyneen huomion alueet ovat samanlaisia ​​kuin rajaavat laatikot, mutta toisin kuin ne, ne eivät ole kiinteät kuvassa ja niillä voi olla epäselviä rajoja. Sitten alueilta, joilla on lisääntynyt huomio, eristetään merkkejä (ominaisuuksia), jotka "syötetään" toistuviin hermoverkkoihin arkkitehtuuriineen LSDM, GRU tai Vanilla RNN. Toistuvat hermoverkot pystyvät analysoimaan sekvenssin piirteiden suhdetta. Toistuvia neuroverkkoja käytettiin alun perin tekstin kääntämiseen muille kielille ja nyt kääntämiseen kuvat tekstiksi и tekstistä kuvaksi.

Kun tutkimme näitä arkkitehtuureja Tajusin, etten ymmärrä mitään. Ja se ei johdu siitä, että hermoverkollani olisi ongelmia huomiomekanismin kanssa. Kaikkien näiden arkkitehtuurien luominen on kuin jonkinlainen valtava hackathon, jossa kirjoittajat kilpailevat hakkeroista. Hakkerointi on nopea ratkaisu vaikeaan ohjelmistoongelmaan. Eli kaikkien näiden arkkitehtuurien välillä ei ole näkyvää ja ymmärrettävää loogista yhteyttä. Heitä yhdistää vain joukko menestyneimpiä hakkereita, jotka he lainaavat toisiltaan, sekä yhteinen kaikille suljetun silmukan konvoluutiooperaatio (error backpropagation, backpropagation). Ei systeemiajattelu! Ei ole selvää, mitä muuttaa ja miten optimoida olemassa olevia saavutuksia.

Hakkerointien välisen loogisen yhteyden puuttumisen vuoksi niitä on erittäin vaikea muistaa ja soveltaa käytännössä. Tämä on hajanaista tietoa. Parhaimmillaan muutama kiinnostava ja odottamaton hetki jää mieleen, mutta suurin osa ymmärretystä ja käsittämättömästä katoaa muistista muutamassa päivässä. On hyvä, jos muistat viikon kuluttua ainakin arkkitehtuurin nimen. Mutta useita tunteja ja jopa päiviä työaikaa kului artikkeleiden lukemiseen ja arvosteluvideoiden katseluun!

Neuroverkot. Mihin tämä kaikki on menossa?

kuva 2 – Hermoverkkojen eläintarha

Useimmat tieteellisten artikkeleiden kirjoittajat tekevät henkilökohtaisen mielipiteeni mukaan kaikkensa varmistaakseen, että lukija ei ymmärrä edes tätä hajanaista tietoa. Mutta osalausekkeet kymmenrivisissä lauseissa kaavoineen, jotka on otettu "ilmasta" ovat erillisen artikkelin aihe (ongelma julkaista tai häviä).

Tästä syystä on tarve systematisoida tietoa hermoverkkojen avulla ja siten parantaa ymmärtämisen ja muistamisen laatua. Siksi pääaiheena keinotekoisten hermoverkkojen yksittäisten teknologioiden ja arkkitehtuurien analysoinnissa oli seuraava tehtävä: ota selvää mihin kaikki menee, eikä minkään tietyn hermoverkon laitetta erikseen.

Mihin tämä kaikki on menossa? Päätulokset:

  • Koneoppimisyritysten määrä viimeisen kahden vuoden aikana putosi jyrkästi. Mahdollinen syy: "hermoverkot eivät ole enää jotain uutta."
  • Kuka tahansa voi luoda toimivan hermoverkon ratkaistakseen yksinkertaisen ongelman. Tätä varten ota valmis malli ”mallieläintarhasta” ja harjoittele hermoverkon viimeinen kerros (siirrä oppimista) valmiista tiedoista alkaen Google-aineistohaku tai 25 tuhatta Kaggle-tietojoukkoa ilmaiseksi pilvi Jupyter-muistikirja.
  • Suuret neuroverkkojen valmistajat alkoivat luoda "mallieläintarhat" (mallieläintarha). Niiden avulla voit luoda nopeasti kaupallisen sovelluksen: TF Hub TensorFlow'lle, MMD-tunnistus PyTorchille, Detectron Caffe2:lle, ketjuja-modelzoo Chainerille ja muut.
  • Neuroverkot toimivat reaaliaikainen (reaaliaikainen) mobiililaitteilla. 10 - 50 kuvaa sekunnissa.
  • Neuroverkkojen käyttö puhelimissa (TF Lite), selaimissa (TF.js) ja in taloustavarat (IoT, INTERNETIN of Tsaranat). Varsinkin puhelimissa, jotka jo tukevat hermoverkkoja laitteistotasolla (hermokiihdyttimet).
  • ”Jokaisella laitteella, vaatekappaleella ja ehkä jopa ruoalla on IP-v6-osoite ja kommunikoivat keskenään" - Sebastian Thrun.
  • Koneoppimista käsittelevien julkaisujen määrä on alkanut kasvaa ylittää Mooren lain (tuplaan joka toinen vuosi) vuodesta 2015 lähtien. Ilmeisesti tarvitsemme hermoverkkoja artikkelien analysointiin.
  • Seuraavat tekniikat ovat saamassa suosiota:
    • PyTorch – suosio kasvaa nopeasti ja näyttää ohittavan TensorFlow'n.
    • Automaattinen hyperparametrien valinta AutoML – suosio kasvaa tasaisesti.
    • Asteittainen tarkkuuden heikkeneminen ja laskentanopeuden lisääminen: sumea logiikka, algoritmeja tehostaa, epätarkat (likimääräiset) laskelmat, kvantisointi (kun hermoverkon painot muunnetaan kokonaisluvuiksi ja kvantisoidaan), hermokiihdyttimet.
    • käännös kuvat tekstiksi и tekstistä kuvaksi.
    • luominen XNUMXD-objekteja videosta, nyt reaaliajassa.
    • Pääasia DL:ssä on, että dataa on paljon, mutta sen kerääminen ja merkitseminen ei ole helppoa. Siksi merkintäautomaatio kehittyy (automaattinen merkintä) hermoverkkoja käyttäville neuroverkoille.
  • Neuroverkkojen myötä tietojenkäsittelytieteestä tuli yhtäkkiä kokeellinen tiede ja nousi uusittavuuskriisi.
  • IT-raha ja hermoverkkojen suosio nousivat samanaikaisesti, kun tietojenkäsittelystä tuli markkina-arvo. Talous on muuttumassa kulta- ja valuuttataloudesta kulta-valuutta-laskenta. Katso artikkelini aiheesta talousfysiikka ja syy IT-rahojen ilmestymiseen.

Pikkuhiljaa ilmestyy uusi ML/DL ohjelmointimetodologia (Machine Learning & Deep Learning), joka perustuu ohjelman esittämiseen joukkona koulutettuja hermoverkkomalleja.

Neuroverkot. Mihin tämä kaikki on menossa?

Kuva 3 – ML/DL uutena ohjelmointimenetelmänä

Se ei kuitenkaan koskaan ilmestynyt "hermoverkkoteoria", jossa voit ajatella ja työskennellä systemaattisesti. Se, mitä nykyään kutsutaan "teoriaksi", on itse asiassa kokeellisia, heuristisia algoritmeja.

Linkkejä minun ja muihin resursseihin:

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

Lähde: will.com

Lisää kommentti