Neironu tīkli. Kur tas viss virzās?

Raksts sastāv no divām daļām:

  1. ÄŖss apraksts par dažām tÄ«kla arhitektÅ«rām objektu noteikÅ”anai attēlos un attēlu segmentÄ“Å”anai ar man saprotamākajām saitēm uz resursiem. Centos izvēlēties video skaidrojumus un vēlams krievu valodā.
  2. Otrā daļa ir mēģinājums izprast neironu tīklu arhitektūru attīstības virzienu. Un uz tām balstītas tehnoloģijas.

Neironu tīkli. Kur tas viss virzās?

1. attēls. Neironu tÄ«klu arhitektÅ«ras izpratne nav vienkārÅ”a

Viss sākās, izveidojot divas demonstrācijas lietojumprogrammas objektu klasifikācijai un noteikŔanai Android tālrunī:

  • Aizmugurējās versijas demonstrācija, kad dati tiek apstrādāti serverÄ« un pārsÅ«tÄ«ti uz tālruni. TrÄ«s veidu lāču attēlu klasifikācija: brÅ«ns, melns un rotaļu.
  • PriekÅ”gala demonstrācijakad dati tiek apstrādāti paŔā tālrunÄ«. TrÄ«s veidu objektu noteikÅ”ana (objektu noteikÅ”ana): lazdu rieksti, vÄ«Ä£es un datumi.

