Prinzipien des Deep Learning ----- Convolutional Neural Network

Verzeichnis der Serienartikel

Prinzipien des Deep Learning ----- Lineare Regression + Gradientenabstiegsmethode Prinzipien
des Deep Learning ----- Logistischer Regressionsalgorithmus
Prinzipien des Deep Learning ----- Vollständig verbundenes neuronales Netzwerk Prinzipien
des Deep Learning ----- Convolutional neuronale
Netzwerktiefe Lernprinzip -----
Zeitreihenprognose für wiederkehrende neuronale Netzwerke (RNN, LSTM) ----- basierend auf BP-, LSTM-, CNN-LSTM-Neuralnetzwerkalgorithmen, Einzelfunktions-Stromlastprognose-
Zeitreihenprognose (multi -Features)-- ---Multifunktionale Stromlastprognose basierend auf BP, LSTM, CNN-LSTM neuronalem Netzwerkalgorithmus


Reihe von Lehrvideos

Schnelle Einführung in Deep Learning und tatsächlichen Kampf
[praktischer Unterricht] basierend auf BP-Neuronalnetzwerk-Einzelfunktions-Stromlastprognose
[praktischer Unterricht] Basierend auf RNN, LSTM-Neuronalnetzwerk-Einzelfunktions-Stromlastprognose
[praktischer Unterricht] basierend auf dem neuronalen CNN-LSTM-Netz Einzelmerkmal-Stromverbrauch Lastprognose
[Multifunktions-Prognose] Multifunktion-Elektrolast-Prognose basierend auf dem BP-Neuronalnetz
[Multifunktions-Prognose] Multifunktion-Leistungslast-Prognose basierend auf RNN und LSTM [Multi -Feature-Prognose
] Leistungslast-Prognose mit mehreren Funktionen basierend auf dem CNN-LSTM-Netzwerk



Vorwort

  Convolutional Neural Network stellt einen wichtigen Wissenspunkt im Deep Learning dar. Derzeit ist Deep Learning in drei große Blöcke unterteilt: Big Data und Data Mining, Computer Vision und Natural Language Processing. Nahezu alle Deep-Learning-Algorithmen in der Computervision verwenden Convolutional Neural Networks als Bildmerkmalsextraktion, sodass der Status von Convolutional Neural Networks im Deep Learning unerschütterlich ist.
  Das konvolutionelle neurale Netzwerk wurde jedoch 1998 vorgeschlagen. Der Grund, warum es nicht weit verbreitet war, liegt darin, dass die Leistung des Computers zu dieser Zeit relativ niedrig war und die Leistung des konvolutionellen neuralen Netzwerks schwierig zu nutzen war. Bis 2012 gewann AlexNet die Meisterschaft der Klassifizierungsaufgabe des ImageNet-Wettbewerbs, und die Klassifizierungsgenauigkeit übertraf bei weitem die mit herkömmlichen Methoden erzielten Klassifizierungsergebnisse.Seitdem ist die Entwicklung von Deep Learning außer Kontrolle geraten.


1. Die Natur der Bilder

  Da das neuronale Faltungsnetz hauptsächlich zur Extraktion von Bildmerkmalen verwendet wird, ist es notwendig, die Art des Bildes im Computer zu verstehen, bevor das Modell des neuronalen Faltungsnetzes gelernt wird, was dem Lernen des neuronalen Faltungsnetzes förderlich ist. Derzeit beliebte Bildformate umfassen Graustufen- und RGB-Formate.

