Was ist das Convolutional Neural Network Architecture?
Dieser Artikel wurde als Teil des Data Science Blogathon veröffentlicht.
Einführung
Arbeiten an einem Projekt zur Bilderkennung oder Objekterkennung, hatten aber nicht die Grundlagen zum Erstellen einer Architektur?,
In diesem Artikel werden wir sehen, was sind faltungsneuronale Netzwerkarchitekturen direkt von basic und wir werden eine grundlegende Architektur als Fallstudie nehmen, um unsere Erkenntnisse anzuwenden, Die einzige Voraussetzung ist, dass Sie nur wissen müssen, wie Faltung funktioniert, aber keine Sorge, es ist sehr einfach !!
Nehmen wir ein einfaches faltungsneuronales Netzwerk,
Wir werden schichtweise tiefe Einblicke in dieses CNN erhalten.,
Zuerst gibt es ein paar Dinge von Schicht 1 zu lernen, die schreiten und Auffüllen ist, werden wir jeden von ihnen in Kürze mit Beispielen
Nehmen wir an, dies in der Eingabematrix von 5×5 und ein Filter der Matrix 3X3, für diejenigen, die nicht wissen, was ein Filter ist ein Satz von Gewichten in einer Matrix auf ein Bild oder eine Matrix angewendet, um die erforderlichen Funktionen zu erhalten, suchen Sie bitte auf Faltung, wenn dies Ihr erstes Mal ist!
Hinweis: Wir nehmen immer die Summe oder den Durchschnitt aller Werte, während wir eine Faltung durchführen.,
Ein Filter kann von beliebiger Tiefe sein, wenn ein Filter eine Tiefe d hat, kann er bis zu einer Tiefe von d Schichten und Konvolut i gehen.,“f4a6da248a“>
Hier hat die Eingabe die Größe 5×5 Nach dem Anwenden eines 3×3-Kernels oder-Filters erhalten Sie eine 3×3-Ausgabe-Feature-Map, also lassen Sie uns versuchen, dies zu formulieren
So wird die Ausgabehöhe formuliert und das gleiche mit o/p Breite auch…
Padding
Während der Anwendung von Windungen erhalten wir nicht die Ausgabeabmessungen die gleichen wie die Eingabe Wir verlieren Daten über Grenzen, so dass wir einen Rand von Nullen anhängen und die Faltung neu berechnen, die alle Eingabewerte abdeckt.,r Breite auch
Schritt
Einige Male wir nicht wollen, um zu erfassen alle Daten oder Informationen, so überspringen wir einige benachbarte Zellen lasst uns visualisieren,
Hier ist die input-matrix oder Bild ist von den Abmessungen 5×5 mit einem filter von 3×3 und eine Schrittlänge von 2 so, dass jedes mal, wenn wir überspringen zwei Spalten und Konvolut, lassen Sie uns die Formulierung dieses
Wenn die Dimensionen in float, die Sie ergreifen können, ceil() auf der Ausgabe, die ich.,e (next close integer)
Hier bezieht sich H auf die Höhe, so dass die Ausgabehöhe formuliert ist und die gleiche mit o/p Breite auch und hier 2 ist der Schrittwert, so dass Sie es als S in den Formeln machen können.
Pooling
Im Allgemeinen pooling bezieht sich auf einen kleinen Teil, so hier wir nehmen einen kleinen Teil der Eingabe und versuchen Sie, den durchschnittlichen Wert bezeichnet als Durchschnittliche pooling oder maximale Wert bezeichnet, wie max pooling, also durch tun pooling Sie auf ein Bild, nehmen wir Sie nicht alle Werte sind wir einen zusammengefassten Wert über alle Werte vorhanden !!!,
Hier ist ein Beispiel für ein maximales Pooling, also nehmen wir hier einen Schritt von zwei Wir nehmen den maximalen Wert, der in der Matrix vorhanden ist
Aktivierungsfunktion
Die Aktivierungsfunktion ist ein Knoten, der am Ende oder zwischen neuronalen Netzen platziert wird. Sie helfen zu entscheiden, ob das Neuron feuern würde oder nicht., Wir haben verschiedene Arten von Aktivierungsfunktionen wie in der obigen Abbildung, aber für diesen Beitrag konzentriere ich mich auf die korrigierte lineare Einheit (ReLU)
Lassen Sie Ihre Kiefer nicht fallen, dies ist nicht so komplex Diese Funktion gibt einfach 0 zurück, wenn Ihr Wert negativ ist Sonst gibt sie den gleichen Wert zurück, den Sie gab, nichts als eliminiert negative Ausgaben und hält Werte zwischen 0 bis +unendlich
Jetzt, da wir alle Grundlagen gelernt haben, lassen Sie uns ein grundlegendes neuronales Netz namens LeNet studieren.,
LeNet-5
Vor dem Start werden wir sehen, welche Architekturen bisher entworfen wurden.,ures
Was sind die Ein-und Ausgänge (Layer 0 und Layer N) :
Hier prognostizieren wir Ziffern basierend auf dem angegebenen Eingabebild.kann davon ausgehen, dass es sich um ein Graustufenbild oder ein Schwarzweißbild handelt, wobei zu berücksichtigen ist, dass die Ausgabe ein Softmax aller 10 Werte ist, hier gibt softmax Wahrscheinlichkeiten oder Verhältnisse für alle 10 Ziffern an.,ef5″>
Hier nehmen wir die Eingabe und konvolieren mit Filtern der Größe 5 x 5, wodurch eine Ausgabe der Größe 28 x 28 erzeugt wird Überprüfen Sie die obige Formel, um die Ausgabeabmessungen zu berechnen, die Sache hier ist, dass wir 6 solche Filter genommen haben und daher ist die Tiefe von conv1 6, daher waren seine Abmessungen, 28 x 28 x 6 Übergeben Sie dies nun an die Pooling-Schicht
Pooling 1 (Layer 2) :
Hier nehmen wir die 28 x 28 x 6 als Eingabe und wenden durchschnittliche Pooling einer Matrix von 2×2 und einen Schritt von 2 i.,wenn Sie eine 2 x 2-Matrix auf der Eingabe bewegen und den Durchschnitt aller dieser vier Pixel nehmen und jedes Mal mit einem Sprung von 2 Spalten springen, wodurch 14 x 14 x 6 als Ausgabe ausgegeben werden, berechnen wir das Pooling für jede Ebene, sodass hier die Ausgabetiefe 6
Faltung 2 (Schicht 3) :
Hier nehmen wir die 14 x 14 x 6 ie das vorherige o/p und konvolieren mit einem Filter der Größe 5×5, mit einem Schritt von 1 i.,e (kein Überspringen), und mit Null-Paddings, so dass wir eine 10 x 10 Ausgabe erhalten, nehmen wir hier 16 solcher Filter der Tiefe 6 und wickeln so eine Ausgabe von 10 x 10 x 16
Pooling 2 (Layer 4):
iv Hier nehmen wir die Ausgabe der vorherigen Ebene und führen ein durchschnittliches Pooling mit einem Schritt von 2 i durch.,yer (N-1) :
Schließlich glätten wir alle 5 x 5 x 16 auf eine einzelne Schicht von Größe 400 Werten und geben sie in ein neuronales Feed-Forward-Netzwerk von 120 Neuronen mit einer Gewichtsmatrix von Größe und einer versteckten Schicht von 84 Neuronen ein, die durch die 120 Neuronen mit einer Gewichtsmatrix von und diese 84 Neuronen sind tatsächlich mit 10 Ausgangsneuronen verbunden
Diese o/p Neuronen schließen die vorhergesagte Zahl durch Softmaxing ab .,
Wie funktioniert ein konvolutionelles neuronales Netzwerk eigentlich?,
Es funktioniert durch gewicht sharing und spärliche konnektivität,
So hier wie sie sehen können die faltung hat einige gewichte diese gewichte sind geteilt durch alle die eingang neuronen, nicht jeder eingang hat eine separate gewicht genannt gewicht sharing, und nicht alle eingang neuronen sind verbunden ausgabe Neuron a ‚ o nur einige, die gewunden sind, werden auch als spärliche Konnektivität bekannt, CNN unterscheidet sich nicht von Feed-Forward neuronale Netze diese beiden Eigenschaften machen sie besonders !!!,
Zeigt auf
1. Nach jeder Faltung wird die Ausgabe an eine Aktivierungsfunktion gesendet, um bessere Eigenschaften zu erhalten und die Positivität aufrechtzuerhalten, z. B.: ReLU
2. Spärliche Konnektivität und Gewichtsverteilung sind der Hauptgrund dafür, dass ein faltungsneurales Netzwerk
3 funktioniert. Das Konzept der Auswahl einer Reihe von Filtern zwischen Ebenen und Polsterung und Schritt-und Filterdimensionen wird bei einer Reihe von Experimenten übernommen, machen Sie sich keine Sorgen, konzentrieren Sie sich auf das Erstellen von Fundamenten, eines Tages werden Sie diese Experimente durchführen und ein produktiveres erstellen!!!,
Sie können diesen Artikel auch in unserer mobilen APP lesen