NeuronnÀt. Vart Àr detta pÄ vÀg

Artikeln bestÄr av tvÄ delar:

  1. En kort beskrivning av vissa arkitekturer i nÀtverk för objektigenkÀnning pÄ bilder och segmentering av bilder med de mest lÀttförstÄeliga lÀnkarna till resurser för mig. Jag försökte vÀlja videoförklaringar, helst pÄ ryska.
  2. Den andra delen gÄr ut pÄ att förstÄ utvecklingen av arkitekturerna för neuronnÀt. Och teknologier baserade pÄ dem.

NeuronnÀt. Vart Àr detta pÄ vÀg

Bild 1 – Det Ă€r inte lĂ€tt att förstĂ„ arkitekturerna för neuronnĂ€t.

Allt började med att jag skapade tvÄ demonstrationsapplikationer för klassificering och objektigenkÀnning pÄ Android-telefonen:

  • Back-end demo, dĂ€r data behandlas pĂ„ servern och skickas till telefonen. Klassificering av bilder (image classification) av tre typer av björnar: brun, svart och plysch.
  • Front-end demo, dĂ€r data behandlas pĂ„ sjĂ€lva telefonen. ObjektigenkĂ€nning (object detection) av tre typer: hasselnöt, fikon och dadel.

Det finns en skillnad mellan uppgifter för bildklassificering, objektigenkÀnning pÄ en bild och segmentering av bilder. DÀrför blev det nödvÀndigt att fÄ veta vilka arkitekturer för neuronnÀt som upptÀcker objekt pÄ bilder och vilka som kan segmentera. Jag har hittat följande exempel pÄ arkitekturer med de mest lÀttförstÄeliga lÀnkarna till resurser:

  • En serie arkitekturer baserade pĂ„ R-CNN (Regioner med Convolution Neural Networks-funktioner): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. För objektigenkĂ€nning pĂ„ en bild anvĂ€nds en mekanism för Region Proposal Network (RPN) för att markera begrĂ€nsade omrĂ„den (bounding boxes). Initialt anvĂ€ndes en lĂ„ngsammare mekanism, Selective Search, istĂ€llet för RPN. DĂ€refter matas de markerade begrĂ€nsade regionerna in i ett vanligt neuronnĂ€t för klassificering. I R-CNN-arkitekturen finns det tydliga "for"-loopar för att gĂ„ igenom de begrĂ€nsade regionerna, totalt upp till 2000 genomgĂ„ngar genom det interna nĂ€tet AlexNet. PĂ„ grund av dessa tydliga "for"-loopar sĂ€nks hastigheten pĂ„ bildbehandlingen. Antalet tydliga loopar, genomgĂ„ngar genom det interna neuronnĂ€tet, minskar med varje ny version av arkitekturen, och dessutom görs dussintals andra förĂ€ndringar för att öka hastigheten och byta uppgift frĂ„n objektigenkĂ€nning till segmentering av objekt i Mask R-CNN.
  • YOLO (You Only Look Once) – den första neurala nĂ€tverksarkitekturen som kunde kĂ€nna igen objekt i realtid pĂ„ mobila enheter. En sĂ€rskiljande funktion Ă€r förmĂ„gan att sĂ€rskilja objekt pĂ„ ett enda lopp (man behöver bara se pĂ„ det en gĂ„ng). Det finns inga explicita "for"-loopar i YOLO:s arkitektur, vilket gör att nĂ€tverket fungerar snabbt. En liknelse Ă€r att i NumPy, vid operationer med matriser, finns det inte heller nĂ„gra explicita "for"-loopar, som i NumPy hanteras pĂ„ lĂ€gre nivĂ„er genom programmeringssprĂ„ket C. YOLO anvĂ€nder ett gitter av förutbestĂ€mda rutor. För att undvika att samma objekt identifieras flera gĂ„nger, anvĂ€nds en överlappningskoefficient för rutorna (IoU, Intersection over Union). Denna arkitektur fungerar över ett brett intervall och har hög robusthet: modellen kan trĂ€nas pĂ„ fotografier men fungerar Ă€ven bra pĂ„ ritade bilder.
  • SSD (Single Shot MultiBox Detector) – de mest framgĂ„ngsrika "hacken" av YOLO-arkitekturen anvĂ€nds (till exempel non-maximum suppression) och nya lĂ€ggs till för att neuronnĂ€tet ska fungera snabbare och mer noggrant. En sĂ€rskiljande funktion Ă€r att sĂ€rskilja objekt pĂ„ ett enda lopp med hjĂ€lp av ett angivet nĂ€t av rutor (default box) pĂ„ en bildpyramid. Bildpyramiden kodas i konvolutionella tensorkopplingar under successive konvolutions- och poolingoperationer (vid max-pooling minskar den rumsliga dimensionen). SĂ„ledes kan bĂ„de stora och smĂ„ objekt identifieras pĂ„ ett enda lopp av nĂ€tverket.
  • MobileSSD (MobileNetV2 + SSD) – en kombination av tvĂ„ neurala nĂ€tverksarkitekturer. Den första nĂ€tverket MobileNetV2 fungerar snabbt och ökar noggrannheten i igenkĂ€nning. MobileNetV2 tillĂ€mpas istĂ€llet för VGG-16, som ursprungligen anvĂ€ndes i den ursprungliga artikeln. Den andra nĂ€tverksarkitekturen SSD identifierar objektens placering pĂ„ bilden.
  • SqueezeNet – ett mycket litet men exakt neuronnĂ€tverk. SjĂ€lvt löser det inte problemet med objektigenkĂ€nning. Men det kan anvĂ€ndas i kombination med olika arkitekturer. Och anvĂ€ndas i mobila enheter. En sĂ€rskiljande funktion Ă€r att data först komprimeras till fyra 1×1 konvolutionsfilter, och sedan expanderas till fyra 1×1 och fyra 3×3 konvolutionsfilter. En sĂ„dan kompressions-expansionsiteration kallas "Fire Module".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentering av objekt pĂ„ bilden. En sĂ€rskiljande egenskap hos arkitekturen Ă€r den glesa (dilated convolution) konvolutionen, som bevarar den spatiala upplösningen. Sedan följer en efterbehandlingsfas med hjĂ€lp av en grafisk sannolikhetsmodell (conditional random field) som möjliggör att avlĂ€gsna smĂ„ störningar i segmenteringen och förbĂ€ttra kvaliteten pĂ„ den segmenterade bilden. Bakom det skrĂ€mmande namnet «grafisk sannolikhetsmodell» döljer sig ett vanligt Gauss-filter, som Ă€r aproximera med fem punkter.
  • Försökte förstĂ„ hur den Ă€r konstruerad RefineDet (Single-Shot Refinement Neural Network for Object Detektion), men jag förstod inte mycket.
  • Jag tittade ocksĂ„ pĂ„ hur tekniken «uppmĂ€rksamhet» (attention) fungerar: video1, video2, video3. En sĂ€rskiljande egenskap hos arkitekturen «uppmĂ€rksamhet» Ă€r automatisk identifiering av omrĂ„den med ökad uppmĂ€rksamhet pĂ„ bilden (RoI, Regions of Interest) med hjĂ€lp av ett neuralt nĂ€tverk som kallas Attention Unit. OmrĂ„dena med ökad uppmĂ€rksamhet liknar begrĂ€nsade omrĂ„den (bounding boxes), men till skillnad frĂ„n dem Ă€r de inte fixerade pĂ„ bilden och kan ha diffus grĂ€nser. Sedan utvinner man egenskaper (features) frĂ„n de omrĂ„dena med ökad uppmĂ€rksamhet, som «matas» till rekurrenta neurala nĂ€tverk med arkitekturer LSDM, GRU eller Vanilla RNN. Rekurrenta neurala nĂ€tverk kan analysera relationerna mellan egenskaper i en sekvens. Rekurrenta neurala nĂ€tverk anvĂ€ndes ursprungligen för att översĂ€tta text till andra sprĂ„k, och nu Ă€ven för att översĂ€tta bilder till text och text till bilder.