Ir atŔķirÄ«ba starp attēlu klasifikācijas, objektu noteikÅ”anas uzdevumiem attēlā un attēla segmentācija. Tāpēc radās nepiecieÅ”amÄ«ba noskaidrot, kuras neironu tÄ«klu arhitektÅ«ras uztver attēlos esoÅ”os objektus un kuras var tos segmentēt. Es atradu Ŕādus arhitektÅ«ru piemērus ar man saprotamākajām saitēm uz resursiem:

  • ArhitektÅ«ras sērija, kuras pamatā ir R-CNN (RreÄ£ioni ar Convolution Neurāls NtÄ«klu funkcijas): R-CNN, Fast R-CNN, Ātrāks R-CNN, Maska R-CNN. Lai attēlā noteiktu objektu, ierobežojoŔās kastes tiek pieŔķirtas, izmantojot reÄ£iona ierosinājumu tÄ«kla (RPN) mehānismu. Sākotnēji RPN vietā tika izmantots lēnāks selektÄ«vās meklÄ“Å”anas mehānisms. Pēc tam atlasÄ«tie ierobežotie reÄ£ioni klasifikācijai tiek ievadÄ«ti parastā neironu tÄ«kla ieejā. R-CNN arhitektÅ«rai ir nepārprotamas ā€œforā€ cilpas ierobežotos reÄ£ionos, kopā lÄ«dz 2000 darbiem caur AlexNet iekŔējo tÄ«klu. Skaidras ā€œforā€ cilpas palēnina attēlu apstrādes ātrumu. Izteikto cilpu skaits, kas iet caur iekŔējo neironu tÄ«klu, samazinās ar katru jauno arhitektÅ«ras versiju, un tiek veiktas arÄ« desmitiem citu izmaiņu, lai palielinātu ātrumu un aizstātu objektu noteikÅ”anas uzdevumu ar objektu segmentÄ“Å”anu maskā R-CNN.
  • Yolo (You Only LarÄ« Once) ir pirmais neironu tÄ«kls, kas mobilajās ierÄ«cēs reāllaikā atpazina objektus. AtŔķirÄ«ga iezÄ«me: objektu atŔķirÅ”ana vienā piegājienā (tikai paskatieties vienreiz). Tas ir, YOLO arhitektÅ«rā nav skaidru ā€œforā€ cilpu, tāpēc tÄ«kls darbojas ātri. Piemēram, Ŕī lÄ«dzÄ«ba: NumPy, veicot darbÄ«bas ar matricām, nav arÄ« izteiktu ā€œforā€ cilpu, kuras NumPy tiek realizētas zemākos arhitektÅ«ras lÄ«meņos, izmantojot programmÄ“Å”anas valodu C. YOLO izmanto iepriekÅ” definētu logu režģi. Lai viens un tas pats objekts netiktu definēts vairākas reizes, tiek izmantots logu pārklāŔanās koeficients (IoU). Ikrustojums oaplÅ«kot Ujonu). Å Ä« arhitektÅ«ra darbojas plaŔā diapazonā un ir augsta robustums: modeli var apmācÄ«t fotogrāfijās, taču tas joprojām labi darbojas ar roku zÄ«mētām gleznām.
  • SSD (Sieiet Skarsts MultiBox Detector) ā€“ tiek izmantoti visveiksmÄ«gākie YOLO arhitektÅ«ras ā€œhakiā€ (piemēram, nemaksimālā slāpÄ“Å”ana) un tiek pievienoti jauni, lai neironu tÄ«kls darbotos ātrāk un precÄ«zāk. AtŔķirÄ«ga iezÄ«me: objektu atŔķirÅ”ana vienā piegājienā, izmantojot noteiktu logu režģi (noklusējuma lodziņŔ) attēla piramÄ«dā. Attēla piramÄ«da tiek kodēta konvolÅ«cijas tensoros, izmantojot secÄ«gas konvolÅ«cijas un apvienoÅ”anas darbÄ«bas (ar max-pooling operāciju telpiskā dimensija samazinās). Tādā veidā vienā tÄ«kla skrējienā tiek noteikti gan lieli, gan mazi objekti.
  • MobileSSD (mobilsNetV2+ SSD) ir divu neironu tÄ«klu arhitektÅ«ru kombinācija. Pirmais tÄ«kls MobileNetV2 darbojas ātri un palielina atpazÄ«Å”anas precizitāti. MobileNetV2 tiek izmantots VGG-16 vietā, kas sākotnēji tika izmantots oriÄ£ināls raksts. Otrais SSD tÄ«kls nosaka objektu atraÅ”anās vietu attēlā.
  • SqueezeNet ā€“ ļoti mazs, bet precÄ«zs neironu tÄ«kls. Pats par sevi tas neatrisina objektu noteikÅ”anas problēmu. Tomēr to var izmantot dažādu arhitektÅ«ru kombinācijā. Un tiek izmantots mobilajās ierÄ«cēs. AtŔķirÄ«gā iezÄ«me ir tāda, ka dati vispirms tiek saspiesti četros 1 Ɨ 1 konvolÅ«cijas filtros un pēc tam izvērsti četros 1 Ɨ 1 un četros 3 Ɨ 3 konvolÅ«cijas filtros. Viena Ŕāda datu saspieÅ”anas-paplaÅ”ināŔanas iterācija tiek saukta par ā€œugunsgrēka moduliā€.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) ā€“ objektu segmentÄ“Å”ana attēlā. ArhitektÅ«ras Ä«patnÄ«ba ir paplaÅ”ināta konvolÅ«cija, kas saglabā telpisko izŔķirtspēju. Tam seko rezultātu pēcapstrādes posms, izmantojot grafisko varbÅ«tÄ«bas modeli (nosacÄ«juma nejauŔības lauks), kas ļauj noņemt nelielus trokŔņus segmentācijā un uzlabot segmentētā attēla kvalitāti. Aiz drausmÄ«gā nosaukuma ā€œgrafiskais varbÅ«tÄ«bas modelisā€ slēpjas parasts Gausa filtrs, kas ir tuvināts par pieciem punktiem.
  • Mēģināja izdomāt ierÄ«ci RefineDet (Viens Ŕāviens rafinētneironu tÄ«kls objektam Detakcija), bet es neko daudz nesapratu.
  • Es arÄ« apskatÄ«ju, kā darbojas ā€œuzmanÄ«basā€ tehnoloÄ£ija: video1, video2, video3. AtŔķirÄ«ga ā€œuzmanÄ«basā€ arhitektÅ«ras iezÄ«me ir automātiska to reÄ£ionu atlase, kuriem attēlā ir pastiprināta uzmanÄ«ba (RoI, RVeneto of Interest), izmantojot neironu tÄ«klu, ko sauc par UzmanÄ«bas vienÄ«bu. Paaugstinātas uzmanÄ«bas apgabali ir lÄ«dzÄ«gi norobežojoÅ”ajiem lodziņiem, taču atŔķirÄ«bā no tiem tie nav fiksēti attēlā un tiem var bÅ«t izplÅ«duÅ”as robežas. Pēc tam no pastiprinātas uzmanÄ«bas reÄ£ioniem tiek izolētas zÄ«mes (iezÄ«mes), kuras tiek ā€œievadÄ«tasā€ uz atkārtotiem neironu tÄ«kliem ar arhitektÅ«ru LSDM, GRU vai Vanilla RNN. Atkārtoti neironu tÄ«kli spēj analizēt pazÄ«mju attiecÄ«bas secÄ«bā. Atkārtotos neironu tÄ«klus sākotnēji izmantoja, lai tulkotu tekstu citās valodās, un tagad arÄ« tulkoÅ”anai attēlus uz tekstu Šø tekstu uz attēlu.

Izpētot Ŕīs arhitektÅ«ras Sapratu, ka neko nesaprotu. Un nav tā, ka manam neironu tÄ«klam ir problēmas ar uzmanÄ«bas mehānismu. Visu Å”o arhitektÅ«ru izveide ir kā kaut kāds milzÄ«gs hakatons, kurā autori sacenÅ”as hackos. Hack ir ātrs risinājums sarežģītai programmatÅ«ras problēmai. Tas ir, starp visām Ŕīm arhitektÅ«rām nav redzama un saprotama loÄ£iska saikne. Viss, kas viņus vieno, ir visveiksmÄ«gāko hakeru kopums, ko viņi aizņemas viens no otra, kā arÄ« kopÄ«gs visiem. slēgta cikla konvolÅ«cijas darbÄ«ba (kļūda backpropagation, backpropagation). Nē sistēmu domāŔana! Nav skaidrs, ko mainÄ«t un kā optimizēt esoÅ”os sasniegumus.

Tā kā starp uzlauÅ”anu nav loÄ£iskas saiknes, tos ir ārkārtÄ«gi grÅ«ti atcerēties un pielietot praksē. Tās ir sadrumstalotas zināŔanas. Labākajā gadÄ«jumā atmiņā paliek daži interesanti un negaidÄ«ti mirkļi, bet lielākā daļa saprastā un nesaprotamā pazÅ«d no atmiņas dažu dienu laikā. BÅ«s labi, ja pēc nedēļas atcerēsies vismaz arhitektÅ«ras nosaukumu. Taču vairākas stundas un pat dienas darba laika pagāja, lasot rakstus un skatoties apskatu video!

Neironu tīkli. Kur tas viss virzās?

2. attēls ā€“ Neironu tÄ«klu zoodārzs

Lielākā daļa zinātnisko rakstu autoru, manuprāt, dara visu iespējamo, lai pat Ŕīs sadrumstalotās zināŔanas lasÄ«tājam nesaprastu. Bet lÄ«dzdalÄ«bas frāzes desmit rindu teikumos ar formulām, kas ņemtas ā€œno zila gaisaā€, ir atseviŔķa raksta tēma (problēma publicēt vai pazust).

Å Ä« iemesla dēļ ir nepiecieÅ”ams sistematizēt informāciju, izmantojot neironu tÄ«klus, un tādējādi paaugstināt izpratnes un iegaumÄ“Å”anas kvalitāti. Tāpēc mākslÄ«go neironu tÄ«klu atseviŔķu tehnoloÄ£iju un arhitektÅ«ru analÄ«zes galvenā tēma bija Ŕāds uzdevums: uzzini, kur tas viss notiek, nevis kāda konkrēta neironu tÄ«kla ierÄ«ce atseviŔķi.

