Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

WBOY
Freigeben: 2024-06-04 20:19:27
Original
366 Leute haben es durchsucht

Ich glaube, dass Freunde wie der Autor, die Technologie lieben und ein starkes Interesse an KI haben, mit Faltungs-Neuronalen Netzen vertraut sein müssen und schon lange von einem so „fortgeschrittenen“ Namen verwirrt sein müssen. Der Autor wird heute von Grund auf in die Welt der Faltungs-Neuronalen Netze eintauchen ~ teilen Sie es mit Ihnen!

Bevor wir in das Faltungs-Neuronale Netzwerk eintauchen, schauen wir uns zunächst die Prinzipien von Bildern an.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Bildprinzip

Bilder werden in Computern durch Zahlen (0-255) dargestellt. Jede Zahl repräsentiert die Helligkeits- oder Farbinformationen eines Pixels im Bild. Darunter:

  • Schwarz-Weiß-Bild: Jedes Pixel hat nur einen Wert, und dieser Wert variiert zwischen 0 (schwarz) und 255 (weiß).

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

  • Farbbild: Jedes Pixel enthält drei Werte, am gebräuchlichsten ist das RGB-Modell (Rot-Grün-Blau), das heißt, rotes, grünes und blaues Licht werden in unterschiedlicher Intensität kombiniert, um verschiedene Farben zu erzeugen. Jeder Farbkanal verfügt über 256 Helligkeitsstufen von 0 bis 255, sodass jede Farbe durch eine 8-Bit-Binärzahl ausgedrückt werden kann, zum Beispiel (255,0,0) steht für Rot, (0,255,0) steht für Grün, ( 0 ,0,255) steht für Blau und andere Kombinationen entsprechen verschiedenen Farben. In Computern ist die Datenstruktur eines Farbbilds normalerweise ein dreidimensionales Array oder ein Tensor mit der Form (Breite, Höhe, Tiefe), wobei die Tiefe die Anzahl der Kanäle ist. Bei RGB-Bildern beträgt die Tiefe 3. Das bedeutet, dass es für jede Pixelposition drei Werte gibt, die die Helligkeit der drei Kanäle Rot, Grün und Blau darstellen. Beispielsweise belegt ein RGB-Bild mit 100 x 100 Pixeln 100 x 100 x 3 Byte Speicher.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

„Wie verstehen Sie hier die „8-Bit-Binärzahl“?“

Im RGB-Farbmodell kann jeder Farbkanal (Rot, Grün, Blau) 256 verschiedene Helligkeitsstufen haben, jeder Kanal stellt eine 8-Bit-Binärdarstellung dar. Der Maximalwert der 8-Bit-Binärzahl ist 11111111, was bei der Konvertierung in eine Dezimalzahl 255 ist.

Was ist ein Faltungs-Neuronales Netzwerk CNN?

CNN berichtete über ein im Lebenslauf bekanntes Anwendungsszenario. Nehmen wir als Beispiel die Originalbildgröße 10x10, wie in der Abbildung unten gezeigt, hat die linke Hälfte größere Pixelwerte und ist ein heller Bereich, die rechte Hälfte hat kleinere Pixelwerte und ist ein Tiefenbereich. Die Trennlinie in der Mitte ist die zu erkennende Kante.

„Wie erkennt man also Kanten?“ Zu diesem Zeitpunkt wird der Filter (auch Kernel genannt) angezeigt, wie in der Abbildung unten gezeigt. Die Kernelgröße beträgt 3x3.