NĂ€r jag studerade dessa arkitekturer insĂ„g jag att jag inte förstod nĂ„got. Och det handlar inte om att mitt neurala nĂ€tverk har problem med uppmĂ€rksamhetsmekanismen. Skapandet av alla dessa arkitekturer liknar nĂ„gon sorts enorm hackathon, dĂ€r skaparna tĂ€vlar i hacks. Hack (hack) – en snabb lösning pĂ„ en svĂ„r programvaruuppgift. Det finns ingen synlig och förstĂ„elig logisk koppling mellan alla dessa arkitekturer. Allt som förenar dem Ă€r en uppsĂ€ttning av de mest framgĂ„ngsrika hacks som de lĂ„nat frĂ„n varandra, plus en gemensam för alla konvolution med Ă„terkoppling (bakĂ„triktad felpropagering, backpropagation). Det finns inget systemtĂ€nkande! Det Ă€r oklart vad som ska förĂ€ndras och hur man optimerar de befintliga prestationerna.

Som resultat av avsaknaden av logisk koppling mellan hacket Àr de extremt svÄra att minnas och tillÀmpa i praktiken. Det handlar om fragmenterad kunskap. Som bÀst minns man nÄgra intressanta och ovÀntade punkter, men det mesta av det förstÄdda och oförstÄdda försvinner ur minnet redan efter nÄgra dagar. Det vore bra om man efter en vecka i alla fall kommer ihÄg namnet pÄ arkitekturen. Och ÀndÄ har man lagt flera timmar och till och med dagar av arbetskraft pÄ att lÀsa artiklar och se översiktsvideor!

NeuronnÀt. Vart Àr detta pÄ vÀg

Figur 2 – Djurpark av neurala nĂ€tverk