Kur tas viss iet? Galvenie rezultāti:

  • MaŔīnmācÄ«Å”anās jaunuzņēmumu skaits pēdējo divu gadu laikā strauji kritās. Iespējamais iemesls: "neironu tÄ«kli vairs nav kaut kas jauns."
  • Ikviens var izveidot funkcionējoÅ”u neironu tÄ«klu, lai atrisinātu vienkārÅ”u problēmu. Lai to izdarÄ«tu, paņemiet gatavu modeli no ā€œmodeļa zoodārzaā€ un apmāciet pēdējo neironu tÄ«kla slāni (pārneses mācÄ«bas) par gataviem datiem no Google datu kopu meklÄ“Å”ana vai no 25 tÅ«kstoÅ”i Kaggle datu kopu bezmaksas mākoņa Jupyter piezÄ«mju grāmatiņa.
  • Sāka veidot lielie neironu tÄ«klu ražotāji "zoodārzu paraugi" (zooloÄ£iskā dārza modelis). Izmantojot tos, varat ātri izveidot komerciālu lietojumprogrammu: TF centrmezgls TensorFlow, MMD noteikÅ”ana PyTorch, Detectron priekÅ” Caffe2, ķēde-modelzoo par Chainer un pārējie.
  • Neironu tÄ«kli, kas darbojas Ä«sts laiks (reāllaika) mobilajās ierÄ«cēs. No 10 lÄ«dz 50 kadriem sekundē.
  • Neironu tÄ«klu izmantoÅ”ana tālruņos (TF Lite), pārlÅ«kprogrammās (TF.js) un iekŔā sadzÄ«ves priekÅ”meti (IoT, INTERNET of Teņģes). ÄŖpaÅ”i tālruņos, kas jau atbalsta neironu tÄ«klus aparatÅ«ras lÄ«menÄ« (neironu paātrinātāji).
  • ā€œBÅ«s katra ierÄ«ce, apģērba gabals un, iespējams, pat pārtika IP-v6 adrese un sazināties savā starpā" - Sebastians Thruns.
  • Publikāciju skaits par maŔīnmācÄ«bu ir sācis pieaugt pārsniedz MÅ«ra likumu (dubultojot ik pēc diviem gadiem) kopÅ” 2015. gada. AcÄ«mredzot rakstu analÄ«zei mums ir nepiecieÅ”ami neironu tÄ«kli.
  • Šādas tehnoloÄ£ijas kļūst arvien populārākas:
    • PyTorch ā€“ popularitāte strauji aug un, Ŕķiet, apsteidz TensorFlow.
    • Automātiska hiperparametru izvēle AutoML ā€“ popularitāte vienmērÄ«gi aug.
    • Pakāpeniska precizitātes samazināŔanās un aprēķinu ātruma palielināŔanās: neskaidra loÄ£ika, algoritmi veicinot, neprecÄ«zi (aptuveni) aprēķini, kvantÄ“Å”ana (kad neironu tÄ«kla svari tiek pārvērsti veselos skaitļos un kvantēti), neironu paātrinātāji.
    • TulkoÅ”ana attēlus uz tekstu Šø tekstu uz attēlu.
    • radÄ«Å”ana XNUMXD objekti no video, tagad reāllaikā.
    • Galvenais par DL ir tas, ka datu ir daudz, taču tos savākt un marķēt nav viegli. Tāpēc iezÄ«mÄ“Å”anas automatizācija attÄ«stās (automatizēta anotācija) neironu tÄ«kliem, kas izmanto neironu tÄ«klus.
  • Ar neironu tÄ«kliem pēkŔņi kļuva datorzinātne eksperimentālā zinātne un cēlās reproducējamÄ«bas krÄ«ze.
  • IT nauda un neironu tÄ«klu popularitāte parādÄ«jās vienlaikus, kad skaitļoÅ”ana kļuva par tirgus vērtÄ«bu. Ekonomika mainās no zelta un valÅ«tas ekonomikas uz zelts-valÅ«ta-skaitļoÅ”ana. Skatiet manu rakstu par ekonomofizika un IT naudas parādÄ«Å”anās iemesls.

Pamazām parādās jauns ML/DL programmÄ“Å”anas metodika (Machine Learning & Deep Learning), kuras pamatā ir programmas attēloÅ”ana kā apmācÄ«tu neironu tÄ«klu modeļu kopa.

Neironu tīkli. Kur tas viss virzās?

3. attēls ā€“ ML/DL kā jauna programmÄ“Å”anas metodika

Tomēr tas nekad nav parādÄ«jies "neironu tÄ«klu teorija", kuras ietvaros var sistemātiski domāt un strādāt. Tas, ko tagad sauc par ā€œteorijuā€, patiesÄ«bā ir eksperimentāli, heiristiski algoritmi.

Saites uz maniem un citiem resursiem:

Š”ŠæŠ°ŃŠøŠ±Š¾ Š·Š° Š²Š½ŠøŠ¼Š°Š½ŠøŠµ!

Avots: www.habr.com

Pievieno komentāru