Der Filter gleitet über das Eingabebild, stoppt für einen Moment in jedem Bereich, multipliziert und addiert die entsprechenden Elemente und gleitet dann zu anderen Bereichen, um die Berechnung fortzusetzen, bis er zum letzten Bereich des Originalbilds gleitet. Dieser Vorgang wird als „Faltung“ bezeichnet.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Wie Sie auf dem Bild oben sehen können, weist das Ausgabeergebnis eine helle Farbe in der Mitte und eine dunkle Farbe auf beiden Seiten auf, was darauf hinweist, dass die Grenzen des Originalbilds verschoben wurden reflektiert. „Daraus kann geschlossen werden, dass die Kantenerkennung durch die Faltungsoperation des Eingabebildes und des entsprechenden Filters erfolgt.“ Darüber hinaus beinhaltet das Gleiten hier auch ein Grundkonzept, „Schritt“. Ein Schritt von 1 bedeutet, dass Sie jedes Mal, wenn Sie einen Frame verschieben, in insgesamt 8x8-Bereichen bleiben, sodass das endgültige Ausgabeergebnis eine 8x8-Matrix ist.

„Was genau ist ein Faltungs-Neuronales Netzwerk?“

Nach der obigen Analyse des spezifischen Zielerkennungsszenarios der Kantenerkennung ist es für uns nicht schwer zu verstehen, dass CNN (Faltungs-Neuronales Netzwerk) verschiedene Filter kontinuierlich verwendet Extrahiert Bildmerkmale, vom lokalen zum gesamten Bild, und identifiziert dann das Ziel.

In neuronalen Netzen ist jede Zahl in diesen Filtern ein Parameter, der durch Training mit einer großen Datenmenge (also dem Prozess des Deep Learning) ermittelt werden kann.

Grundlegende Konzepte in CNN

1. Faltung (Faltung)

(1) Faltungsberechnung

Faltung ist eine integrale Transformationsmethode in der mathematischen Analyse, die in der Bildverarbeitung als diskrete Form der Faltung verwendet wird. Im Faltungs-Neuronalen Netzwerk CNN ist die Implementierung der Faltungsschicht im Wesentlichen die in der Mathematik definierte Kreuzkorrelationsberechnung (Kreuzkorrelation). Der spezifische Berechnungsprozess ist in der folgenden Abbildung dargestellt.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!Unter ihnen:

Bild (a): Die Größe des linken Bildes beträgt 3 × 3, was darauf hinweist, dass die Eingabedaten ein zweidimensionales Array mit einer Dimension von 3 × 3 sind. Die Größe des mittleren Bilds beträgt 2 × 2, was eine Zwei anzeigt -dimensionales Array mit einer Dimension von 2×2, auch bekannt als „Faltungskern“. Die obere linke Ecke des Faltungskerns wird an der oberen linken Ecke (0,0) der Eingabedaten ausgerichtet, und die entsprechenden Positionsdaten der beiden werden multipliziert und dann addiert, um das erste Ergebnis der Faltungsausgabe 25 zu erhalten.

In Analogie dazu sind die Abbildungen (b), (c) und (d) die zweiten, dritten und vierten Ausgabeergebnisse der Faltungsausgabe.

(2) Bildfaltungsoperation

Was genau ist also die Bildfaltungsoperation? Wie in der folgenden Abbildung dargestellt, ist der Farbbildfaltungsprozess dargestellt.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Für Kanal 1 (Rot), Kanal 2 (Grün) und Kanal 3 (Blau) von Farbbildern verwenden Sie jeweils Kernel1, Kernel2 und Kernel3. Jeder Faltungskern gleitet über das entsprechende monochrome Bild, führt eine Punkt-für-Punkt-Multiplikationsoperation für den Pixelwert innerhalb eines kleinen Bereichs (Kernelgröße) an jeder Position und dem entsprechenden Element des Faltungskerns durch und addiert dann diese Produkte. Erhalten Sie a Wert. Addieren Sie dann die von jedem Kanal erhaltenen Werte und addieren Sie die Gesamtverzerrung, um einen Wert in der entsprechenden Feature-Map zu erhalten.

Der dreidimensionale Effekt ist in der folgenden Abbildung dargestellt:

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

2.Padding

