Neuronale Netze. Wohin führt das alles?

Der Artikel besteht aus zwei Teilen:

  1. Eine kurze Beschreibung einiger Netzwerkarchitekturen zur Objekterkennung in Bildern und Bildsegmentierung mit den für mich verständlichsten Links zu Ressourcen. Ich habe versucht, Videoerklärungen zu wählen, vorzugsweise auf Russisch.
  2. Der zweite Teil ist ein Versuch, die Entwicklungsrichtung neuronaler Netzwerkarchitekturen zu verstehen. Und darauf basierende Technologien.

Neuronale Netze. Wohin führt das alles?

Abbildung 1 – Neuronale Netzwerkarchitekturen zu verstehen ist nicht einfach

Alles begann mit der Entwicklung zweier Demoanwendungen zur Objektklassifizierung und -erkennung auf einem Android-Telefon:

  • Backend-Demo, wenn Daten auf dem Server verarbeitet und an das Telefon übertragen werden. Bildklassifizierung von drei Bärenarten: Braunbär, Schwarzbär und Teddybär.
  • Frontend-Demowenn die Daten auf dem Telefon selbst verarbeitet werden. Erkennung von Objekten (Objekterkennung) dreier Arten: Haselnüsse, Feigen und Datteln.

Es gibt einen Unterschied zwischen den Aufgaben der Bildklassifizierung, der Objekterkennung in einem Bild und Bildsegmentierung. Daher bestand die Notwendigkeit herauszufinden, welche neuronalen Netzwerkarchitekturen Objekte in Bildern erkennen und welche segmentieren können. Ich habe die folgenden Architekturbeispiele mit den für mich verständlichsten Links zu Ressourcen gefunden:

  • Eine Reihe von Architekturen basierend auf R-CNN (RRegionen mit Convolution NEural Networks-Funktionen): R-CNN, Fast R-CNN, Schnelleres R-CNN, Maske R-CNN. Um ein Objekt in einem Bild zu erkennen, werden mithilfe des Region Proposal Network (RPN)-Mechanismus Begrenzungsrahmen zugewiesen. Anfänglich wurde anstelle von RPN der langsamere Mechanismus der selektiven Suche verwendet. Anschließend werden die ausgewählten begrenzten Regionen zur Klassifizierung dem Eingang eines herkömmlichen neuronalen Netzwerks zugeführt. Die R-CNN-Architektur verfügt über explizite „for“-Schleifen über begrenzte Regionen, die insgesamt bis zu 2000 Durchläufe durch das interne AlexNet-Netzwerk umfassen. Explizite „for“-Schleifen verlangsamen die Bildverarbeitungsgeschwindigkeit. Die Anzahl der expliziten Schleifen, die durch das interne neuronale Netzwerk laufen, nimmt mit jeder neuen Version der Architektur ab, und Dutzende anderer Änderungen werden vorgenommen, um die Geschwindigkeit zu erhöhen und die Aufgabe der Objekterkennung durch Objektsegmentierung in Mask R-CNN zu ersetzen.
  • YOLO (You Onur Look Once) ist das erste neuronale Netzwerk, das Objekte in Echtzeit auf mobilen Geräten erkennt. Besonderes Merkmal: Unterscheiden von Objekten in einem Durchgang (nur einmal hinschauen). Das heißt, in der YOLO-Architektur gibt es keine expliziten „for“-Schleifen, weshalb das Netzwerk schnell arbeitet. Zum Beispiel diese Analogie: In NumPy gibt es beim Ausführen von Operationen mit Matrizen auch keine expliziten „for“-Schleifen, die in NumPy auf niedrigeren Ebenen der Architektur durch die Programmiersprache C implementiert werden. YOLO verwendet ein Raster vordefinierter Fenster. Um zu verhindern, dass dasselbe Objekt mehrmals definiert wird, wird der Fensterüberlappungskoeffizient (IoU) verwendet. IKreuzung osehen Union). Diese Architektur funktioniert über einen weiten Bereich und hat hohe Robustheit: Ein Modell kann anhand von Fotos trainiert werden, erzielt aber dennoch gute Ergebnisse bei handgezeichneten Gemälden.
  • SSD (Sein Sheiße MultiBox Detector) – die erfolgreichsten „Hacks“ der YOLO-Architektur werden verwendet (z. B. nicht maximale Unterdrückung) und neue hinzugefügt, damit das neuronale Netzwerk schneller und genauer arbeitet. Unterscheidungsmerkmal: Unterscheidung von Objekten in einem Durchgang mithilfe eines vorgegebenen Fensterrasters (Standardfeld) auf einer Bildpyramide. Die Bildpyramide wird durch aufeinanderfolgende Faltungs- und Pooling-Operationen in Faltungstensoren codiert (mit der Max-Pooling-Operation nimmt die räumliche Dimension ab). Auf diese Weise werden sowohl große als auch kleine Objekte in einem Netzwerklauf ermittelt.
  • MobileSSD (MobilNetV2+ SSD) ist eine Kombination aus zwei neuronalen Netzwerkarchitekturen. Erstes Netzwerk MobileNetV2 arbeitet schnell und erhöht die Erkennungsgenauigkeit. MobileNetV2 wird anstelle von VGG-16 verwendet, das ursprünglich in verwendet wurde originaler Artikel. Das zweite SSD-Netzwerk bestimmt die Position von Objekten im Bild.
  • SqueezeNet – ein sehr kleines, aber genaues neuronales Netzwerk. Es allein löst das Problem der Objekterkennung nicht. Es kann jedoch in einer Kombination verschiedener Architekturen verwendet werden. Und in mobilen Geräten verwendet. Die Besonderheit besteht darin, dass die Daten zunächst in vier 1×1-Faltungsfilter komprimiert und dann in vier 1×1- und vier 3×3-Faltungsfilter erweitert werden. Eine solche Iteration der Datenkomprimierung und -erweiterung wird als „Fire Module“ bezeichnet.
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – Segmentierung von Objekten im Bild. Ein besonderes Merkmal der Architektur ist die erweiterte Faltung, die die räumliche Auflösung bewahrt. Anschließend erfolgt eine Nachbearbeitung der Ergebnisse mithilfe eines grafischen Wahrscheinlichkeitsmodells (bedingtes Zufallsfeld), mit dem Sie kleine Störungen bei der Segmentierung entfernen und die Qualität des segmentierten Bildes verbessern können. Hinter dem klangvollen Namen „grafisches probabilistisches Modell“ verbirgt sich ein herkömmlicher Gauß-Filter, der durch fünf Punkte angenähert wird.
  • Habe versucht, das Gerät herauszufinden RefineDet (Einzelner Schuss Verfeinernment Neuronales Netzwerk für Objekt DetAbschnitt), aber ich habe nicht viel verstanden.
  • Ich habe mir auch angeschaut, wie die „Aufmerksamkeits“-Technologie funktioniert: Video1, Video2, Video3. Ein besonderes Merkmal der „Aufmerksamkeits“-Architektur ist die automatische Auswahl von Bereichen mit erhöhter Aufmerksamkeit im Bild (RoI, REGIONEN of Interest) mithilfe eines neuronalen Netzwerks namens Attention Unit. Bereiche mit erhöhter Aufmerksamkeit ähneln Begrenzungsrahmen, sind jedoch im Gegensatz zu diesen nicht im Bild fixiert und können unscharfe Grenzen aufweisen. Anschließend werden aus Bereichen erhöhter Aufmerksamkeit Zeichen (Merkmale) isoliert, die rekurrenten neuronalen Netzen mit Architekturen „gefüttert“ werden LSDM, GRU oder Vanilla RNN. Rekurrente neuronale Netze sind in der Lage, die Beziehung von Merkmalen in einer Sequenz zu analysieren. Rekurrente neuronale Netze wurden ursprünglich zur Übersetzung von Texten in andere Sprachen und jetzt auch zur Übersetzung verwendet Bilder zu Text и Text zum Bild.

Während wir diese Architekturen erkunden Mir wurde klar, dass ich nichts verstehe. Und es ist nicht so, dass mein neuronales Netzwerk Probleme mit dem Aufmerksamkeitsmechanismus hätte. Die Schaffung all dieser Architekturen gleicht einer Art riesigem Hackathon, bei dem Autoren in Hacks gegeneinander antreten. Hack ist eine schnelle Lösung für ein schwieriges Softwareproblem. Das heißt, es gibt keinen sichtbaren und verständlichen logischen Zusammenhang zwischen all diesen Architekturen. Alles, was sie vereint, ist eine Reihe der erfolgreichsten Hacks, die sie voneinander übernommen haben, sowie ein gemeinsamer Hack für alle Faltungsoperation mit geschlossenem Regelkreis (Fehler-Backpropagation, Backpropagation). Nein Systemdenken! Es ist nicht klar, was geändert werden soll und wie bestehende Errungenschaften optimiert werden können.

Aufgrund des fehlenden logischen Zusammenhangs zwischen Hacks ist es äußerst schwierig, sie sich zu merken und in der Praxis anzuwenden. Das ist fragmentiertes Wissen. Im besten Fall bleiben ein paar interessante und unerwartete Momente im Gedächtnis, aber das meiste, was verstanden und unverständlich ist, verschwindet innerhalb weniger Tage aus dem Gedächtnis. Es ist gut, wenn Sie sich in einer Woche zumindest an den Namen der Architektur erinnern. Aber es wurden mehrere Stunden und sogar Tage Arbeitszeit damit verbracht, Artikel zu lesen und Rezensionsvideos anzusehen!

Neuronale Netze. Wohin führt das alles?

Figur 2 - Zoo der neuronalen Netze

Die meisten Autoren wissenschaftlicher Artikel tun meiner persönlichen Meinung nach alles, damit selbst dieses fragmentierte Wissen vom Leser nicht verstanden wird. Aber Partizipationsphrasen in zehnzeiligen Sätzen mit Formeln, die „aus der Luft gegriffen“ sind, sind ein Thema für einen eigenen Artikel (Problem). veröffentlichen oder zugrunde gehen).

Aus diesem Grund besteht die Notwendigkeit, Informationen mithilfe neuronaler Netze zu systematisieren und so die Qualität des Verstehens und Auswendiglernens zu erhöhen. Daher war das Hauptthema der Analyse einzelner Technologien und Architekturen künstlicher neuronaler Netze die folgende Aufgabe: Finden Sie heraus, wohin das Ganze führtund nicht das Gerät eines bestimmten neuronalen Netzwerks separat.

Wohin führt das alles? Hauptergebnisse:

  • Anzahl der Startups für maschinelles Lernen in den letzten zwei Jahren stark zurückgegangen. Möglicher Grund: „Neuronale Netze sind nichts Neues mehr.“
  • Jeder kann ein funktionierendes neuronales Netzwerk erstellen, um ein einfaches Problem zu lösen. Nehmen Sie dazu ein fertiges Modell aus dem „Modellzoo“ und trainieren Sie die letzte Schicht des neuronalen Netzes (Transferlernen) auf vorgefertigten Daten von Google Dataset-Suche oder 25 Kaggle-Datensätze in Freiheit Cloud-Jupyter-Notizbuch.
  • Große Hersteller neuronaler Netze begannen mit der Gründung „Modellzoos“ (Modellzoo). Mit ihnen können Sie schnell eine kommerzielle Anwendung erstellen: TF-Hub für TensorFlow, MMDetection für PyTorch, Detektor für Caffe2, Chainer-Modelzoo für Chainer und andere.
  • Neuronale Netze arbeiten in Echtzeit (Echtzeit) auf mobilen Geräten. Von 10 bis 50 Bildern pro Sekunde.
  • Die Verwendung neuronaler Netze in Telefonen (TF Lite), in Browsern (TF.js) und in Haushaltsgegenstände (IoT, Internet of TScharniere). Insbesondere bei Telefonen, die neuronale Netze bereits auf Hardwareebene unterstützen (Neuronale Beschleuniger).
  • „Jedes Gerät, jedes Kleidungsstück und vielleicht sogar jedes Lebensmittel wird es haben IP-v6-Adresse und miteinander kommunizieren" - Sebastian Thrun.
  • Die Zahl der Veröffentlichungen zum maschinellen Lernen hat begonnen zu wachsen übertreffen das Mooresche Gesetz (Verdoppelung alle zwei Jahre) seit 2015. Offensichtlich benötigen wir neuronale Netze zur Analyse von Artikeln.
  • Folgende Technologien erfreuen sich zunehmender Beliebtheit:
    • PyTorch – Die Popularität wächst rasant und scheint TensorFlow zu überholen.
    • Automatische Auswahl von Hyperparametern AutoML – Die Popularität wächst stetig.
    • Allmähliche Abnahme der Genauigkeit und Erhöhung der Berechnungsgeschwindigkeit: Fuzzy-Logik, Algorithmen erhöhen, ungenaue (ungefähre) Berechnungen, Quantisierung (wenn die Gewichte des neuronalen Netzwerks in ganze Zahlen umgewandelt und quantisiert werden), neuronale Beschleuniger.
    • Übersetzung Bilder zu Text и Text zum Bild.
    • Schöpfung XNUMXD-Objekte aus Video, jetzt in Echtzeit.
    • Das Wichtigste an DL ist, dass es viele Daten gibt, deren Erfassung und Kennzeichnung jedoch nicht einfach ist. Daher entwickelt sich die Markup-Automatisierung weiter (automatische Anmerkung) für neuronale Netze, die neuronale Netze verwenden.
  • Mit neuronalen Netzen wurde plötzlich Informatik experimentelle Wissenschaft und entstand Reproduzierbarkeitskrise.
  • IT-Gelder und die Popularität neuronaler Netze entstanden gleichzeitig, als Computer zu einem Marktwert wurden. Die Wirtschaft wandelt sich von einer Gold- und Währungswirtschaft zu einer Goldwährungsberechnung. Siehe meinen Artikel über Wirtschaftsphysik und der Grund für das Aufkommen von IT-Geld.

Nach und nach erscheint ein neues ML/DL-Programmiermethodik (Machine Learning & Deep Learning), das auf der Darstellung des Programms als eine Reihe trainierter neuronaler Netzwerkmodelle basiert.

Neuronale Netze. Wohin führt das alles?

Abbildung 3 – ML/DL als neue Programmiermethodik

Es erschien jedoch nie „Neuronale Netzwerktheorie“, innerhalb dessen Sie systematisch denken und arbeiten können. Was heute als „Theorie“ bezeichnet wird, sind in Wirklichkeit experimentelle, heuristische Algorithmen.

Links zu meinen und anderen Ressourcen:

Danke!

Source: habr.com

Kommentar hinzufügen