Neurális hálózatok. Merre halad ez az egész?

A cikk két részből áll:

  1. Rövid leírás néhány architektúráról, amely a képek objektumfelismerésére és a képek szegmentálására vonatkozik, a számomra legérthetőbb hivatkozásokkal. Megpróbáltam videómagyarázatokat választani, lehetőleg orosz nyelven.
  2. A második rész azt próbálja megérteni, hogy merre fejlődnek a neurális hálózatok architektúrái és a rájuk épülő technológiák.

Neurális hálózatok. Merre halad ez az egész?

1. ábra – A neurális hálózatok architektúráinak megértése nem egyszerű

Minden azzal kezdődött, hogy két bemutatóalkalmazást készítettem képosztályozásra és objektumfelismerésre Android telefonon:

  • Back-end demo, amikor az adatok a szerveren kerülnek feldolgozásra és átkerülnek a telefonra. Háromféle medve képosztályozása: barna, fekete és plüss.
  • Front-end demo, amikor az adatok magán a telefonon kerülnek feldolgozásra. Háromféle objektumfelismerés: mogyoró, füge és datolya.

Különbség van a képosztályozási feladatok, a képeken történő objektumfelismerés és a képek szegmentálása. Ezért felmerült az igény, hogy megtudjam, mely neurális hálózati architektúrák ismerik fel az objektumokat a képeken és melyek tudják szegmentálni. A következő architektúrák példáit találtam, a számomra legérthetőbb hivatkozásokkal:

  • R-CNN alapú architektúrák sorozata (Regions with Convolution Neural Networks features): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. A képeken történő objektumfelismeréshez a Region Proposal Network (RPN) mechanizmus segítségével korlátozott régiókat (bounding boxes) határoznak meg. Kezdetben lassabb Selective Search mechanizmust alkalmaztak az RPN helyett. Azután a kiemelt korlátozott régiókat egy hagyományos neurális hálózat bemenetére küldik osztályozásra. Az R-CNN architektúrában egyértelmű "for" ciklusok vannak az egyes korlátozott régiók átvizsgálására, összesen akár 2000 iteráció az AlexNet belső hálózaton. Az egyértelmű "for" ciklusok miatt csökken a képek feldolgozási sebessége. Minden új architektúra verzióval csökken az egyértelmű ciklusok, a belső neurális hálózaton való átmenetek száma, és sok egyéb változást végeznek a sebesség növelésére, valamint a tárgyak észlelésének feladatát a Mask R-CNN-ben történő objektum-szegmentációra történő átkonvertálásra.
  • YOLO (You Only Look OA YOLO (You Only Look Once) – az első neurális hálózat, amely valós időben képes azonosítani a tárgyakat mobil eszközökön. Különleges jellemzője: a tárgyak egyetlen átfutással történő megkülönböztetése (elég egyszer ránézni). Ezért a YOLO architektúrában nincsenek kifejezett „for” ciklusok, ami gyors működést eredményez. Például, hasonló a NumPy-hoz, ahol a mátrix műveletek során sincsenek kifejezett „for” ciklusok, ezeket a NumPy alacsonyabb szintű architektúrájában a C programozási nyelv valósítja meg. A YOLO előre meghatározott ablakokból álló rácsot használ. Annak érdekében, hogy ugyanazt a tárgyat ne azonosítsák többször, átfedési együtthatót (IoU) alkalmaznak. Imetsződés ) között. Ezután használ egy operátort a jogosultságok hozzáadására vagy eltávolítására az aktuális módból, vagy abszolút jogokat állít be.unió. UEz az architektúra széles skálán működik és magas robusztussággal: a modell fényképeken tanulható, de jól működik rajzolt képeken is.
  • SSD (SEgységes SMultiBox Megelőző Ddetektor) – a YOLO architektúrájának legjobban sikerült „hackjeit” alkalmazzák, például a nem maximális visszaszorítást, és újakat adnak hozzá, hogy a neurális hálózat gyorsabban és pontosabban működjön. Különleges jellemzője: a tárgyak megkülönböztetése egy átfutással az előre meghatározott ablakok (default box) segítségével képkocka piramisokon. A képet piramisokban kódolják konvolúciós tenzorokkal a sorozatos konvolúciós és max-pooling műveletek során (max-pooling műveletnél a térbeli dimenzió csökken). Így egyszerre határozhatók meg a nagy és a kis tárgyak.
  • MobileSSD (MobileNetV2 + SSD) – két neurális hálózat architektúrájának kombinációja. Az első hálózat MobileNetV2 gyorsan működik és növeli az azonosítás pontosságát. A MobileNetV2 a VGG-16-ot helyettesíti, amelyet eredetileg használtak a eredeti cikkben. A második hálózat az SSD határozza meg a tárgyak helyét a képen.
  • SqueezeNet – nagyon kicsi, de pontos neurális hálózat. Önmagában nem oldja meg a tárgyak azonosítását. De különböző architektúrák kombinálásával alkalmazható. Használható mobil eszközökben is. Különleges jellemzője, hogy először az adatokat négy 1×1-es konvolúciós szűrőre tömörítik, majd négy 1×1-es és négy 3×3-as konvolúciós szűrőre bővítik. Ezt a tömörítési-bővítési iterációt „Fire Module”-nak nevezik.
  • DeepLab (A mély konvolúciós hálózatokkal végzett szemantikus képszegmentálás) – objektumok szegmentálása a képen. Az architektúra jellegzetessége a ritkított (dilated convolution) convolúció, amely megőrzi a térbeli felbontást. Ezt követi a szegmentálási eredmények utómunkálata egy grafikus valószínűségi modell (conditional random field) alkalmazásával, amely eltávolítja a kis zajokat a szegmentációból, és javítja a szegmentált kép minőségét. A „grafikus valószínűségi modell” mögött egy szokásos Gauss-szűrő rejtőzik, amelyet öt pont körüli közelítéssel alakítottak ki.
  • Próbáltam megérteni a felépítését RefineDet (Single-Shot Refinement Neurális Hálózat az Objektum Detekcióhoz), de alig értettem meg valamit.
  • Azt is megnéztem, hogyan működik a figyelmi technológia (attention): video1, video2, video3. Az architektúra „figyelem” sajátossága a figyelem kiemelt régióinak automatikus meghatározása a képen (RoI, Rérdeklődési ) között. Ezután használ egy operátort a jogosultságok hozzáadására vagy eltávolítására az aktuális módból, vagy abszolút jogokat állít be.f Iegiók) egy Attention Unit nevű neurális háló segítségével. A kiemelt figyelmi régiók hasonlítanak a korlátozott régiókra (bounding boxes), de ellentétben azokkal nem rögzítettek a képen, és elmosódott határvonalakkal rendelkezhetnek. Ezután a kiemelt figyelmi régiókból jellemzők (fichák) kerülnek kiemelésre, amelyeket visszaeső neurális hálózatokhoz „táplálnak”, olyan architektúrákkal, mint LSDM, GRU vagy Vanilla RNN. A visszaeső neurális hálózatok képesek elemezni a jellemzők közötti kapcsolatokat a sorozatban. A visszaeső neurális hálózatokat kezdetben más nyelvekre történő szövegek fordítására alkalmazták, most pedig a képek szöveggé történő fordítására és szövegek képpé alakítására.