De flesta författare av vetenskapliga artiklar, enligt min personliga Ă„sikt, gör allt för att Ă€ven denna fragmenterade kunskap ska vara svĂ„r att förstĂ„ för lĂ€saren. Men gerundkonstruktioner i tio linjĂ€ra meningar med formler som Ă€r tagna "frĂ„n taket" – det Ă€r ett Ă€mne för en separat artikel (problemet publish or perish).

Av denna anledning uppstod behovet att systematisera informationen om neuronnÀt och dÀrigenom öka kvaliteten pÄ förstÄelse och minne. DÀrför blev det huvudsakliga temat för analysen av olika teknologier och arkitekturer av artificiella neuronnÀt den följande uppgiften: att ta reda pÄ vart allt detta Àr pÄ vÀg, snarare Àn att förstÄ konstruktionen av ett specifikt neuronnÀt separat.

Vart allt detta Àr pÄ vÀg. Huvudsakliga resultat:

  • Antalet startups inom maskininlĂ€rning har under de senaste tvĂ„ Ă„ren drastiskt minskat. En möjlig anledning: "neuronnĂ€t har slutat vara nĂ„got nytt."
  • Var och en kan skapa ett fungerande neuronnĂ€t för att lösa en enkel uppgift. För detta tar man en fĂ€rdig modell frĂ„n "djurparken av modeller" (model zoo) och trĂ€nar det sista lagret av neuronnĂ€tet (transfer learning) pĂ„ fĂ€rdiga data frĂ„n Google Dataset Search eller frĂ„n 25 000 dataset frĂ„n Kaggle i den gratis Jupyter Notebook-molnet.
  • Stora tillverkare av neuronnĂ€t har börjat skapa "djurparker av modeller" (model zoo). Med deras hjĂ€lp kan man snabbt skapa en kommersiell applikation: TF Hub för TensorFlow, MMDetection för PyTorch, Detectron för Caffe2, chainer-modelzoo för Chainer och andra.
  • NeuronnĂ€t som fungerar i real-tid pĂ„ mobila enheter. FrĂ„n 10 till 50 bildrutor per sekund.
  • AnvĂ€ndning av neuronnĂ€t i telefoner (TF Lite), i webblĂ€sare (TF.js) och i vanliga föremĂ„l (IoT, Iinternet of Tav saker). SĂ€rskilt i telefoner som redan stödjer neuronnĂ€t pĂ„ hĂ„rdvarunivĂ„ (neuroacceleratorer).
  • Varje enhet, klĂ€desplagg och kanske till och med mat kommer att ha IP-v6 adress och kommunicera med varandra» – Sebastian Thrun.
  • Ökningen av publikationer inom maskininlĂ€rning har börjat överskrida Moores lag (dubblade varje tvĂ„ Ă„r) sedan 2015. Det Ă€r uppenbart att neurala nĂ€tverk för artikelanalys behövs.
  • Följande teknologier ökar i popularitet:
    • PyTorch – populariteten vĂ€xer snabbt och verkar övertrĂ€ffa TensorFlow.
    • Automatisk hyperparameterjustering AutoML – populariteten vĂ€xer lĂ„ngsamt.
    • Gradvis minskning av noggrannhet och ökning av berĂ€kningshastighet: fuzzy logic, algoritmer boosting, inaktuell (approximerande) berĂ€kningar, kvantisering (nĂ€r vikterna i det neurala nĂ€tverket omvandlas till heltal och kvantiseras), neuroacceleratorer.
    • ÖversĂ€ttning bilder till text och text till bilder.
    • Skapande 3D-objekt frĂ„n video, nu i realtid.
    • Det huvudsakliga inom DL – Ă€r stora mĂ€ngder data, men att samla och mĂ€rka dem Ă€r inte lĂ€tt. DĂ€rför utvecklas automatisering av mĂ€rkning (automated annotation) för neurala nĂ€tverk med hjĂ€lp av neurala nĂ€tverk.
  • Med neurala nĂ€tverk har datavetenskap plötsligt blivit en experimentell vetenskap och en reproducerbarhetskris.
  • IT-pengar och populariteten av neurala nĂ€tverk uppstod samtidigt nĂ€r berĂ€kningar blev ett marknadsvĂ€rde. Ekonomin gĂ„r frĂ„n guld/valuta till guld-valuta-berĂ€knings. Se min artikel om ekonofysik och orsaken till uppkomsten av IT-pengar.

Gradvis dyker en ny metodologi för programmering av ML/DL (MaskininlÀrning & DjupinlÀrning), som baseras pÄ att betrakta programmet som en uppsÀttning trÀnade neurala nÀtverksmodeller.

NeuronnÀt. Vart Àr detta pÄ vÀg

Bild 3 – ML/DL som en ny programmeringsmetodologi

Men det har fortfarande inte kommit nÄgon «teori för neurala nÀtverk», inom vilken man kan tÀnka och arbeta systematiskt. Vad som nu kallas

teori

Tack för uppmÀrksamheten!

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster