Neurala nätverk. Vart tar det här vägen?

Artikeln består av två delar:

  1. En kort beskrivning av några nätverksarkitekturer för objektdetektering i bilder och bildsegmentering med de mest förståeliga länkarna till resurser för mig. Jag försökte välja videoförklaringar och helst på ryska.
  2. Den andra delen är ett försök att förstå riktningen för utvecklingen av neurala nätverksarkitekturer. Och teknik baserad på dem.

Neurala nätverk. Vart tar det här vägen?

Figur 1 – Att förstå neurala nätverksarkitekturer är inte lätt

Det hela började med att göra två demoapplikationer för objektklassificering och detektering på en Android-telefon:

  • Back-end demo, när data bearbetas på servern och överförs till telefonen. Bildklassificering av tre typer av björnar: brun, svart och teddy.
  • Front-end demonär uppgifterna bearbetas på själva telefonen. Detektering av föremål (objektdetektion) av tre typer: hasselnötter, fikon och dadlar.

Det är skillnad på uppgifterna bildklassificering, objektdetektering i en bild och bildsegmentering. Därför fanns det ett behov av att ta reda på vilka neurala nätverksarkitekturer som upptäcker objekt i bilder och vilka som kan segmentera. Jag hittade följande exempel på arkitekturer med de mest förståeliga länkarna till resurser för mig:

  • En serie arkitekturer baserade på R-CNN (Rregioner med Convolution Neural Nnätverksfunktioner): R-CNN, Fast R-CNN, Snabbare R-CNN, Mask R-CNN. För att upptäcka ett objekt i en bild tilldelas begränsningsrutor med hjälp av mekanismen Region Proposal Network (RPN). Inledningsvis användes den långsammare selektiva sökmekanismen istället för RPN. Sedan matas de valda begränsade regionerna till ingången till ett konventionellt neuralt nätverk för klassificering. R-CNN-arkitekturen har explicita "för"-loopar över begränsade regioner, totalt upp till 2000 körningar genom AlexNets interna nätverk. Explicita "för"-loopar saktar ner bildbehandlingshastigheten. Antalet explicita slingor som löper genom det interna neurala nätverket minskar med varje ny version av arkitekturen, och dussintals andra ändringar görs för att öka hastigheten och för att ersätta uppgiften med objektdetektering med objektsegmentering i Mask R-CNN.
  • YOLO (You Ondast Look Once) är det första neurala nätverket som kände igen objekt i realtid på mobila enheter. Särskiljande kännetecken: särskiljande objekt i en körning (se bara en gång). Det vill säga, i YOLO-arkitekturen finns det inga explicita "för"-loopar, varför nätverket fungerar snabbt. Till exempel denna analogi: i NumPy, när man utför operationer med matriser, finns det inte heller några explicita "för"-loopar, som i NumPy implementeras på lägre nivåer av arkitekturen genom programmeringsspråket C. YOLO använder ett rutnät med fördefinierade fönster. För att förhindra att samma objekt definieras flera gånger, används fönsteröverlappskoefficienten (IoU). Igenomskärning ose Union). Denna arkitektur fungerar över ett brett spektrum och har hög robusthet: En modell kan tränas på fotografier men ändå prestera bra på handritade målningar.
  • SSD (Single Sheta MultiBox Detector) – de mest framgångsrika "hackarna" av YOLO-arkitekturen används (till exempel icke-maximal undertryckning) och nya läggs till för att få det neurala nätverket att fungera snabbare och mer exakt. Särskiljande funktion: särskilja objekt i en körning med ett givet rutnät av fönster (standardruta) på bildpyramiden. Bildpyramiden kodas i faltningstensorer genom successiva faltnings- och poolningsoperationer (med maxpoolningsoperationen minskar den rumsliga dimensionen). På så sätt bestäms både stora och små objekt i en nätverkskörning.
  • MobileSSD (MobilNetV2+ SSD) är en kombination av två neurala nätverksarkitekturer. Första nätverket MobileNetV2 fungerar snabbt och ökar igenkänningsnoggrannheten. MobileNetV2 används istället för VGG-16, som ursprungligen användes i originalartikel. Det andra SSD-nätverket bestämmer platsen för objekt i bilden.
  • SqueezeNet – ett mycket litet men exakt neuralt nätverk. I sig löser det inte problemet med objektdetektering. Den kan dock användas i en kombination av olika arkitekturer. Och används i mobila enheter. Det utmärkande är att data först komprimeras till fyra 1×1 faltningsfilter och sedan expanderas till fyra 1×1 och fyra 3×3 faltningsfilter. En sådan iteration av datakomprimeringsexpansion kallas en "brandmodul".
  • DeepLab (Semantisk bildsegmentering med Deep Convolutional Nets) – segmentering av objekt i bilden. Ett utmärkande drag för arkitekturen är dilaterad faltning, vilket bevarar rumslig upplösning. Detta följs av ett efterbearbetningssteg av resultaten med hjälp av en grafisk probabilistisk modell (villkorligt slumpmässigt fält), som låter dig ta bort lite brus i segmenteringen och förbättra kvaliteten på den segmenterade bilden. Bakom det formidabla namnet "grafisk probabilistisk modell" döljer sig ett konventionellt gaussiskt filter, som är ungefärligt med fem punkter.
  • Försökte ta reda på enheten RefineDet (Ett enda skott Förfinament Neural Network for Object DETsektion), men jag förstod inte mycket.
  • Jag tittade också på hur "uppmärksamhet"-tekniken fungerar: video1, video2, video3. Ett utmärkande drag för "uppmärksamhet"-arkitekturen är det automatiska urvalet av områden med ökad uppmärksamhet i bilden (RoI, Regioner of Interest) med hjälp av ett neuralt nätverk som kallas Attention Unit. Områden med ökad uppmärksamhet liknar begränsningsrutor, men till skillnad från dem är de inte fixerade i bilden och kan ha suddiga gränser. Sedan, från områden med ökad uppmärksamhet, isoleras tecken (funktioner) som "matas" till återkommande neurala nätverk med arkitekturer LSDM, GRU eller Vanilla RNN. Återkommande neurala nätverk kan analysera förhållandet mellan funktioner i en sekvens. Återkommande neurala nätverk användes från början för att översätta text till andra språk, och nu för översättning bilder till text и text till bild.

