Xarxes neuronals. On va tot això?

L'article consta de dues parts:

  1. Una breu descripció d'algunes arquitectures de xarxa per a la detecció d'objectes en imatges i la segmentació d'imatges amb els enllaços més comprensibles als recursos per a mi. He intentat triar explicacions de vídeo i preferiblement en rus.
  2. La segona part és un intent d'entendre la direcció del desenvolupament de les arquitectures de xarxes neuronals. I tecnologies basades en elles.

Xarxes neuronals. On va tot això?

Figura 1 - Entendre les arquitectures de xarxes neuronals no és fàcil

Tot va començar fent dues aplicacions de demostració per a la classificació i detecció d'objectes en un telèfon Android:

  • Demo de fons, quan les dades es processen al servidor i es transmeten al telèfon. Classificació d'imatges de tres tipus d'ós: marró, negre i peluix.
  • Demo frontalquan les dades es processen al mateix telèfon. Detecció d'objectes (detecció d'objectes) de tres tipus: avellanes, figues i dàtils.

Hi ha una diferència entre les tasques de classificació d'imatges, detecció d'objectes en una imatge i segmentació de la imatge. Per tant, era necessari esbrinar quines arquitectures de xarxes neuronals detecten objectes a les imatges i quines poden segmentar. He trobat els següents exemples d'arquitectures amb els enllaços més comprensibles als recursos per a mi:

  • Una sèrie d'arquitectures basades en R-CNN (Rregions amb Convolució Neural NFuncions d'eworks): R-CNN, R-CNN ràpid, R-CNN més ràpid, Màscara R-CNN. Per detectar un objecte en una imatge, els quadres delimitadors s'assignen mitjançant el mecanisme de la xarxa de propostes de regió (RPN). Inicialment, es va utilitzar el mecanisme de cerca selectiva més lent en lloc de RPN. A continuació, les regions limitades seleccionades s'alimenten a l'entrada d'una xarxa neuronal convencional per a la seva classificació. L'arquitectura R-CNN té bucles "for" explícits en regions limitades, amb un total de fins a 2000 execucions a través de la xarxa interna d'AlexNet. Els bucles "for" explícits frenen la velocitat de processament d'imatges. El nombre de bucles explícits que s'executen a través de la xarxa neuronal interna disminueix amb cada nova versió de l'arquitectura i es fan desenes d'altres canvis per augmentar la velocitat i substituir la tasca de detecció d'objectes per la segmentació d'objectes a Mask R-CNN.
  • YOLO (You Only Look Once) és la primera xarxa neuronal que reconeix objectes en temps real en dispositius mòbils. Característica distintiva: distingir objectes en una tirada (només mira una vegada). És a dir, a l'arquitectura YOLO no hi ha bucles "for" explícits, per això la xarxa funciona ràpidament. Per exemple, aquesta analogia: a NumPy, quan es fan operacions amb matrius, tampoc hi ha bucles "for" explícits, que a NumPy s'implementen en nivells inferiors de l'arquitectura mitjançant el llenguatge de programació C. YOLO utilitza una graella de finestres predefinides. Per evitar que el mateix objecte es defineixi diverses vegades, s'utilitza el coeficient de superposició de finestres (IoU). Iintersecció oveure Unió). Aquesta arquitectura opera en una àmplia gamma i té un alt nivell robustesa: Un model es pot entrenar en fotografies, però encara funciona bé en pintures dibuixades a mà.
  • SSD (Single SMultiBox calent Detector): s'utilitzen els "hacks" més reeixits de l'arquitectura YOLO (per exemple, la supressió no màxima) i s'afegeixen de nous per fer que la xarxa neuronal funcioni més ràpid i amb més precisió. Característica distintiva: distingir objectes en una tirada utilitzant una graella determinada de finestres (quadre per defecte) a la piràmide de la imatge. La piràmide de la imatge es codifica en tensors de convolució mitjançant successives operacions de convolució i agrupació (amb l'operació d'agrupació màxima, la dimensió espacial disminueix). D'aquesta manera, tant els objectes grans com els petits es determinen en una execució de xarxa.
  • MobileSSD (mòbilNetV2+ SSD) és una combinació de dues arquitectures de xarxes neuronals. Primera xarxa MobileNetV2 funciona ràpidament i augmenta la precisió del reconeixement. S'utilitza MobileNetV2 en comptes de VGG-16, que es va utilitzar originalment article original. La segona xarxa SSD determina la ubicació dels objectes a la imatge.
  • SqueezeNet - una xarxa neuronal molt petita però precisa. Per si mateix, no resol el problema de la detecció d'objectes. Tanmateix, es pot utilitzar en una combinació de diferents arquitectures. I s'utilitza en dispositius mòbils. La característica distintiva és que les dades es comprimeixen primer en quatre filtres convolucionals 1×1 i després s'expandeixen en quatre filtres convolucionals 1×1 i quatre 3×3. Una d'aquestes iteracions d'expansió de compressió de dades s'anomena "mòdul de foc".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) - segmentació d'objectes a la imatge. Una característica distintiva de l'arquitectura és la convolució dilatada, que preserva la resolució espacial. A continuació, es realitza una etapa de postprocessament dels resultats mitjançant un model probabilístic gràfic (camp aleatori condicional), que permet eliminar el petit soroll de la segmentació i millorar la qualitat de la imatge segmentada. Darrere del formidable nom "model probabilístic gràfic" s'amaga un filtre gaussià convencional, que s'aproxima amb cinc punts.
  • Va intentar esbrinar el dispositiu RefineDet (Single Shot Refinarment Xarxa neuronal per a objectes Detecció), però no entenia gaire.
  • També vaig mirar com funciona la tecnologia d'"atenció": vídeo 1, vídeo 2, vídeo 3. Una característica distintiva de l'arquitectura "d'atenció" és la selecció automàtica de les regions d'augment d'atenció a la imatge (RoI, REGIONES of Interest) mitjançant una xarxa neuronal anomenada Unitat d'Atenció. Les regions de major atenció són semblants als quadres delimitadors, però a diferència d'ells, no estan fixats a la imatge i poden tenir límits borrosos. Aleshores, de les regions d'augment d'atenció, s'aïllen els signes (característiques) que s'"alimenten" a xarxes neuronals recurrents amb arquitectures. LSDM, GRU o Vanilla RNN. Les xarxes neuronals recurrents són capaços d'analitzar la relació de les característiques en una seqüència. Les xarxes neuronals recurrents es van utilitzar inicialment per traduir text a altres idiomes, i ara per a la traducció imatges a text и text a imatge.

