Neŭralaj retoj. Kien ĉio ĉi iras?

La artikolo konsistas el du partoj:

  1. Mallonga priskribo de kelkaj retaj arkitekturoj por objektodetekto en bildoj kaj bildsegmentado kun la plej kompreneblaj ligiloj al rimedoj por mi. Mi provis elekti videajn klarigojn kaj prefere en la rusa.
  2. La dua parto estas provo kompreni la direkton de evoluo de neŭralaj retaj arkitekturoj. Kaj teknologioj bazitaj sur ili.

Neŭralaj retoj. Kien ĉio ĉi iras?

Figuro 1 - Kompreni neŭralaj retaj arkitekturoj ne estas facila

Ĉio komenciĝis farante du demo-aplikaĵojn por objektoklasifiko kaj detekto sur Android-telefono:

  • Malantaŭa demo, kiam datumoj estas prilaboritaj sur la servilo kaj transdonitaj al la telefono. Bildklasifiko de tri specoj de ursoj: bruna, nigra kaj teddy.
  • Front-end demokiam la datumoj estas prilaboritaj sur la telefono mem. Detekto de objektoj (objektdetekto) de tri tipoj: aveloj, figoj kaj daktiloj.

Estas diferenco inter la taskoj de bildklasifiko, objektodetekto en bildo kaj bildsegmentado. Tial, estis bezono malkovri kiuj neŭralaj retaj arkitekturoj detektas objektojn en bildoj kaj kiuj povas segmenti. Mi trovis la sekvajn ekzemplojn de arkitekturoj kun la plej kompreneblaj ligiloj al rimedoj por mi:

  • Serio de arkitekturoj bazitaj sur R-CNN (Rregionoj kun Convolucio Neŭralo Networks-funkcioj): R-CNN, Rapida R-CNN, Pli rapida R-CNN, Masko R-CNN. Por detekti objekton en bildo, limkestoj estas asignitaj uzante la Region Proposal Network (RPN) mekanismon. Komence, la pli malrapida Selective Search-mekanismo estis uzita anstataŭe de RPN. Tiam la elektitaj limigitaj regionoj estas provizitaj al la enigaĵo de konvencia neŭrala reto por klasifiko. La R-CNN-arkitekturo havas eksplicitajn "por" buklojn super limigitaj regionoj, nombrante ĝis 2000 kurojn tra la AlexNet interna reto. Eksplicitaj "por" bukloj malrapidigas bildopretigan rapidecon. La nombro da eksplicitaj bukloj kurantaj tra la interna neŭrala reto malpliiĝas kun ĉiu nova versio de la arkitekturo, kaj dekduoj da aliaj ŝanĝoj estas faritaj por pliigi rapidecon kaj anstataŭigi la taskon de objektodetekto kun objektosegmentado en Mask R-CNN.
  • YOLO (You Only Look Once) estas la unua neŭrala reto kiu rekonis objektojn en reala tempo sur porteblaj aparatoj. Karakterizaĵo: distingi objektojn en unu kuro (nur rigardu unufoje). Tio estas, en la YOLO-arkitekturo ne ekzistas eksplicitaj "por" bukloj, tial la reto funkcias rapide. Ekzemple, ĉi tiu analogio: en NumPy, kiam oni faras operaciojn kun matricoj, ankaŭ ne ekzistas eksplicitaj "por" bukloj, kiuj en NumPy estas efektivigitaj ĉe pli malaltaj niveloj de la arkitekturo per la programlingvo C. YOLO uzas kradon de antaŭdifinitaj fenestroj. Por malhelpi la saman objekton esti difinita plurfoje, la fenestrointerkovrokoeficiento (IoU) estas uzita. Iintersekciĝo oVer Union). Ĉi tiu arkitekturo funkcias en larĝa gamo kaj havas altan fortikeco: modelo povas esti trejnita sur fotoj sed tamen bone rezultas ĉe mane desegnitaj pentraĵoj.
  • SSD (Single Svarma MultiBox Detector) - la plej sukcesaj "hakoj" de la YOLO-arkitekturo estas uzataj (ekzemple, ne-maksimuma subpremado) kaj novaj estas aldonitaj por ke la neŭrala reto funkcias pli rapide kaj precize. Karakterizaĵo: distingi objektojn en unu kuro uzante antaŭfiksitan kradon de fenestroj (defaŭlta skatolo) sur la bildpiramido. La bildpiramido estas ĉifrita en kunvoluciaj tensoro tra sinsekvaj cirkulado kaj kunigaj operacioj (kun la maks-kuniga operacio, la spaca dimensio malpliiĝas). Tiamaniere, kaj grandaj kaj malgrandaj objektoj estas determinitaj en unu retkuro.
  • MobileSSD (PoŝtelefonoNetV2+ SSD) estas kombinaĵo de du neŭralaj retaj arkitekturoj. Unua reto MobileNetV2 funkcias rapide kaj pliigas rekonan precizecon. MobileNetV2 estas uzita anstataŭe de VGG-16, kiu estis origine uzita enen originala artikolo. La dua SSD-reto determinas la lokon de objektoj en la bildo.
  • SqueezeNet – tre malgranda sed preciza neŭrala reto. Per si mem, ĝi ne solvas la problemon de objektodetekto. Tamen, ĝi povas esti uzata en kombinaĵo de malsamaj arkitekturoj. Kaj uzata en porteblaj aparatoj. La karakterizaĵo estas, ke la datumoj unue estas kunpremitaj en kvar 1×1 konvoluciajn filtrilojn kaj poste disetenditaj en kvar 1×1 kaj kvar 3×3 konvoluciajn filtrilojn. Unu tia ripeto de datuma kunpremo-vastigo estas nomita "Fajro-Modulo".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) - segmentigo de objektoj en la bildo. Karakterizaĵo de la arkitekturo estas dilatigita kunvolucio, kiu konservas spacan rezolucion. Sekvas post-traktado de la rezultoj per grafika probabla modelo (kondiĉa hazarda kampo), kiu ebligas forigi malgrandan bruon en la segmentado kaj plibonigi la kvaliton de la segmentita bildo. Malantaŭ la timinda nomo "grafika probabla modelo" kaŝiĝas konvencia gaŭsa filtrilo, kiu estas proksimuma per kvin poentoj.
  • Provis eltrovi la aparaton RafiniDet (Ununura pafo Ripariment Neŭrala Reto por Objekto Laection), sed mi ne komprenis multon.
  • Mi ankaŭ rigardis kiel funkcias la "atento" teknologio: video1, video2, video3. Karakterizaĵo de la "atenta" arkitekturo estas la aŭtomata elekto de regionoj de pliigita atento en la bildo (RoI, Rlegioj of Interest) uzante neŭralan reton nomitan Attention Unit. Regionoj de pliigita atento similas al limkestoj, sed male al ili, ili ne estas fiksitaj en la bildo kaj eble malklarigis limojn. Tiam, de regionoj de pliigita atento, signoj (trajtoj) estas izolitaj, kiuj estas "nutrataj" al ripetiĝantaj neŭralaj retoj kun arkitekturoj. LSDM, GRU aŭ Vanilla RNN. Ripetantaj neŭralaj retoj povas analizi la rilaton de ecoj en sekvenco. Ripetantaj neŭralaj retoj estis komence uzitaj por traduki tekston al aliaj lingvoj, kaj nun por traduki bildoj al teksto и teksto al bildo.

