Dieser Artikel wurde im Rahmen der Data Science Blogathon.
Einführung
Arbeiten Sie an einem Projekt zur Bilderkennung oder Objekterkennung, hatten aber nicht die Grundlagen, um eine Architektur zu erstellen??
In diesem Artikel, Wir werden von den Grundlagen aus sehen, was Convolutional Neural Network-Architekturen sind, 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.. Sorge ist ganz einfach !!
Nehmen wir ein einfaches Convolutional Neural Network,
Wir werden die Ebenen durchgehen, um detaillierte Informationen über dieses CNN zu erhalten.
Zuerst, Es gibt ein paar Dinge, die man von der Ebene lernen kann 1 Was ist es Schritte und Polsterung, Wir werden jeden von ihnen in Kürze mit Beispielen sehen
Nehmen wir an, dass dies im Eingabearray von 5 × 5 und ein 3X3-Matrixfilter, Für alle, die nicht wissen, was Der Filter ist ein Satz von Gewichtungen in einer Matrix, der auf ein Bild oder eine Matrix angewendet wird, um die erforderlichen Eigenschaften zu erhalten., Suche nach Faltung, wenn es das erste Mal ist.
Notiz: Wir nehmen immer die Summe oder den Durchschnitt aller Werte, wenn wir eine Faltung machen.
Ein Filter kann eine beliebige Tiefe haben, Wenn ein Filter eine Tiefe von, Sie können bis zu einer Tiefe von D-Schichten gehen und konvolut, nämlich, Addieren Sie alle (Gewichte x Tickets) Anzahl der D-Schichten
Hier ist der Eintrag von Größe 5 × 5 Nach dem Anwenden eines Kernels oder von Filtern 3 × 3, Sie erhalten eine Ausgabe-Feature-Karte von 3 × 3, Versuchen wir also, dies zu formulieren
Dann, Die Austrittshöhe ist formuliert und gleich mit der Breite von oder / p auch …
Füllung
Beim Anwenden von Faltungen, Wir erhalten nicht die gleichen Ausgabeabmessungen wie die Eingabeabmessungen, Wir verlieren Daten über die Kanten, Wir fügen also einen Rand aus Nullen hinzu und berechnen die Faltung neu, die alle Eingabewerte abdeckt.
Wir werden versuchen, dies zu formulieren,
Hier 2 ist für zwei Spalten mit Nullen zusammen mit Höhe und Breite, und formuliert dasselbe auch für die Breite
Hose
Manchmal möchten wir nicht alle verfügbaren Daten oder Informationen erfassen, also überspringen wir einige benachbarte Zellen, damit wir sie visualisieren können,
Hier ist die Matrix oder das Eingabebild von Abmessungen 5 × 5 mit einem Filter von 3 × 3 und ein Schritt von 2 Jedes Mal, wenn wir also zwei Spalten überspringen und uns, Lassen Sie uns das formulieren
Wenn die Bemaßungen unverankert sind, Sie können Ceil einnehmen () am Ausgang, nämlich (nächste Ganzzahl in der Nähe)
Hier bezieht sich H auf die Höhe, So ist die Austrittshöhe formuliert und gleich mit der Breite von oder / P auch und hier 2 ist der Wert des Schritts, so dass Sie ihn als S in den Formeln ausführen können.
Gruppierung
Allgemein gesagt, Die Gruppierung bezieht sich auf einen kleinen Teil, Hier nehmen wir also einen kleinen Teil der Eingabe und versuchen, den Durchschnittswert zu nehmen, der als durchschnittliche Gruppierung bezeichnet wird, oder einen Maximalwert, der als maximale Gruppierung bezeichnet wird, Wenn Sie also eine Gruppierung in einem Bild vornehmen, Wir nehmen nicht alle Werte heraus, sondern nehmen einen zusammengefassten Wert für alle vorhandenen Werte. !!!
hier, Dies ist ein Beispiel für eine maximale Gruppierung, Also hier, Ein Schritt von zwei, Wir nehmen den maximalen Wert, der in der Matrix vorhanden ist
Auslöserfunktion
Die Aktivierungsfunktion ist ein Knoten, der am Ende oder zwischen den neuronalen Netzen platziert wird. Sie helfen bei der Entscheidung, ob das Neuron feuert oder nicht.. Wir haben verschiedene Arten von Aktivierungsfunktionen, wie in der obigen Abbildung dargestellt, sondern für diese Veröffentlichung, Mein Fokus liegt auf Rektifizierte Lineareinheit (Lebenslauf)
Lassen Sie nicht die Kinnlade fallen, Das ist gar nicht so aufwendig Diese Funktion gibt einfach 0 wenn sein Wert negativ ist, andererseits, gibt den gleichen Wert zurück, der, Nichts anderes, als negative Ausgänge zu eliminieren und Werte zwischen 0 Ja + unendlich
Jetzt, da wir alle notwendigen Grundlagen gelernt haben, Untersuchen wir ein grundlegendes neuronales Netzwerk namens LeNet.
LeNet-5
Bevor wir beginnen, werden wir sehen, welche Architekturen bisher entworfen wurden.. Diese Modelle wurden mit ImageNet-Daten getestet, bei denen wir über eine Million Bilder und 1000 Klassen vorherzusagen
LeNet-5 ist eine sehr einfache Architektur, so dass jeder mit fortgeschrittenen Architekturen beginnen kann
Was sind die Ein- und Ausgänge? (Vorderseite 0 und Layer N):
Hier sagen wir Ziffern basierend auf dem gegebenen Eingabebild voraus, Bitte beachten Sie, dass hier Das Bild hat die Abmessungen Höhe = 32 Pixel, Breite = 32 Pixel und eine Tiefe von 1, Wir können also davon ausgehen, dass es sich um ein Graustufen- oder Schwarz-Weiß-Bild handelt, Berücksichtigen Sie, dass Die Ausgabe ist ein Softmax der 10 Werte, Hier gibt Softmax Wahrscheinlichkeiten oder Gründe für alle 10 Ziffern, Wir können die Zahl mit der höchsten Wahrscheinlichkeit oder dem höchsten Verhältnis als Ausgabe nehmen.
Faltung 1 (Vorderseite 1):
Hier nehmen wir die Eingabe und umschließen mit Größenfiltern 5 x 5, Dadurch wird ein Output von Größe 28 x 28.Überprüfen Sie die obige Formel, um die Ausgabeabmessungen zu berechnen, Was wir hier aufgenommen haben, ist 6 Filter dieses Typs und, Daher, das Die Tiefe von Conv1 beträgt 6, Daher, Seine Abmessungen waren 28 x 28 x 6 Übergeben Sie dies nun an die Gruppierungsebene
Gruppierung 1 (Vorderseite 2):
Hier nehmen wir 28 x 28 x 6 als Eingabe und Anwendung der durchschnittlichen Kombination eines Arrays von 2 × 2 und ein Schritt der 2, nämlich, Platzieren einer Matrix von 2 x 2 in der Eingabe und nimmt den Durchschnitt all dieser vier Pixel und springt mit einem Sprung von 2 Spalten auf einmal, Was es gibt 14 x 14 x 6 als Ausweg, Wir berechnen die Gruppierung für jede Ebene, Hier ist also die Austrittstiefe 6
Faltung 2 (Vorderseite 3):
Hier nehmen wir die 14 x 14 x 6, nämlich, Die oder / PY-Wrapping mit einem Größenfilter 5 x5, mit einem Schritt von 1, nämlich (Keine Sprünge), und ohne Füllstoffe, Wir erhalten also eine Ausgabe von 10 x 10, jetzt Hier nehmen wir 16 Filter dieser Art von Tiefe 6 und Faltung, wodurch eine Ausgabe von 10 x 10 x 16
Gruppierung 2 (Vorderseite 4):
Hier nehmen wir die Ausgabe der vorherigen Schicht und führen eine durchschnittliche Gruppierung mit einem Schritt von 2, nämlich (Zwei Spalten überspringen) und mit einem Größenfilter 2 x 2, hier Überlagern Sie diesen Filter mit den Ebenen von 10 x 10 x 16 also für jeden 10 x 10 Wir erhalten Ausgaben von 5 x 5, Daher, Erhalten 5 x 5 x 16
Vorderseite (N-2) und Layer (N-1):
Schließlich, Wir glätten alle Werte von 5 x 5 x 16 auf eine einzelne Ebenengröße 400 und wir geben sie in ein vorwärts speistisches neuronales Netzwerk von 120 Neuronen, die eine Gewichtsmatrix der Größe haben. [400,120] und eine versteckte Schicht von 84 Neuronen, die durch 120 Neuronen mit einer Gewichtsmatrix von [120,84] und diese 84 Neuronen sind in der Tat mit 10 Output-Neuronen
Diese Neuronen oder / p end die Zahl, die von Softmaxing.
Wie funktioniert eigentlich ein Convolutional Neural Network??
Funktioniert auch bei Gewichtsverteilung und schlechter Konnektivität,
Also hier, Wie Sie sehen können Faltung hat einige Gewichte, diese Gewichte werden von allen Eingabeneuronen geteilt, Nicht jeder Eintrag hat eine separate Gewichtung, die als gemeinsame Gewichtung bezeichnet wird, Ja Nicht alle Input-Neuronen sind mit dem Output-Neuron verbunden und nur einige, die gefaltet sind, werden aktiviert., Sogenannte schlechte Konnektivität, CNN unterscheidet sich nicht von vorwärts gespeisten neuronalen Netzen, Diese beiden Eigenschaften machen sie zu etwas Besonderem!!
Punkte, auf die man achten sollte
1. Nach jeder Faltung, Die Ausgabe wird an eine Aktivierungsfunktion gesendet, um bessere Funktionen zu erzielen und die Positivität aufrechtzuerhalten, zum Beispiel: ReLu
2. Schlechte Konnektivität und geteiltes Gewicht sind der Hauptgrund dafür, dass ein Convolutional Neural Network funktioniert.
3. Das Konzept, eine Reihe von Filtern zwischen den Schichten und der Polsterung sowie den Abmessungen des Schritts und des Filters auszuwählen, wird durch die Durchführung einer Reihe von Experimenten durchgeführt, Mach dir darüber keine Sorgen, Konzentrieren Sie sich auf den Aufbau des Fundaments, Eines Tages werden Sie diese Experimente durchführen und ein produktiveres Experiment erstellen. !!!