Im oben erwähnten Beispiel der Kantenerkennung können Sie sehen, dass die ursprüngliche Bildgröße 10 x 10 beträgt und nach dem Filtern auch so ist 8x8. Wenn Sie eine weitere Faltungsoperation durchführen, ist es 6x6 ... In diesem Fall gibt es zwei Nachteile:

  • Jedes Mal, wenn Sie eine Faltungsoperation durchführen, wird die Ausgabebildgröße reduziert
  • Die Pixel in den Ecken oder Randbereiche werden in der Ausgabe weniger verwendet. Daher gehen leicht viele Informationen über die Randposition des Bildes verloren.

Wie im Bild unten gezeigt, wird der rote Schatten in der oberen linken Ecke nur von einer Ausgabe berührt, während das mittlere Pixel (markiert durch ein lila Kästchen) viele 3x3-Bereiche überlappt. Daher werden Pixel in Ecken oder Randbereichen in der Ausgabe weniger verwendet und es kann leicht passieren, dass viele Informationen über die Randposition des Bildes verloren gehen.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Um dieses Problem zu lösen, verwenden wir normalerweise die Padding-Methode. Füllen Sie vor der Faltungsoperation zunächst den Rand des Originalbilds mit einer Pixelebene Die Größe beträgt 12 x 12 und die Größe des Bildes nach der Multiplikation beträgt 8 x 8, was der Größe des Originalbilds entspricht. Dadurch können die Pixel im Randbereich des Originalbilds mehrfach verwendet werden.

Wählen Sie, wie viele Pixel gefüllt werden sollen. Normalerweise gibt es zwei Optionen:

  • Gleiche Faltung: Wie oben erwähnt, ist die Größe des Bildes nach dem Füllen und Falten dieselbe wie das Originalbild.
  • Gültige Faltung: keine Fülloperation, direkte Faltung.

3.Stride

In der Einleitung wurde das Konzept des Stride erwähnt, das die Länge jeder Folie des Filterfilters in horizontaler und vertikaler Richtung im Originalbild darstellt, auch Schrittlänge genannt.

Angenommen, s stellt die Schrittlänge dar, p stellt die Fülllänge dar, die ursprüngliche Bildgröße ist nxn und die Filtergröße ist fxf, dann ist die gefaltete Bildgröße:

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

4. Pooling

Die Essenz von Pooling ist eine Dimensionsreduktion.

Die Rolle der Pooling-Schicht im Faltungsnetzwerk: Reduzieren Sie die Anzahl der Parameter der Feature-Map, erhöhen Sie die Berechnungsgeschwindigkeit und erhöhen Sie das Empfangsfeld, was eine Downsampling-Operation darstellt.

Pooling, das häufig bei der Objekterkennung verwendet wird: Max Pooling und Average Pooling.

(1) Max Pooling

bedeutet, dass der Maximalwert innerhalb des Filtergleitbereichs ohne Faltungsoperation genommen wird. Eine große Zahl bedeutet, dass bestimmte Merkmale erkannt und andere Werte ignoriert werden können, wodurch die Auswirkungen von Rauschen verringert und die Robustheit des Modells verbessert werden. „Darüber hinaus sind die für das Max-Pooling erforderlichen Hyperparameter nur die Filtergröße f und die Schrittlänge s. Es besteht keine Notwendigkeit, andere Parameter zu trainieren, und der Berechnungsaufwand ist gering.“

Das heißt, im Filter wird der Durchschnittswert innerhalb des Filtergleitbereichs berechnet.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

5.Shape

Beim Umgang mit mehrdimensionalen Daten, insbesondere Bilddaten, gibt es Unterschiede zwischen Tensorflow- und Pytorch-Daten Shape.

TensorFlow:(batch_size, height, width, in_channels)Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Pytorch:(batch_size, in_channels, height, width)