Dum ni esploras ĉi tiujn arkitekturojn Mi konstatis, ke mi nenion komprenas. Kaj ne estas ke mia neŭrala reto havas problemojn kun la atentmekanismo. La kreado de ĉiuj ĉi tiuj arkitekturoj estas kiel ia grandega hakatono, kie aŭtoroj konkuras en hakoj. Hako estas rapida solvo al malfacila programara problemo. Tio estas, ne ekzistas videbla kaj komprenebla logika ligo inter ĉiuj ĉi tiuj arkitekturoj. Ĉio, kio kunigas ilin, estas aro de la plej sukcesaj hakoj, kiujn ili pruntas unu de la alia, plus komuna por ĉiuj. fermitcikla cirkla operacio (eraro backpropagation, backpropagation). Ne sistema pensado! Ne estas klare, kion ŝanĝi kaj kiel optimumigi ekzistantajn atingojn.

Kiel rezulto de la manko de logika rilato inter hakoj, ili estas ege malfacile memoreblaj kaj aplikitaj en la praktiko. Ĉi tio estas fragmenta scio. En la plej bona kazo oni memoras kelkajn interesajn kaj neatenditajn momentojn, sed plejparto de tio, kio estas komprenata kaj nekomprenebla, malaperas el la memoro ene de kelkaj tagoj. Estos bone, se post semajno vi memoros almenaŭ la nomon de la arkitekturo. Sed pluraj horoj kaj eĉ tagoj da labortempo estis pasigitaj legante artikolojn kaj spektante recenzajn filmetojn!

Neŭralaj retoj. Kien ĉio ĉi iras?

Figuro 2 - Zoo de Neŭralaj Retoj