A fenti architektúrák tanulmányozása során rájöttem, hogy semmit nem értek.. Nem arról van szó, hogy a neurális hálómnak problémái vannak a figyelem mechanizmusával. Az összes architektúra létrehozása egy óriási hackathonra hasonlít, ahol a szerzők a hackekben versenyeznek. A hack (hack) egy nehéz programozási probléma gyors megoldása. Tehát ezek között az architektúrák között nincs látható és érthető logikai kapcsolat. Ami összeköti őket, az a legjobb hackek gyűjteménye, amelyeket egymástól kölcsönöznek, plusz az összes felhasználó számára közös fordítási művelet visszacsatolással (visszaterjedés, backpropagation). Nincs rendszerszemlélet! Nem világos, hogy mit kell változtatni és hogyan optimalizálni a meglévő eredményeket.

Azoknak a hackeknek a logikai összefüggésének hiánya miatt rendkívül nehéz őket megjegyezni és a gyakorlatban alkalmazni. Ezek fragmentált ismeretek. Legjobb esetben néhány érdekes és váratlan pillanat megmarad, de a megértett és meg nem értett többsége már néhány nap után eltűnik az emlékezetből. Jó lenne, ha legalább az architektúra neve eszébe jutna egy hét elteltével. Pedig a cikkek olvasására és a bemutató videók megtekintésére órákat, sőt napokat költöttek!

Neurális hálózatok. Merre halad ez az egész?

2. ábra – A neurális hálózatok állatkertje

Személyes véleményem szerint a tudományos cikkek szerzői mindent megtesznek annak érdekében, hogy még ezek a fragmentált ismeretek is érthetetlenek maradjanak az olvasó számára. De a gerund formák tíz soros mondatokban, amelyek képletei a „pókhálóból” származnak – ez egy másik cikk témája (probléma publish or perish).

Ezért vált szükségessé a neurális hálózatokkal kapcsolatos információk rendszerezése és ezáltal a megértés és emlékezés minőségének növelése. Ezért az egyes mesterséges neurális hálózatok technológiáinak és architektúráinak elemzésének fő témájává vált a következő kérdés: tudni, hová halad ez az egész, nem pedig egy konkrét neurális hálózat felépítése külön-külön.

Hová halad ez az egész. Főbb eredmények:

  • Az elmúlt két évben a gépi tanulás területén a startupok száma drámaian csökkent. Lehetséges oka: „a neurális hálózatok már nem újdonság.”
  • Mindenki létrehozhat egy működő neurális hálózatot egy egyszerű feladat megoldására. Ehhez egy készen álló modellt vesz a „modellek állatkertjéből” (model zoo) és megtréneli a neurális hálózat utolsó rétegét (transfer learning) a készen álló adatokon keresztül Google Dataset Search vagy 25 ezer Kaggle adatbázisban ingyenes Jupyter Notebook felhőben..
  • A nagy neurális hálózat gyártók elkezdtek létrehozni „modellek állatkertjeit” (model zoo). Ezek segítségével gyorsan létezik kereskedelmi alkalmazás: TF Hub a TensorFlow-hoz, MMDetection a PyTorch-hoz, Detectron a Caffe2-höz, chainer-modelzoo a Chainer-hez és egyéb.
  • Valós időben működő neurális hálózatok (real-time) mobil eszközökön. 10-50 képkocka másodpercenként. Neurális hálózatok alkalmazása telefonokban (TF Lite), böngészőkben (TF.js) és
  • háztartási eszközökben (IoT, internet Idolgok). Különösen a telefonokban, amelyek már „hardveres” szinten is támogatják a neurális hálózatokat (neuroaccelerátorok). ) között. Ezután használ egy operátort a jogosultságok hozzáadására vagy eltávolítására az aktuális módból, vagy abszolút jogokat állít be.f Tkülönösen azokban a telefonokban, amelyek már támogatják a mesterséges intelligenciát "hardver" szinten (idegprocesszorok).
  • «Minden eszköz, ruhadarab és esetleg még az étel is rendelkezni fog IP-v6 címmel és kommunikálni fog egymással» – Sebastian Thrun.
  • A gépi tanulással kapcsolatos publikációk száma kezdte túllépni a Moore-törvényt (kétévenkénti megduplázódás) 2015 óta. Nyilvánvalóan szükség van cikk-elemző neurális hálózatokra.
  • A következő technológiák népszerűsége növekszik:
    • PyTorch – a népszerűség gyorsan növekszik, és úgy tűnik, hogy már megelőzi a TensorFlow-t.
    • Automatikus hiperparaméter-keresés AutoML – a népszerűség fokozatosan növekszik.
    • A pontosság fokozatos csökkenése és a számítási sebesség növekedése: homályos logika, algoritmusok boosting, imprecíz (megközelítő) számítások, kvantálás (amikor a neurális hálózat súlyait egész számokba konvertálják és kvantálják), neurális gyorsítók.
    • Fordítás képek szöveggé történő fordítására és szövegek képpé alakítására.
    • Módszer kidolgozása háromdimenziós objektumok a videón, már valós időben.
    • A DL-ben a lényeg a sok adat, de azokat összegyűjteni és címkézni nem könnyű. Ezért fejlődik az automatizált címkézés (automated annotation) neurális hálózatok számára neurális hálózatok segítségével.
  • A neurális hálózatokkal a Számítástechnika hirtelen kísérleti tudománnyá vált és megjelent a reprodukálhatóság válsága.
  • Az IT-pénz és a neurális hálózatok népszerűsége egyszerre jelent meg, amikor a számítások piaci értékké váltak. A gazdaság az aranyvalutából arany-valuta-számítástechnikatáplálékká válik. Nézd meg a cikkemet a kónofizikáról és az IT-pénz megjelenésének okáról.

Fokozatosan megjelenik egy új ML/DL programozási metodológia (Gépi Tanulás & Mély Tanulás), amely a programot mint a betanított neurális hálózati modellek összességét képzeli el.

Neurális hálózatok. Merre halad ez az egész?

3. ábra – ML/DL mint új programozási metodológia

Azonban nem jelent meg a «neurális hálózatok elmélete», amely keretében lehetne rendszerszemléletben gondolkodni és dolgozni. Ami most elméletként van említve, az valójában kísérleti, heurisztikus algoritmusok.

Hivatkozások az én és más forrásokhoz:

Köszönöm a figyelmet!

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster