Was sind Faltungsnetzwerke?: eine kurze erklärung

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon.

Einführung

Hi! Heute werde ich mein Bestes tun, um intuitiv zu erklären, wie rekurrente Convolutional Neural Networks funktionieren (CRNN). Als ich zum ersten Mal versuchte herauszufinden, wie CRNN funktioniert, Ich habe herausgefunden, dass die Informationen auf mehrere Websites verteilt sind und dass verschiedene Ebenen von “Tiefe”, Daher werde ich versuchen, sie so zu erklären, dass ich am Ende dieses Artikels genau weiß, wie sie funktionieren und warum sie in einigen Kategorien besser abschneiden als in anderen.

In diesem Artikel, Ich gehe davon aus, dass Sie bereits ein wenig darüber wissen, wie ein einfaches neuronales Netzwerk funktioniert. Falls Sie eine kleine Überprüfung benötigen, wie es funktioniert oder wenn Sie nicht wissen, wie sie überhaupt funktionieren, Ich empfehle dir, dir die gut gemachten Videos anzusehen, die erklären, wie sie funktionieren, die ich am Ende des Artikels verlinkt habe. Ich werde alle Informationen bereitstellen, die Sie für notwendig erachten, um intuitiv zu verstehen, wie CRNN funktioniert.
In diesem Artikel werden wir die folgenden Themen behandeln, Überspringe also gerne die, die du bereits kennst:

  1. Was sind konvolutionelle neuronale Netze?, wie sie funktionieren und warum wir sie brauchen?
  2. Was sind rekurrente neuronale Netze?, wie sie funktionieren und warum wir sie brauchen?
  3. · Was sind sie und warum brauchen wir konvolutionelle rekurrente neuronale Netze?? + Beispiel für handschriftliche Texterkennung
  4. · Weitere Lektüre und Links

Was sind konvolutionelle neuronale Netze?, wie sie funktionieren und warum wir sie brauchen?

Am einfachsten zu beantworten ist die letzte Frage, Warum brauchen wir sie? Dafür, nehmen wir ein beispiel. Nehmen wir an, wir wollen herausfinden, ob wir eine Katze oder einen Hund im Bild haben. Um die Erklärung zu vereinfachen, Denken wir zuerst an ein Bild von 3 × 3. In diesem Bild, wir haben ein wichtiges Feature im blauen Rechteck (wie ein Hundegesicht, ein Brief oder was auch immer das wichtige Merkmal ist).

90139Imaginea_crnn-1736171

Mal sehen, wie ein einfaches neuronales Netzwerk die Bedeutung und Verbindung zwischen Pixeln erkennen würde.

55139simple_nn_for_feature_extraction-8884157

Wie wir sehen können, wir brauchen “flach” das Bild, um es in ein dichtes neuronales Netz einzuspeisen. Dabei, wir verlieren den räumlichen Kontext im Bild des Features komplett mit dem Hintergrund und auch die Teile des Features zueinander. Stellen Sie sich vor, wie schwer es für das neuronale Netzwerk sein wird, zu lernen, dass sie miteinander verwandt sind. Was ist mehr, wir werden viele Gewichte trainieren müssen, also brauchen wir mehr daten und, Daher, mehr Zeit um sie zu trainieren.

Dann, Wir können mehrere Probleme mit diesem Ansatz sehen:

  • Der räumliche Kontext geht verloren
  • Viel mehr Gewicht für größere Bilder
  • Mehr Gewichte führen zu mehr Zeit und mehr Datenbedarf

Nur wenn es einen anderen Weg gab ... Warte!! Es gibt! Hier springen neuronale Faltungsnetzwerke ein, um den Tag zu retten.. Seine Hauptfunktion besteht darin, relevante Merkmale aus der Eingabe zu extrahieren (ein Bild, zum Beispiel) durch die Verwendung von Filtern. Diese Filter werden zuerst zufällig ausgewählt und dann wie Gewichte trainiert.. Sie werden vom neuronalen Netz modifiziert, um die relevantesten Merkmale zu extrahieren und zu finden.

Sich einigen, wir haben bisher festgestellt, dass konvolutionelle neuronale Netze, Was werde ich als CNN verwenden?, Verwenden Sie Filter, um Funktionen zu extrahieren. Aber, Was genau sind Filter und wie funktionieren sie?

Filter sind Arrays mit verschiedenen Werten, die über das Bild gleiten (zum Beispiel) um die Eigenschaften zu analysieren. Wenn die Matrix ist, zum Beispiel, 3x3x3, Das extrahierte Feature wird 3x3x3 groß sein. Wenn die Matrix groß ist 5 × 5, Das erkannte Feature hat eine maximale Größe von 5 × 5 im Bild, usw. Beim Analysieren eines Pixelfensters, wir verstehen die Multiplikation mit Elementen zwischen dem Filter und dem abgedeckten Fenster.