Plej multaj aŭtoroj de sciencaj artikoloj, laŭ mia persona opinio, faras ĉion eblan por certigi, ke eĉ ĉi tiu fragmenta scio ne estas komprenata de la leganto. Sed participaj frazoj en dekliniaj frazoj kun formuloj, kiuj estas prenitaj "el nude", estas temo por aparta artikolo (problemo eldoni aŭ perei).

Tial, estas bezono sistemigi informojn uzante neŭralaj retoj kaj, tiel, pliigi la kvaliton de kompreno kaj enmemorigo. Tial, la ĉefa temo de analizo de individuaj teknologioj kaj arkitekturoj de artefaritaj neŭralaj retoj estis la sekva tasko: eksciu kien ĉio iras, kaj ne la aparato de iu specifa neŭrala reto aparte.

Kien ĉio ĉi iras? Ĉefaj rezultoj:

  • Nombro de maŝinlernado-noventreprenoj en la lastaj du jaroj falis akre. Ebla kialo: "neŭralaj retoj ne plu estas io nova."
  • Iu ajn povas krei funkciantan neŭralan reton por solvi simplan problemon. Por fari tion, prenu pretan modelon el la "modela zoo" kaj trejnu la lastan tavolon de la neŭrala reto (translokiga lernado) pri pretaj datumoj de Serĉo pri Google Datumaro aŭ de 25 mil Kaggle-datumseroj en libera nubo Jupyter Kajero.
  • Grandaj produktantoj de neŭralaj retoj komencis krei "modelaj zooj" (modela zoo). Uzante ilin vi povas rapide krei komercan aplikaĵon: TF Nabo por TensorFlow, MMDekto por PyTorch, Detectron por Caffe2, chainer-modelzoo por Chainer kaj aliaj.
  • Neŭralaj retoj laborantaj en reala tempo (reala tempo) sur porteblaj aparatoj. De 10 ĝis 50 kadroj por sekundo.
  • La uzo de neŭralaj retoj en telefonoj (TF Lite), en retumiloj (TF.js) kaj en hejmaj objektoj (IoT, Iinterreto of Tĉarniroj). Precipe en telefonoj kiuj jam subtenas neŭralajn retojn je la aparataro (neŭralaj akceliloj).
  • “Ĉiu aparato, vestaĵo, kaj eble eĉ manĝaĵo havos IP-v6 adreso kaj komuniki unu kun la alia" - Sebastian Thrun.
  • La nombro da publikaĵoj pri maŝinlernado komencis kreski superi la leĝon de Moore (duobligante ĉiujn du jarojn) ekde 2015. Evidente, ni bezonas neŭralajn retojn por analizi artikolojn.
  • La jenaj teknologioj akiras popularecon:
    • PyTorch - populareco kreskas rapide kaj ŝajnas superi TensorFlow.
    • Aŭtomata elekto de hiperparametroj AutoML – populareco glate kreskas.
    • Iom post iom malpliiĝo de precizeco kaj pliiĝo de kalkulrapideco: malklara logiko, algoritmoj akcelo, malprecizaj (proksimumas) kalkuloj, kvantigo (kiam la pezoj de la neŭrala reto estas konvertitaj en entjeroj kaj kvantigitaj), neŭralaj akceliloj.
    • Tradukado bildoj al teksto и teksto al bildo.
    • kreaĵo XNUMXD objektoj de video, nun en reala tempo.
    • La ĉefa afero pri DL estas, ke ekzistas multaj datumoj, sed kolekti kaj etikedi ĝin ne estas facila. Tial markada aŭtomatigo disvolviĝas (aŭtomatigita komentario) por neŭralaj retoj uzantaj neŭralaj retoj.
  • Kun neŭralaj retoj, Komputado subite fariĝis eksperimenta scienco kaj leviĝis reproduktebla krizo.
  • IT-mono kaj la populareco de neŭralaj retoj aperis samtempe kiam komputado iĝis merkata valoro. La ekonomio ŝanĝiĝas de oro kaj valutekonomio al oro-valuto-komputado. Vidu mian artikolon pri ekonomiofiziko kaj la kialo de apero de IT-mono.

Iom post iom nova aperas ML/DL-programadmetodaro (Maŝina Lernado & Profunda Lernado), kiu estas bazita sur reprezentado de la programo kiel aro de edukitaj neŭralaj retaj modeloj.

Neŭralaj retoj. Kien ĉio ĉi iras?

Figuro 3 - ML/DL kiel nova programa metodologio

Tamen ĝi neniam aperis "teorio de neŭrala reto", ene de kiu vi povas pensi kaj labori sisteme. Kio nun estas nomita "teorio" estas fakte eksperimentaj, heŭristaj algoritmoj.

Ligiloj al miaj kaj aliaj rimedoj:

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

fonto: www.habr.com

Aldoni komenton