Konvolutionelle neuronale Netzwerkarchitektur | CNN-Architektur

Inhalt

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,

90650DNN2-5115625

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

69676DNN3-4639825

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

65111Screenshot20166-5880710

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.

99433DNN4-3579501

Wir werden versuchen, dies zu formulieren,

65969screenshot20175-9136898

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,

92373DNN5-6792110

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

21732screenshot20167-1634218

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. !!!

54575DNN6-1331138

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)

54331DNN7-8546250

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

88265DNN8-8570398

LeNet-5 ist eine sehr einfache Architektur, so dass jeder mit fortgeschrittenen Architekturen beginnen kann

59467DNN9-1012443

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):

28844Screenshot20168-6310615

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):

59702Screenshot20170-3922840

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):

59083DNN10-2418903

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):

98064DNN11-1381778

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):

90366DNN12-6023324

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

64119DNN13-6134443

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,

69373screenshot20172-6445235

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. !!!

Abonniere unseren Newsletter

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