Mentre explorem aquestes arquitectures Em vaig adonar que no entenc res. I no és que la meva xarxa neuronal tingui problemes amb el mecanisme d'atenció. La creació de totes aquestes arquitectures és com una mena de gran hackathon, on els autors competeixen en hacks. Hack és una solució ràpida a un problema de programari difícil. És a dir, no hi ha cap connexió lògica visible i comprensible entre totes aquestes arquitectures. Tot el que els uneix és un conjunt dels hacks més reeixits que prenen prestats els uns dels altres, a més d'un de comú per a tots. operació de convolució de bucle tancat (error de retropropagació, retropropagació). No pensament sistemàtic! No està clar què canviar i com optimitzar els assoliments existents.

Com a resultat de la manca de connexió lògica entre els hacks, són extremadament difícils de recordar i aplicar a la pràctica. Això és coneixement fragmentat. En el millor dels casos, es recorden alguns moments interessants i inesperats, però la major part del que s'entén i d'incomprensible desapareix de la memòria en pocs dies. Estarà bé que en una setmana recordeu almenys el nom de l'arquitectura. Però es van dedicar diverses hores i fins i tot dies de treball llegint articles i veient vídeos de ressenyes!

Xarxes neuronals. On va tot això?

Figura 2 - Zoo de Xarxes Neuronals

La majoria d'autors d'articles científics, en la meva opinió personal, fan tot el possible perquè fins i tot aquest coneixement fragmentat no sigui entès pel lector. Però les frases de participi en frases de deu línies amb fórmules que es treuen "de la nada" són un tema per a un article separat (problema publicar o morir).