1.1, Graustufenbild

  Das Graustufenbild ist unser übliches Schwarz-Weiß-Bild. Das folgende Bild ist ein Schwarz-Weiß-Bild, das eine Zahl 8 darstellt. Wenn Sie das Bild genau betrachten, können Sie feststellen, dass der Rand des Bildes aus kleinen Quadraten zu bestehen scheint Tatsächlich besteht das Bild aus einem kleinen Quadrat nach dem anderen. Da die Höhe des Bildes 24 und die Breite 16 beträgt, besteht das Bild aus 384 kleinen Quadraten von 24*16. Bildbeschreibung hier einfügen
  Auf dem Bild ist jedoch zu sehen, dass es schwarze, weiße und graue Bereiche gibt und der Graugrad nicht derselbe ist. Jeder kleine Block im Bild stellt ein Pixel dar, jeder kleine Block hat einen Pixelwert, diese Pixelwerte stellen die Intensität des Pixels dar, die Größe des Pixelwerts reicht von 0 bis 255, wobei 0 schwarz und 255 weiß ist , das Bild Je dunkler das Bild, desto näher liegt der Pixelwert bei 0, und je heller das Bild, desto näher liegt der Pixelwert bei 255. Dazu wird das Bild als Zahlenmatrix im Computer gespeichert. Genauer gesagt, wie in der folgenden Abbildung gezeigt: Bildbeschreibung hier einfügen
  Ein Graustufenbild wird durch eine Zahlenmatrix dargestellt, aber ein in unserem Leben häufiger vorkommendes Farbbild wird durch eine Matrix aus drei Zahlen dargestellt.

1.2, Farbkarte

  Ich weiß nicht, ob Sie eine solche Situation in Ihrem Leben beobachtet haben, das heißt, Sie spritzen manchmal versehentlich Wasser auf den Bildschirm Ihres Mobiltelefons oder Fernsehers und können durch die Wassertropfen nacheinander kleine Quadrate beobachten haben verschiedene Farben, aber nur rot, grün und blau. Als ich in der Junior High School Physik studierte, wusste ich, dass diese drei Farben als drei Primärfarben bezeichnet werden und verschiedene Farben in unterschiedlichen Anteilen erzeugt werden können. Wie in der Abbildung unten gezeigt: Bildbeschreibung hier einfügen
  Wenn der Computer also ein Farbbild darstellt, wird es durch eine Matrix aus drei Zahlen dargestellt. Die spezifische Form ist in der folgenden Abbildung dargestellt: Bildbeschreibung hier einfügen
  1 Matrix zur Darstellung von Rot. Der Wertebereich in der Matrix reicht ebenfalls von 0 bis 255. Wenn der Wert näher an 0 liegt, wird die rote Farbe dunkler näher an 0 ist die rote Farbe heller.
  1-Matrix zur Darstellung von Grün. Der Wertebereich in der Matrix reicht ebenfalls von 0 bis 255. Wenn der Wert näher an 0 liegt, wird die grüne Farbe dunkler. Wenn der Wert näher an 0 liegt, wird die grüne Farbe heller . . .
  1-Matrix zur Darstellung von Blau. Der Wertebereich in der Matrix reicht ebenfalls von 0 bis 255. Wenn der Wert näher an 0 liegt, wird die blaue Farbe dunkler. Wenn der Wert näher an 0 liegt, wird die blaue Farbe ausgedrückt wird, desto flacher ist es.
  Diese Pixelwerte liegen zwischen 0 und 255, wobei jede Zahl die Intensität des Pixels darstellt. Alle diese Kanalmatrizen werden zu einem Dreikanalbild addiert. Wenn die Form des Bildes in den Computer geladen wird, die Pixelmatrix ist H×B×3. Dabei ist H die Anzahl der Pixel über die Höhe, W die Anzahl der Pixel über die Breite und 3 die Anzahl der Kanäle.


2. Gesamtstruktur

  Lassen Sie uns zunächst einen Blick auf die Gesamtstruktur des Convolutional Neural Network werfen.Wie in der Abbildung unten gezeigt, haben Convolutional Neural Networks im Vergleich zu einem vollständig verbundenen Neural Network Convolutional Layers und Pooling Layers und Input Data Feature Maps in Convolutional Neural Networks Durch Faltungsoperation und Pooling-Operation werden die effektiven Merkmale extrahiert und in die vollständig verbundene Schicht eingegeben, und die Daten werden klassifiziert oder vorhergesagt.
