Neuro-Netze. Wohin bewegt sich das alles?

Der Artikel besteht aus zwei Teilen:

  1. 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.
  2. Der zweite Teil besteht darin, den Entwicklungsweg der Architekturen neuronaler Netzwerke und der darauf basierenden Technologien zu erkennen.

Neuro-Netze. Wohin bewegt sich das alles?

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:

  • Back-end-Demo, 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.
  • Front-end-Demo, 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 der Segmentierung von Bildern. 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, Faster R-CNN, Mask 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.
  • YOLO (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 : Das Modell kann auf Fotos trainiert werden, funktioniert aber auch gut mit gezeichneten Bildern.Single
  • SSD (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 arbeitet schnell und erhöht die Erkennungsgenauigkeit. MobileNetV2 wird anstelle von VGG-16 verwendet, das ursprĂŒnglich in . Das zweite Netzwerk SSD bestimmt die Position von Objekten im Bild. OriginalartikelSqueezeNet
  • – ein sehr kleines, aber prĂ€zises neuronales Netzwerk. Es selbst löst nicht das Problem der Objekterkennung. Es kann jedoch in Kombination mit verschiedenen Architekturen verwendet werden. Und es kann in mobilen GerĂ€ten eingesetzt werden. Ein herausragendes Merkmal ist, dass die Daten zunĂ€chst auf vier 1×1 Convolutional-Filtern komprimiert und dann auf vier 1×1 und vier 3×3 Convolutional-Filtern erweitert werden. Eine solche Iteration der Datenkompression und -erweiterung wird als „Fire Module“ bezeichnet. DeepLab
  • 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 RefineDet (Single-Shot Refinement Neural Network for Object Detektion), aber ich habe nicht viel verstanden.
  • Ich habe auch gesehen, wie die Technologie „Aufmerksamkeit“ funktioniert: video1, video2, video3. 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 LSDM, GRU oder Vanilla RNN. 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 von Bildern in Text und von Text in Bilder.

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 Faltung mit RĂŒckkopplung (Backpropagation). Es fehlt an systemischem Denken! 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!

Neuro-Netze. Wohin bewegt sich das alles?

Abbildung 2 – Zoo der neuronalen Netze

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 publish or perish).

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 dramatisch gesunken. 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 (transfer learning) mit vorbereiteten Daten aus Google Dataset Search oder von 25.000 DatensĂ€tzen von Kaggle in der kostenlosen Jupyter Notebook-Cloud.
  • Große Hersteller von neuronalen Netzen haben begonnen, „Modellezoo“ (model zoo) zu erstellen. Mit ihrer Hilfe kann man schnell eine kommerzielle Anwendung erstellen: TF Hub fĂŒr TensorFlow, MMDetection fĂŒr PyTorch, Detectron fĂŒr Caffe2, chainer-modelzoo fĂŒr Chainer und andere.
  • 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 HaushaltsgerĂ€ten (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“ – Sebastian Thrun.
  • Das Wachstum der Publikationen im Bereich des maschinellen Lernens hat begonnen die Moore'sche Gesetz zu ĂŒbertreffen (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: fuzzy logic, Algorithmen des Boostings, ungenaue (approximierte) Berechnungen, Quantisierung (wenn die Gewichte des neuronalen Netzes in ganze Zahlen umgewandelt und quantisiert werden), Neuro-Beschleuniger.
    • Übersetzung von Bildern in Text und von Text in Bilder.
    • Erstellen dreidimensionaler Objekte aus Videos, 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 (automated annotation) fĂŒr neuronale Netze mithilfe von neuronalen Netzen.
  • Mit neuronalen Netzen wurde die Informatik plötzlich zu einer experimentellen Wissenschaft und es entstand eine Reproduzierbarkeitskrise.
  • 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 Ökonomie Physik und den Grund fĂŒr das Entstehen von IT-Geldern.

AllmĂ€hlich entsteht eine neue Programmierungsmethodologie fĂŒr ML/DL (Machine Learning & Deep Learning), die darauf basiert, das Programm als eine Ansammlung von gelernten Modellen neuronaler Netze zu betrachten.

Neuro-Netze. Wohin bewegt sich das alles?

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:

Vielen Dank fĂŒr Ihre Aufmerksamkeit!

Quelle: habr.com

60GB SSD 8Gb DDR4