L'article se compose de deux parties:
- 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.
- 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.

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!

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.

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:
- Bulletin de la science des données. Surtout le traitement d'image. Qui veut recevoir, qu'il envoie un e-mail (foobar167 <gaff-gaf> gmail <dot> com). J'envoie des liens vers des articles et des vidéos à mesure que le matériel s'accumule.
- Une liste générale des cours et articles que j'ai suivis et que j'aimerais suivre.
- Cours et vidéos pour débutants , à partir desquels il vaut la peine de commencer à étudier les réseaux de neurones. Plus la brochure "Introduction à l'apprentissage automatique et aux réseaux de neurones artificiels" .
- Des outils utiles oĂč chacun trouvera quelque chose d'intĂ©ressant.
- Les canaux vidĂ©o pour l'analyse d'articles scientifiques sur la science des donnĂ©es se sont avĂ©rĂ©s extrĂȘmement utiles. Trouvez-les, abonnez-vous et envoyez des liens Ă vos collĂšgues et Ă moi aussi. Exemples:
Merci de votre attention!