Der Artikel besteht aus zwei Teilen:
- Eine kurze Beschreibung einiger Architekturen von Netzwerken zur Objekterkennung auf Bildern und Segmentierung von Bildern mit den fĂŒr mich verstĂ€ndlichsten Verlinkungen zu Ressourcen. Ich habe versucht, Videoinformationen auszuwĂ€hlen, vorzugsweise auf Russisch.
- Der zweite Teil besteht darin, den Entwicklungsweg der Architekturen neuronaler Netzwerke und der darauf basierenden Technologien zu erkennen.

Abbildung 1 â Es ist nicht einfach, die Architekturen von neuronalen Netzwerken zu verstehen
Alles begann damit, dass ich zwei Demoanwendungen zur Klassifizierung und Objekterkennung auf einem Android-Telefon erstellt habe:
- , bei der die Daten auf dem Server verarbeitet und an das Telefon ĂŒbertragen werden. Klassifizierung von Bildern (image classification) von drei BĂ€renarten: BraunbĂ€r, SchwarzbĂ€r und PlĂŒschbĂ€r.
- , bei der die Daten direkt auf dem Telefon verarbeitet werden. Objekterkennung (object detection) von drei Typen: Haselnuss, Feige und Dattel.
Es gibt einen Unterschied zwischen den Aufgaben der Bildklassifizierung, der Objekterkennung auf Bildern und . Daher entstand die Notwendigkeit zu erfahren, welche Architekturen neuronaler Netzwerke Objekte auf Bildern erkennen und welche segmentieren können. Ich habe die folgenden Beispiele fĂŒr Architekturen gefunden, mit den fĂŒr mich verstĂ€ndlichsten Verlinkungen zu Ressourcen:
- Eine Reihe von Architekturen auf Basis von R-CNN (Regions with Convolution Neural Networks features): R-CNN, Fast R-CNN, , . Zur Objekterkennung auf Bildern werden durch den Mechanismus des Region Proposal Network (RPN) begrenzte Regionen (bounding boxes) ĐČŃĐŽĐ”Đ»Đ”ĐœŃ. ZunĂ€chst wurde anstelle von RPN ein langsamerer Mechanismus namens Selective Search verwendet. Dann werden die hervorgehobenen begrenzten Regionen zur Klassifizierung in ein gewöhnliches neuronales Netzwerk eingespeist. In der Architektur von R-CNN gibt es explizite âforâ-Schleifen zur Durchmesserung der begrenzten Regionen, insgesamt bis zu 2000 DurchlĂ€ufe durch das interne Netzwerk AlexNet. Aufgrund der expliziten âforâ-Schleifen wird die Verarbeitungsrate von Bildern verlangsamt. Die Anzahl der expliziten Schleifen und DurchlĂ€ufe durch das interne neuronale Netzwerk wird mit jeder neuen Version der Architektur verringert, und es werden auch Dutzende anderer Ănderungen vorgenommen, um die Geschwindigkeit zu erhöhen und die Aufgabe der Objekterkennung in die Segmentierung von Objekten in Mask R-CNN zu Ă€ndern.
- (You Only Look Once) â das erste neuronale Netzwerk, das Objekte in Echtzeit auf mobilen GerĂ€ten erkannte. Ein herausragendes Merkmal: Objekte werden in einem Durchgang unterschieden (es reicht aus, einmal hinzuschauen). Das bedeutet, dass in der Architektur von YOLO keine expliziten âforâ-Schleifen vorhanden sind, was das Netzwerk schnell macht. Zum Beispiel eine Analogie: Bei NumPy gibt es bei Matrixoperationen ebenfalls keine expliziten âforâ-Schleifen, die in NumPy auf niedrigeren Architektur-Ebenen in der Programmiersprache C implementiert sind. YOLO verwendet ein Gitter aus vordefinierten Fenstern. Um zu verhindern, dass dasselbe Objekt mehrfach erkannt wird, wird ein Ăberlappungskoeffizient der Fenster (IoU, ISchnittmenge oVereinigung). Diese Architektur funktioniert in einem breiten Bereich und weist eine hohe URobustheit Single
- (SShot MultiBox SDetector) â es werden die effektivsten âHacksâ der YOLO-Architektur verwendet (zum Beispiel Non-Maximum-Suppression) und neue hinzugefĂŒgt, damit das neuronale Netzwerk schneller und genauer arbeitet. Ein herausragendes Merkmal: Objekte werden in einem Durchgang mithilfe eines vorgegebenen Fenstergitters (Default Box) auf einer Bildpyramide unterschieden. Die Bildpyramide wird in Convolutional Tensors bei aufeinanderfolgenden Convolution-and-Pooling-Operationen kodiert (bei der Max-Pooling-Operation nimmt die rĂ€umliche Dimension ab). Auf diese Weise werden sowohl groĂe als auch kleine Objekte in einem Durchgang des Netzwerks erkannt. DMobileSSD (
- NetV2 +Mobil) â eine Kombination aus zwei Architekturen neuronaler Netzwerke. Das erste Netzwerk SSDMobileNetV2 . Das zweite Netzwerk SSD bestimmt die Position von Objekten im Bild. SqueezeNet
- DeepLab
- (Semantic Image Segmentation with Deep Convolutional Nets) â Objekterkennung in Bildern. Ein herausragendes Merkmal der Architektur ist die dilatierte Faltung, die die rĂ€umliche Auflösung bewahrt. Es folgt eine Nachbearbeitungsphase mit einem grafischen Wahrscheinlichkeitsmodell (conditional random field), das es ermöglicht, kleine Störungen in der Segmentierung zu entfernen und die QualitĂ€t des segmentierten Bildes zu verbessern. Hinter dem ernst klingenden Namen âgrafisches Wahrscheinlichkeitsmodellâ verbirgt sich ein gewöhnlicher GauĂfilter, der durch fĂŒnf Punkte approximiert wird.
- Ich habe versucht, das GerÀt zu verstehen (Single-Shot Refinement Neural Network for Object Detektion), aber ich habe nicht viel verstanden.
- Ich habe auch gesehen, wie die Technologie âAufmerksamkeitâ funktioniert: , , . Ein herausragendes Merkmal der Architektur âAufmerksamkeitâ ist die automatische Hervorhebung von Regionen mit erhöhter Aufmerksamkeit in Bildern (RoI, Regions of Interest) mithilfe eines neuronalen Netzwerks namens Attention Unit. Die Regionen mit erhöhter Aufmerksamkeit Ă€hneln begrenzten Bereichen (Bounding Boxes), sind jedoch nicht auf dem Bild fixiert und können verschwommene Grenzen haben. AnschlieĂend werden Merkmale (Features) aus den Regionen mit erhöhter Aufmerksamkeit extrahiert, die âzugefĂŒhrtâ werden an rekursive neuronale Netzwerke mit Architekturen . Rekursive neuronale Netzwerke sind in der Lage, die Beziehungen zwischen Merkmalen in einer Sequenz zu analysieren. UrsprĂŒnglich wurden rekursive neuronale Netzwerke fĂŒr die Ăbersetzung von Text in andere Sprachen verwendet, jetzt auch fĂŒr die Ăbersetzung und .
WĂ€hrend ich diese Architekturen studierte merkte ich, dass ich nichts verstehe. Und es liegt nicht daran, dass mein neuronales Netzwerk Probleme mit dem Aufmerksamkeitsmechanismus hat. Die Schaffung all dieser Architekturen Ă€hnelt einem riesigen Hackathon, bei dem die Autoren im Hacking konkurrieren. Ein Hack ist eine schnelle Lösung eines schwierigen Softwareproblems. Das heiĂt, zwischen all diesen Architekturen gibt es keine ersichtliche und verstĂ€ndliche logische Verbindung. Alles, was sie vereint, ist eine Sammlung der besten Hacks, die sie sich gegenseitig ausleihen, plus die fĂŒr alle gemeinsame (Backpropagation). Es fehlt ! Es ist unklar, was verĂ€ndert werden sollte und wie man die bestehenden Errungenschaften optimieren kann.
Als Ergebnis des Fehlens einer logischen Verbindung zwischen den Themen sind sie Ă€uĂerst schwer zu merken und in der Praxis anzuwenden. Es handelt sich um fragmentiertes Wissen. Im besten Fall merkt man sich einige interessante und unerwartete Aspekte, aber der GroĂteil des Verstandenen und Nichtverstandenen verschwindet bereits nach wenigen Tagen aus dem GedĂ€chtnis. Es wĂ€re gut, wenn man sich spĂ€testens nach einer Woche wenigstens den Namen der Architektur ins GedĂ€chtnis rufen könnte. Dabei wurden doch mehrere Stunden und sogar Tage Arbeitszeit in das Lesen von Artikeln und das Ansehen von Ăbersichtsvideos investiert!

Abbildung 2 â
Die meisten Autoren wissenschaftlicher Artikel tun meiner Meinung nach alles, um sicherzustellen, dass selbst dieses fragmentierte Wissen vom Leser nicht verstanden wird. Doch Partizipialkonstruktionen in zehnzeiligen SĂ€tzen mit Formeln, die âvon der Deckeâ kommen â das ist ein Thema fĂŒr einen eigenen Artikel (Problem ).
Aus diesem Grund entstand die Notwendigkeit, Informationen ĂŒber neuronale Netze zu systematisieren und auf diese Weise die QualitĂ€t des VerstĂ€ndnisses und des Erinnerns zu erhöhen. Daher wurde das Hauptthema der Analyse bestimmter Technologien und Architekturen kĂŒnstlicher neuronaler Netze zur folgenden Aufgabe: herauszufinden, wohin das alles fĂŒhrt, und nicht zur Funktionsweise eines bestimmten neuronalen Netzes im Einzelnen.
Wohin das alles fĂŒhrt. Hauptresultate:
- Die Anzahl der Start-ups im Bereich Maschinelles Lernen ist in den letzten zwei Jahren . Mögliche Ursache: âNeuronale Netze sind nicht mehr etwas Neuesâ.
- Jeder wird in der Lage sein, ein funktionierendes neuronales Netz zur Lösung einer einfachen Aufgabe zu erstellen. Dazu nimmt man ein fertiges Modell aus dem âZoo der Modelleâ (model zoo) und trainiert die letzte Schicht des neuronalen Netzes () mit vorbereiteten Daten aus oder von in der kostenlosen .
- GroĂe Hersteller von neuronalen Netzen haben begonnen, âModellezooâ (model zoo) zu erstellen. Mit ihrer Hilfe kann man schnell eine kommerzielle Anwendung erstellen: fĂŒr TensorFlow, fĂŒr PyTorch, fĂŒr Caffe2, fĂŒr Chainer und .
- Neuronale Netze, die in Echtzeit (real-time) auf mobilen GerÀten arbeiten. Von 10 bis 50 Bildern pro Sekunde.
- Einsatz von neuronalen Netzen in Handys (TF Lite), in Browsern (TF.js) und in (IoT, IInternet of Tder Dinge). Besonders in Handys, die bereits neuronale Netze auf Hardware-Ebene unterstĂŒtzen (Neurobeschleuniger).
- âJedes GerĂ€t, KleidungsstĂŒck und möglicherweise sogar Lebensmittel werden haben IP-v6-Adresse und untereinander kommunizierenâ â .
- Das Wachstum der Publikationen im Bereich des maschinellen Lernens hat begonnen (Verdopplung alle zwei Jahre) seit 2015. Offensichtlich sind neuronale Netze zur Analyse von Artikeln nötig.
- Die folgenden Technologien gewinnen an PopularitÀt:
- PyTorch â die Beliebtheit wĂ€chst rasant und scheint TensorFlow zu ĂŒberholen.
- Automatische Auswahl von Hyperparametern AutoML â die Beliebtheit wĂ€chst allmĂ€hlich.
- AllmÀhliche Abnahme der Genauigkeit und Zunahme der Berechnungsgeschwindigkeit: , Algorithmen , ungenaue (approximierte) Berechnungen, Quantisierung (wenn die Gewichte des neuronalen Netzes in ganze Zahlen umgewandelt und quantisiert werden), Neuro-Beschleuniger.
- Ăbersetzung und .
- Erstellen , jetzt bereits in Echtzeit.
- Das Wichtigste bei DL â das sind viele Daten, aber sie zu sammeln und zu kennzeichnen ist nicht einfach. Daher entwickelt sich die Automatisierung der Annotation () fĂŒr neuronale Netze mithilfe von neuronalen Netzen.
- Mit neuronalen Netzen wurde die Informatik plötzlich zu einer experimentellen Wissenschaft und es entstand .
- IT-Gelder und die Beliebtheit von neuronalen Netzen entstanden gleichzeitig, als Berechnungen zu einem Marktwert wurden. Die Wirtschaft wird von einer goldwĂ€hrungsbasierten zu einer golden-wĂ€hrungs-berechnenden. Siehe meinen Artikel ĂŒber und den Grund fĂŒr das Entstehen von IT-Geldern.
AllmÀhlich entsteht eine neue (Machine Learning & Deep Learning), die darauf basiert, das Programm als eine Ansammlung von gelernten Modellen neuronaler Netze zu betrachten.

Abbildung 3 â ML/DL als neue Programmierungsmethodologie
Es gibt jedoch nach wie vor keine âTheorie der neuronalen Netzeâ, innerhalb derer man systematisch denken und arbeiten kann. Was heute als âTheorieâ bezeichnet wird, sind tatsĂ€chlich experimentelle, heuristische Algorithmen.
Links zu meinen und anderen Ressourcen:
- Newsletter zu Data Science. HauptsÀchlich zur Bildverarbeitung. Wer erhalten möchte, kann eine E-Mail schicken (foobar167<gaff-gaff>gmail<punkt>com). Links zu Artikeln und Videos sende ich nach Ansammlung des Materials.
- Allgemeine , die ich absolviert habe und die ich gerne absolvieren möchte.
- , mit denen man beginnen sollte, neuronale Netze zu lernen. ZusĂ€tzlich die BroschĂŒre .
- , wo jeder etwas Interessantes fĂŒr sich findet.
- ĂuĂerst nĂŒtzlich waren Video-KanĂ€le zur Analyse wissenschaftlicher Artikel im Bereich Data Science. Finden Sie sie, abonnieren Sie und teilen Sie die Links mit Ihren Kollegen und mir auch. Beispiele:
- alias mit Schritt-fĂŒr-Schritt-Anleitungen und offenem Quellcode.
Vielen Dank fĂŒr Ihre Aufmerksamkeit!
Quelle: habr.com