Dann, zum Beispiel, wenn wir ein Bild mit einer Größe von . haben 6 × 6 und ein Filter 3 × 3, wir können uns vorstellen, wie der Filter über das Bild gleitet, und jedes Mal landet es in einem neuen Fenster, Die Analyse, was wir im Bild unten sehen können, nur für die ersten beiden Zeilen des Bildes:

88831example_of_how_conv_works_2_rows-1035829

Je nachdem, was wir extrahieren müssen, wir können den Filterschritt ändern (sowohl vertikal als auch horizontal, im Beispiel oben, der Filter macht einen Schritt in beide Richtungen).

Nach der Multiplikation (nach Elementen), das Ergebnis wird zum neuen Pixel des Bildes. Dann, nach “analysieren” das erste fenster, wir bekommen das erste Pixel unseres Bildes, usw. Das sehen wir im oben dargestellten Fall, Das endgültige Bild hat eine Größe von 5 × 5. Um das endgültige Bild mit der gleichen Größe zu haben, wir können die Filter anwenden, nachdem wir das Bild fantasievoll gefüllt haben (Hinzufügen einer imaginären Zeile und Spalte am Anfang und Ende), aber die Details sind für ein anderes Mal zu besprechen.

Um noch besser zu sehen, wie Faltung funktioniert, wir sehen Beispiele für Filter und deren Auswirkungen auf das Ausgabebild:

87123Faltungsfilter-8726341

Wir können sehen, wie verschiedene Filter erkennen und “sie extrahieren” verschiedene Eigenschaften. Die Funktion des Trainierens eines neuronalen Faltungsnetzwerks besteht darin, die besten Filter zu finden, um die relevanteste Eigenschaft für unsere Aufgabe zu extrahieren..

Dann, zum Abschluss des Teils über neuronale Faltungsnetze, Wir können die Informationen zusammenfassen in 3 einfache Ideen:

  • Was sind Sie: Convolutional neuronale Netze sind eine Art neuronaler Netze, die die Faltungsoperation verwenden (Verschieben eines Filters über ein Bild) um relevante Merkmale zu extrahieren.
  • Warum brauchen wir sie: besser mit Daten arbeiten (anstatt normale dichte neuronale Netze zu verwenden) in denen ein starker Zusammenhang besteht zwischen, zum Beispiel, Pixel, weil der räumliche Kontext nicht verloren geht.
  • Wie arbeiten Sie: Verwenden Sie Filter, um Funktionen zu extrahieren. Filter sind Matrizen, die über das Bild "gleiten". Sie werden in der Trainingsphase modifiziert, um die relevantesten Merkmale zu extrahieren.

Was sind rekurrente neuronale Netze?, wie sie funktionieren und warum wir sie brauchen?

Während neuronale Faltungsnetze uns helfen, relevante Merkmale im Bild zu extrahieren, Wiederkehrende neuronale Netze helfen dem neuronalen Netz, Informationen aus der Vergangenheit zu berücksichtigen, um Vorhersagen zu treffen oder zu analysieren.

Deswegen, wenn wir haben, zum Beispiel, die folgende Matrix: {2, 4, 6}, und wir wollen vorhersagen, was als nächstes kommt, wir können ein wiederkehrendes neuronales Netz verwenden, warum, in jedem Schritt, wird berücksichtigen, was vorher war.

Wir können eine einfache wiederkehrende Zelle visualisieren, wie im folgenden Bild gezeigt:

97244recurrent_neural_network_unfold-3631587

Zuerst, Konzentrieren wir uns einfach auf die rechte Seite des Bildes. Hier, xT sind die im Zeitschritt t . empfangenen Eingaben. Um dem gleichen Beispiel zu folgen, das könnten die Zahlen aus der oben genannten Matrix sein, x0 = 2, x1 = 4, x2 = 6. Um zu berücksichtigen, was vor der Zeit war, die Eigenschaft, die sie zu einem Teil eines rekurrenten neuronalen Netzes macht, wir müssen Informationen aus dem vorherigen Zeitschritt erhalten, die wir in diesem Bild als v dargestellt haben Jede Zelle hat einen Anruf “Zustand”, die intuitiv die Informationen enthält, die dann an die nächste Zelle gesendet werden.

Dann, zusammenfassen, xT ist der Zelleneintrag. Später, die Zelle entscheidet, was die wichtigen Informationen sind, unter Berücksichtigung der Informationen aus den vorherigen Zeitschritten, erhalten durch das "v", und schick es an die nächste Zelle. Was ist mehr, Wir haben die Möglichkeit, diese wichtigen Informationen zurückzugeben, die die Zelle berücksichtigt hat, durch das “Ö” im Bild, Zellenausgabe.

Um den oben genannten Prozess kompakter darzustellen, wir können “zusammenklappen” die Zellen, auf der linken Seite des Bildes dargestellt.

Auf die genaue Art der wiederkehrenden Zellen werden wir nicht näher eingehen, da gibt es viele möglichkeiten, und detailliert zu erklären, wie sie funktionieren, würde zu lange dauern. Wenn Sie interessiert sind, Ich habe am Ende des Artikels einige Links hinterlassen, die ich sehr nützlich fand.

Was sind sie und warum brauchen wir konvolutionelle rekurrente neuronale Netze??
+ Beispiel für handschriftliche Texterkennung

Jetzt haben wir alle wichtigen Informationen, um zu verstehen, wie ein Convolutional Recurring Network funktioniert.

Meistens, Convolutional Neural Network analysiert das Bild und sendet es an den wiederkehrenden Teil der erkannten wichtigen Merkmale. Die Beschwerdeführerin analysiert diese Merkmale der Reihe nach, unter Berücksichtigung der vorherigen Informationen, um herauszufinden, welche wichtigen Verbindungen zwischen diesen Merkmalen bestehen, die die Leistung beeinflussen.

Um ein wenig mehr darüber zu verstehen, wie ein CRNN bei einigen Aufgaben funktioniert, Nehmen wir als Beispiel die handschriftliche Texterkennung.

Nehmen wir an, wir haben Bilder, die Wörter enthalten, und wir möchten das NNet trainieren, um uns mitzuteilen, welches Wort ursprünglich im Bild enthalten ist..

Zuerst, wir möchten, dass unser neuronales Netz in der Lage ist, wichtige Merkmale für verschiedene Buchstaben zu extrahieren, als Schleifen von “g” Ö “l”, oder sogar Kreise von “ein” du “Ö”. Dafür, wir können ein konvolutionelles neuronales Netz verwenden. Wie oben erklärt, CNN verwendet Filter, um die wichtigen Funktionen zu extrahieren (Wir haben gesehen, wie verschiedene Filter unterschiedliche Auswirkungen auf das Ausgangsbild haben). Natürlich, Diese Filter werden in der Praxis abstraktere Merkmale erkennen, die wir nicht wirklich verstehen können, aber intuitiv können wir uns einfachere Funktionen vorstellen, wie oben erwähnt.

Dann, Wir möchten diese Eigenschaften analysieren. Schauen wir uns einmal an, warum wir nicht entscheiden können, welcher Buchstabe allein auf seinen eigenen Eigenschaften beruht.. Im Bild unten, wir sehen, dass der Buchstabe "a" ist (von bis") du "o" (de für).

76322for_aux_litera_context-3047654

Der Unterschied liegt in der Verknüpfung des Briefes mit den anderen Briefen. Dann müssten wir Informationen von vorherigen Stellen im Bild kennen, um den Buchstaben bestimmen zu können. Klingt vertraut? Hier kommt der RNN-Teil ins Spiel. Analysieren Sie die von CNN extrahierten Informationen rekursiv, wobei die Eingabe für jede Zelle die Merkmale sein könnten, die in einem bestimmten Segment des Bildes erkannt wurden, wie unten abgebildet, mit solo 10 Segmente (weniger als wir in realen Modellen verwenden würden):

15645de_ce_rnn-7430963

Wir füttern das RNN nicht mit dem Bild selbst, wie im Bild oben gezeigt, aber mit den daraus extrahierten Eigenschaften “Segment”.

Wir konnten auch sehen, dass die Vorwärtsverarbeitung des Bildes genauso wichtig ist wie die Rückwärtsverarbeitung., damit wir eine Schicht von Zellen hinzufügen können, die die Features anders verarbeiten, beides bei der Berechnung des Outputs berücksichtigen. Oder sogar vertikal, je nach auszuführender Aufgabe.

Hurra! Endlich haben wir das Bild analysiert: die Merkmale extrahiert und in Bezug zueinander analysiert. Jetzt müssen wir nur noch eine Schicht hinzufügen, die den Verlust berechnet, und einen Algorithmus, der die Ausgabe dekodiert, dafür, wir möchten vielleicht einen CTC verwenden (Konnektionistische zeitliche Klassifikation) zur handschriftlichen Texterkennung, aber das ist ein interessantes thema für sich. und ich denke, es verdient einen weiteren Artikel.

Schlussfolgerungen

In diesem Artikel, diskutieren wir kurz, wie konvolutionelle rekurrente neuronale Netze funktionieren, wie sie Merkmale analysieren und extrahieren und ein Beispiel dafür, wie sie verwendet werden könnten.

Das Convolutional Neural Network extrahiert die Eigenschaften durch Anwenden relevanter Filter und das rekurrente neuronale Netzwerk analysiert diese Eigenschaften, unter Berücksichtigung der Informationen aus den vorherigen Zeitschritten.

Weitere Lektüre und Links:

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.