Bildbeschreibung hier einfügen

3. Faltungsschicht

  Einige Begriffe, die spezifisch für konvolutionelle neuronale Netze sind, sind aufgetaucht, wie zum Beispiel Padding und Stride. Die Essenz des Bildes in der Berechnung wurde zuvor erklärt. Das Bild ist eine digitale Matrix im Computer, und die Eingabe des Faltungsneuronalen Netzes ist eine solche digitale Matrix. Das Format der Eingabedaten sollte C H W sein, wobei C die ist data Die Anzahl der Kanäle, wobei das vorherige Graustufenbild und das Farbbild als Beispiel genommen werden, das C des Graustufenbilds 1 und das Farbbild 3 ist (es sollte beachtet werden, dass: das C hier nicht unbedingt 1 oder 3 ist, der Merkmalskarte nach der Faltungsberechnung Der Kanal ändert sich, und die Eingabedaten sind nicht unbedingt Bilddaten, daher ist der Kanal der konstruierten Datenmerkmalskarte nicht unbedingt 1 oder 3); gleichzeitig ist H hier die Höhe der Datenmatrix, und W ist die Breite der Datenmatrix.

3.1. Probleme mit vollständiger Verbindung

  In einem vollständig verbundenen neuronalen Netzwerk sind benachbarte Neuronen alle miteinander verbunden, sodass eine neuronale Netzwerkschicht als langer Streifen erscheint, aber wenn die Eingabedaten Daten mit einer 3D-Form wie einem Bild sind, ist die Verarbeitung des vollständig verbundenen neuronalen Netzwerks Reduzieren Sie die Daten in einen eindimensionalen Zustand. Wie in der Abbildung unten gezeigt: Bildbeschreibung hier einfügen  3D-Formdaten wie Bilder sollten wichtige räumliche Informationen enthalten. Beispielsweise sollten die Pixelwerte an räumlich benachbarten Stellen ähnliche Werte sein, und die RGB-Kanäle haben eine enge Korrelation, aber die Korrelation zwischen Pixeln, die weit voneinander entfernt sind, ist relativ gering. Aber die vollständig verbundene Schicht ignoriert die Form und behandelt alle Informationen als dasselbe Neuron, sodass sie die mit der Form verbundenen Informationen nicht verwenden kann.
  Die Faltungsschicht im Faltungsneuronalnetz kann jedoch ihre Form unverändert beibehalten.Wenn die Eingabedaten ein Bild sind, nimmt die Faltungsschicht die Daten in Formvon 3D-Daten an und gibt sie an die nächste Schicht in Form von 3D aus. Daher kann das konvolutionelle neuronale Netzwerk im Vergleich zu dem vollständig verbundenen neuronalen Netzwerk die Daten der räumlichen Form besser verstehen.