Per aquest motiu, cal sistematitzar la informació mitjançant xarxes neuronals i, així, augmentar la qualitat de la comprensió i la memorització. Per tant, el tema principal d'anàlisi de tecnologies i arquitectures individuals de xarxes neuronals artificials va ser la següent tasca: esbrina on va tot, i no el dispositiu de cap xarxa neuronal específica per separat.

On va tot això? Principals resultats:

  • Nombre d'iniciatives d'aprenentatge automàtic en els darrers dos anys va caure bruscament. Possible raó: "les xarxes neuronals ja no són una cosa nova".
  • Qualsevol pot crear una xarxa neuronal que funcioni per resoldre un problema senzill. Per fer-ho, agafeu un model preparat del "zoològic model" i entreneu l'última capa de la xarxa neuronal (transferència d’aprenentatge) sobre dades ja fetes de Cerca de conjunt de dades de Google o de 25 mil conjunts de dades Kaggle en lliure Cloud Jupyter Notebook.
  • Van començar a crear grans fabricants de xarxes neuronals "zoològics model" (model zoològic). Amb ells podeu crear ràpidament una aplicació comercial: TF Hub per a TensorFlow, Detecció MMD per a PyTorch, Detectró per Caffe2, cadena-modelzoo per Chainer i altres.
  • Xarxes neuronals treballant temps real (en temps real) en dispositius mòbils. De 10 a 50 fotogrames per segon.
  • L'ús de xarxes neuronals en telèfons (TF Lite), en navegadors (TF.js) i en articles per a la llar (IoT, INternet of Tfrontisses). Sobretot en telèfons que ja admeten xarxes neuronals a nivell de maquinari (acceleradors neuronals).
  • "Cada dispositiu, peça de roba i potser fins i tot menjar tindrà Adreça IP-v6 i comunicar-se entre ells"- Sebastian Thrun.
  • El nombre de publicacions sobre aprenentatge automàtic ha començat a créixer superen la llei de Moore (doblant cada dos anys) des del 2015. Òbviament, necessitem xarxes neuronals per analitzar articles.
  • Les tecnologies següents estan guanyant popularitat:
    • PyTorch – La popularitat està creixent ràpidament i sembla que està superant TensorFlow.
    • Selecció automàtica d'hiperparàmetres AutoML - La popularitat està creixent sense problemes.
    • Disminució gradual de la precisió i augment de la velocitat de càlcul: lògica difusa, algorismes potenciant, càlculs inexactes (aproximats), quantificació (quan els pesos de la xarxa neuronal es converteixen en nombres enters i es quantifiquen), acceleradors neuronals.
    • Traducció imatges a text и text a imatge.
    • creació Objectes XNUMXD del vídeo, ara en temps real.
    • El més important de DL és que hi ha moltes dades, però recollir-les i etiquetar-les no és fàcil. Per tant, s'està desenvolupant l'automatització de marques (anotació automatitzada) per a xarxes neuronals que utilitzen xarxes neuronals.
  • Amb les xarxes neuronals, la informàtica es va convertir de sobte ciència experimental i va sorgir crisi de reproductibilitat.
  • Els diners informàtics i la popularitat de les xarxes neuronals van sorgir simultàniament quan la informàtica es va convertir en un valor de mercat. L'economia està canviant d'una economia d'or i moneda a informàtica-moneda-or. Vegeu el meu article sobre econofísica i el motiu de l'aparició dels diners informàtics.

A poc a poc n'apareix un de nou Metodologia de programació ML/DL (Machine Learning & Deep Learning), que es basa en representar el programa com un conjunt de models de xarxes neuronals entrenats.

Xarxes neuronals. On va tot això?

Figura 3 – ML/DL com a nova metodologia de programació

Tanmateix, mai va aparèixer "teoria de les xarxes neuronals", dins del qual es pot pensar i treballar sistemàticament. El que ara s'anomena "teoria" són en realitat algorismes heurístics experimentals.

Enllaços als meus i altres recursos:

Gràcies!

Font: www.habr.com

Afegeix comentari