Neurale netwurken. Wêr giet dit allegear hinne?

It artikel bestiet út twa dielen:

  1. In koarte beskriuwing fan guon netwurkarsjitektueren foar objektdeteksje yn ôfbyldings en ôfbyldingssegmentaasje mei de meast begryplike keppelings nei boarnen foar my. Ik besocht fideoferklearrings te kiezen en leafst yn it Russysk.
  2. It twadde diel is in besykjen om de rjochting fan ûntwikkeling fan neuronale netwurkarsjitektuer te begripen. En technologyen basearre op harren.

Neurale netwurken. Wêr giet dit allegear hinne?

Figure 1 - Ferstean fan neurale netwurk-arsjitektueren is net maklik

It begon allegear mei it meitsjen fan twa demo-applikaasjes foar objektklassifikaasje en deteksje op in Android-tillefoan:

  • Back-end demo, as gegevens wurde ferwurke op de tsjinner en oerdroegen oan de telefoan. Ofbylding klassifikaasje fan trije soarten bearen: brún, swart en teddy.
  • Front-end demoas de gegevens wurde ferwurke op 'e telefoan sels. Deteksje fan objekten (objektdeteksje) fan trije soarten: hazelnuten, figen en datums.

Der is in ferskil tusken de taken fan ôfbylding klassifikaasje, objektdeteksje yn in byld en image segmentation. Dêrom wie d'r ferlet om út te finen hokker neuronale netwurkarsjitektueren objekten yn bylden ûntdekke en hokker kinne segmentearje. Ik fûn de folgjende foarbylden fan arsjitektuer mei de meast begryplike keppelings nei boarnen foar my:

  • In searje arsjitektuer basearre op R-CNN (Rregio mei Convolúsje Neural Nnetwurkfunksjes): R-CNN, Fast R-CNN, Sneller R-CNN, Masker R-CNN. Om in objekt yn in ôfbylding te detektearjen, wurde grinzende fakjes tawiisd mei it meganisme Region Proposal Network (RPN). Yn 't earstoan waard it stadiger meganisme fan selektyf sykjen brûkt ynstee fan RPN. Dan wurde de selekteare beheinde regio's fiede nei de ynfier fan in konvinsjoneel neural netwurk foar klassifikaasje. De R-CNN-arsjitektuer hat eksplisite "foar" loops oer beheinde regio's, yn totaal oant 2000 rint troch it AlexNet ynterne netwurk. Eksplisite "foar" loops fertrage ôfbyldingsferwurkingssnelheid. It oantal eksplisite loops dy't troch it ynterne neurale netwurk rinne, nimt ôf mei elke nije ferzje fan 'e arsjitektuer, en tsientallen oare wizigingen wurde makke om snelheid te ferheegjen en de taak fan objektdeteksje te ferfangen mei objektsegmentaasje yn Mask R-CNN.
  • YOLO (You Only Look Once) is it earste neurale netwurk dat objekten yn echte tiid erkende op mobile apparaten. Underskate eigenskip: objekten yn ien run ûnderskiede (sjoch mar ien kear). Dat is, yn 'e YOLO-arsjitektuer binne d'r gjin eksplisite "foar" loops, en dêrom wurket it netwurk fluch. Bygelyks dizze analogy: yn NumPy, by it útfieren fan operaasjes mei matrices, binne d'r ek gjin eksplisite "foar" loops, dy't yn NumPy op legere nivo's fan 'e arsjitektuer ymplementearre wurde troch de programmeartaal C. YOLO brûkt in raster fan foarôf definieare finsters. Om foar te kommen dat itselde objekt meardere kearen definiearre wurdt, wurdt de finsteroerlapkoëffisjint (IoU) brûkt. Ikrusing oVer Unjonken). Dizze arsjitektuer wurket oer in breed skala en hat hege robuustheid: In model kin traind wurde op foto's, mar dochs goed prestearje op mei de hân tekene skilderijen.
  • SSD (Sliif Shot MultiBox Detector) - de meast súksesfolle "hacks" fan 'e YOLO-arsjitektuer wurde brûkt (bygelyks net-maksimale ûnderdrukking) en nije wurde tafoege om it neuronale netwurk rapper en krekter te meitsjen. Ûnderskiedende skaaimerk: ûnderskiede objekten yn ien run mei in opjûn raster fan finsters (standert doaze) op de ôfbylding piramide. De ôfbyldingspiramide wurdt kodearre yn konvolúsjetensors troch opienfolgjende konvolúsje- en pooloperaasjes (mei de maksimale-pooling-operaasje nimt de romtlike diminsje ôf). Op dizze manier wurde sawol grutte as lytse objekten bepaald yn ien netwurkrun.
  • MobileSSD (mobileNetV2+ SSD) is in kombinaasje fan twa neuronale netwurkarsjitektueren. Earste netwurk MobileNetV2 wurket fluch en fergruttet erkenning accuracy. MobileNetV2 wurdt brûkt ynstee fan VGG-16, dat waard oarspronklik brûkt yn orizjinele artikel. It twadde SSD-netwurk bepaalt de lokaasje fan objekten yn 'e ôfbylding.
  • SqueezeNet - in heul lyts, mar krekt neural netwurk. Op himsels lost it it probleem fan objektdeteksje net op. It kin lykwols brûkt wurde yn in kombinaasje fan ferskate arsjitektuer. En brûkt yn mobile apparaten. It ûnderskiedende skaaimerk is dat de gegevens earst wurde komprimearre yn fjouwer 1 × 1 konvolúsjonele filters en dan útwreide yn fjouwer 1 × 1 en fjouwer 3 × 3 konvolúsjonele filters. Ien sa'n iteraasje fan datakompresje-útwreiding wurdt in "brânmodule" neamd.
  • DeepLab (Semantyske ôfbyldingssegmentaasje mei Deep Convolutional Nets) - segmentaasje fan objekten yn 'e ôfbylding. In ûnderskiedend skaaimerk fan 'e arsjitektuer is dilated convolution, dy't behâldt romtlike resolúsje. Dit wurdt folge troch in post-ferwurkingsfaze fan 'e resultaten mei in grafysk probabilistysk model (betingst willekeurich fjild), wêrmei jo lytse lûd yn' e segmentaasje kinne ferwiderje en de kwaliteit fan 'e segmentearre ôfbylding ferbetterje. Efter de formidabele namme "grafysk probabilistysk model" ferberget in konvinsjonele Gaussiaansk filter, dat wurdt benadere troch fiif punten.
  • Besocht it apparaat út te finen RefineDet (Single Shot Ferfynjement Neural Network foar Object Deection), mar ik begriep net folle.
  • Ik seach ek nei hoe't de technology "omtinken" wurket: fideo1, fideo2, fideo3. In ûnderskiedend skaaimerk fan 'e "omtinken"-arsjitektuer is de automatyske seleksje fan regio's mei ferhege oandacht yn 'e ôfbylding (RoI, Rlegioenen of Interest) mei in neural netwurk neamd Attention Unit. Regio's fan ferhege oandacht binne fergelykber mei beheinende doazen, mar yn tsjinstelling ta harren binne se net fêst yn 'e ôfbylding en kinne wazige grinzen hawwe. Dan, fan regio's fan ferhege oandacht, wurde tekens (funksjes) isolearre, dy't "fied" wurde oan weromkommende neuronale netwurken mei arsjitektuer LSDM, GRU of Vanilla RNN. Weromkommende neuronale netwurken kinne de relaasje fan funksjes yn in folchoarder analysearje. Weromkommende neuronale netwurken waarden ynearsten brûkt om tekst oer te setten yn oare talen, en no foar oersetting ôfbyldings nei tekst и tekst nei ôfbylding.

As wy ferkenne dizze arsjitektuer Ik realisearre dat ik neat begryp. En it is net dat myn neurale netwurk problemen hat mei it oandachtmeganisme. De skepping fan al dizze arsjitektueren is as in soarte fan enoarme hackathon, wêrby't auteurs konkurrearje yn hacks. Hack is in flugge oplossing foar in dreech software probleem. Dat is, der is gjin sichtbere en begryplike logyske ferbining tusken al dizze arsjitektueren. Alles dat har ferienet is in set fan 'e meast súksesfolle hacks dy't se fan elkoar liene, plus in mienskiplike foar allegear sletten-loop konvolúsje operaasje (flater backpropagation, backpropagation). Nee systeem tinken! It is net dúdlik wat te feroarjen en hoe te optimalisearjen besteande prestaasjes.

As gefolch fan it ûntbrekken fan logyske ferbining tusken hacks binne se ekstreem lestich te ûnthâlden en yn 'e praktyk te passen. Dit is fersnippere kennis. Op syn bêst wurde in pear nijsgjirrige en ûnferwachte mominten ûnthâlden, mar it measte fan wat begrepen en ûnbegryplik is ferdwynt binnen in pear dagen út it ûnthâld. It sil goed wêze as jo oer in wike op syn minst de namme fan 'e arsjitektuer ûnthâlde. Mar ferskate oeren en sels dagen wurktiid waarden bestege oan it lêzen fan artikels en it besjen fan beoardielingsfideo's!

Neurale netwurken. Wêr giet dit allegear hinne?