3.2 Faltungsoperation

  Den Kern des Convolutional Neural Network stellt die Faltungsschicht mit Faltungsoperation dar. Die Faltungsoperation entspricht der Filteroperation in der Bildverarbeitung, daher wird der Faltungskern auch als Filter bezeichnet. Lassen Sie uns die Faltungsoperation anhand eines bestimmten Beispiels verstehen. Bildbeschreibung hier einfügen  Wie in der obigen Abbildung gezeigt, sind die Eingabedaten Daten mit einer räumlichen Form, und der Faltungskern stellt auch eine Dimension mit einer langen Höhenrichtung dar. Nehmen Sie an, dass (Höhe, Breite) verwendet wird, um die Form der Daten darzustellen und der Faltungskern In diesem Beispiel sind die Daten und Die Formen der Faltungskerne (3,3) bzw. (2,2) und die Größe der Ausgabedaten ist (2,2). Es ist aber zu beachten, dass Länge und Höhe des Faltungskerns im Allgemeinen gleich groß sind (natürlich können auch unterschiedliche Größen verwendet werden).
  Lassen Sie uns nun den Operationsprozess der Faltungsoperation im Detail erklären. Für die Eingabedaten verschiebt die Faltungsoperation die Daten des Fensters mit der gleichen Größe wie der Faltungskern in einem bestimmten Intervall und multipliziert und summiert die Positionen des Faltungskerns. Wie in der Abbildung gezeigt, ist die Fenstergröße des Faltungskerns 2 2, dann nehmen Sie einen Datenblock der gleichen Größe wie der Faltungskern aus der oberen linken Ecke der Daten und multiplizieren Sie ihn mit der Position, die dem Faltungskern entspricht, und schließlich die Daten summieren. Die spezifische Berechnung lautet hier wie folgt: 0 ∗ 0 + 1 ∗ 1 + 3 ∗ 2 + 3 ∗ 4 = 19 0 * 0+1 * 1+3 * 2+3 * 4=1900+11+32+34=19   Schieben Sie zu diesem Zeitpunkt das Fenster einen Schritt nach rechts, wie in der Abbildung gezeigt, nehmen Sie die Daten im Fenster und den Faltungskern, um die Faltungsoperation durchzuführen, und erhalten Sie den entsprechenden Wert. Zu diesem Zeitpunkt kann das Fenster nicht mehr nach rechts gleiten, dann das Fenster einen Schritt nach unten schieben und die obigen Schritte des Verschiebens des Fensters von links nach rechts fortsetzen, um Daten abzurufen, und der Faltungskern, um die entsprechenden Daten zu multiplizieren und endlich Summe. Die Details sind in der Abbildung dargestellt:Bildbeschreibung hier einfügen  In dem vollständig verbundenen neuronalen Netzwerk hat das neuronale Netzwerk zwei Parameter, einen ist der Gewichtungsparameter und der andere ist der Bias-Parameter. Im Convolutional Neural Network stellt der Convolution Kernel den Gewichtungsparameter des Convolutional Neural Network dar. Natürlich gibt es im Convolutional Neural Network auch Bias-Parameter. Wie in der Abbildung gezeigt, ist die Form des Offset-Parameters normalerweise eine 11, und der Parameterwert dieses Offsets wird zu allen Elementen hinzugefügt, die die Faltungsoperation bestehen. Konkret wie in der Abbildung gezeigt:Bildbeschreibung hier einfügen

3.3 Füllen

  Das Füllen ist eine Verarbeitung, die häufig bei Faltungsoperationen verwendet wird.Der Operationsschritt besteht darin, feste Daten um die Eingabedaten herum einzufügen(normalerweise sind diese Daten 0). Wie in der Abbildung gezeigt Bildbeschreibung hier einfügen  : Im obigen Beispiel wird ein Kreis mit 0-Daten um eine Eingabe mit einer Größe von (3,3) gefüllt, und die Größe der Eingabedaten wird auf (5, 5) geändert, sodass der Füllbereich ist 1 . Verwenden Sie die gefüllten Daten und den Faltungskern mit einer Größe von (2,2), um eine Faltungsoperation durchzuführen, um Ausgabedaten mit einer Größe von (4,4) zu erhalten. Natürlich kann der Padding-Bereich auch auf eine beliebige ganze Zahl größer als 1 gesetzt werden.
  Der Hauptzweck der Verwendung von Padding besteht darin, die Größe der Ausgabedaten zu ändern. Beispielsweise ist die Größe der Eingabedaten (3,3), die Größe des Faltungskerns ist (2,2) und die Größe der durch die Faltungsoperation erhaltenen Ausgabedaten ist (2,2); wenn die Amplitude der Eingabedaten ist 1 Füllung, die Größe der Eingabedaten zu diesem Zeitpunkt ist (5, 5) und die Größe der Ausgabedaten nach der Faltungsoperation ist (4, 4). Wenn die Daten nicht gefüllt sind, beträgt die Größe der Eingabedaten (3,3) und die Größe der Ausgabedaten (2,2), was einer Reduzierung der Ausgabedaten um 1 Element im Vergleich zur Größe der Eingabedaten entspricht Es gibt viele in einem konvolutionellen neuronalen Netzwerk Eine Faltungsschicht erfordert mehrere Faltungsoperationen Wenn der Platz jedes Mal reduziert wird, wenn die Faltungsoperation durchgeführt wird, kann die Ausgabegröße zu einem bestimmten Zeitpunkt (1,1) sein und die Faltungsoperation kann dies nicht sein zu dieser Zeit durchgeführt. . Um eine solche Situation zu vermeiden, kann daher die Fülloperation verwendet werden, um die oben erwähnten Probleme zu lösen und die Raumgröße der Ausgangsdaten unverändert oder größer zu halten.

3.4 Schritt

  Das Intervall, in dem der Faltungskern verwendet wird, um über die Eingabedaten zu gleiten, wird Schrittweite genannt. Die Schrittweite in allen obigen Beispielen ist 1, und die Schrittweite kann hier eingestellt werden, und sie kann auf eine ganze Zahl größer als 1 eingestellt werden, genau wie der Füllbereich. Wie in der folgenden Abbildung gezeigt, ist bei einer Schrittweite von 2 das Ergebnis der Faltungsoperation in der Abbildung dargestellt:Bildbeschreibung hier einfügen

  Wie in der Abbildung oben gezeigt, ist die Eingabedatengröße (4,4), die Faltungskerngröße ist (2,2), die Datenauffüllung ist 0 und die Schrittweite ist 2; der Berechnungsprozess mit einer Schrittweite von 2 ist, Faltung Der Kernel findet einen Datenblock der gleichen Größe wie er selbst auf der linken Seite der Daten, um eine Faltungsoperation durchzuführen, und gleitet dann zwei Pixel nach rechts, um eine Faltungsoperation durchzuführen, bis der Faltungskernel nicht mehr nach rechts gleiten kann, und dann in die linke Richtung der Daten Schieben Sie 2 Schritte nach unten und wiederholen Sie die oben erwähnte Faltungsoperation, bis die Daten der Faltungsoperation unterzogen wurden. Insbesondere ist die obige Abbildung relativ intuitiv, um den Prozess der Faltungsoperation mit einer Schrittweite von 2 zu zeigen.
  Aus der Abbildung kann leicht entnommen werden, dass die endgültige Ausgabegröße der Faltungsoperation (2,2) ist, sodass es offensichtlich ist, dass die Ausgabegröße nach dem Erhöhen der Schrittweite kleiner wird. Und nach dem Erhöhen der Polsterung wird die Größe der Ausgabe größer. Gibt es also einen Satz, um die Beziehung zwischen den Eingabedaten und den Ausgabedaten zu berechnen? Die Antwort ist offensichtlich ja.
  Angenommen, die Eingabegröße ist (H, W), die Faltungskerngröße ist (FH, FW), die Ausgabedatengröße ist (OH, OW), die Auffüllung ist P und die Schrittweite ist S.
  Die Berechnungsformel lautet wie folgt: OH = H + 2 P − FHS + 1 OW = W + 2 P − FWS + 1 \begin{gathered} OH=\frac{H+2 PF H}{S}+1 \\ OW= \frac{W+2 PF W}{S}+1 \end{gesammelt}O H=SH+2 PFH _+1O W=SW+2 PFW _+1  Verwenden Sie nun die Formeln, um den obigen Fall für Polsterung und Stride-Fall zu berechnen.
  Die Berechnungen für den gefüllten Fall lauten wie folgt: OH = 3 + 2 ∗ 1 − 2 1 + 1 = 4 OW = 3 + 2 ∗ 1 − 2 1 + 1 = 4 \begin{aligned} &O H=\frac{3 +2 * 1-2}{1}+1=4 \\ &O W=\frac{3+2 * 1-2}{1}+1=4 \end{aligned}O H=13+212+1=4O W=13+212+1=4  Offensichtlich stimmt es mit dem Endergebnis überein.
  Der Stride-Fall wird wie folgt berechnet: OH = 4 + 2 ∗ 0 − 2 2 + 1 = 2 OW = 4 + 2 ∗ 0 − 2 2 + 1 = 2 \begin{aligned} &O H=\frac{4+2 * 0-2}{2}+1=2 \\ &O W=\frac{4+2 * 0-2}{2}+1=2 \end{aligned}O H=24+202+1=2O W=24+202+1=2  Offensichtlich stimmt die Berechnung auch hier mit dem Ergebnis in der Endfigur überein.
  Es sollte hier beachtet werden, dass die Schrittweite und das Auffüllen selbst eingestellt werden können, aber es kann Situationen geben, in denen das endgültige Berechnungsergebnis keine ganze Zahl ist, was dazu führt, dass bei der abschließenden Programmoperation ein Fehler gemeldet wird. Solche Situationen sollten vermieden werden natürlich so viel wie möglich. Das Deep-Learning-Framework von führt Rundungen durch und setzt die Berechnung ohne Fehlermeldung fort.

