Nevrale nettverk. Hvor er alt dette på vei?

Artikkelen består av to deler:

  1. En kort beskrivelse av noen nettverksarkitekturer for objektdeteksjon i bilder og bildesegmentering med de mest forståelige lenker til ressurser for meg. Jeg prøvde å velge videoforklaringer og helst på russisk.
  2. Den andre delen er et forsøk på å forstå retningen for utviklingen av nevrale nettverksarkitekturer. Og teknologier basert på dem.

Nevrale nettverk. Hvor er alt dette på vei?

Figur 1 – Det er ikke lett å forstå nevrale nettverksarkitekturer

Det hele startet med å lage to demoapplikasjoner for objektklassifisering og gjenkjenning på en Android-telefon:

  • Back-end demo, når data behandles på serveren og overføres til telefonen. Bildeklassifisering av tre typer bjørner: brun, svart og teddy.
  • Front-end demonår dataene behandles på selve telefonen. Deteksjon av gjenstander (objektdeteksjon) av tre typer: hasselnøtter, fiken og dadler.

Det er forskjell på oppgavene bildeklassifisering, gjenstandsdeteksjon i et bilde og bildesegmentering. Derfor var det behov for å finne ut hvilke nevrale nettverksarkitekturer som oppdager objekter i bilder og hvilke som kan segmentere. Jeg fant følgende eksempler på arkitekturer med de mest forståelige koblingene til ressurser for meg:

  • En serie arkitekturer basert på R-CNN (Rregioner med Convolusjon Neural Nnettverksfunksjoner): R-CNN, Fast R-CNN, Raskere R-CNN, Maske R-CNN. For å oppdage et objekt i et bilde, tildeles grensebokser ved hjelp av RPN-mekanismen (Region Proposal Network). Opprinnelig ble den langsommere selektiv søk-mekanismen brukt i stedet for RPN. Deretter blir de utvalgte begrensede områdene matet til inngangen til et konvensjonelt nevralt nettverk for klassifisering. R-CNN-arkitekturen har eksplisitte "for"-løkker over begrensede regioner, totalt opptil 2000 kjøringer gjennom det interne AlexNet-nettverket. Eksplisitte "for"-løkker reduserer bildebehandlingshastigheten. Antallet eksplisitte løkker som går gjennom det interne nevrale nettverket avtar med hver ny versjon av arkitekturen, og dusinvis av andre endringer er gjort for å øke hastigheten og erstatte oppgaven med objektdeteksjon med objektsegmentering i Mask R-CNN.
  • YOLO (You Only Look Once) er det første nevrale nettverket som gjenkjente objekter i sanntid på mobile enheter. Særtrekk: å skille gjenstander i ett løp (bare se en gang). Det vil si at i YOLO-arkitekturen er det ingen eksplisitte "for"-løkker, og det er grunnen til at nettverket fungerer raskt. For eksempel denne analogien: i NumPy, når du utfører operasjoner med matriser, er det heller ingen eksplisitte "for"-løkker, som i NumPy er implementert på lavere nivåer av arkitekturen gjennom programmeringsspråket C. YOLO bruker et rutenett med forhåndsdefinerte vinduer. For å forhindre at det samme objektet blir definert flere ganger, brukes vindusoverlappingskoeffisienten (IoU). Ikryss ose Union). Denne arkitekturen opererer over et bredt spekter og har høy robusthet: En modell kan trenes på fotografier, men fungerer fortsatt godt på håndtegnede malerier.
  • SSD (Single Shot MultiBox Detector) – de mest vellykkede "hakkene" av YOLO-arkitekturen brukes (for eksempel ikke-maksimal undertrykkelse) og nye legges til for å få det nevrale nettverket til å fungere raskere og mer nøyaktig. Distinkt trekk: å skille objekter i en kjøring ved å bruke et gitt rutenett av vinduer (standardboks) på bildepyramiden. Bildepyramiden er kodet i konvolusjonstensorer gjennom suksessive konvolusjons- og sammenslåingsoperasjoner (med maks-pooling-operasjonen reduseres den romlige dimensjonen). På denne måten blir både store og små objekter bestemt i ett nettverksløp.
  • MobileSSD (MobilNetV2+ SSD) er en kombinasjon av to nevrale nettverksarkitekturer. Første nettverk MobileNetV2 fungerer raskt og øker gjenkjenningsnøyaktigheten. MobileNetV2 brukes i stedet for VGG-16, som opprinnelig ble brukt i original artikkel. Det andre SSD-nettverket bestemmer plasseringen av objekter i bildet.
  • SqueezeNet – et veldig lite, men nøyaktig nevralt nettverk. I seg selv løser det ikke problemet med gjenstandsdeteksjon. Imidlertid kan den brukes i en kombinasjon av forskjellige arkitekturer. Og brukes i mobile enheter. Det særegne er at dataene først komprimeres til fire 1×1 konvolusjonsfiltre og deretter utvides til fire 1×1 og fire 3×3 konvolusjonsfiltre. En slik iterasjon av datakomprimeringsutvidelse kalles en "Brannmodul".
  • DeepLab (Semantisk bildesegmentering med dype konvolusjonelle nett) – segmentering av objekter i bildet. Et særtrekk ved arkitekturen er utvidet konvolusjon, som bevarer romlig oppløsning. Dette etterfølges av et etterbehandlingsstadium av resultatene ved bruk av en grafisk sannsynlighetsmodell (betinget tilfeldig felt), som lar deg fjerne liten støy i segmenteringen og forbedre kvaliteten på det segmenterte bildet. Bak det formidable navnet "grafisk sannsynlighetsmodell" skjuler det seg et konvensjonelt gaussisk filter, som er tilnærmet med fem punkter.
  • Prøvde å finne ut enheten RefineDet (Enkelt skudd Avgrensement Neural Network for Object Detseksjon), men jeg forsto ikke mye.
  • Jeg så også på hvordan "oppmerksomhet"-teknologien fungerer: video1, video2, video3. Et særtrekk ved "oppmerksomhet"-arkitekturen er det automatiske utvalget av områder med økt oppmerksomhet i bildet (RoI, Regions of Interest) ved å bruke et nevralt nettverk kalt Attention Unit. Områder med økt oppmerksomhet ligner på avgrensningsbokser, men i motsetning til dem er de ikke fiksert i bildet og kan ha uskarpe grenser. Deretter, fra områder med økt oppmerksomhet, blir tegn (funksjoner) isolert, som "mates" til tilbakevendende nevrale nettverk med arkitekturer LSDM, GRU eller Vanilla RNN. Tilbakevendende nevrale nettverk er i stand til å analysere forholdet mellom funksjoner i en sekvens. Tilbakevendende nevrale nettverk ble opprinnelig brukt til å oversette tekst til andre språk, og nå for oversettelse bilder til tekst и tekst til bilde.

Når vi utforsker disse arkitekturene Jeg innså at jeg ikke forstår noe. Og det er ikke det at mitt nevrale nettverk har problemer med oppmerksomhetsmekanismen. Opprettelsen av alle disse arkitekturene er som en slags enorm hackathon, der forfattere konkurrerer i hacks. Hack er en rask løsning på et vanskelig programvareproblem. Det vil si at det ikke er noen synlig og forståelig logisk sammenheng mellom alle disse arkitekturene. Alt som forener dem er et sett med de mest vellykkede hackene som de låner av hverandre, pluss en felles for alle lukket sløyfe konvolusjonsoperasjon (feil backpropagation, backpropagation). Nei systemtenkning! Det er ikke klart hva som skal endres og hvordan man kan optimalisere eksisterende prestasjoner.

Som et resultat av mangelen på logisk forbindelse mellom hacks, er de ekstremt vanskelige å huske og bruke i praksis. Dette er fragmentert kunnskap. I beste fall huskes noen interessante og uventede øyeblikk, men det meste av det som er forstått og uforståelig forsvinner fra hukommelsen i løpet av få dager. Det vil være bra hvis du om en uke husker i det minste navnet på arkitekturen. Men flere timer og til og med dager med arbeidstid ble brukt til å lese artikler og se anmeldelsesvideoer!

Nevrale nettverk. Hvor er alt dette på vei?

Figur 2 – Zoo of Neural Networks

