Artikeln bestÄr av tvÄ delar:
- 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.
- Den andra delen gÄr ut pÄ att förstÄ utvecklingen av arkitekturerna för neuronnÀt. Och teknologier baserade pÄ dem.

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:
- , 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.
- , 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 . 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, , . 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.
- (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 : modellen kan trĂ€nas pĂ„ fotografier men fungerar Ă€ven bra pĂ„ ritade bilder.
- (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 fungerar snabbt och ökar noggrannheten i igenkĂ€nning. MobileNetV2 tillĂ€mpas istĂ€llet för VGG-16, som ursprungligen anvĂ€ndes i . Den andra nĂ€tverksarkitekturen SSD identifierar objektens placering pĂ„ bilden.
- â 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".
- (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 (Single-Shot Refinement Neural Network for Object Detektion), men jag förstod inte mycket.
- Jag tittade ocksÄ pÄ hur tekniken «uppmÀrksamhet» (attention) fungerar: , , . 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 . 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 och .
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 (bakĂ„triktad felpropagering, backpropagation). Det finns inget ! 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!

Figur 2 â
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 ).
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 . 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 () pÄ fÀrdiga data frÄn eller frÄn i den gratis .
- 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: för TensorFlow, för PyTorch, för Caffe2, för Chainer och .
- 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 (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» â .
- Ăkningen av publikationer inom maskininlĂ€rning har börjat (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: , algoritmer , inaktuell (approximerande) berÀkningar, kvantisering (nÀr vikterna i det neurala nÀtverket omvandlas till heltal och kvantiseras), neuroacceleratorer.
- ĂversĂ€ttning och .
- Skapande , 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 () 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 .
- 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 och orsaken till uppkomsten av IT-pengar.
Gradvis dyker en ny (MaskininlÀrning & DjupinlÀrning), som baseras pÄ att betrakta programmet som en uppsÀttning trÀnade neurala nÀtverksmodeller.

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
- Àr egentligen experimentella, heuristiska algoritmer.
- LÀnkar till mina och andra resurser: En allmÀn
- , som jag har gÄtt och som jag skulle vilja gÄ. .
- , dÀr alla kan hitta nÄgot intressant för sig sjÀlva.
- Mycket anvÀndbara har visat sig vara videokanaler för analys av vetenskapliga artiklar inom Data Science. Hitta dem, prenumerera pÄ dem och dela lÀnkar med dina kollegor och mig ocksÄ. Exempel:
- som med steg-för-steg-instruktioner och öppen kÀllkod.
Tack för uppmÀrksamheten!
KĂ€lla: habr.com
