Neurálne siete. Kam to všetko speje?

Článok sa skladá z dvoch častí:

  1. Stručný popis niektorých sieťových architektúr na detekciu objektov v obrázkoch a segmentáciu obrázkov s pre mňa najzrozumiteľnejšími odkazmi na zdroje. Snažil som sa vybrať video vysvetlivky a najlepšie v ruštine.
  2. Druhá časť je pokusom pochopiť smer vývoja architektúr neurónových sietí. A technológie na nich založené.

Neurálne siete. Kam to všetko speje?

Obrázok 1 – Pochopenie architektúry neurónových sietí nie je jednoduché

Všetko to začalo vytvorením dvoch demo aplikácií na klasifikáciu a detekciu objektov na telefóne s Androidom:

  • Back-end demo, keď sa údaje spracúvajú na serveri a prenášajú do telefónu. Klasifikácia obrázkov troch typov medveďov: hnedý, čierny a plyšový.
  • Front-end demokeď sa údaje spracúvajú v samotnom telefóne. Detekcia objektov (detekcia objektov) troch typov: lieskové orechy, figy a datle.

Je rozdiel medzi úlohami klasifikácie obrazu, detekcie objektov v obraze a segmentácia obrazu. Preto bolo potrebné zistiť, ktoré architektúry neurónových sietí detegujú objekty na obrázkoch a ktoré dokážu segmentovať. Našiel som nasledujúce príklady architektúr s pre mňa najzrozumiteľnejšími odkazmi na zdroje:

  • Séria architektúr založených na R-CNN (Rregióny s Convolúcia Neur Nvlastnosti siete): R-CNN, Fast R-CNN, Rýchlejšie R-CNN, Maska R-CNN. Na detekciu objektu v obraze sa prideľujú ohraničovacie rámčeky pomocou mechanizmu RPN (Region Offer Network). Spočiatku sa namiesto RPN používal pomalší mechanizmus selektívneho vyhľadávania. Potom sa vybrané obmedzené oblasti privedú na vstup konvenčnej neurónovej siete na klasifikáciu. Architektúra R-CNN má explicitné „for“ slučky v obmedzených oblastiach, celkovo až 2000 XNUMX prebehne cez internú sieť AlexNet. Explicitné slučky „for“ spomaľujú rýchlosť spracovania obrazu. Počet explicitných slučiek bežiacich cez internú neurónovú sieť klesá s každou novou verziou architektúry a desiatky ďalších zmien sa robia na zvýšenie rýchlosti a nahradenie úlohy detekcie objektov segmentáciou objektov v Maske R-CNN.
  • Yolo (You Oouzom Look Once) je prvá neurónová sieť, ktorá rozpoznávala objekty v reálnom čase na mobilných zariadeniach. Rozlišovacia vlastnosť: rozlíšenie predmetov v jednom chode (stačí sa pozrieť raz). To znamená, že v architektúre YOLO neexistujú žiadne explicitné slučky „for“, a preto sieť funguje rýchlo. Napríklad táto analógia: v NumPy pri operáciách s maticami tiež neexistujú explicitné slučky „for“, ktoré sú v NumPy implementované na nižších úrovniach architektúry prostredníctvom programovacieho jazyka C. YOLO používa mriežku preddefinovaných okien. Aby sa zabránilo viacnásobnému definovaniu rovnakého objektu, používa sa koeficient prekrytia okna (IoU). Ikrižovatka over Union). Táto architektúra funguje v širokom rozsahu a má vysokú robustnosť: Model môže byť trénovaný na fotografiách, ale stále dobre funguje na ručne kreslených obrazoch.
  • SSD (Splameň Shorúci MultiBox Dector) – používajú sa najúspešnejšie „hacky“ architektúry YOLO (napríklad nemaximálne potlačenie) a pribúdajú nové, aby neurónová sieť fungovala rýchlejšie a presnejšie. Charakteristická vlastnosť: rozlíšenie objektov v jednom chode pomocou danej mriežky okien (predvolené pole) na obrázkovej pyramíde. Obrazová pyramída je zakódovaná do konvolučných tenzorov prostredníctvom po sebe nasledujúcich operácií konvolúcie a spájania (s operáciou maximálneho spájania sa priestorový rozmer zmenšuje). Týmto spôsobom sú v jednom sieťovom behu určené veľké aj malé objekty.
  • MobileSSD (MobilnéNetV2+ SSD) je kombináciou dvoch architektúr neurónových sietí. Prvá sieť MobileNetV2 funguje rýchlo a zvyšuje presnosť rozpoznávania. MobileNetV2 sa používa namiesto VGG-16, ktorý sa pôvodne používal v pôvodný článok. Druhá sieť SSD určuje umiestnenie objektov v obraze.
  • SqueezeNet – veľmi malá, ale presná neurónová sieť. Sama o sebe nerieši problém detekcie objektov. Dá sa však použiť v kombinácii rôznych architektúr. A používa sa v mobilných zariadeniach. Charakteristickou črtou je, že dáta sú najprv komprimované do štyroch konvolučných filtrov 1×1 a potom rozšírené do štyroch konvolučných filtrov 1×1 a štyroch 3×3. Jedna z takýchto iterácií expanzie kompresie údajov sa nazýva „Fire Module“.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentácia objektov v obraze. Výraznou črtou architektúry je rozšírená konvolúcia, ktorá zachováva priestorové rozlíšenie. Potom nasleduje fáza následného spracovania výsledkov pomocou grafického pravdepodobnostného modelu (podmienené náhodné pole), ktoré umožňuje odstrániť malý šum v segmentácii a zlepšiť kvalitu segmentovaného obrazu. Za impozantným názvom „grafický pravdepodobnostný model“ sa skrýva konvenčný Gaussov filter, ktorý je aproximovaný piatimi bodmi.
  • Pokúsil sa zistiť zariadenie RefineDet (Jeden výstrel zjemniťment neurónovej siete pre objekt detčasť), ale veľa som tomu nerozumel.
  • Tiež som sa pozrel na to, ako funguje technológia „pozornosti“: video1, video2, video3. Charakteristickým rysom architektúry „pozornosti“ je automatický výber oblastí zvýšenej pozornosti v obraze (ROI, Regions of Interest) pomocou neurónovej siete nazývanej Attention Unit. Oblasti zvýšenej pozornosti sú podobné ohraničujúcim rámčekom, ale na rozdiel od nich nie sú na obrázku fixované a môžu mať rozmazané hranice. Potom sa z oblastí zvýšenej pozornosti izolujú znaky (vlastnosti), ktoré sa „napájajú“ na opakujúce sa neurónové siete s architektúrami LSDM, GRU alebo Vanilla RNN. Rekurentné neurónové siete sú schopné analyzovať vzťah prvkov v sekvencii. Rekurentné neurónové siete sa pôvodne používali na preklad textu do iných jazykov a teraz na preklad obrázky na text и text na obrázok.

Keď skúmame tieto architektúry Uvedomil som si, že ničomu nerozumiem. A nie je to tak, že by moja neurónová sieť mala problémy s mechanizmom pozornosti. Tvorba všetkých týchto architektúr je ako nejaký obrovský hackathon, kde autori súťažia v hackoch. Hack je rýchle riešenie zložitého softvérového problému. To znamená, že medzi všetkými týmito architektúrami neexistuje žiadne viditeľné a pochopiteľné logické prepojenie. Spája ich iba súbor najúspešnejších hackov, ktoré si navzájom požičiavajú, plus jeden spoločný pre všetkých operácia konvolúcie v uzavretej slučke (chyba backpropagation, backpropagation). Nie systémové myslenie! Nie je jasné, čo zmeniť a ako optimalizovať existujúce úspechy.

V dôsledku chýbajúceho logického prepojenia medzi hackmi je mimoriadne ťažké ich zapamätať a aplikovať v praxi. Ide o roztrieštené poznatky. V lepšom prípade sa zapamätá niekoľko zaujímavých a nečakaných momentov, no väčšina pochopeného a nepochopiteľného sa v priebehu niekoľkých dní vytratí z pamäti. Bude dobré, ak si o týždeň zapamätáte aspoň názov architektúry. Ale niekoľko hodín a dokonca dní pracovného času sme strávili čítaním článkov a pozeraním recenzií videí!

Neurálne siete. Kam to všetko speje?

Obrázok 2 – Zoo neurónových sietí

Väčšina autorov vedeckých článkov podľa môjho osobného názoru robí všetko pre to, aby ani tieto roztrieštené poznatky čitateľ nepochopil. Ale participiálne frázy v desiatich riadkových vetách so vzorcami, ktoré sú prevzaté „z ničoho nič“ sú témou na samostatný článok (problém publikovať alebo zahynúť).

Z tohto dôvodu je potrebné systematizovať informácie pomocou neurónových sietí a tým zvýšiť kvalitu porozumenia a zapamätania. Hlavnou témou analýzy jednotlivých technológií a architektúr umelých neurónových sietí bola preto nasledujúca úloha: zistiť, kam to všetko smerujea nie zariadenie žiadnej konkrétnej neurónovej siete samostatne.

kam to všetko speje? Hlavné výsledky:

  • Počet spustení strojového učenia za posledné dva roky prudko klesla. Možný dôvod: "neurónové siete už nie sú niečím novým."
  • Ktokoľvek môže vytvoriť fungujúcu neurónovú sieť na vyriešenie jednoduchého problému. Ak to chcete urobiť, vezmite si hotový model z „modelovej zoo“ a natrénujte poslednú vrstvu neurónovej siete (prenos učenia) na hotových údajoch z Google Dataset Search alebo z 25 tisíc dátových súborov Kaggle zadarmo cloudový notebook Jupyter.
  • Začali sa vytvárať veľkí výrobcovia neurónových sietí "modelové zoologické záhrady" (model zoo). Pomocou nich môžete rýchlo vytvoriť komerčnú aplikáciu: TF Hub pre TensorFlow, MMD detekcia pre PyTorch, Detektrón pre Caffe2, reťazár-modelzoo pre Chainer a ostatné.
  • Pracujúce neurónové siete reálny čas (v reálnom čase) na mobilných zariadeniach. Od 10 do 50 snímok za sekundu.
  • Využitie neurónových sietí v telefónoch (TF Lite), v prehliadačoch (TF.js) a v domáce potreby (IoT, INTERNET of Tpánty). Najmä v telefónoch, ktoré už na hardvérovej úrovni podporujú neurónové siete (neurálne akcelerátory).
  • „Každý prístroj, kus oblečenia a možno aj jedlo bude mať Adresa IP-v6 a komunikovať medzi sebou“ - Sebastian Thrun.
  • Počet publikácií o strojovom učení začal rásť prekročiť Moorov zákon (zdvojnásobenie každé dva roky) od roku 2015. Je zrejmé, že na analýzu článkov potrebujeme neurónové siete.
  • Nasledujúce technológie získavajú na popularite:
    • PyTorch – popularita rýchlo rastie a zdá sa, že predbieha TensorFlow.
    • Automatický výber hyperparametrov AutoML - popularita plynulo rastie.
    • Postupné znižovanie presnosti a zvyšovanie rýchlosti výpočtu: fuzzy logika, algoritmy posilňovanie, nepresné (približné) výpočty, kvantovanie (keď sa váhy neurónovej siete prevedú na celé čísla a kvantujú), neurónové urýchľovače.
    • preklad obrázky na text и text na obrázok.
    • tvorba XNUMXD objekty z videa, teraz v reálnom čase.
    • Pri DL ide hlavne o to, že údajov je veľa, ale ich zber a označenie nie je jednoduché. Preto sa vyvíja automatizácia značkovania (automatizovaná anotácia) pre neurónové siete využívajúce neurónové siete.
  • S neurónovými sieťami sa počítačová veda náhle stala experimentálna veda a vznikol kríza reprodukovateľnosti.
  • IT peniaze a popularita neurónových sietí sa objavili súčasne, keď sa výpočtová technika stala trhovou hodnotou. Ekonomika sa mení z ekonomiky zlata a meny na gold-currency-computing. Pozri môj článok na ekonofyziky a dôvod vzhľadu IT peňazí.

Postupne sa objaví nový Metodika programovania ML/DL (Machine Learning & Deep Learning), ktorý je založený na reprezentácii programu ako súboru trénovaných modelov neurónovej siete.

Neurálne siete. Kam to všetko speje?

Obrázok 3 – ML/DL ako nová metodológia programovania

Nikdy sa to však neobjavilo "teória neurónových sietí", v rámci ktorej sa dá premýšľať a pracovať systematicky. To, čo sa dnes nazýva „teória“, sú v skutočnosti experimentálne heuristické algoritmy.

Odkazy na moje a iné zdroje:

Ďakujem vám za pozornosť!

Zdroj: hab.com

Pridať komentár