De fleste forfattere av vitenskapelige artikler, etter min personlige mening, gjør alt for å sikre at selv denne fragmenterte kunnskapen ikke blir forstått av leseren. Men delsetningsfraser i ti linjesetninger med formler som er tatt "ut av løse luften" er et tema for en egen artikkel (problem publisere eller omkomme).

Av denne grunn er det behov for å systematisere informasjon ved hjelp av nevrale nettverk og dermed øke kvaliteten på forståelse og memorering. Derfor var hovedtemaet for analyse av individuelle teknologier og arkitekturer til kunstige nevrale nettverk følgende oppgave: finne ut hvor det hele går, og ikke enheten til noe spesifikt nevralt nettverk separat.

Hvor er alt dette på vei? Hovedresultater:

  • Antall maskinlæringsoppstarter de siste to årene falt kraftig. Mulig årsak: "nevrale nettverk er ikke lenger noe nytt."
  • Hvem som helst kan opprette et fungerende nevralt nettverk for å løse et enkelt problem. For å gjøre dette, ta en ferdig modell fra "modellen zoo" og tren det siste laget av det nevrale nettverket (overføre læring) på ferdige data fra Google Datasettsøk eller fra 25 tusen Kaggle-datasett i gratis sky Jupyter Notebook.
  • Store produsenter av nevrale nettverk begynte å lage "modell dyrehager" (modell dyrehage). Ved å bruke dem kan du raskt lage en kommersiell applikasjon: TF Hub for TensorFlow, MMdeteksjon for PyTorch, Detektron for Caffe2, kjetting-modellzoo for Chainer og andre.
  • Nevrale nettverk som jobber i sanntid (sanntid) på mobile enheter. Fra 10 til 50 bilder per sekund.
  • Bruken av nevrale nettverk i telefoner (TF Lite), i nettlesere (TF.js) og i husholdningsprodukter (IoT, Internet of Thengslene). Spesielt i telefoner som allerede støtter nevrale nettverk på maskinvarenivå (nevrale akseleratorer).
  • "Hvert utstyr, klesplagg og kanskje til og med mat vil ha IP-v6-adresse og kommunisere med hverandre" - Sebastian Thrun.
  • Antall publikasjoner om maskinlæring har begynt å vokse overskride Moores lov (dobling hvert annet år) siden 2015. Selvfølgelig trenger vi nevrale nettverk for å analysere artikler.
  • Følgende teknologier blir stadig mer populære:
    • PyTorch – Populariteten vokser raskt og ser ut til å gå forbi TensorFlow.
    • Automatisk valg av hyperparametre AutoML – Populariteten vokser jevnt.
    • Gradvis reduksjon i nøyaktighet og økning i beregningshastighet: uklar logikk, algoritmer boosting, unøyaktige (omtrentlig) beregninger, kvantisering (når vektene til det nevrale nettverket konverteres til heltall og kvantiseres), nevrale akseleratorer.
    • oversettelse bilder til tekst и tekst til bilde.
    • opprettelse 3D-objekter fra video, nå i sanntid.
    • Hovedsaken med DL er at det er mye data, men å samle inn og merke det er ikke lett. Derfor utvikler markup automatisering (automatisert kommentar) for nevrale nettverk som bruker nevrale nettverk.
  • Med nevrale nettverk ble datavitenskap plutselig eksperimentell vitenskap og oppsto reproduserbarhetskrise.
  • IT-penger og populariteten til nevrale nettverk dukket opp samtidig da databehandling ble en markedsverdi. Økonomien er i endring fra en gull- og valutaøkonomi til gull-valuta-databehandling. Se min artikkel om økonofysikk og årsaken til at IT-penger dukket opp.

Gradvis dukker det opp en ny ML/DL programmeringsmetodikk (Machine Learning & Deep Learning), som er basert på å representere programmet som et sett med trente nevrale nettverksmodeller.

Nevrale nettverk. Hvor er alt dette på vei?

Figur 3 – ML/DL som ny programmeringsmetodikk

Den dukket imidlertid aldri opp "nevrale nettverksteori", der du kan tenke og jobbe systematisk. Det som nå kalles "teori" er faktisk eksperimentelle, heuristiske algoritmer.

Lenker til mine og andre ressurser:

Takk for din oppmerksomhet!

Kilde: www.habr.com

Legg til en kommentar