Neuralne mreže. Gde sve ovo vodi?

Članak se sastoji iz dva dela:

  1. Kratak opis nekih mrežnih arhitektura za detekciju objekata u slikama i segmentaciju slika sa meni najrazumljivijim vezama do resursa. Pokušao sam odabrati video objašnjenja i po mogućnosti na ruskom.
  2. Drugi dio je pokušaj razumijevanja smjera razvoja arhitektura neuronskih mreža. I tehnologije zasnovane na njima.

Neuralne mreže. Gde sve ovo vodi?

Slika 1 – Razumijevanje arhitekture neuronskih mreža nije lako

Sve je počelo izradom dvije demo aplikacije za klasifikaciju i detekciju objekata na Android telefonu:

  • Back-end demo, kada se podaci obrađuju na serveru i prenose na telefon. Slika klasifikacija tri vrste medvjeda: smeđi, crni i plišani.
  • Front-end demokada se podaci obrađuju na samom telefonu. Detekcija objekata (detekcija objekata) tri vrste: lješnjaci, smokve i hurme.

Postoji razlika između zadataka klasifikacije slike, detekcije objekata na slici i segmentacija slike. Stoga je postojala potreba da se otkrije koje arhitekture neuronskih mreža detektuju objekte na slikama, a koje se mogu segmentirati. Pronašao sam sljedeće primjere arhitekture sa meni najrazumljivijim vezama do resursa:

  • Serija arhitektura zasnovana na R-CNN (Rregije sa Convolution Neural Nkarakteristike mreže): R-CNN, Brzi R-CNN, Brži R-CNN, Maska R-CNN. Da bi se detektovao objekat na slici, granični okviri se dodeljuju pomoću mehanizma mreže predloga regiona (RPN). U početku je korišten sporiji mehanizam selektivnog pretraživanja umjesto RPN-a. Zatim se odabrani ograničeni regioni unose na ulaz konvencionalne neuronske mreže radi klasifikacije. Arhitektura R-CNN-a ima eksplicitne “for” petlje u ograničenim regionima, ukupno do 2000 prolaza kroz AlexNet internu mrežu. Eksplicitne “for” petlje usporavaju brzinu obrade slike. Broj eksplicitnih petlji koje prolaze kroz internu neuronsku mrežu smanjuje se sa svakom novom verzijom arhitekture, a napravljene su desetine drugih promjena kako bi se povećala brzina i zamijenio zadatak detekcije objekata segmentacijom objekata u Mask R-CNN.
  • YOLO (You Only Look Once) je prva neuronska mreža koja je prepoznavala objekte u realnom vremenu na mobilnim uređajima. Posebna karakteristika: razlikovanje objekata u jednoj vožnji (samo jednom pogledajte). Odnosno, u YOLO arhitekturi nema eksplicitnih petlji „for“, zbog čega mreža radi brzo. Na primjer, ova analogija: u NumPy-u, prilikom izvođenja operacija sa matricama, također nema eksplicitnih petlji „for“, koje se u NumPy-ju implementiraju na nižim nivoima arhitekture kroz programski jezik C. YOLO koristi mrežu unaprijed definiranih prozora. Da bi se spriječilo da se isti objekt definira više puta, koristi se koeficijent preklapanja prozora (IoU). Iraskrsnica oVer Union). Ova arhitektura radi u širokom rasponu i ima visoke robusnost: Model se može obučiti na fotografijama, ali se i dalje dobro ponaša na ručno crtanim slikama.
  • SSD (Sprepona Svrući MultiBox Detector) – koriste se najuspješniji „hakovi“ YOLO arhitekture (na primjer, nemaksimalna supresija) i dodaju se novi kako bi neuronska mreža radila brže i preciznije. Posebnost: razlikovanje objekata u jednom pokretanju pomoću date mreže prozora (podrazumevano polje) na piramidi slike. Piramida slike je kodirana u konvolucionim tenzorima kroz uzastopne operacije konvolucije i udruživanja (sa operacijom maksimalnog skupljanja, prostorna dimenzija se smanjuje). Na ovaj način se u jednoj mreži određuju i veliki i mali objekti.
  • MobileSSD (mobilniNetV2+ SSD) je kombinacija dvije arhitekture neuronskih mreža. Prva mreža MobileNetV2 radi brzo i povećava tačnost prepoznavanja. MobileNetV2 se koristi umjesto VGG-16, koji je prvobitno korišten u originalni članak. Druga SSD mreža određuje lokaciju objekata na slici.
  • SqueezeNet – vrlo mala, ali precizna neuronska mreža. Sam po sebi ne rješava problem detekcije objekata. Međutim, može se koristiti u kombinaciji različitih arhitektura. I koristi se u mobilnim uređajima. Posebnost je da se podaci prvo kompresuju u četiri 1×1 konvoluciona filtera, a zatim proširuju u četiri 1×1 i četiri 3×3 konvoluciona filtera. Jedna takva iteracija kompresije-proširenja podataka naziva se “Fire Module”.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentacija objekata na slici. Karakteristična karakteristika arhitekture je proširena konvolucija, koja čuva prostornu rezoluciju. Nakon toga slijedi faza naknadne obrade rezultata korištenjem grafičkog vjerovatnostnog modela (uslovno slučajno polje), koji vam omogućava da uklonite mali šum u segmentaciji i poboljšate kvalitet segmentirane slike. Iza zastrašujućeg naziva „grafički probabilistički model“ krije se konvencionalni Gausov filter, koji je aproksimiran sa pet tačaka.
  • Pokušao sam otkriti uređaj RefineDet (Single-shot rafiniratiment neuronske mreže za objekt Theection), ali nisam mnogo razumjela.
  • Pogledao sam i kako funkcioniše tehnologija "pažnja": video1, video2, video3. Karakteristična karakteristika arhitekture „pažnje“ je automatski odabir područja povećane pažnje na slici (RoI, Rlegije of Iinteres) koristeći neuronsku mrežu pod nazivom Attention Unit. Regije povećane pažnje su slične graničnim okvirima, ali za razliku od njih, nisu fiksirane na slici i mogu imati zamagljene granice. Zatim, iz područja povećane pažnje, izoluju se znakovi (obilježja) koji se "hrane" u rekurentne neuronske mreže s arhitekturom LSDM, GRU ili Vanilla RNN. Rekurentne neuronske mreže su u stanju da analiziraju odnos karakteristika u nizu. Rekurentne neuronske mreže su se u početku koristile za prevođenje teksta na druge jezike, a sada i za prevođenje slike u tekst и tekst u sliku.

Dok istražujemo ove arhitekture Shvatio sam da ništa ne razumem. I nije da moja neuronska mreža ima problema sa mehanizmom pažnje. Stvaranje svih ovih arhitektura je kao neka vrsta ogromnog hackathona, gdje se autori takmiče u hakiranju. Hack je brzo rješenje za težak softverski problem. Odnosno, ne postoji vidljiva i razumljiva logička veza između svih ovih arhitektura. Sve što ih spaja je skup najuspješnijih hakova koje posuđuju jedni od drugih, plus jedan zajednički za sve rad konvolucije zatvorene petlje (povratno širenje greške, propagacija unazad). br sistemsko razmišljanje! Nije jasno šta promijeniti i kako optimizirati postojeća postignuća.

Kao rezultat nedostatka logičke veze između hakova, izuzetno ih je teško zapamtiti i primijeniti u praksi. Ovo je fragmentirano znanje. U najboljem slučaju pamti se nekoliko zanimljivih i neočekivanih trenutaka, ali većina shvaćenog i neshvatljivog nestaje iz sjećanja u roku od nekoliko dana. Biće dobro ako se za nedelju dana setite barem imena arhitekture. Ali nekoliko sati, pa čak i dana radnog vremena provedeno je u čitanju članaka i gledanju recenzijskih videa!

Neuralne mreže. Gde sve ovo vodi?

Slika 2 – Zoološki vrt neuronskih mreža

Većina autora naučnih članaka, po mom ličnom mišljenju, čini sve što je moguće da čak i ovo fragmentirano znanje ne bude razumljivo čitaocu. No, participalne fraze u deset rečenica s formulama koje su izvučene „iz zraka“ tema su za poseban članak (problem objavljivati ​​ili propadati).

Iz tog razloga postoji potreba za sistematizacijom informacija pomoću neuronskih mreža i na taj način povećati kvalitet razumijevanja i pamćenja. Stoga je glavna tema analize pojedinačnih tehnologija i arhitektura umjetnih neuronskih mreža bio sljedeći zadatak: saznati kuda sve to vodi, a ne uređaj bilo koje specifične neuronske mreže zasebno.

Gde sve ovo vodi? Glavni rezultati:

  • Broj pokretanja mašinskog učenja u posljednje dvije godine naglo pao. Mogući razlog: “neuronske mreže više nisu nešto novo.”
  • Svako može stvoriti funkcionalnu neuronsku mrežu da riješi jednostavan problem. Da biste to učinili, uzmite gotov model iz "modelnog zoološkog vrta" i trenirajte posljednji sloj neuronske mreže (transferno učenje) na gotovim podacima iz Google pretraga skupova podataka ili iz 25 hiljada Kaggle skupova podataka besplatno cloud Jupyter Notebook.
  • Počeli su stvarati veliki proizvođači neuronskih mreža "modelni zoološki vrtovi" (uzorni zoološki vrt). Koristeći ih možete brzo kreirati komercijalnu aplikaciju: TF Hub za TensorFlow, MMDetection za PyTorch, Detektron za Caffe2, chainer-modelzoo za Chainer i drugie.
  • Neuronske mreže koje rade u realnom vremenu (u realnom vremenu) na mobilnim uređajima. Od 10 do 50 sličica u sekundi.
  • Upotreba neuronskih mreža u telefonima (TF Lite), u pretraživačima (TF.js) i in kućni predmeti (IoT, Iinternet of Tšarke). Posebno u telefonima koji već podržavaju neuronske mreže na hardverskom nivou (neuralni akceleratori).
  • “Svaki uređaj, odjevni predmet, a možda čak i hrana će imati IP-v6 adresa i komuniciraju jedni s drugima" - Sebastian Thrun.
  • Broj publikacija o mašinskom učenju je počeo da raste premašiti Mooreov zakon (udvostručavanje svake dvije godine) od 2015. Očigledno, potrebne su nam neuronske mreže za analizu članaka.
  • Sljedeće tehnologije postaju sve popularnije:
    • PyTorch – popularnost brzo raste i čini se da prestiže TensorFlow.
    • Automatski odabir hiperparametara AutoML – popularnost lagano raste.
    • Postepeno smanjenje tačnosti i povećanje brzine izračunavanja: fuzzy logika, algoritmi boosting, neprecizni (približni) proračuni, kvantizacija (kada se težine neuronske mreže pretvaraju u cijele brojeve i kvantiziraju), neuronski akceleratori.
    • Prevod slike u tekst и tekst u sliku.
    • stvaranje XNUMXD objekti iz videa, sada u realnom vremenu.
    • Glavna stvar kod DL je da ima puno podataka, ali njihovo prikupljanje i etiketiranje nije lako. Stoga se razvija automatizacija označavanja (automatizovano označavanje) za neuronske mreže koje koriste neuronske mreže.
  • Sa neuronskim mrežama, računarstvo je odjednom postalo eksperimentalna nauka i ustao kriza reproduktivnosti.
  • IT novac i popularnost neuronskih mreža pojavili su se istovremeno kada je računarstvo postalo tržišna vrijednost. Ekonomija se mijenja od ekonomije zlata i valute u zlato-valutno-računanje. Pogledajte moj članak na econophysics i razlog za pojavu IT novca.

Postepeno se pojavljuje novi Metodologija ML/DL programiranja (Machine Learning & Deep Learning), koji se zasniva na predstavljanju programa kao skupa obučenih modela neuronske mreže.

Neuralne mreže. Gde sve ovo vodi?

Slika 3 – ML/DL kao nova metodologija programiranja

Međutim, nikada se nije pojavio "teorija neuronskih mreža", u okviru koje možete razmišljati i raditi sistematski. Ono što se danas naziva "teorijom" zapravo su eksperimentalni, heuristički algoritmi.

Linkovi na moje i druge resurse:

Spasibo za vnimanie!

izvor: www.habr.com

Dodajte komentar