wobei:

  • batch_size: Die Anzahl der in Chargen verarbeiteten Proben.
  • in_channels: Die Anzahl der Kanäle des Eingabebildes, normalerweise 3 (Rot, Grün, Blau) für Farbbilder.
  • height und width sind die Höhe bzw. Breite des Bildes.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Wie im Bild oben gezeigt:

  • Form des Eingabebildes: [Höhe, Breite, Kanäle], also [8,8,3], was ein 8x8-Bild mit 3 Kanälen (R, G, B).
  • Faltungskernform: [kernel_height, kernel_width, in_channels, out_channels], also [3,3,3,5], was einen 3x3-Faltungskern mit 3 Kanälen (R, G, B) und einem Ausgabekanal anzeigt 5.
  • Form des Ausgabebildes: [Höhe, Breite, Ausgangskanäle], also [6,6,5], was ein 6x6-Ausgabebild mit 5 Kanälen (R, G, B) anzeigt.
out_height = (height - kernel_height + 1) / strideout_width = (width - kernel_width + 1) / stride
Nach dem Login kopieren

Für ein 8x8-Bild und einen 3x3-Faltungskern beträgt die Ausgabegröße (8 - 3 + 1) / 1 = 6, sodass die Ausgabeform [6, 6, 5] ist, was eine 6x6-Feature-Map mit 5 Ausgabekanälen anzeigt .

Die Anzahl der Eingabekanäle (in_channels) des Faltungskerns wird durch die Anzahl der Kanäle des Eingabebildes bestimmt. Beispiel: Ein Bild im RGB-Format hat eine Anzahl von Eingabekanälen von 3.

Die Anzahl der Kanäle der Ausgabematrix (out_channels) wird durch die Anzahl der Ausgabekanäle des Faltungskerns bestimmt, also wie viele verschiedene Filter der Faltungskern hat. In diesem Beispiel verfügt der Faltungskern über 5 Filter, sodass die Ausgabe über 5 Kanäle verfügt.

6. Aktivierungsfunktion

Nicht alle Zuordnungsbeziehungen können durch lineare Beziehungen genau ausgedrückt werden. Daher werden Aktivierungsfunktionen benötigt, um nichtlineare Abbildungen darzustellen.

Die Aktivierungsfunktion ist ebenfalls eine nichtlineare Abbildung. Wenn das neuronale Netzwerk nur durch lineare Operationen gestapelt wird, kann es keinen komplexen Ausdrucksraum bilden und es wird schwierig sein, hochsemantische Informationen zu extrahieren. Daher ist es notwendig, nichtlineare Zuordnungsbeziehungen hinzuzufügen.

(1) Sigmoid-Funktion

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

Die Sigmoid-Funktion komprimiert die Merkmale in das (0,1)-Intervall. Das 0-Ende ist der Hemmungszustand, das 1-Ende ist der Aktivierungszustand und das Die Steigung im mittleren Teil ist am größten.

(2) Relu-Funktion

Rectified Linear Unit (ReLU). Wird normalerweise verwendet, um das Phänomen des verschwindenden Gradienten zu lindern.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

In dem Teil kleiner als 0 sind der Wert und der Gradient 0, und die Ableitung größer als 0 ist 1, wodurch das Problem des Verschwindens des Gradienten vermieden wird, das dadurch verursacht wird, dass der Gradient in der Sigmoid-Funktion nahe bei 0 liegt.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!

(3) Softmax-Funktion

Der am häufigsten verwendete Klassifikator für mehrere Objektkategorien ist die Softmax-Funktion.

Bei bestimmten Klassifizierungsaufgaben ist die Eingabe der Softmax-Funktion häufig die Punktzahl mehrerer Kategorien und die Ausgabe ist die Wahrscheinlichkeit, die jeder Kategorie entspricht. Die Wahrscheinlichkeitswerte aller Kategorien liegen zwischen 0 und 1 Summe ist 1. Die Formel der Softmax-Funktion lautet wie folgt:

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!wobei Vi die Punktzahl der i-ten Kategorie darstellt, C die Gesamtzahl der klassifizierten Kategorien darstellt und die Ausgabe Si die Wahrscheinlichkeit der i-ten Kategorie ist.

