Neurale netværk. Hvor går det hele hen?

Artiklen består af to dele:

  1. En kort beskrivelse af nogle netværksarkitekturer til objektdetektion i billeder og billedsegmentering med de mest forståelige links til ressourcer for mig. Jeg forsøgte at vælge videoforklaringer og helst på russisk.
  2. Den anden del er et forsøg på at forstå retningen for udviklingen af ​​neurale netværksarkitekturer. Og teknologier baseret på dem.

Neurale netværk. Hvor går det hele hen?

Figur 1 – Det er ikke let at forstå neurale netværksarkitekturer

Det hele startede med at lave to demoapplikationer til objektklassificering og detektion på en Android-telefon:

  • Back-end demo, når data behandles på serveren og overføres til telefonen. Billedklassificering af tre typer bjørne: brun, sort og bamse.
  • Front-end demonår dataene behandles på selve telefonen. Detektion af objekter (objektdetektion) af tre typer: hasselnødder, figner og dadler.

Der er forskel på opgaverne med billedklassificering, genstandsdetektering i et billede og billedsegmentering. Derfor var der behov for at finde ud af, hvilke neurale netværksarkitekturer, der registrerer objekter i billeder, og hvilke der kan segmentere. Jeg fandt følgende eksempler på arkitekturer med de mest forståelige links til ressourcer for mig:

  • En række arkitekturer baseret på R-CNN (Rregioner med Convolution Neural Nnetværksfunktioner): R-CNN, Fast R-CNN, Hurtigere R-CNN, Maske R-CNN. For at detektere et objekt i et billede tildeles afgrænsningsfelter ved hjælp af RPN-mekanismen (Region Proposal Network). I starten blev den langsommere selektiv søgningsmekanisme brugt i stedet for RPN. Derefter føres de udvalgte begrænsede regioner til input fra et konventionelt neuralt netværk til klassificering. R-CNN-arkitekturen har eksplicitte "for"-løkker over begrænsede regioner, i alt op til 2000 kørsler gennem det interne AlexNet-netværk. Eksplicitte "for"-løkker sænker billedbehandlingshastigheden. Antallet af eksplicitte loops, der løber gennem det interne neurale netværk, falder med hver ny version af arkitekturen, og dusinvis af andre ændringer er lavet for at øge hastigheden og erstatte opgaven med objektdetektering med objektsegmentering i Mask R-CNN.
  • YOLO (You Oun Look Once) er det første neurale netværk, der genkendte objekter i realtid på mobile enheder. Karakteristisk: kendetegnende objekter i én kørsel (se bare én gang). Det vil sige, at der i YOLO-arkitekturen ikke er nogen eksplicitte "for"-løkker, hvorfor netværket fungerer hurtigt. For eksempel denne analogi: i NumPy, når der udføres operationer med matricer, er der heller ingen eksplicitte "for"-løkker, som i NumPy er implementeret på lavere niveauer af arkitekturen gennem programmeringssproget C. YOLO bruger et gitter af foruddefinerede vinduer. For at forhindre det samme objekt i at blive defineret flere gange, bruges vinduesoverlapskoefficienten (IoU). Ivejkryds over Union). Denne arkitektur fungerer over en bred vifte og har høj robusthed: En model kan trænes på fotografier, men stadig præstere godt på håndtegnede malerier.
  • SSD (SIngle Shot MultiBox Detector) – de mest succesrige "hacks" af YOLO-arkitekturen bruges (for eksempel ikke-maksimal undertrykkelse), og nye tilføjes for at få det neurale netværk til at fungere hurtigere og mere præcist. Karakteristisk træk: at skelne objekter i én kørsel ved hjælp af et givet gitter af vinduer (standardboks) på billedpyramiden. Billedpyramiden er kodet i foldningstensorer gennem successive foldnings- og pooloperationer (med max-pooling-operationen falder den rumlige dimension). På denne måde bestemmes både store og små objekter i én netværkskørsel.
  • MobileSSD (MobilNetV2+ SSD) er en kombination af to neurale netværksarkitekturer. Første netværk MobileNetV2 virker hurtigt og øger genkendelsesnøjagtigheden. MobileNetV2 bruges i stedet for VGG-16, som oprindeligt blev brugt i original artikel. Det andet SSD-netværk bestemmer placeringen af ​​objekter i billedet.
  • SqueezeNet – et meget lille, men præcist neuralt netværk. I sig selv løser det ikke problemet med objektdetektering. Det kan dog bruges i en kombination af forskellige arkitekturer. Og bruges i mobile enheder. Det karakteristiske træk er, at dataene først komprimeres til fire 1×1 foldningsfiltre og derefter udvides til fire 1×1 og fire 3×3 foldningsfiltre. En sådan iteration af datakomprimeringsudvidelse kaldes et "brandmodul".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentering af objekter i billedet. Et karakteristisk træk ved arkitekturen er dilateret foldning, som bevarer rumlig opløsning. Dette efterfølges af en efterbehandlingsfase af resultaterne ved hjælp af en grafisk probabilistisk model (betinget tilfældigt felt), som giver dig mulighed for at fjerne lille støj i segmenteringen og forbedre kvaliteten af ​​det segmenterede billede. Bag det formidable navn "grafisk probabilistisk model" gemmer sig et konventionelt gaussisk filter, som er tilnærmet fem punkter.
  • Forsøgte at finde ud af enheden RefineDet (Enkelt-Shot Forfinment Neural Network for Object detsektion), men jeg forstod ikke meget.
  • Jeg så også på, hvordan "opmærksomheds"-teknologien fungerer: video1, video2, video3. Et karakteristisk træk ved "opmærksomheds"-arkitekturen er den automatiske udvælgelse af områder med øget opmærksomhed i billedet (RoI, Regioner of Interest) ved hjælp af et neuralt netværk kaldet Attention Unit. Områder med øget opmærksomhed ligner afgrænsningskasser, men i modsætning til dem er de ikke faste i billedet og kan have slørede grænser. Derefter, fra områder med øget opmærksomhed, isoleres tegn (funktioner), som "fødes" til tilbagevendende neurale netværk med arkitekturer LSDM, GRU eller Vanilla RNN. Tilbagevendende neurale netværk er i stand til at analysere forholdet mellem funktioner i en sekvens. Tilbagevendende neurale netværk blev oprindeligt brugt til at oversætte tekst til andre sprog, og nu til oversættelse billeder til tekst и tekst til billede.

