Convolutional Neural Network Tutorial
Künstliche Intelligenz hat einen langen Weg hinter sich und überbrückt nahtlos die Kluft zwischen dem Potenzial von Menschen und Maschinen. Und Datenenthusiasten rund um den Globus arbeiten an zahlreichen Aspekten der KI und setzen Visionen in die Realität um – und einer dieser erstaunlichen Bereiche ist das Gebiet der Computer Vision. Dieser Bereich zielt darauf ab, Maschinen in die Lage zu versetzen und zu konfigurieren, die Welt wie Menschen zu sehen und das Wissen für verschiedene Aufgaben und Prozesse zu nutzen (z. B. Bilderkennung, Bildanalyse und -klassifizierung usw.). Und die Fortschritte in der Computer Vision mit Deep Learning waren ein beachtlicher Erfolg, insbesondere mit dem Algorithmus des Convolutional Neural Network.
In diesem Tutorial lernen Sie etwas über:
- Einführung in CNN
- Was ist ein Convolutional Neural Network?
- Wie erkennen CNNs Bilder?
- Schichten in CNN
- Anwendungsfallimplementierung mit CNN
Einführung in CNN
Yann LeCun, Direktor der AI Research Group von Facebook, ist der Pionier der Faltungsneuronalen Netzwerke. Er entwickelte 1988 das erste neuronale Faltungsnetzwerk namens LeNet. LeNet wurde für Zeichenerkennungsaufgaben wie das Lesen von Postleitzahlen und Ziffern verwendet.
Haben Sie sich schon einmal gefragt, wie die Gesichtserkennung in sozialen Medien funktioniert, oder wie die Objekterkennung bei der Entwicklung selbstfahrender Autos hilft, oder wie die Erkennung von Krankheiten mithilfe visueller Bilder im Gesundheitswesen erfolgt? Das alles ist möglich dank der Faltungsneuronalen Netze (CNN). Hier ein Beispiel für neuronale Faltungsnetzwerke, das ihre Funktionsweise veranschaulicht:
Stellen Sie sich vor, es gibt ein Bild eines Vogels, und Sie wollen herausfinden, ob es sich wirklich um einen Vogel oder um ein anderes Objekt handelt. Als Erstes werden die Pixel des Bildes in Form von Arrays in die Eingabeschicht des neuronalen Netzes eingegeben (mehrschichtige Netze, die zur Klassifizierung von Dingen verwendet werden). Die versteckten Schichten führen die Merkmalsextraktion durch, indem sie verschiedene Berechnungen und Manipulationen durchführen. Es gibt mehrere versteckte Schichten wie die Faltungsschicht, die ReLU-Schicht und die Pooling-Schicht, die die Merkmalsextraktion aus dem Bild durchführen. Schließlich gibt es noch eine vollständig verknüpfte Schicht, die das Objekt im Bild identifiziert.
Abbbildung: Convolutional Neural Network zur Identifizierung des Bildes eines Vogels
Deep Learning Kurs (mit TensorFlow & Keras)
Beherrsche die Deep Learning Konzepte und ModelleKurs
Was ist ein Convolutional Neural Network?
Ein Convolutional Neural Network ist ein neuronales Feed-Forward-Netzwerk, das im Allgemeinen zur Analyse visueller Bilder verwendet wird, indem es Daten mit gitterartiger Topologie verarbeitet. Es ist auch als ConvNet bekannt. Ein neuronales Faltungsnetzwerk wird verwendet, um Objekte in einem Bild zu erkennen und zu klassifizieren.
Unten ist ein neuronales Netzwerk, das zwei Arten von Blumen identifiziert: Orchidee und Rose.
In CNN wird jedes Bild in Form eines Arrays von Pixelwerten dargestellt.
Die Faltungsoperation bildet die Grundlage eines jeden neuronalen Faltungsnetzwerks. Verstehen wir die Faltungsoperation anhand zweier Matrizen, a und b, von 1 Dimension.
a =
b =
Bei der Faltungsoperation werden die Matrizen elementweise multipliziert, und das Produkt wird summiert, um eine neue Matrix zu erzeugen, die a*b darstellt.
Die ersten drei Elemente der Matrix a werden mit den Elementen der Matrix b multipliziert. Das Produkt wird summiert, um das Ergebnis zu erhalten.
Die nächsten drei Elemente der Matrix a werden mit den Elementen der Matrix b multipliziert, und das Produkt wird summiert.
Dieser Prozess wird fortgesetzt, bis die Faltungsoperation abgeschlossen ist.
Wie erkennt CNN Bilder?
Betrachte die folgenden Bilder:
Die farbigen Kästchen stellen einen Pixelwert von 1 dar, und 0, wenn sie nicht farbig sind.
Wenn du den Backslash (\) drückst, wird das folgende Bild verarbeitet.
Wenn Sie den Schrägstrich (/) drücken, wird das folgende Bild verarbeitet:
Hier ist ein weiteres Beispiel, um zu zeigen, wie CNN ein Bild erkennt:
Wie Sie im obigen Diagramm sehen können, leuchten nur die Werte auf, die den Wert 1 haben.
Schichten in einem neuronalen Faltungsnetzwerk
Ein neuronales Faltungsnetzwerk hat mehrere versteckte Schichten, die bei der Extraktion von Informationen aus einem Bild helfen. Die vier wichtigen Schichten in einem CNN sind:
- Faltungsschicht
- ReLU-Schicht
- Pooling-Schicht
- Fully connected layer
Faltungsschicht
Dies ist der erste Schritt im Prozess der Extraktion wertvoller Merkmale aus einem Bild. Eine Faltungsschicht besteht aus mehreren Filtern, die die Faltungsoperation durchführen. Jedes Bild wird als eine Matrix von Pixelwerten betrachtet.
Betrachten Sie das folgende 5×5-Bild, dessen Pixelwerte entweder 0 oder 1 sind. Es gibt auch eine Filtermatrix mit einer Dimension von 3×3. Schiebe die Filtermatrix über das Bild und berechne das Punktprodukt, um die gefaltete Merkmalsmatrix zu erhalten.
ReLU-Schicht
ReLU steht für die gleichgerichtete lineare Einheit. Sobald die Merkmalskarten extrahiert sind, werden sie im nächsten Schritt in eine ReLU-Ebene verschoben.
ReLU führt eine elementweise Operation durch und setzt alle negativen Pixel auf 0. Sie führt Nichtlinearität in das Netz ein, und die erzeugte Ausgabe ist eine entzerrte Merkmalskarte. Nachfolgend das Diagramm einer ReLU-Funktion:
Das Originalbild wird mit mehreren Faltungen und ReLU-Schichten zur Lokalisierung der Merkmale gescannt.
Pooling-Schicht
Pooling ist ein Down-Sampling-Vorgang, der die Dimensionalität der Merkmalskarte reduziert. Die entzerrte Feature Map durchläuft nun eine Pooling-Ebene, um eine gepoolte Feature Map zu erzeugen.
Die Pooling-Ebene verwendet verschiedene Filter, um verschiedene Teile des Bildes wie Kanten, Ecken, Körper, Federn, Augen und Schnabel zu identifizieren.
So sieht die Struktur des neuronalen Faltungsnetzwerks bisher aus:
Der nächste Schritt im Prozess ist das sogenannte Flattening. Das Flattening wird verwendet, um alle resultierenden 2-dimensionalen Arrays aus gepoolten Feature-Maps in einen einzigen langen, kontinuierlichen, linearen Vektor umzuwandeln.
Die geflattene Matrix wird als Input in die voll verknüpfte Schicht eingespeist, um das Bild zu klassifizieren.
So genau erkennt CNN einen Vogel:
- Die Pixel des Bildes werden der Faltungsschicht zugeführt, die die Faltungsoperation durchführt
- Das Ergebnis ist eine gefaltete Karte
- Die gefaltete Karte wird auf eine ReLU-Funktion angewendet, um eine entzerrte Merkmalskarte zu erzeugen
- Das Bild wird mit mehreren Faltungen und ReLU-Schichten verarbeitet
- Verschiedene Pooling-Schichten mit verschiedenen Filtern werden verwendet, um bestimmte Teile des Bildes zu identifizieren
- Die gepoolte Feature-Map wird geglättet und einer vollständig verknüpften Schicht zugeführt, um die endgültige Ausgabe zu erhalten
FREE Machine Learning Course
Learn InMachine Learning Skills and ToolsStart Learning
Use case implementation using CNN
Wir werden den CIFAR-10-Datensatz des Canadian Institute For Advanced Research zur Klassifizierung von Bildern in 10 Kategorien mit CNN verwenden.
1. Laden Sie den Datensatz herunter:
2. Importieren Sie den CIFAR-Datensatz:
3. Lesen Sie die Etikettennamen:
4. Stellen Sie die Bilder mit matplotlib dar:
5. Verwende die Hilfsfunktionen, um Daten zu verarbeiten:
6. Erstelle das Modell:
7. Wende die Hilfsfunktionen an:
8. Erstelle die Schichten für Faltung und Pooling:
9. Erstelle die abgeflachte Ebene durch Umformung der Pooling-Ebene:
10. Erstellen Sie eine vollständig verbundene Schicht:
11. Setze die Ausgabe auf die Variable y_pred:
12. Wende die Verlustfunktion an:
13. Erstelle den Optimierer:
14. Erstellen Sie eine Variable, um alle globalen Variablen zu initialisieren:
15. Führen Sie das Modell aus, indem Sie eine Graph-Sitzung erstellen:
Erstellen Sie Deep-Learning-Modelle in TensorFlow und lernen Sie das Open-Source-Framework TensorFlow mit dem Deep-Learning-Kurs (mit Keras &TensorFlow). Melden Sie sich jetzt an!
Lernen Sie mehr über CNN und Deep Learning
So bauen Sie ein CNN mit mehreren versteckten Schichten und lernen, wie man einen Vogel anhand seiner Pixelwerte identifiziert. Sie haben auch eine Demo zur Klassifizierung von Bildern in 10 Kategorien anhand des CIFAR-Datensatzes durchgeführt.
Sie können sich auch für das Postgraduiertenprogramm in KI und maschinellem Lernen mit der Purdue University und in Zusammenarbeit mit IBM einschreiben und sich zu einem Experten für Deep-Learning-Techniken mit TensorFlow, der Open-Source-Softwarebibliothek für maschinelles Lernen und tiefe neuronale Netzwerke, entwickeln. Dieses Programm in KI und maschinellem Lernen umfasst Python, maschinelles Lernen, natürliche Sprachverarbeitung, Spracherkennung, fortgeschrittenes Deep Learning, Computer Vision und Reinforcement Learning. Es bereitet Sie auf eine der weltweit aufregendsten Technologiebereiche vor.