Grundlegende CNN-Architektur: Erklärung von 5 Schichten eines Convolutional Neural Network [US]
Veröffentlicht: 2023-04-16Ein CNN (Convolutional Neural Network) ist eine Art neuronales Deep-Learning-Netzwerk, das eine Kombination aus Convolutional- und Subsampling-Layern verwendet, um Merkmale aus großen Datensätzen zu lernen. Es wird häufig für Bilderkennungs- und Klassifizierungsaufgaben verwendet. Die Faltungsschichten wenden Filter auf die Eingabedaten an, und Subsampling-Schichten reduzieren die Größe der Eingabedaten. Die Convolutional Neural Network-Architektur zielt darauf ab, Merkmale aus den Daten zu lernen, die verwendet werden können, um Objekte in der Eingabe zu klassifizieren oder zu erkennen. Nachfolgend werden die 5 CNN-Schichten erklärt .
Melden Sie sich für den Machine Learning-Kurs an den besten Universitäten der Welt an. Erwerben Sie Master-, Executive PGP- oder Advanced Certificate-Programme, um Ihre Karriere zu beschleunigen.
Inhaltsverzeichnis
5 Schichten eines Convolutional Neural Network
1. Faltungsschicht:
Diese Schicht führt die Faltungsoperation an den Eingabedaten durch, die verschiedene Merkmale aus den Daten extrahiert.
Faltungsschichten in einer CNN-Modellarchitektur sind eine der wichtigsten Komponenten von CNN-Schichten . Diese Schichten sind dafür verantwortlich, Merkmale aus den Eingabedaten zu extrahieren und die Grundlage für die weitere Verarbeitung und das Lernen zu bilden.
Eine Faltungsschicht besteht aus einer Reihe von Filtern (auch Kernel genannt), die in Form eines Gleitfensters auf die Eingabedaten angewendet werden. Jeder Filter extrahiert basierend auf den damit verbundenen Gewichtungen einen bestimmten Satz von Merkmalen aus den Eingabedaten.
Die Anzahl der in der Faltungsschicht verwendeten Filter ist einer der wichtigsten Hyperparameter in der Architektur. Sie wird basierend auf der Art der verarbeiteten Daten sowie der gewünschten Genauigkeit des Modells bestimmt. Im Allgemeinen führen mehr Filter dazu, dass mehr Merkmale aus den Eingabedaten extrahiert werden, wodurch komplexere Netzwerkarchitekturen die Daten besser verstehen können.
Die Faltungsoperation besteht darin, jeden Filter mit den Daten innerhalb des gleitenden Fensters zu multiplizieren und die Ergebnisse zu summieren. Dieser Vorgang wird für alle Filter wiederholt, was zu mehreren Merkmalskarten für eine einzelne Faltungsschicht führt. Diese Feature-Karten werden dann als Eingabe für die folgenden Schichten verwendet, sodass das Netzwerk komplexere Features aus den Daten lernen kann.
Faltungsschichten bilden die Grundlage von Deep-Learning-Architekturen und werden in verschiedenen Anwendungen wie Bilderkennung, Verarbeitung natürlicher Sprache und Spracherkennung verwendet. Durch das Extrahieren der kritischsten Merkmale aus den Eingabedaten ermöglichen Faltungsschichten dem Netzwerk, komplexere Muster zu lernen und bessere Vorhersagen zu treffen.
2. Pooling-Schicht:
Diese Schicht führt eine Downsampling-Operation auf den Feature-Maps durch, was den erforderlichen Rechenaufwand reduziert und auch hilft, Überanpassung zu reduzieren.
Die Pooling-Schicht ist ein wichtiger Bestandteil der CNN-Architektur . Es wird normalerweise verwendet, um die Größe des Eingabevolumens zu reduzieren und gleichzeitig aussagekräftige Informationen aus den Daten zu extrahieren. Pooling-Layer werden normalerweise in den späteren Phasen eines CNN verwendet, sodass sich das Netzwerk auf abstraktere Merkmale eines Bildes oder einer anderen Art von Eingabe konzentrieren kann. Die Pooling-Schicht arbeitet, indem sie ein Fenster über das Eingangsvolumen schiebt und eine zusammenfassende Statistik für die Werte innerhalb des Fensters berechnet.
Übliche Statistiken umfassen das Ermitteln des Maximums, des Durchschnitts oder der Summe der Werte innerhalb des Fensters. Dadurch wird die Größe des Eingabedatenträgers reduziert, während wichtige Informationen zu den Daten erhalten bleiben.
Die Pooling-Schicht wird normalerweise auch verwendet, um räumliche Invarianz einzuführen, was bedeutet, dass das Netzwerk unabhängig von der Position der Eingabe innerhalb des Bildes dieselbe Ausgabe erzeugt. Dadurch kann das Netzwerk allgemeinere Merkmale des Bildes erben, anstatt sich einfach seinen genauen Standort zu merken.
3. Aktivierungsschicht:
Diese Schicht fügt dem Modell Nichtlinearität hinzu, indem sie eine nichtlineare Aktivierungsfunktion wie ReLU oder tanh anwendet.
Eine Aktivierungsschicht in einem CNN ist eine Schicht, die als nichtlineare Transformation der Ausgabe der Faltungsschicht dient. Es ist eine Hauptkomponente des Netzwerks, die es ihm ermöglicht, komplexe Beziehungen zwischen den Eingabe- und Ausgabedaten zu lernen.
Die Aktivierungsschicht kann man sich als eine Funktion vorstellen, die die Ausgabe der Faltungsschicht nimmt und sie auf einen anderen Satz von Werten abbildet. Dadurch kann das Netzwerk komplexere Muster in den Daten lernen und besser verallgemeinern.
Übliche Aktivierungsfunktionen, die in CNNs verwendet werden, umfassen ReLu (Rektifizierte Lineareinheit), Sigmoid und Tanh. Jede Aktivierungsfunktion dient einem anderen Zweck und kann in verschiedenen Szenarien verwendet werden.
ReLu ist die am häufigsten verwendete Aktivierungsfunktion in den meisten Faltungsnetzwerken. Es ist eine nichtlineare Transformation, die 0 für alle negativen Werte und den gleichen Wert wie die Eingabe für alle positiven Werte ausgibt. Dadurch kann das Netzwerk komplexere Muster in die Daten aufnehmen.
Sigmoid ist eine weitere häufig verwendete Aktivierungsfunktion, die Werte zwischen 0 und 1 für jede gegebene Eingabe ausgibt. Dies hilft dem Netzwerk, komplexe Beziehungen zwischen den Eingabe- und Ausgabedaten zu verstehen, ist jedoch rechenintensiver als ReLu.
Tanh ist die am wenigsten verbreitete Aktivierungsfunktion, die Werte zwischen -1 und 1 für jede gegebene Eingabe ausgibt.
Die Aktivierungsschicht ist eine wesentliche Komponente des CNN, da sie Linearität verhindert und Nichtlinearität in der Ausgabe verstärkt. Die Auswahl der richtigen Aktivierungsfunktion für das Netzwerk ist von entscheidender Bedeutung, da jede Aktivierungsfunktion einem anderen Zweck dient und in verschiedenen Szenarien verwendet werden kann. Die Auswahl einer geeigneten Aktivierungsfunktion kann zu einer besseren Leistung der CNN - Struktur führen .
4. Vollständig verbundene Schicht:
Diese Schicht verbindet jedes Neuron in einer Schicht mit jedem Neuron in der nächsten Schicht, was zu einem vollständig verbundenen Netzwerk führt.
Eine vollständig verbundene Schicht in einem CNN ist eine Schicht von Neuronen, die mit jedem Neuron in der vorherigen Schicht im Netzwerk verbunden ist. Dies steht im Gegensatz zu Faltungsschichten, bei denen Neuronen basierend auf einem bestimmten Muster nur mit einer Teilmenge von Neuronen in der vorherigen Schicht verbunden sind.
Durch die Verbindung jedes Neurons in einer Schicht mit jedem Neuron in der nächsten Schicht ermöglicht die vollständig verbundene Schicht die gemeinsame Nutzung von Informationen aus der vorherigen Schicht im gesamten Netzwerk und bietet so die Möglichkeit für ein umfassenderes Verständnis der Daten.
Vollständig verbundene Schichten in CNN werden typischerweise gegen Ende einer CNN-Modellarchitektur nach den Faltungsschichten und Pooling-Schichten verwendet, da sie dabei helfen, Muster und Korrelationen zu identifizieren, die die Faltungsschichten möglicherweise nicht erkannt haben.
Zusätzlich werden vollständig verbundene Schichten verwendet, um eine nichtlineare Entscheidungsgrenze zu erzeugen, die für die Klassifizierung verwendet werden kann. Zusammenfassend lässt sich sagen, dass vollständig verbundene Schichten ein wesentlicher Bestandteil jedes CNN sind und ein leistungsstarkes Werkzeug zum Identifizieren von Mustern und Korrelationen in den Daten bieten.
5. Ausgabeschicht:
Dies ist die letzte Schicht des Netzwerks, die die Ausgabebezeichnungen oder -werte erzeugt.
Die Ausgabeschicht eines CNN ist die letzte Schicht im Netzwerk und für die Erzeugung der Ausgabe verantwortlich. Es ist die Schicht, die die aus vorherigen Schichten extrahierten Merkmale aufnimmt und sie so kombiniert, dass sie die gewünschte Ausgabe erzeugen kann.
Eine vollständig verbundene Ebene wird normalerweise verwendet, wenn die Ausgabe ein einzelner Wert ist, z. B. ein Klassifizierungs- oder Regressionsproblem. Eine einzelne Neuronenschicht wird im Allgemeinen verwendet, wenn das Ergebnis ein Vektor ist, wie z. B. eine Wahrscheinlichkeitsverteilung.
Eine Softmax-Aktivierungsfunktion wird verwendet, wenn die Ausgabe eine Wahrscheinlichkeitsverteilung ist, beispielsweise eine Wahrscheinlichkeitsverteilung über Klassen. Die Ausgabeschicht eines CNN ist auch dafür verantwortlich, die notwendigen Berechnungen durchzuführen, um die gewünschte Ausgabe zu erhalten. Dies schließt die Durchführung der notwendigen linearen oder nichtlinearen Transformationen der Eingaben ein, um die erforderliche Ausgabe zu erhalten.
Schließlich kann die Ausgabeschicht eines CNN auch verwendet werden, um Regularisierungstechniken wie Dropout oder Batch-Normalisierung durchzuführen, um die Leistung des Netzwerks zu verbessern.
Abschluss
Die CNN-Architektur ist ein leistungsfähiges Werkzeug für Bild- und Videoverarbeitungsaufgaben. Es ist eine Kombination aus Convolutional Layers, Pooling Layers und Fully Connected Layers. Es ermöglicht das Extrahieren von Merkmalen aus Bildern, Videos und anderen Datenquellen und kann für verschiedene Aufgaben wie Objekterkennung, Bildklassifizierung und Gesichtserkennung verwendet werden. Insgesamt ist diese Art von Architektur sehr effektiv, wenn sie auf geeignete Funktionen und Datensätze angewendet wird.
Erwerben Sie mit upGrad fundierte Kenntnisse in ML und DL
Mit dem von IIIT-B angebotenen Advanced Certificate Program in Machine Learning & Deep Learning von upGrad können Sie Kenntnisse in Machine Learning und Deep Learning erwerben. Das Programm deckt die Grundlagen von ML und DL ab, einschließlich Themen wie überwachtes und nicht überwachtes Lernen, lineare und logistische Regression, Convolutional Neural Networks, Reinforcement Learning und Natural Language Processing. Sie lernen auch, ML- und DL-Modelle in Python und TensorFlow zu erstellen und bereitzustellen, und sammeln praktische Erfahrungen, indem Sie an realen Projekten arbeiten.
Dieser Kurs beinhaltet auch Vorteile wie:
- Mentoring und Anleitung durch Branchenexperten
- Vermittlungshilfe, um Ihnen zu helfen, den richtigen Job zu finden
- Ein fortgeschrittenes Zertifikat vom IIIT Bangalore
Sie können sich auch unserekostenlosen Kurseansehen,die von upGrad in Management, Datenwissenschaft, maschinellem Lernen, digitalem Marketing und Technologie angeboten werden.Alle diese Kurse verfügen über erstklassige Lernressourcen, wöchentliche Live-Vorträge, Branchenaufgaben und ein Kursabschlusszertifikat – alles kostenlos!
Was sind die Bibliotheken in Python, die für ein CNN verwendet werden können?
Zu den Bibliotheken in Python, die für ein CNN verwendet werden können, gehören TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV und SciPy. Diese Bibliotheken können verwendet werden, um vorgefertigte Module zum Erstellen von Anwendungen und zum einfachen Implementieren von CNN-Algorithmen zu erhalten.
Wie viele Dimensionen gibt es in CNN-Layern?
Convolutional Neural Networks enthalten Neuronen, die in 3 Dimensionen angeordnet sind: Breite, Höhe und Tiefe. Diese dreidimensionale Struktur von Neuronen ist in der Faltungsschicht vorhanden, die den Rechenprozess mit der gegebenen Eingabe durcharbeitet, um die resultierende Ausgabe zu liefern.
Kann ich ein CNN in R entwickeln?
Ja, CNNs können sowohl mit Python als auch mit R entwickelt werden. Da R außergewöhnlich detaillierte Bibliotheken bereitstellt, ist die Erstellung eines neuronalen Faltungsnetzwerks mit R ziemlich einfach.