RĂ©seaux de neurones. OĂč est-ce que tout va

L'article se compose de deux parties:


  1. Une brÚve description de certaines architectures de réseau pour détecter des objets dans une image et une segmentation d'image avec les liens les plus compréhensibles pour les ressources pour moi. J'ai essayé de choisir des explications vidéo et de préférence en russe.
  2. La deuxiÚme partie est une tentative de comprendre la direction du développement des architectures de réseaux de neurones. Et des technologies basées sur eux.

Comprendre les architectures des réseaux de neurones n'est pas facile


Figure 1 - Comprendre l'architecture des réseaux de neurones n'est pas facile


Tout a commencé avec le fait qu'il a fait deux applications de démonstration pour classer et détecter des objets sur un téléphone Android:


  • DĂ©mo back-end , lorsque les donnĂ©es sont traitĂ©es sur le serveur et transfĂ©rĂ©es sur le tĂ©lĂ©phone. Classification d'image de trois types d'ours: brun, noir et nounours.
  • DĂ©monstration frontale lorsque les donnĂ©es sont traitĂ©es sur le tĂ©lĂ©phone lui-mĂȘme. DĂ©tection d'objets de trois types: noisettes, figues et dattes.

Il existe une différence entre les tùches de classification des images, de détection d'objets dans une image et de segmentation d'images . Par conséquent, il était nécessaire de savoir quelles architectures de réseaux de neurones détectent les objets dans les images et lesquelles peuvent se segmenter. J'ai trouvé les exemples d'architectures suivants avec les liens les plus compréhensibles vers les ressources pour moi:


  • Une sĂ©rie d'architectures basĂ©es sur R-CNN ( R egions avec C onvolution N etural N etworks): R-CNN, Fast R-CNN, Faster R-CNN , Mask R-CNN . Pour dĂ©tecter un objet dans une image Ă  l'aide du mĂ©canisme de rĂ©seau de propositions de rĂ©gion (RPN), des boĂźtes englobantes sont allouĂ©es. Initialement, le mĂ©canisme de recherche sĂ©lective plus lent a Ă©tĂ© utilisĂ© Ă  la place du RPN. Ensuite, les rĂ©gions limitĂ©es sĂ©lectionnĂ©es sont alimentĂ©es Ă  l'entrĂ©e d'un rĂ©seau neuronal normal pour la classification. Dans l'architecture de R-CNN, il existe des cycles d'Ă©numĂ©ration «pour» explicites sur des rĂ©gions limitĂ©es, pour un total de jusqu'Ă  2000 passages Ă  travers le rĂ©seau interne AlexNet. En raison de boucles "for" explicites, la vitesse de traitement de l'image est ralentie. Le nombre de cycles explicites, parcourt le rĂ©seau neuronal interne, diminue avec chaque nouvelle version de l'architecture, et des dizaines d'autres changements sont effectuĂ©s pour augmenter la vitesse et remplacer la tĂąche de dĂ©tection des objets par la segmentation des objets dans le masque R-CNN.
  • YOLO ( Y ou O nly L ook O nce) est le premier rĂ©seau neuronal Ă  reconnaĂźtre des objets en temps rĂ©el sur des appareils mobiles. ParticularitĂ©: distinguer les objets en un seul passage (il suffit de regarder une fois). Autrement dit, il n'y a pas de boucles "for" explicites dans l'architecture YOLO, c'est pourquoi le rĂ©seau est rapide. Par exemple, ceci est une analogie: dans NumPy, il n'y a pas de boucles explicites "pour" dans les opĂ©rations avec des matrices, qui sont implĂ©mentĂ©es dans NumPy Ă  des niveaux d'architecture infĂ©rieurs via le langage de programmation C. YOLO utilise une grille de fenĂȘtres prĂ©dĂ©finies. Pour Ă©viter que le mĂȘme objet ne soit dĂ©tectĂ© plusieurs fois, le coefficient de recouvrement de fenĂȘtre (IoU, Intersection o ver Union) est utilisĂ©. Cette architecture fonctionne dans une large gamme et a une grande robustesse : le modĂšle peut ĂȘtre formĂ© en photographie, mais en mĂȘme temps fonctionne bien dans les peintures peintes.
  • SSD ( S ingle S hot MultiBox D etector) - les «hacks» les plus rĂ©ussis de l'architecture YOLO (par exemple, la suppression non maximale) sont utilisĂ©s et de nouveaux sont ajoutĂ©s pour rendre le rĂ©seau neuronal plus rapide et plus prĂ©cis. ParticularitĂ©: distinguer les objets en une seule fois en utilisant une grille de fenĂȘtres donnĂ©e (case par dĂ©faut) sur la pyramide d'images. La pyramide d'images est codĂ©e en tenseurs de convolution lors d'opĂ©rations de convolution et de mise en commun successives (avec l'opĂ©ration de mise en commun maximale, la dimension spatiale diminue). De cette façon, les grands et les petits objets sont dĂ©terminĂ©s en une seule exĂ©cution de rĂ©seau.
  • MobileSSD ( Mobile NetV2 + SSD ) est une combinaison de deux architectures de rĂ©seaux de neurones. Le premier rĂ©seau MobileNetV2 est rapide et augmente la prĂ©cision de reconnaissance. MobileNetV2 est utilisĂ© Ă  la place de VGG-16, qui Ă©tait Ă  l'origine utilisĂ© dans l' article d'origine . Le deuxiĂšme rĂ©seau SSD dĂ©termine l'emplacement des objets dans l'image.
  • SqueezeNet est un rĂ©seau neuronal trĂšs petit mais prĂ©cis. En soi, il ne rĂ©sout pas le problĂšme de la dĂ©tection d'objets. Cependant, il peut ĂȘtre utilisĂ© avec une combinaison de diffĂ©rentes architectures. Et ĂȘtre utilisĂ© sur des appareils mobiles. Une caractĂ©ristique distinctive est que les donnĂ©es sont d'abord compressĂ©es en quatre filtres convolutionnels 1 × 1, puis Ă©tendues en quatre filtres convolutionnels 1 × 1 et quatre 3 × 3. Une telle itĂ©ration de compression-expansion de donnĂ©es est appelĂ©e «module d'incendie».
  • DeepLab (Segmentation d'image sĂ©mantique avec des rĂ©seaux convolutionnels profonds) - segmentation des objets dans l'image. Une caractĂ©ristique distinctive de l'architecture est une convolution diluĂ©e, qui prĂ©serve la rĂ©solution spatiale. Ceci est suivi par l'Ă©tape de post-traitement des rĂ©sultats Ă  l'aide d'un modĂšle graphique probabiliste (champ alĂ©atoire conditionnel), qui vous permet de supprimer le petit bruit dans la segmentation et d'amĂ©liorer la qualitĂ© de l'image segmentĂ©e. DerriĂšre le nom formidable de «modĂšle probabiliste graphique» se trouve le filtre gaussien habituel, qui est approximativement de cinq points.
  • J'ai essayĂ© de comprendre le dispositif AffinerDet (RĂ©seau neuronal de raffinement Ă  un coup pour la dĂ©tection d'objets), mais j'ai un peu compris.
  • J'ai Ă©galement regardĂ© comment fonctionne la technologie de l'attention: vidĂ©o1 , vidĂ©o2 , vidĂ©o3 . Une caractĂ©ristique distinctive de l'architecture «d'attention» est l'attribution automatique de rĂ©gions d'attention accrue Ă  l'image (RoI, RĂ©gions de l'intĂ©rĂȘt) Ă  l'aide d'un rĂ©seau de neurones appelĂ© Attention Unit. Les rĂ©gions d'attention accrue sont similaires aux rĂ©gions limitĂ©es (encadrĂ©s), mais contrairement Ă  elles, elles ne sont pas fixĂ©es sur l'image et peuvent avoir des bordures floues. Ensuite, parmi les rĂ©gions d'attention accrue, on distingue des caractĂ©ristiques (caractĂ©ristiques) qui sont «alimentĂ©es» Ă  des rĂ©seaux de neurones rĂ©currents avec des architectures LSDM, GRU ou Vanilla RNN . Les rĂ©seaux de neurones rĂ©cursifs sont capables d'analyser la relation des signes dans une sĂ©quence. Les rĂ©seaux neuronaux rĂ©cursifs Ă©taient Ă  l'origine utilisĂ©s pour traduire du texte dans d'autres langues, et maintenant pour traduire des images en texte et du texte en images .

En Ă©tudiant ces architectures, j'ai rĂ©alisĂ© que je ne comprenais rien . Et le fait n'est pas que mon rĂ©seau de neurones a des problĂšmes avec le mĂ©canisme d'attention. La crĂ©ation de toutes ces architectures ressemble Ă  une sorte de hackathon Ă©norme oĂč les auteurs s'affrontent dans les hacks. Hack est une solution rapide Ă  une tĂąche logicielle difficile. Autrement dit, il n'y a pas de connexion logique visible et comprĂ©hensible entre toutes ces architectures. Tout ce qui les unit est un ensemble de hacks les plus rĂ©ussis qu'ils s'empruntent, plus une opĂ©ration de convolution commune avec rĂ©troaction (propagation inverse de l'erreur, rĂ©tropropagation). Pas de pensĂ©e systĂ©mique ! On ne sait pas quoi changer et comment optimiser les rĂ©alisations existantes.


En raison de l'absence de connexion logique entre les hacks, ils sont extrĂȘmement difficiles Ă  mĂ©moriser et Ă  mettre en pratique. Il s'agit de connaissances fragmentĂ©es. Dans le meilleur des cas, plusieurs moments intĂ©ressants et inattendus sont rappelĂ©s, mais la plupart de ce qui est compris et incomprĂ©hensible disparaĂźt de la mĂ©moire en quelques jours. Ce sera bien si dans une semaine je me souviens au moins du nom de l'architecture. Mais il a fallu plusieurs heures, voire plusieurs jours de temps de travail pour lire des articles et regarder des vidĂ©os de critiques!


