Nevrallnettverk. Hvor er dette pÄ vei?

Artikkelen bestÄr av to deler:

  1. En kort beskrivelse av noen arkitekturer for nettverk som oppdager objekter i bilder og segmentering av bilder, med de mest forstÄelige ressurslenkene for meg. Jeg har forsÞkt Ä velge video forklaringer, helst pÄ russisk.
  2. Den andre delen handler om Ä forstÄ retningen for utvikling av arkitekturer for nevrale nettverk. Og teknologiene basert pÄ dem.

Nevrallnettverk. Hvor er dette pÄ vei?

Figur 1 – Å forstĂ„ arkitekturer av nevrale nettverk er ikke enkelt

Alt begynte med at jeg lagde to demonstrasjonsapplikasjoner for klassifisering og oppdagelse av objekter pÄ Android-telefonen:

  • Back-end demo, der data behandles pĂ„ serveren og overfĂžres til telefonen. Klassifisering av bilder (image classification) av tre typer bjĂžrner: brun, svart og kosebamse.
  • Front-end demo, der data behandles pĂ„ selve telefonen. Oppdagelse av objekter (object detection) av tre typer: hasselnĂžtt, fiken og dadler.

Det er en forskjell mellom oppgaver for klassifisering av bilder, oppdagelse av objekter i bilder og segmentering av bilder. Derfor oppstod det et behov for Ä finne ut hvilke arkitekturer for nevrale nettverk som oppdager objekter i bilder og hvilke som kan segmentere. Jeg fant fÞlgende eksempler pÄ arkitekturer med de mest forstÄelige ressurslenkene for meg:

  • En serie arkitekturer basert pĂ„ R-CNN (Regions with Convolution Neural Networks features): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. For Ă„ oppdage objekter i bilder ved hjelp av Region Proposal Network (RPN) fremheves begrensede regioner (bounding boxes). I utgangspunktet ble en tregere mekanisme, Selective Search, brukt i stedet for RPN. Deretter leveres de begrensede regionene inn i en vanlig nevrale nettverk for klassifisering. Arkitekturen til R-CNN har eksplisitte 'for'-lĂžkker som itererer over de begrensede regionene, med totalt opptil 2000 kjĂžringer gjennom det interne nettverket AlexNet. PĂ„ grunn av de eksplisitte 'for'-lĂžkene reduseres hastigheten pĂ„ bildebehandlingen. Antallet eksplisitte lĂžkker, kjĂžringer gjennom det interne nevrale nettverket, reduseres for hver ny versjon av arkitekturen, og det gjĂžres ogsĂ„ dusinvis av andre endringer for Ă„ Ăžke hastigheten og for Ă„ erstatte oppgaven med oppdagelse av objekter med segmentering av objekter i Mask R-CNN.
  • YOLO (You Only Look OYOLO – den fĂžrste nevrale nettverket som gjenkjente objekter i sanntid pĂ„ mobile enheter. Den karakteristiske funksjonen: gjenkjenning av objekter pĂ„ Ă©n runde (det er nok Ă„ se Ă©n gang). Det vil si at arkitekturen til YOLO ikke har Ă„penbare «for»-lĂžkker, noe som gjĂžr at nettverket fungerer raskt. For eksempel, slik det finnes i NumPy under matriseoperasjoner, finnes det heller ikke Ă„penbare «for»-lĂžkker. Som i NumPy, som blir implementert pĂ„ lavere nivĂ„er gjennom programmeringssprĂ„ket C. YOLO bruker et rutenett med forhĂ„ndsdefinerte vinduer. For Ă„ unngĂ„ at det samme objektet blir oppdaget flere ganger, brukes et overlappingskoeffisient (IoU, Iinterseksjon ounion). Denne arkitekturen fungerer over et bredt spekter og har hĂžy Urobusthet : modellen kan trenes pĂ„ fotografier, men fungerer bra ogsĂ„ pĂ„ malte bilder.Single
  • SSD (SShot MultiBox Sdetektor) – de mest vellykkede «hackene» fra YOLO-arkitekturen (for eksempel non-maximum suppression) brukes, og nye legges til for Ă„ gjĂžre nevrale nettverket raskere og mer nĂžyaktig. Den karakteristiske funksjonen: gjenkjenning av objekter pĂ„ Ă©n runde ved hjelp av et spesifisert rutenett med vinduer (default box) pĂ„ bilde-pyramider. Bilde-pyramiden er kodet i konvolusjonelle tensorer ved sekvensielle konvolusjons- og pooling-operasjoner (under max-pooling reduseres romlig dimensjon). PĂ„ denne mĂ„ten kan bĂ„de store og smĂ„ objekter bli gjenkjent pĂ„ Ă©n runde av nettverket. DMobileSSD (
  • NetV2 +Mobile) – en kombinasjon av to arkitekturer av nevrale nettverk. Det fĂžrste nettverket SSDMobileNetV2 fungerer raskt og Ăžker nĂžyaktigheten av gjenkjenning. MobileNetV2 brukes i stedet for VGG-16, som opprinnelig ble brukt i . Det andre nettverket SSD bestemmer plasseringen av objekter pĂ„ bildet. den originale artikkelenSqueezeNet
  • – et veldig lite, men presist nevrale nettverk. Det lĂžser ikke oppgaven med Ă„ oppdage objekter i seg selv. Men det kan brukes i kombinasjon med forskjellige arkitekturer. Og brukes i mobile enheter. Den karakteristiske funksjonen er at dataene fĂžrst komprimeres til fire 1×1 konvolusjonsfiltre, og deretter utvides til fire 1×1 og fire 3×3 konvolusjonsfiltre. Én slik iterasjon av datakomprimering og -utvidelse kalles et «Fire Module». DeepLab
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentering av objekter pĂ„ bilder. Den karakteristiske funksjonen ved arkitekturen er sparsommelig (dilated convolution) konvolusjon, som opprettholder romlig opplĂžsning. Deretter fĂžlger en post-prosessering av resultater ved hjelp av en grafisk probabilistisk modell (conditional random field), noe som gjĂžr det mulig Ă„ fjerne smĂ„ stĂžy i segmenteringen og forbedre kvaliteten pĂ„ det segmenterte bildet. Bak det imponerende navnet «grafisk probabilistisk modell» skjuler det seg et vanlig Gauss-filter, som er approksimert over fem punkter.
  • PrĂžvde Ă„ forstĂ„ oppsettet RefineDet (Single-Shot Refinement Neural Network for Object Detection), men skjĂžnte lite.
  • SĂ„ sĂ„ jeg pĂ„ hvordan «oppmerksomhet»-teknologien fungerer (attention): video1, video2, video3. Den karakteristiske funksjonen ved arkitekturen «oppmerksomhet» er automatisk fremheving av omrĂ„der med Ăžkt oppmerksomhet pĂ„ bildet (RoI, Regions of Interest) ved hjelp av et nevralt nettverk kalt Attention Unit. OmrĂ„der med Ăžkt oppmerksomhet ligner pĂ„ begrensede omrĂ„der (bounding boxes), men i motsetning til dem er de ikke fastlĂ„st pĂ„ bildet og kan ha uskarpe grenser. Deretter trekker vi ut trekk (features) fra omrĂ„dene med Ăžkt oppmerksomhet, som «mates» inn i rekurserende nevrale nettverk med arkitekturer LSDM, GRU eller Vanilla RNN. Rekurserende nevrale nettverk kan analysere forholdet mellom trekk i sekvenser. Rekurserende nevrale nettverk ble opprinnelig brukt for oversettelser av tekst til andre sprĂ„k, og nĂ„ ogsĂ„ for Ă„ oversette bilder til tekst og tekst til bilder.

Etter hvert som jeg studerte disse arkitekturene forstod jeg at jeg ikke forsto noe.. Og det er ikke det at mitt nevrale nettverk har problemer med oppmerksomhetsmekanismen. Opprettelsen av alle disse arkitekturene ligner pĂ„ et stort hackathon, der forfatterne konkurrerer i hacking. Hack (hack) – en rask lĂžsning pĂ„ et vanskelig programvareproblem. SĂ„ mellom alle disse arkitekturene er det ingen synlig eller forstĂ„elig logisk sammenheng. Alt som forener dem er et sett av de mest vellykkede hackene, som de lĂ„ner fra hverandre, pluss en felles konvolusjonsoperasjon med tilbakekobling (tilbakepropagering av feil, backpropagation). Det er ikke systemtenkning! Det er uklart hva som skal endres og hvordan man skal optimalisere de eksisterende prestasjonene.

Som resultat av mangel pÄ logisk sammenheng mellom hackene, er de ekstremt vanskelige Ä huske og bruke i praksis. Dette er fragmentert kunnskap. I beste fall huskes noen interessante og overraskende punkter, men det meste av det som er forstÄtt og ikke forstÄtt forsvinner fra hukommelsen allerede etter noen dager. Det ville vÊre bra om man etter en uke i det minste husker navnet pÄ arkitekturen. Og for dette ble det brukt flere timer og til og med dager av arbeidstiden pÄ Ä lese artikler og se oppsummeringsvideoer!

Nevrallnettverk. Hvor er dette pÄ vei?

Figur 2 – Dyrehagen av nevrale nettverk

De fleste forfattere av vitenskapelige artikler, etter min personlige mening, gjĂžr alt de kan for Ă„ sikre at selv denne fragmenterte kunnskapen ikke blir forstĂ„tt av leseren. Men gerundialte fraser i ti linjers setninger med formler som er 'plukket fra luften' – dette er et tema for en egen artikkel (problem publish or perish).

Av denne grunn oppstod det et behov for Ä systematisere informasjon om nevrale nettverk og dermed Þke kvaliteten pÄ forstÄelsen og hukommelsen. Derfor ble hovedtemaet for analysen av enkelte teknologier og arkitekturer innen kunstige nevrale nettverk fÞlgende oppgave: finne ut hvor dette hele er pÄ vei, ikke hvordan en bestemt nevralnettverksstruktur fungerer isolert.

Hvor alt dette er pÄ vei. Hovedresultater:

  • Antallet oppstart i machine learning-omrĂ„det de siste to Ă„rene har falt dramatisk. En mulig Ă„rsak: 'nevrale nettverk har sluttet Ă„ vĂŠre noe nytt'.
  • Hver person kan lage et fungerende nevralnettverk for Ă„ lĂžse en enkel oppgave. For dette tar man en ferdig modell fra 'dyrehagen av modeller' (model zoo) og trener det siste laget i nevralnettverket (transfer learning) pĂ„ eksisterende data fra Google Dataset Search eller fra 25.000 datasett fra Kaggle i gratis Jupyter Notebook-skyen.
  • Store produsenter av nevralnettverk har begynt Ă„ opprette 'modellsamlinger' (model zoo). Ved hjelp av dem kan man raskt lage en kommersiell applikasjon: TF Hub for TensorFlow, MMDetection for PyTorch, Detectron for Caffe2, chainer-modelzoo for Chainer og Nevrale nettverk som opererer i andre.
  • sanntid (real-time) pĂ„ mobile enheter. Fra 10 til 50 bilder per sekund. Bruken av nevrale nettverk i telefoner (TF Lite), i nettlesere (TF.js) og i
  • husgerĂ„d (IoT, Internet Iof Things). Spesielt i telefoner som allerede stĂžtter nevrale nettverk pĂ„ maskinvare-nivĂ„ (neuroakseleratorer). of Tspesielt pĂ„ telefoner som allerede stĂžtter nevrale nettverk pĂ„ maskinvare-nivĂ„ (nevroakseleratorer).
  • «Hvert apparaat, klĂŠr og kanskje til og med mat vil ha IP-v6 adresse og kommunisere med hverandre» – Sebastian Thrun.
  • Veksten i antallet publikasjoner om maskinlĂŠring har begynt Ă„ overgĂ„ Moores lov (dobling hvert andre Ă„r) siden 2015. Det er tydelig at vi trenger nevrale nettverk for analyse av artikler.
  • FĂžlgende teknologier blir stadig mer populĂŠre:
    • PyTorch – populariteten vokser raskt og ser ut til Ă„ overgĂ„ TensorFlow.
    • Automatisk hyperparameter-tuning AutoML – populariteten vokser jevnt.
    • Gradvis reduksjon av nĂžyaktighet og Ăžkning av beregningseffektivitet: fuzzy logikk, algoritmer boosting, upresise (tilnĂŠrmede) beregninger, kvantisering (nĂ„r vektene til det nevrale nettverket konverteres til hele tall og kvantiseres), nevrale akseleratorer.
    • Translation bilder til tekst og tekst til bilder.
    • Opprette 3D-objekter basert pĂ„ video, nĂ„ allerede i sanntid.
    • Essensen av DL er Ă„ ha mye data, men Ă„ samle og annotere dem er ikke enkelt. Derfor utvikles automatisering av annotering (automated annotation) for nevrale nettverk ved hjelp av nevrale nettverk.
  • Med nevrale nettverk ble datavitenskap plutselig en eksperimentell vitenskap og det oppstod en reproduserbarhetskrise.
  • IT-penger og populariteten til nevrale nettverk oppstod samtidig som beregningene ble en markedsverdi. Økonomien gĂ„r fra gull-valuta til gull-valuta-beregning. Se min artikkel om Ăžkonomisk fysikk og Ă„rsaken til IT-penger.

Gradvis dukker det opp en ny metodikk for programmering av ML/DL (MaskinlÊring & Dyp lÊring), som er basert pÄ Ä se programmet som en samling av trente nevrale nettverksmodeller.

Nevrallnettverk. Hvor er dette pÄ vei?

Figur 3 – ML/DL som en ny programmeringsmetodikk

Imidlertid har det fortsatt ikke oppstÄtt «teorien om nevrale nettverk», innen rammene av hvilken man kan tenke og arbeide systematisk. Det som nÄ kalles «teori» er faktisk eksperimentelle, heuristiske algoritmer.

Lenker til mine og andre ressurser:

Takk for oppmerksomheten!

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster