Neuronové sítě. kam to všechno spěje?

Článek se skládá ze dvou částí:

  1. Stručný popis některých síťových architektur pro detekci objektů v obrazech a segmentaci obrazu s pro mě nejsrozumitelnějšími odkazy na zdroje. Snažil jsem se volit videovysvětlivky a nejlépe v ruštině.
  2. Druhá část je pokusem o pochopení směru vývoje architektur neuronových sítí. A technologie na nich založené.

Neuronové sítě. kam to všechno spěje?

Obrázek 1 – Pochopení architektur neuronových sítí není snadné

Všechno to začalo vytvořením dvou demo aplikací pro klasifikaci a detekci objektů na telefonu Android:

  • Back-end demo, kdy jsou data zpracovávána na serveru a přenášena do telefonu. Klasifikace obrázků tří typů medvědů: hnědý, černý a plyšový.
  • Front-end demokdy jsou data zpracovávána v samotném telefonu. Detekce objektů (detekce objektů) tří typů: lískové ořechy, fíky a datle.

Je rozdíl mezi úlohami klasifikace obrazu, detekce objektů v obraze a segmentace obrazu. Proto bylo potřeba zjistit, které architektury neuronových sítí detekují objekty v obrazech a které dokážou segmentovat. Našel jsem následující příklady architektur s pro mě nejsrozumitelnějšími odkazy na zdroje:

  • Řada architektur založených na R-CNN (Rregiony s Convoluce Neural Nvlastnosti sítě): R-CNN, Fast R-CNN, Rychlejší R-CNN, Maska R-CNN. K detekci objektu v obraze se přidělují ohraničovací rámečky pomocí mechanismu sítě pro návrh regionu (RPN). Zpočátku se místo RPN používal pomalejší mechanismus selektivního vyhledávání. Poté jsou vybrané omezené oblasti přiváděny na vstup konvenční neuronové sítě pro klasifikaci. Architektura R-CNN má explicitní smyčky „for“ v omezených oblastech, celkem až 2000 XNUMX průchodů vnitřní sítí AlexNet. Explicitní smyčky „for“ zpomalují rychlost zpracování obrazu. Počet explicitních smyček procházejících vnitřní neuronovou sítí klesá s každou novou verzí architektury a jsou provedeny desítky dalších změn, které zvyšují rychlost a nahrazují úlohu detekce objektů segmentací objektů v Mask R-CNN.
  • Yolo (You OOUZE Look Once) je první neuronová síť, která rozpoznávala objekty v reálném čase na mobilních zařízeních. Rozlišovací vlastnost: rozlišení objektů v jednom běhu (stačí se podívat jednou). To znamená, že v architektuře YOLO nejsou žádné explicitní smyčky „for“, což je důvod, proč síť funguje rychle. Například tato analogie: v NumPy při provádění operací s maticemi také neexistují explicitní smyčky „for“, které jsou v NumPy implementovány na nižších úrovních architektury prostřednictvím programovacího jazyka C. YOLO používá mřížku předdefinovaných oken. Aby se zabránilo tomu, že stejný objekt bude definován vícekrát, použije se koeficient překrytí okna (IoU). Iprůsečík over Union). Tato architektura funguje v širokém rozsahu a má vysokou robustnost: Model může být trénován na fotografiích, ale stále dobře funguje na ručně kreslených obrazech.
  • SSD (Single Shorký MultiBox Dector) – používají se nejúspěšnější „hacky“ architektury YOLO (například nemaximální potlačení) a přibývají nové, aby neuronová síť fungovala rychleji a přesněji. Charakteristický rys: rozlišení objektů v jednom běhu pomocí dané mřížky oken (výchozí pole) na obrázkové pyramidě. Obrazová pyramida je zakódována v tenzorech konvoluce prostřednictvím po sobě jdoucích operací konvoluce a sdružování (s operací max-poolingu se prostorový rozměr zmenšuje). Tímto způsobem jsou v jednom síťovém běhu určeny velké i malé objekty.
  • MobileSSD (Mobilní aplikaceNetV2+ SSD) je kombinací dvou architektur neuronové sítě. První síť MobileNetV2 funguje rychle a zvyšuje přesnost rozpoznávání. MobileNetV2 se používá místo VGG-16, který byl původně používán v Původní článek. Druhá SSD síť určuje umístění objektů v obraze.
  • SqueezeNet – velmi malá, ale přesná neuronová síť. Samo o sobě neřeší problém detekce objektů. Lze jej však použít v kombinaci různých architektur. A používá se v mobilních zařízeních. Charakteristickým rysem je, že data jsou nejprve komprimována do čtyř konvolučních filtrů 1×1 a poté rozšířena do čtyř konvolučních filtrů 1×1 a čtyř 3×3. Jedna taková iterace komprese a expanze dat se nazývá „Fire Module“.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – segmentace objektů v obraze. Charakteristickým rysem architektury je dilatovaná konvoluce, která zachovává prostorové rozlišení. Následuje fáze následného zpracování výsledků pomocí grafického pravděpodobnostního modelu (podmíněné náhodné pole), které umožňuje odstranit malý šum v segmentaci a zlepšit kvalitu segmentovaného obrazu. Za hrozivým názvem „grafický pravděpodobnostní model“ se skrývá konvenční Gaussův filtr, který je aproximován pěti body.
  • Pokusil se přijít na to zařízení RefineDet (Jediný výstřel Vylepšitment neuronové sítě pro objekt Detsekce), ale moc jsem tomu nerozuměl.
  • Podíval jsem se také na to, jak funguje technologie „pozornosti“: video1, video2, video3. Charakteristickým rysem architektury „pozornosti“ je automatický výběr oblastí zvýšené pozornosti na snímku (RoI, Regions of Interest) pomocí neuronové sítě zvané Attention Unit. Oblasti zvýšené pozornosti jsou podobné ohraničujícím rámečkům, ale na rozdíl od nich nejsou v obraze fixní a mohou mít rozmazané hranice. Poté jsou z oblastí zvýšené pozornosti izolovány znaky (vlastnosti), které jsou „přiváděny“ do opakujících se neuronových sítí s architekturami LSDM, GRU nebo Vanilla RNN. Rekurentní neuronové sítě jsou schopny analyzovat vztah prvků v sekvenci. Rekurentní neuronové sítě byly zpočátku používány k překladu textu do jiných jazyků a nyní k překladu obrázky na text и text na obrázek.

Když prozkoumáme tyto architektury Uvědomil jsem si, že ničemu nerozumím. A není to tak, že by moje neuronová síť měla problémy s mechanismem pozornosti. Tvorba všech těchto architektur je jako nějaký obrovský hackathon, kde se autoři předhánějí v hackech. Hack je rychlé řešení složitého softwarového problému. To znamená, že mezi všemi těmito architekturami neexistuje žádná viditelná a srozumitelná logická souvislost. Spojuje je pouze soubor nejúspěšnějších hacků, které si navzájem půjčují, plus jeden společný pro všechny operace konvoluce s uzavřenou smyčkou (chyba zpětné šíření, zpětné šíření). Ne systémové myšlení! Není jasné, co změnit a jak optimalizovat stávající úspěchy.

V důsledku chybějící logické souvislosti mezi hacky je extrémně obtížné si je zapamatovat a aplikovat v praxi. Jedná se o roztříštěné znalosti. V lepším případě se zapamatuje pár zajímavých a nečekaných momentů, ale většina toho, co je pochopeno a nepochopitelné, během pár dní zmizí z paměti. Bude dobré, když si za týden zapamatujete alespoň název architektury. Ale několik hodin a dokonce dní pracovní doby jsme strávili čtením článků a sledováním videí s recenzemi!

Neuronové sítě. kam to všechno spěje?

Obrázek 2 - Zoo neuronových sítí

Většina autorů vědeckých článků podle mého osobního názoru dělá vše pro to, aby ani tyto roztříštěné poznatky čtenář nepochopil. Ale participiální fráze v desetiřádkových větách se vzorci, které jsou převzaty „z ničeho“, jsou tématem na samostatný článek (problém publikovat nebo zahynout).

Z tohoto důvodu je potřeba systematizovat informace pomocí neuronových sítí a tím zvýšit kvalitu porozumění a zapamatování. Hlavním tématem analýzy jednotlivých technologií a architektur umělých neuronových sítí byl proto následující úkol: zjistit, kam to všechno směřuje, a nikoli zařízení jakékoli konkrétní neuronové sítě samostatně.

kam to všechno spěje? Hlavní výsledky:

  • Počet startů strojového učení za poslední dva roky prudce klesla. Možný důvod: "neuronové sítě již nejsou něčím novým."
  • Každý může vytvořit fungující neuronovou síť k vyřešení jednoduchého problému. Chcete-li to provést, vezměte si hotový model z „modelové zoo“ a natrénujte poslední vrstvu neuronové sítě (přenos učení) na hotových datech z Hledání datové sady Google nebo z 25 tisíc datových sad Kaggle zdarma cloudový notebook Jupyter.
  • Začali tvořit velcí výrobci neuronových sítí "modelové zoologické zahrady" (model zoo). Pomocí nich můžete rychle vytvořit komerční aplikaci: TF Hub pro TensorFlow, MMDdetekce pro PyTorch, Detektron pro Caffe2, řetězař-modelzoo pro Chainer a ostatní.
  • Pracující neuronové sítě v reálném čase (v reálném čase) na mobilních zařízeních. Od 10 do 50 snímků za sekundu.
  • Využití neuronových sítí v telefonech (TF Lite), v prohlížečích (TF.js) a v domácí potřeby (IoT, Internet of Tpanty). Zejména v telefonech, které již na hardwarové úrovni podporují neuronové sítě (neurální akcelerátory).
  • „Každý přístroj, kus oblečení a možná i jídlo bude mít Adresa IP-v6 a komunikovat spolu" - Sebastian Thrun.
  • Počet publikací o strojovém učení začal růst překročit Moorův zákon (zdvojnásobuje se každé dva roky) od roku 2015. Je zřejmé, že pro analýzu článků potřebujeme neuronové sítě.
  • Následující technologie získávají na popularitě:
    • PyTorch – popularita rychle roste a zdá se, že předbíhá TensorFlow.
    • Automatický výběr hyperparametrů AutoML – popularita plynule roste.
    • Postupné snížení přesnosti a zvýšení rychlosti výpočtu: fuzzy logika, algoritmy posilování, nepřesné (přibližné) výpočty, kvantování (kdy se váhy neuronové sítě převádějí na celá čísla a kvantují), neuronové akcelerátory.
    • Překlad obrázky na text и text na obrázek.
    • tvorba XNUMXD objekty z videa, nyní v reálném čase.
    • U DL je hlavní, že dat je hodně, ale sbírat a označovat je není jednoduché. Proto se vyvíjí automatizace značkování (automatická anotace) pro neuronové sítě využívající neuronové sítě.
  • S neuronovými sítěmi se počítačová věda náhle stala experimentální věda a povstal krize reprodukovatelnosti.
  • Peníze na IT a popularita neuronových sítí se objevily současně, když se výpočetní technika stala tržní hodnotou. Ekonomika se mění ze zlata a měny na ekonomiku gold-currency-computing. Viz můj článek na ekonomie a důvod vzhledu IT peněz.

Postupně se objeví nový Metodika programování ML/DL (Machine Learning & Deep Learning), který je založen na reprezentaci programu jako sady trénovaných modelů neuronové sítě.

Neuronové sítě. kam to všechno spěje?

Obrázek 3 – ML/DL jako nová metodika programování

Nikdy se to však neobjevilo "teorie neuronových sítí", v rámci kterého lze systematicky přemýšlet a pracovat. To, co se nyní nazývá „teorie“, jsou ve skutečnosti experimentální, heuristické algoritmy.

Odkazy na mé a další zdroje:

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

Zdroj: www.habr.com

Přidat komentář