figuer 2 - Zoo fan neurale netwurken

De measte skriuwers fan wittenskiplike artikels, yn myn persoanlike miening, dogge alles om te soargjen dat sels dizze fragmintele kennis net begrepen wurdt troch de lêzer. Mar dielsinnen yn tsien rigel sinnen mei formules dy't "út 'e loft" nommen binne in ûnderwerp foar in apart artikel (probleem publisearje as ferlern gean).

Om dizze reden is d'r needsaak om ynformaasje te systematisearjen mei neurale netwurken en dus de kwaliteit fan begryp en memorisaasje te ferheegjen. Dêrom wie it haadûnderwerp fan analyze fan yndividuele technologyen en arsjitektueren fan keunstmjittige neurale netwurken de folgjende taak: útfine wêr't it allegear hinne giet, en net it apparaat fan in spesifyk neural netwurk apart.

Wêr giet dit alles hinne? Haadresultaten:

  • Oantal opstarten fan masine learen yn 'e lêste twa jier foel skerp. Mooglike reden: "neurale netwurken binne net mear wat nijs."
  • Elkenien kin in wurkjend neuraal netwurk meitsje om in ienfâldich probleem op te lossen. Om dit te dwaan, nim in klear makke model fan 'e "modelzoo" en train de lêste laach fan it neurale netwurk (oerdrage learen) op klearmakke gegevens fan Google Dataset Search as fan 25 tûzen Kaggle datasets yn free wolk Jupyter Notebook.
  • Grutte fabrikanten fan neurale netwurken begûnen te meitsjen "model dierentuinen" (model bistetún). Mei se kinne jo fluch in kommersjele applikaasje meitsje: TF Hub foar TensorFlow, MMDetection foar PyTorch, Detectron foar Caffe2, chainer-modelzoo foar Chainer en другие.
  • Neurale netwurken wurkje yn echte tiid (echte tiid) op mobile apparaten. Fan 10 oant 50 frames per sekonde.
  • It gebrûk fan neurale netwurken yn tillefoans (TF Lite), yn browsers (TF.js) en yn húshâldlike items (IoT, Iynternet of Thingje). Benammen yn tillefoans dy't al neurale netwurken stypje op hardwarenivo (neurale accelerators).
  • "Elk apparaat, klean, en miskien sels iten sil hawwe IP-v6 adres en kommunisearje mei elkoar" - Sebastian Troch.
  • It oantal publikaasjes oer masine learen is begon te groeien boppe Moore syn wet (om de twa jier ferdûbelje) sûnt 2015. Fansels hawwe wy neurale netwurken nedich foar it analysearjen fan artikels.
  • De folgjende technologyen winne populariteit:
    • PyTorch - populariteit groeit hurd en liket TensorFlow yn te nimmen.
    • Automatyske seleksje fan hyperparameters AutoML - populariteit groeit soepel.
    • Stadichoan ferminderjen fan krektens en tanimming fan berekkeningssnelheid: fuzzy logika, algoritmen stimulearjen, unexacte (approximate) berekkeningen, quantization (as de gewichten fan it neuronale netwurk wurde omsetten yn integers en quantized), neural accelerators.
    • Oerbringe ôfbyldings nei tekst и tekst nei ôfbylding.
    • skepping XNUMXD objekten út fideo, no yn echte tiid.
    • It wichtichste ding oer DL is dat d'r in protte gegevens binne, mar it sammeljen en labeljen is net maklik. Dêrom is markup automatisearring ûntwikkele (automatisearre annotaasje) foar neurale netwurken dy't neurale netwurken brûke.
  • Mei neurale netwurken waard Computer Science ynienen eksperimintele wittenskip en kaam op reproducibility krisis.
  • IT-jild en de populariteit fan neurale netwurken ûntstiene tagelyk doe't komputer in merkwearde waard. De ekonomy feroaret fan in goud- en muntekonomy nei goud-faluta-komputer. Sjoch myn artikel oer ekonofysika en de reden foar it ferskinen fan IT jild.

Stadichoan ferskynt der in nij ML / DL programmearring metodyk (Machine Learning & Deep Learning), dy't basearre is op it fertsjinwurdigjen fan it programma as in set fan trained neurale netwurkmodellen.

Neurale netwurken. Wêr giet dit allegear hinne?

Figuer 3 - ML / DL as in nije programmearring metodyk

It ferskynde lykwols nea "neural netwurk teory", wêrbinnen jo systematysk tinke en wurkje kinne. Wat no "teory" hjit is eins eksperimintele, heuristyske algoritmen.

Keppelings nei myn en oare boarnen:

Спасибо за внимание!

Boarne: www.habr.com

Add a comment