Når vi udforsker disse arkitekturer Jeg indså, at jeg ikke forstår noget. Og det er ikke, at mit neurale netværk har problemer med opmærksomhedsmekanismen. Skabelsen af ​​alle disse arkitekturer er som en slags kæmpe hackathon, hvor forfattere konkurrerer i hacks. Hack er en hurtig løsning på et vanskeligt softwareproblem. Det vil sige, at der ikke er nogen synlig og forståelig logisk sammenhæng mellem alle disse arkitekturer. Alt, der forener dem, er et sæt af de mest succesrige hacks, som de låner af hinanden, plus en fælles for alle lukket sløjfe foldningsoperation (fejl tilbagepropagation, backpropagation). Ingen systemtænkning! Det er ikke klart, hvad der skal ændres, og hvordan man optimerer eksisterende resultater.

Som et resultat af manglen på logisk forbindelse mellem hacks, er de ekstremt svære at huske og anvende i praksis. Dette er fragmenteret viden. I bedste fald huskes et par interessante og uventede øjeblikke, men det meste af det forståede og uforståelige forsvinder fra hukommelsen i løbet af få dage. Det vil være godt, hvis du om en uge husker i det mindste navnet på arkitekturen. Men flere timer og endda dages arbejdstid blev brugt på at læse artikler og se anmeldelsesvideoer!

Neurale netværk. Hvor går det hele hen?

Figur 2 – Zoo af neurale netværk

De fleste forfattere af videnskabelige artikler gør efter min personlige mening alt for at sikre, at selv denne fragmenterede viden ikke forstås af læseren. Men deltagende sætninger i ti linjesætninger med formler, der er taget "ud af den blå luft" er et emne for en separat artikel (problem offentliggøre eller omgås).

Af denne grund er der behov for at systematisere information ved hjælp af neurale netværk og dermed øge kvaliteten af ​​forståelse og memorering. Derfor var hovedemnet for analyse af individuelle teknologier og arkitekturer af kunstige neurale netværk følgende opgave: finde ud af, hvor det hele er på vej hen, og ikke enheden i et specifikt neuralt netværk separat.

Hvor er alt det her på vej hen? Hovedresultater:

  • Antal maskinlæringsopstarter inden for de sidste to år faldt kraftigt. Mulig årsag: "neurale netværk er ikke længere noget nyt."
  • Enhver kan oprette et fungerende neuralt netværk for at løse et simpelt problem. For at gøre dette skal du tage en færdiglavet model fra "modelzoo" og træne det sidste lag af det neurale netværk (overføre læring) på færdige data fra Google datasættesøgning eller fra 25 tusinde Kaggle-datasæt i gratis sky Jupyter Notebook.
  • Store producenter af neurale netværk begyndte at skabe "model zoologiske haver" (model zoo). Ved at bruge dem kan du hurtigt oprette en kommerciel applikation: TF Hub til TensorFlow, MMDetektion til PyTorch, Detectron til Caffe2, chainer-modelzoo for Chainer og andre.
  • Neurale netværk, der arbejder i realtid (realtid) på mobile enheder. Fra 10 til 50 billeder i sekundet.
  • Brugen af ​​neurale netværk i telefoner (TF Lite), i browsere (TF.js) og i husholdningsartikler (IoT, IINTERNETTET of Thængsler). Især i telefoner, der allerede understøtter neurale netværk på hardwareniveau (neurale acceleratorer).
  • "Enhver enhed, ethvert tøj og måske endda mad vil have IP-v6 adresse og kommunikere med hinanden" - Sebastian Thrun.
  • Antallet af publikationer om maskinlæring er begyndt at vokse overskrider Moores lov (fordobling hvert andet år) siden 2015. Vi har naturligvis brug for neurale netværk til at analysere artikler.
  • Følgende teknologier vinder popularitet:
    • PyTorch – populariteten vokser hurtigt og ser ud til at overhale TensorFlow.
    • Automatisk valg af hyperparametre AutoML – populariteten vokser jævnt.
    • Gradvis fald i nøjagtighed og stigning i beregningshastighed: sløret logik, algoritmer boostning, upræcise (tilnærmelsesvis) beregninger, kvantisering (når vægten af ​​det neurale netværk omdannes til heltal og kvantificeres), neurale acceleratorer.
    • oversættelse billeder til tekst и tekst til billede.
    • skabelse XNUMXD-objekter fra video, nu i realtid.
    • Det vigtigste ved DL er, at der er meget data, men at indsamle og mærke det er ikke let. Derfor er markup automatisering ved at udvikle sig (automatiseret annotering) for neurale netværk, der bruger neurale netværk.
  • Med neurale netværk blev Datalogi pludselig eksperimentel videnskab og opstod reproducerbarhedskrise.
  • IT-penge og neurale netværks popularitet opstod samtidig, da computing blev en markedsværdi. Økonomien er ved at ændre sig fra en guld- og valutaøkonomi til guld-valuta-beregning. Se min artikel vedr økonofysik og årsagen til fremkomsten af ​​IT-penge.

Efterhånden dukker en ny op ML/DL programmeringsmetodologi (Machine Learning & Deep Learning), som er baseret på at repræsentere programmet som et sæt trænede neurale netværksmodeller.

Neurale netværk. Hvor går det hele hen?

Figur 3 – ML/DL som ny programmeringsmetode

Den dukkede dog aldrig op "neuralt netværksteori", hvor du kan tænke og arbejde systematisk. Det, der nu kaldes "teori" er faktisk eksperimentelle, heuristiske algoritmer.

Links til mine og andre ressourcer:

Tak for din opmærksomhed!

Kilde: www.habr.com

Tilføj en kommentar