Zoo du réseau de neurones


Figure 2 - Zoo de réseaux de neurones


La plupart des auteurs d'articles scientifiques, Ă  mon avis, font tout leur possible pour que mĂȘme cette connaissance fragmentĂ©e ne soit pas comprise par le lecteur. Mais les participes dans des phrases de dix lignes avec des formules prises "du plafond" sont un sujet pour un article sĂ©parĂ© (problĂšme de publication ou de disparition ).


Pour cette raison, il est devenu nĂ©cessaire de systĂ©matiser les informations sur les rĂ©seaux de neurones et, ainsi, d'augmenter la qualitĂ© de la comprĂ©hension et de la mĂ©morisation. Par consĂ©quent, le sujet principal de l'analyse des technologies et architectures individuelles des rĂ©seaux de neurones artificiels Ă©tait la tĂąche suivante: dĂ©couvrir oĂč tout cela se dĂ©place , et non le dispositif d'un rĂ©seau de neurones particulier sĂ©parĂ©ment.


OĂč va tout cela. Les principaux rĂ©sultats:


  • Le nombre de startups dans le domaine de l'apprentissage automatique a fortement diminuĂ© au cours des deux derniĂšres annĂ©es. Raison possible: "les rĂ©seaux de neurones ont cessĂ© d'ĂȘtre quelque chose de nouveau".
  • Tout le monde pourra crĂ©er un rĂ©seau de neurones fonctionnel pour rĂ©soudre un problĂšme simple. Pour ce faire, prenez le modĂšle fini du «zoo modĂšle» et entraĂźnez la derniĂšre couche du rĂ©seau de neurones ( transfert d'apprentissage ) sur les donnĂ©es finales de Google Dataset Search ou de 25 000 jeux de donnĂ©es Kaggle dans le nuage Jupyter Notebook gratuit.
  • De grands fabricants de rĂ©seaux de neurones ont commencĂ© Ă  crĂ©er des «zoos modĂšles» (zoo modĂšle). En les utilisant, vous pouvez rapidement crĂ©er une application commerciale: TF Hub pour TensorFlow, MMDetection pour PyTorch, Detectron pour Caffe2, chainer-modelzoo pour Chainer et autres .
  • RĂ©seaux de neurones en temps rĂ©el sur appareils mobiles. 10 Ă  50 images par seconde.
  • L'utilisation des rĂ©seaux de neurones dans les tĂ©lĂ©phones (TF Lite), dans les navigateurs (TF.js) et dans les articles mĂ©nagers (IoT, Internet et T hings). Surtout dans les tĂ©lĂ©phones qui prennent dĂ©jĂ  en charge les rĂ©seaux de neurones au niveau matĂ©riel (neuroaccĂ©lĂ©rateurs).
  • «Chaque appareil, chaque vĂȘtement et peut-ĂȘtre mĂȘme un aliment auront une adresse IP-v6 et communiqueront entre eux» - Sebastian Trun .
  • L'augmentation des publications d'apprentissage automatique a commencĂ© Ă  dĂ©passer la loi de Moore (doublant tous les deux ans) depuis 2015. De toute Ă©vidence, des rĂ©seaux neuronaux d'analyse d'articles sont nĂ©cessaires.
  • Les technologies suivantes gagnent en popularitĂ©:
    • PyTorch - La popularitĂ© augmente rapidement et semble dĂ©passer TensorFlow.
    • SĂ©lection automatique des hyperparamĂštres AutoML - la popularitĂ© croĂźt en douceur.
    • Diminution progressive de la prĂ©cision et augmentation de la vitesse de calcul: logique floue , algorithmes de boosting , calculs imprĂ©cis (approximatifs), quantification (lorsque les poids d'un rĂ©seau neuronal sont convertis en nombres entiers et quantifiĂ©s), neuroaccĂ©lĂ©rateurs.
    • Traduction d' image en texte et texte en image .
    • CrĂ©ation d' objets tridimensionnels sur vidĂ©o , dĂ©sormais en temps rĂ©el.
    • L'essentiel dans DL est beaucoup de donnĂ©es, mais la collecte et le marquage ne sont pas faciles. Par consĂ©quent, une annotation automatisĂ©e pour les rĂ©seaux de neurones utilisant des rĂ©seaux de neurones se dĂ©veloppe.
  • Avec les rĂ©seaux de neurones, l'informatique est soudainement devenue une science expĂ©rimentale et une crise de reproductibilitĂ© est apparue.
  • L'argent informatique et la popularitĂ© des rĂ©seaux de neurones sont apparus simultanĂ©ment lorsque l'informatique est devenue une valeur marchande. L'Ă©conomie de l'or et des devises est en train de devenir une monnaie d'or . Voir mon article sur l' Ă©conomie et la raison de l'Ă©mergence de l'IT-money.

Progressivement, une nouvelle méthodologie de programmation ML / DL (Machine Learning & Deep Learning) apparaßt, basée sur la présentation du programme comme une collection de modÚles de réseaux neuronaux formés.


ML / DL comme nouvelle méthodologie de programmation


Figure 3 - ML / DL comme nouvelle méthodologie de programmation


Cependant, la «théorie des réseaux de neurones» n'est pas apparue, dans le cadre de laquelle on peut penser et travailler systématiquement. Ce que l'on appelle maintenant la «théorie» est en fait des algorithmes expérimentaux et heuristiques.


Liens vers mes ressources et pas seulement:



Merci de votre attention!

Source: https://habr.com/ru/post/fr482794/


All Articles