3.5 Mehrkanal-Datenfaltungsoperation

  Die Daten in den obigen Beispielen sind alle mit der Anzahl der Kanäle als 1 erklärt, aber das Bild hat ein Graustufenbild mit einer Kanalnummer von 1 und ein Farbbild mit einer Kanalnummer von 3. Gleichzeitig kann die Faltungsoperation auch den Kanal des Eingabe-Features ändern Die Zahl macht das Ausgabe-Feature zu einer Multi-Channel-Feature-Map, daher müssen Multi-Channel-Daten nicht nur die Höhen- und Längenrichtungen berücksichtigen, sondern auch die Kanalrichtung verarbeiten. Wenn daher mehrere Merkmalskarten in Kanalrichtung vorhanden sind, werden die Eingabedaten und der Faltungskern entsprechend dem Kanal gefaltet und die Ergebnisse werden addiert, um die Ausgabe-Merkmalskarte zu erhalten. Hier verwenden wir 3-Kanal-Daten, um den Prozess der Faltungsoperation von Mehrkanaldaten zu demonstrieren.
Bildbeschreibung hier einfügen
  Wie in der obigen Abbildung gezeigt, handelt es sich bei den Eingabedaten um eine Merkmalskarte mit einer Kanalnummer von 3 und einer Formgröße von (4,4). Da der Eingangskanal 3 ist, muss der Kanal des Faltungskerns der gleiche sein wie der Kanal der Eingangsdaten, und die Form und Größe des Faltungskerns jedes Kanals muss auch gleich sein, also die Anzahl der Kanäle der Der hier eingestellte Faltungskern ist 3, und die Form und Größe ist (3,3). Falten Sie die Merkmalskarten verschiedener Kanäle mit den Faltungskernen der entsprechenden Kanäle und addieren Sie die endgültigen Berechnungsergebnisse; im Vergleich zur Einkanal-Faltungsoperation gibt es hier einen weiteren Schritt, um die Faltungsoperationsergebnisse verschiedener Kanäle zu addieren. Daher hat die endgültige Ausgabe-Feature-Map, wie in der Abbildung gezeigt, eine Kanalgröße von 1 und eine Form von (2,2).
  Der obige Prozess kann an die Verwendung eines Quaders gedacht werden, der anschaulicher sein kann, wie in der Figur gezeigt, der den obigen Mehrkanal-Datenfaltungsprozess sehr anschaulich beschreiben kann. Bildbeschreibung hier einfügen
  Darunter können die Daten ausgedrückt werden als (Kanal, Höhe, Breite). Daher ist die Form der Eingabedaten in der Figur (C, H, W), die Form des Faltungskerns ist (C, FH, FW) und die Form der Ausgabedaten ist (OH, OW).
  Wenn es nur einen Faltungskern gibt, ist die Anzahl der Kanäle der Ausgabe-Feature-Map natürlich 1. Zu dieser Zeit hoffte man während der Faltungsoperation, dass die Ausgabemerkmalskarte mehrkanalig sein würde, Zu diesem Zeitpunkt war es notwendig, mehr Faltungskerne zu setzen (d. h. mehr Sätze von Gewichten zu setzen).
  Wie in der Figur gezeigt, gibt es, wenn die Eingabedatengröße (C, H, W) ist, insgesamt FN-Faltungskerne und die Größe ist (C, FH, FW). Die Ausgabe-Feature-Map hat also die Größe (FN, OH, OW). Bildbeschreibung hier einfügen  Natürlich gibt es nicht nur Gewichtungsparameter (Faltungskern), sondern auch Bias-Parameter im Convolutional Neural Network.Wenn die Anzahl der Kanäle C ist, ist der spezifische Berechnungsprozess in der folgenden Abbildung dargestellt:Bildbeschreibung hier einfügen
  Wenn die Eingangsdatengröße (C, H, W) ist, gibt es insgesamt FN-Faltungskerne und die Größe ist (C, FH, FW). Die Größe der Ausgabe-Feature-Map nach der Faltungsoperation ist (FN, OH, OW), also muss die Anzahl der Offset-Kanäle gleich der Anzahl der Kanäle der Ausgabe-Feature-Map sein, also ist die Größe des Offsets ( FN, 1, 1) . Fügen Sie dem Pixel den Versatz und die Ausgabe-Feature-Karte hinzu, und die endgültige Größe der Ausgabe-Feature-Karte ist (FN, OH, OW). Das Hinzufügen des Versatzes ändert also nicht die Form des Ausgabe-Features, sondern nur die Größe der Ausgabe Eigenschaftswert.