CNN-Gesamtstruktur

Das Faltungs-Neuronale Netzwerk CNN besteht aus Eingabeschicht, Faltungsschicht, Relu, Pooling-Schicht, vollständig verbundener Schicht und Ausgabeschicht.

Wie in der folgenden Abbildung dargestellt, ist die Faltungsschicht die erste Schicht des Faltungsnetzwerks, gefolgt von anderen Faltungsschichten oder Pooling-Schichten, und die letzte Schicht ist eine vollständig verbundene Schicht. Spätere Ebenen identifizieren größere Teile des Bildes und frühere Ebenen konzentrieren sich normalerweise auf einfache Merkmale (wie Farbe und Kanten). Während die Bilddaten die Schichten im CNN durchlaufen, beginnen sie, größere Elemente oder Formen von Objekten zu identifizieren, bis sie schließlich das beabsichtigte Objekt identifizieren.

Sie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!Unter ihnen:

Eingabeschicht: Empfängt Originalbilddaten als Eingabe in das Netzwerk.
  • Faltungsschicht: Sie besteht aus Filtern und Aktivierungsfunktionen. Sie ist die Kernschicht von CNN. Ihre Hauptfunktion besteht darin, Beispielmerkmale zu extrahieren. Es besteht aus Eingabedaten, Filter (oder Faltungskern) und Feature-Map. Wenn es sich bei den Eingabedaten um ein RGB-Bild handelt, bedeutet dies, dass die Eingabe drei Dimensionen hat – Höhe, Breite und Tiefe. Das Wesen des Filters ist eine zweidimensionale Gewichtsmatrix, die sich im Empfangsfeld des Bildes bewegt, um zu prüfen, ob das Merkmal vorhanden ist. Der Faltungsoperationsprozess ist wie oben beschrieben. Zu den im Allgemeinen für die Faltungsschicht festgelegten Hyperparametern gehören die Anzahl der Filter, die Schrittweite, die Auffüllmethode (gültig oder gleich), die Aktivierungsfunktion usw.
  • Pooling-Schicht: Das Prinzip der lokalen Korrelation des Bildes besteht darin, die Menge der Datenverarbeitung zu reduzieren und gleichzeitig eine Überanpassung des Modells zu verhindern.
  • Vollständig verbundene Schicht: Jeder Knoten dieser Schicht ist mit allen Knoten der vorherigen Schicht verbunden, was zur Synthese der zuvor extrahierten Merkmale verwendet wird. Normalerweise hat die vollständig verbundene Schicht die meisten Parameter.
  • Ausgabeschicht: Erhalten Sie das Ergebnis mit der höchsten Wahrscheinlichkeit basierend auf den Informationen der vollständig verbundenen Schicht.
  • Vorteile von CNN

Im Vergleich zu herkömmlichen neuronalen Netzen bietet CNN die Vorteile lokaler Verbindungen, Gewichtsverteilung usw., wodurch die Menge der gelernten Parameter erheblich reduziert wird und das Netzwerk schneller konvergiert.

  • Teilweise verbunden: Jeder Ausgabewert der Feature-Map muss nicht mit jedem Pixelwert im Eingabebild verbunden werden, sondern muss nur mit dem Empfangsfeld des angewendeten Filters verbunden werden, daher wird die Faltungsschicht oft als a bezeichnet „teilweise verbundene Schicht““, diese Eigenschaft wird auch lokale Verbindung genannt.
  • Gewichtungsteilung: Wenn sich der Faltungskern auf dem Bild bewegt, bleibt sein Gewicht unverändert. Das ist Gewichtsverteilung.

Das obige ist der detaillierte Inhalt vonSie können die Prinzipien von Faltungs-Neuronalen Netzen auch ohne Grundlagen verstehen! Super detailliert!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!