När vi utforskar dessa arkitekturer Jag insåg att jag inte förstår någonting. Och det är inte så att mitt neurala nätverk har problem med uppmärksamhetsmekanismen. Skapandet av alla dessa arkitekturer är som något slags enormt hackathon, där författare tävlar i hacka. Hack är en snabb lösning på ett svårt programvaruproblem. Det vill säga att det inte finns något synligt och begripligt logiskt samband mellan alla dessa arkitekturer. Allt som förenar dem är en uppsättning av de mest framgångsrika hackarna som de lånar av varandra, plus en gemensam för alla sluten slinga faltningsoperation (fel backpropagation, backpropagation). Nej systemtänkande! Det är inte klart vad som ska ändras och hur man optimerar befintliga prestationer.

Som ett resultat av bristen på logisk koppling mellan hack är de extremt svåra att komma ihåg och tillämpa i praktiken. Detta är splittrad kunskap. I bästa fall kommer några intressanta och oväntade ögonblick ihåg, men det mesta som är förståeligt och obegripligt försvinner ur minnet inom några dagar. Det kommer att vara bra om du om en vecka kommer ihåg åtminstone namnet på arkitekturen. Men flera timmar och till och med dagars arbetstid gick åt till att läsa artiklar och titta på recensionsfilmer!

Neurala nätverk. Vart tar det här vägen?

Figur 2 - Zoo av neurala nätverk

De flesta författare till vetenskapliga artiklar, enligt min personliga åsikt, gör allt för att se till att inte ens denna splittrade kunskap förstås av läsaren. Men deltagande fraser i tio raders meningar med formler som är tagna "ur tomma intet" är ett ämne för en separat artikel (problem publicera eller förgås).