4. Pooling-Schicht

  Die Pooling-Schicht stellt eine Operation zum Reduzieren des Feature-Map-Raums dar. Der Unterschied zwischen der Pooling-Schicht und der Convolutional-Schicht besteht darin, dass die Feature-Map mit dem Convolution-Kernel gefaltet werden muss, sodass die Convolutional-Schicht Parameter lernen muss Fehler wird durch Vorwärtsausbreitung bestimmt, und dann werden die Parameter durch Rückausbreitung aktualisiert. Die Pooling-Schicht extrahiert jedoch nur den Maximal- oder Durchschnittswert aus dem Zielbereich, sodass keine Parameter gelernt werden müssen.
  Was die Pooling-Schicht tut, ist, den Maximalwert von Pixeln im Zielbereich zu extrahieren oder den Durchschnittswert zu berechnen. Daher hat die Operation der Pooling-Schicht zwei Arten von Operationen, die als maximales Pooling und durchschnittliches Pooling bezeichnet werden.Lassen Sie uns nun einen Blick darauf werfen, wie die Pooling-Operation durchgeführt wird.
  Wie in der Abbildung unten gezeigt, handelt es sich um den Berechnungsprozess des maximalen Poolings: Bildbeschreibung hier einfügen
  Wie in der Abbildung oben gezeigt, sind die Eingabedaten eine Merkmalskarte der Größe (4,4) und der Zielbereich hat die Größe (2,2) von links nach rechts auf der Feature-Karte Rechts den Maximalwert im Zielbereich von oben nach unten nehmen. Gleichzeitig ist die Stride-Größe der Pooling-Schicht im Allgemeinen dieselbe wie die Pooling-Fenstergröße. Zum Beispiel ist die Pooling-Fenstergröße in diesem Beispiel (2, 2), dann wird die Schrittweite zu diesem Zeitpunkt auf 2 gesetzt. Durch kontinuierliche Berechnung Eine Merkmalskarte der Größe (4,4) wird schließlich in eine Berechnungskarte der Größe (2,2) umgewandelt. Natürlich kann die Beziehung zwischen der Eingabemerkmalskarte und der Ausgabemerkmalskarte der Pooling-Schicht auch unter Verwendung der oben erwähnten Eingabe- und Ausgabeberechnungsformel der Faltungsschicht berechnet werden, aber die Größe des Faltungskerns wird die Größe der Pooling-Fenster.
  Die Berechnung für diesen Fall ist beispielsweise wie folgt: OH = 4 + 2 ∗ 0 − 2 2 + 1 = 2 OW = 4 + 2 ∗ 0 − 2 2 + 1 = 2 \begin{aligned} &O H=\frac {4+2 * 0-2}{2}+1=2 \\ &O W=\frac{4+2 * 0-2}{2}+1=2 \end{aligned}O H=24+202+1=2O W=24+202+1=2  Das Endergebnis der Berechnung stimmt mit dem Endergebnis in der Abbildung überein.
  Neben dem Maximum-Pooling gibt es auch eine Average-Pooling-Operation: Wie der Name schon sagt, dient das Average-Pooling dazu, die Werte im Zielbereich zu mitteln und zu summieren.
  Wie in der Abbildung unten gezeigt, handelt es sich um den Berechnungsprozess des durchschnittlichen Poolings: Bildbeschreibung hier einfügen  Der spezifische Prozess des durchschnittlichen Poolings wird nicht im Detail beschrieben, und die obige Abbildung zeigt deutlich den Berechnungsprozess. Im Bereich der Bilderkennung ist die Hauptanwendung jedoch immer noch das maximale Pooling.
  Beim Pooling gibt es noch einiges zu beachten:
  Die Eingabedaten haben nicht nur Länge und Höhe, sondern auch den Kanalbegriff. Die Operation der Pooling-Schicht ändert jedoch nicht den Kanal der Eingabe-Feature-Karte, und die Pooling-Operation wird unabhängig nach Kanal berechnet.
  Die Pooling-Schicht ist robust gegenüber kleinen Positionsänderungen, wodurch das Modell robuster wird. Wenn eine kleine Änderung in den Eingabe-Feature-Daten gefunden wird, ist das Ergebnis der Ausgabe-Feature-Karte immer noch dasselbe, wie in der folgenden Abbildung dargestellt: Die Position der Daten Bildbeschreibung hier einfügen
  im roten Feld hat sich geändert, aber das zurückgegebene Ergebnis ist dasselbe , offensichtlich der Pool Die Optimierungsoperation konzentriert sich nur auf lokale Merkmale und ist unempfindlich gegenüber subtilen Änderungen im Ganzen. Dies ist eine sehr gute Operation im Bereich der Bilderkennung, da wir uns nur auf die Punkte konzentrieren, die für unser Urteil nützlich sind B. ein Bild, und müssen nicht für jedes der globalen Merkmale spezifisch sein.


Zusammenfassen

  Das Convolutional Neural Network stellt ein äußerst wichtiges neuronales Netzwerkmodell im Deep Learning dar. Auf dieser Grundlage hat es sich zum Bereich des Computer Vision entwickelt. Derzeit hat das Computer Neural Network Zweige wie Bildklassifizierung, Zielerkennung und Bildsegmentierung und dort sind viele Landungsprojekte. Die meisten Algorithmen werden auf der Grundlage von Convolutional Neural Networks verbessert, und um Convolutional Neural Networks gut zu lernen, müssen Sie mit verschiedenen Netzwerkmodelldiagrammen zusammenarbeiten, um ihn zu verstehen.Dieser Artikel basiert auch auf einer großen Anzahl von Modelldiagrammen Netzwerk wird erklärt, was für jeden bequem zu verstehen und zu lernen ist.

Je suppose que tu aimes

Origine blog.csdn.net/didiaopao/article/details/126483397
conseillé
Classement