Neuronske mreže. Kamo sve ovo ide?

Članak se sastoji od dva dijela:

  1. Kratak opis nekih mrežnih arhitektura za otkrivanje objekata u slikama i segmentaciju slika s meni najrazumljivijim poveznicama na resurse. 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 temeljene na njima.

Neuronske mreže. Kamo sve ovo ide?

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:

  • Pozadinski demo, kada se podaci obrađuju na poslužitelju i prenose na telefon. Slika klasifikacije tri vrste medvjeda: smeđi, crni i plišani.
  • Prednji demokada se podaci obrađuju na samom telefonu. Detekcija objekata (object detection) tri vrste: lješnjaci, smokve i datulje.

Razlikuju se zadaci klasifikacije slika, detekcije objekata na slici i segmentacija slike. Stoga je bilo potrebno otkriti koje arhitekture neuronske mreže detektiraju objekte na slikama, a koje mogu segmentirati. Pronašao sam sljedeće primjere arhitektura sa meni najrazumljivijim poveznicama na resurse:

  • Niz arhitektura temeljenih na R-CNN-u (Rregije sa Convolucija Neural Nznačajke mreže): R-CNN, Brzi R-CNN, Brži R-CNN, Maska R-CNN. Da bi se otkrio objekt na slici, granični okviri se dodjeljuju pomoću mehanizma Regional Proposal Network (RPN). U početku se umjesto RPN-a koristio sporiji mehanizam selektivnog pretraživanja. Zatim se odabrana ograničena područja šalju na ulaz konvencionalne neuronske mreže radi klasifikacije. Arhitektura R-CNN-a ima eksplicitne "za" petlje preko ograničenih regija, ukupno do 2000 pokreta kroz AlexNet internu mrežu. Eksplicitne petlje "za" usporavaju brzinu obrade slike. Broj eksplicitnih petlji koje prolaze unutarnjom neuronskom mrežom smanjuje se sa svakom novom verzijom arhitekture, a učinjeno je na desetke drugih promjena kako bi se povećala brzina i zamijenio zadatak detekcije objekta segmentacijom objekta u Mask R-CNN-u.
  • Yolo (You Only Look Once) je prva neuronska mreža koja prepoznaje objekte u stvarnom vremenu na mobilnim uređajima. Posebna značajka: razlikovanje objekata u jednoj vožnji (samo jednom pogledajte). Odnosno, u YOLO arhitekturi nema eksplicitnih "for" petlji, zbog čega mreža radi brzo. Na primjer, ova analogija: u NumPyju, prilikom izvođenja operacija s matricama, također nema eksplicitnih petlji "za", koje su u NumPyju implementirane na nižim razinama arhitekture kroz programski jezik C. YOLO koristi mrežu unaprijed definiranih prozora. Kako bi se spriječilo višestruko definiranje istog objekta, koristi se koeficijent preklapanja prozora (IoU). Ikrižanje over Union). Ova arhitektura djeluje u širokom rasponu i ima visoku robusnost: Model se može uvježbavati na fotografijama, ali i dalje dobro funkcionira na ručno crtanim slikama.
  • SSD (Soganj Svrući MultiBox Detector) – koriste se najuspješniji “hackovi” YOLO arhitekture (primjerice, non-maximum suppression) i dodaju se novi kako bi neuronska mreža radila brže i točnije. Osobitost: razlikovanje objekata u jednom pokretanju pomoću zadane mreže prozora (zadani okvir) na slikovnoj piramidi. Piramida slike je kodirana u tenzorima konvolucije kroz uzastopne operacije konvolucije i združivanja (s operacijom maksimalnog združivanja, prostorna dimenzija se smanjuje). Na taj način se u jednoj mreži određuju i veliki i mali objekti.
  • MobileSSD (MobilniNetV2+ SSD) kombinacija je dvije arhitekture neuronske mreže. Prva mreža MobileNetV2 radi brzo i povećava točnost prepoznavanja. MobileNetV2 se koristi umjesto VGG-16, koji je izvorno korišten u Orginalni članak. Druga SSD mreža određuje položaj objekata na slici.
  • SqueezeNet – vrlo mala, ali precizna neuronska mreža. Sam po sebi ne rješava problem detekcije objekta. Međutim, može se koristiti u kombinaciji različitih arhitektura. I koristi se u mobilnim uređajima. Posebnost je da se podaci prvo sažimaju u četiri 1×1 konvolucijska filtra, a zatim proširuju u četiri 1×1 i četiri 3×3 konvolucijska filtra. Jedna takva iteracija kompresije-proširivanja podataka naziva se "Fire Module".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentacija objekata na slici. Osobitost arhitekture je dilatirana konvolucija, koja čuva prostornu rezoluciju. Nakon toga slijedi faza naknadne obrade rezultata pomoću grafičkog probabilističkog modela (uvjetno slučajno polje), koji vam omogućuje uklanjanje malog šuma u segmentaciji i poboljšanje kvalitete segmentirane slike. Iza strašnog imena "grafički probabilistički model" krije se konvencionalni Gaussov filtar, koji je aproksimiran s pet točaka.
  • Pokušao otkriti uređaj RefineDet (Jedan pucanj Rafiniratiment neuronske mreže za objekt toection), ali nisam mnogo razumio.
  • Također sam pogledao kako funkcionira tehnologija "pažnja": video1, video2, video3. Posebna značajka arhitekture "pozornosti" je automatski odabir područja povećane pažnje na slici (RoI, Regions of Interest) pomoću neuronske mreže nazvane Attention Unit. Područja povećane pozornosti slična su graničnim okvirima, ali za razliku od njih, nisu fiksirana na slici i mogu imati zamagljene granice. Zatim se iz područja povećane pozornosti izoliraju znakovi (osobine) koji se "hrane" rekurentnim neuronskim mrežama s arhitekturama LSDM, GRU ili Vanilla RNN. Rekurentne neuronske mreže mogu analizirati odnos značajki u nizu. Rekurentne neuronske mreže isprva su se koristile za prijevod teksta na druge jezike, a sada za prijevod slike u tekst и tekst u sliku.