Av denna anledning finns det ett behov av att systematisera information med hjälp av neurala nätverk och därmed öka kvaliteten på förståelse och memorering. Därför var huvudämnet för analys av individuella tekniker och arkitekturer för artificiella neurala nätverk följande uppgift: ta reda på vart allt är på väg, och inte enheten i något specifikt neuralt nätverk separat.

Vart tar allt detta vägen? Huvudresultat:

  • Antalet maskininlärningsstarter under de senaste två åren föll kraftigt. Möjlig anledning: "neurala nätverk är inte längre något nytt."
  • Vem som helst kan skapa ett fungerande neuralt nätverk för att lösa ett enkelt problem. För att göra detta, ta en färdig modell från "modellzoo" och träna det sista lagret av det neurala nätverket (överför lärande) på färdiga data från Google Dataset Search eller från 25 tusen Kaggle-datauppsättningar i gratis moln Jupyter Notebook.
  • Stora tillverkare av neurala nätverk började skapa "modell djurparker" (modell zoo). Med hjälp av dem kan du snabbt skapa en kommersiell applikation: TF Hub för TensorFlow, MMdetektion för PyTorch, Detektron för Caffe2, chainer-modellzoo för Chainer och andra.
  • Neurala nätverk som arbetar i realtid (realtid) på mobila enheter. Från 10 till 50 bilder per sekund.
  • Användningen av neurala nätverk i telefoner (TF Lite), i webbläsare (TF.js) och i husgeråd (IoT, Internet of Tgångjärn). Speciellt i telefoner som redan stöder neurala nätverk på hårdvarunivå (neurala acceleratorer).
  • "Varje enhet, klädesplagg och kanske till och med mat kommer att ha IP-v6-adress och kommunicera med varandra" - Sebastian Thrun.
  • Antalet publikationer om maskininlärning har börjat växa överskrida Moores lag (fördubblas vartannat år) sedan 2015. Uppenbarligen behöver vi neurala nätverk för att analysera artiklar.
  • Följande tekniker vinner popularitet:
    • PyTorch – populariteten växer snabbt och verkar gå om TensorFlow.
    • Automatiskt val av hyperparametrar AutoML – Populariteten växer smidigt.
    • Gradvis minskning av noggrannhet och ökning av beräkningshastighet: rolig logik, algoritmer förstärkning, inexakta (ungefärliga) beräkningar, kvantisering (när det neurala nätverkets vikter omvandlas till heltal och kvantiseras), neurala acceleratorer.
    • översättning bilder till text и text till bild.
    • skapande XNUMXD-objekt från video, nu i realtid.
    • Huvudsaken med DL är att det finns mycket data, men att samla in och märka den är inte lätt. Därför utvecklas markup-automatisering (automatiserad anteckning) för neurala nätverk som använder neurala nätverk.
  • Med neurala nätverk blev datavetenskap plötsligt experimentell vetenskap och uppstod reproducerbarhetskris.
  • IT-pengar och de neurala nätverkens popularitet uppstod samtidigt när datoranvändning blev ett marknadsvärde. Ekonomin förändras från en guld- och valutaekonomi till guld-valuta-beräkning. Se min artikel om ekonofysik och anledningen till uppkomsten av IT-pengar.

Efter hand dyker en ny upp ML/DL programmeringsmetodik (Machine Learning & Deep Learning), som bygger på att representera programmet som en uppsättning utbildade neurala nätverksmodeller.

Neurala nätverk. Vart tar det här vägen?

Figur 3 – ML/DL som ny programmeringsmetodik

Det dök dock aldrig upp "neurala nätverksteori", inom vilken du kan tänka och arbeta systematiskt. Det som nu kallas "teori" är faktiskt experimentella, heuristiska algoritmer.

Länkar till mina och andra resurser:

Tack för din uppmärksamhet!

Källa: will.com

Lägg en kommentar