Dok istražujemo te arhitekture Shvatio sam da ništa ne razumijem. I nije da moja neuronska mreža ima problema s mehanizmom pažnje. Stvaranje svih ovih arhitektura je kao neka vrsta ogromnog hackathona, gdje se autori natječu u hakiranju. Hack je brzo rješenje teškog softverskog problema. Odnosno, nema vidljive i razumljive logičke veze između svih tih arhitektura. Sve što ih povezuje je skup najuspješnijih hakova koje posuđuju jedni od drugih, plus jedan zajednički za sve operacija konvolucije zatvorene petlje (pogreška backpropagation, backpropagation). Ne sistemsko razmišljanje! Nije jasno što promijeniti i kako optimizirati postojeća postignuća.

Kao rezultat nedostatka logične veze između hakova, iznimno ih je teško zapamtiti i primijeniti u praksi. Ovo je fragmentirano znanje. U najboljem slučaju, zapamti se nekoliko zanimljivih i neočekivanih trenutaka, ali većina onoga što je razumljivo i neshvatljivo nestaje iz sjećanja u roku od nekoliko dana. Bilo bi dobro da se za tjedan dana sjetite barem imena arhitekture. Ali nekoliko sati, pa čak i dana radnog vremena potrošeno je na čitanje članaka i gledanje videozapisa s recenzijama!

Neuronske mreže. Kamo sve ovo ide?

Slika 2 – Zoološki vrt neuronskih mreža

Većina autora znanstvenih članaka, po mom osobnom mišljenju, čini sve da čitatelj ne razumije ni to fragmentirano znanje. Ali participne fraze u rečenicama od deset redaka s formulama koje su izvađene “iz zraka” tema su za poseban članak (problem objavljivati ​​ili propadati).

Iz tog razloga postoji potreba da se informacije sistematiziraju neuronskim mrežama i time povećaju kvalitetu razumijevanja i pamćenja. Stoga je glavna tema analize pojedinih tehnologija i arhitektura umjetnih neuronskih mreža bila sljedeća zadaća: saznati kamo sve to vodi, a ne uređaj bilo koje specifične neuronske mreže zasebno.

Kamo sve ovo ide? Glavni rezultati:

  • Broj pokretanja strojnog učenja u posljednje dvije godine naglo pala. Mogući razlog: "neuronske mreže više nisu nešto novo."
  • Svatko može stvoriti funkcionalnu neuronsku mrežu za rješavanje jednostavnog problema. Da biste to učinili, uzmite gotov model iz "modela zoološkog vrta" i trenirajte posljednji sloj neuronske mreže (transferno učenje) na gotovim podacima iz Google Dataset Search ili iz 25 tisuća Kaggle skupova podataka u slobodnom oblak Jupyter Notebook.
  • Počeli su stvarati veliki proizvođači neuronskih mreža "uzorni zoološki vrtovi" (model zoološkog vrta). Pomoću njih možete brzo izraditi komercijalnu aplikaciju: TF Hub za TensorFlow, MMDetekcija za PyTorch, detektron za Caffe2, lančanik-modelzoo za Chainer i drugi.
  • Neuronske mreže rade u stvarno vrijeme (u stvarnom vremenu) na mobilnim uređajima. Od 10 do 50 sličica u sekundi.
  • Korištenje neuronskih mreža u telefonima (TF Lite), u preglednicima (TF.js) i in Kućanski predmeti (IoT, Internet of Tšarke). Pogotovo u telefonima koji već podržavaju neuronske mreže na hardverskoj razini (neuralni akceleratori).
  • “Svaki uređaj, odjevni predmet, a možda čak i hrana će imati IP-v6 adresa i međusobno komunicirati" - Sebastian Thrun.
  • Broj publikacija o strojnom učenju počeo je rasti premašiti Mooreov zakon (udvostručuje se svake dvije godine) od 2015. Očito su nam potrebne 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.
    • Postupno smanjenje točnosti i povećanje brzine izračuna: Mutna logika, algoritmi pojačavanje, neegzaktni (približni) izračuni, kvantizacija (kada se težine neuronske mreže pretvaraju u cijele brojeve i kvantiziraju), neuronski akceleratori.
    • prijevod slike u tekst и tekst u sliku.
    • stvaranje XNUMXD objekti iz videa, sada u stvarnom vremenu.
    • Glavna stvar kod DL-a je da ima mnogo podataka, ali njihovo prikupljanje i označavanje nije lako. Stoga se razvija automatizacija označavanja (automatizirana anotacija) za neuronske mreže koje koriste neuronske mreže.
  • S neuronskim mrežama, računalna znanost je odjednom postala eksperimentalna znanost i ustao kriza ponovljivosti.
  • IT novac i popularnost neuronskih mreža pojavili su se istodobno kada je računalstvo postalo tržišna vrijednost. Ekonomija se mijenja iz ekonomije zlata i valute u zlatna-valuta-računalstvo. Pogledajte moj članak o ekonofizika i razlog pojave IT novca.

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

Neuronske mreže. Kamo sve ovo ide?

Slika 3 – ML/DL kao nova metodologija programiranja

Međutim, nikada se nije pojavio "teorija neuronske mreže", unutar kojeg se može razmišljati i sustavno raditi. Ono što se danas naziva "teorijom" zapravo su eksperimentalni, heuristički algoritmi.

Linkovi na moje i druge resurse:

Hvala vam!

Izvor: www.habr.com

Dodajte komentar