Grundlagen der KI

Was sind CNNs (Convolutional Neural Networks)?

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufÞgen

Vielleicht haben Sie sich gefragt, wie Facebook (META ) oder Instagram es schafft, Gesichter in einem Bild automatisch zu erkennen, oder wie Google (GOOGL ) es ermÃķglicht, im Internet nach ÃĪhnlichen Fotos zu suchen, indem Sie einfach ein eigenes Foto hochladen. Diese Funktionen sind Beispiele fÞr Computer-Vision und werden von Convolutional Neural Networks (CNNs) angetrieben. Was sind aber genau Convolutional Neural Networks? Lassen Sie uns einen tiefen Einblick in die Architektur eines CNNs nehmen und verstehen, wie sie funktionieren.

Was sind neuronale Netze?

Bevor wir Þber Convolutional Neural Networks sprechen, sollten wir uns zunÃĪchst mit den regulÃĪren neuronalen Netzen auseinandersetzen. Es gibt einen anderen Artikel zum Thema neuronale Netze, also werden wir hier nicht zu tief in die Details eintauchen. Ein neuronales Netz ist jedoch ein computergestÞtztes Modell, das vom menschlichen Gehirn inspiriert ist. Ein neuronales Netz funktioniert, indem es Daten verarbeitet und diese durch Anpassen von “Gewichten” manipuliert, die Annahmen Þber die Beziehungen zwischen den Eingabefeatures und der Objektklasse sind. WÃĪhrend das Netz trainiert wird, werden die Werte der Gewichte angepasst, und sie sollten hoffentlich auf Gewichte konvergieren, die die Beziehungen zwischen den Features genau erfassen.

Dies ist, wie ein feed-forward neuronales Netz funktioniert, und CNNs bestehen aus zwei HÃĪlften: einem feed-forward neuronalen Netz und einer Gruppe von Convolutional-Schichten.

Was sind Convolution-Neuronale Netze (CNNs)?

Was sind die “Konvolutionen”, die in einem Convolutional Neural Network auftreten? Eine Konvolution ist eine mathematische Operation, die ein Set von Gewichten erstellt, was im Wesentlichen eine Darstellung von Teilen des Bildes ist. Dieses Set von Gewichten wird als Kernel oder Filter bezeichnet. Der Filter, der erstellt wird, ist kleiner als das gesamte Eingabebild und deckt nur einen Teil des Bildes ab. Die Werte im Filter werden mit den Werten im Bild multipliziert. Der Filter wird dann verschoben, um eine Darstellung eines neuen Teils des Bildes zu erstellen, und der Prozess wird wiederholt, bis das gesamte Bild abgedeckt ist.

Ein anderer Weg, darÞber nachzudenken, ist, sich eine Ziegelwand vorzustellen, bei der die Ziegel die Pixel im Eingabebild darstellen. Ein “Fenster” wird Þber die Wand geschoben, was der Filter ist. Die Ziegel, die durch das Fenster sichtbar sind, sind die Pixel, deren Werte mit den Werten im Filter multipliziert werden. Aus diesem Grund wird diese Methode, Gewichte mit einem Filter zu erstellen, oft als “sliding windows”-Technik bezeichnet.

Die Ausgabe aus den Filtern, die Þber das gesamte Eingabebild bewegt werden, ist ein zweidimensionales Array, das das gesamte Bild darstellt. Dieses Array wird als “Feature-Map” bezeichnet.

Warum sind Konvolutionen essentiell?

Was ist der Zweck der Erstellung von Konvolutionen? Konvolutionen sind notwendig, weil ein neuronales Netz in der Lage sein muss, die Pixel in einem Bild als numerische Werte zu interpretieren. Die Funktion der Convolutional-Schichten ist es, das Bild in numerische Werte umzuwandeln, die das neuronale Netz interpretieren und aus denen es relevante Muster extrahieren kann. Die Aufgabe der Filter im Convolutional-Netz ist es, ein zweidimensionales Array von Werten zu erstellen, das in die spÃĪteren Schichten des neuronalen Netzes Þbergeben werden kann, die die Muster im Bild lernen.

Filter und KanÃĪle

Foto: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

CNNs verwenden nicht nur einen Filter, um Muster aus den Eingabebildern zu lernen. Es werden multiple Filter verwendet, da die verschiedenen Arrays, die von den verschiedenen Filtern erstellt werden, zu einer komplexeren, reicheren Darstellung des Eingabebildes fÞhren. Übliche Zahlen von Filtern fÞr CNNs sind 32, 64, 128 und 512. Je mehr Filter es gibt, desto mehr Gelegenheiten hat das CNN, die Eingabedaten zu untersuchen und daraus zu lernen.

Ein CNN analysiert die Unterschiede in den Pixelwerten, um die Grenzen von Objekten zu bestimmen. In einem Graustufenbild wÞrde das CNN nur die Unterschiede in Schwarz und Weiß, Hell und Dunkel berÞcksichtigen. Wenn die Bilder Farbbilder sind, muss das CNN nicht nur Hell und Dunkel berÞcksichtigen, sondern auch die drei verschiedenen FarbkanÃĪle – Rot, GrÞn und Blau. In diesem Fall besitzen die Filter 3 KanÃĪle, genau wie das Bild selbst. Die Anzahl der KanÃĪle, die ein Filter hat, wird als seine Tiefe bezeichnet, und die Anzahl der KanÃĪle im Filter muss der Anzahl der KanÃĪle im Bild entsprechen.

Convolutional Neural Network (CNN)-Architektur

Lassen Sie uns einen Blick auf die vollstÃĪndige Architektur eines Convolutional Neural Networks werfen. Eine Convolutional-Schicht befindet sich am Anfang jedes Convolutional-Netzes, da sie notwendig ist, um die Bildaten in numerische Arrays umzuwandeln. Convolutional-Schichten kÃķnnen jedoch auch nach anderen Convolutional-Schichten kommen, was bedeutet, dass diese Schichten aufeinander gestapelt werden kÃķnnen. Die Ausgaben aus einer Schicht kÃķnnen weitere Konvolutionen unterzogen werden und in relevante Muster gruppiert werden. Praktisch bedeutet dies, dass die Bildaten, wenn sie durch die Convolutional-Schichten verlaufen, von der Netzwerkbeginn an komplexere Features des Bildes “erkennen”.

Die frÞhen Schichten eines ConvNets sind fÞr die Extraktion von niedrigstufigen Features verantwortlich, wie z.B. die Pixel, die einfache Linien bilden. SpÃĪtere Schichten des ConvNets werden diese Linien zu Formen verbinden. Dieser Prozess, von der OberflÃĪchenanalyse zu einer tiefen Analyse, wird fortgesetzt, bis das ConvNet komplexe Formen wie Tiere, Gesichter und Autos “erkennt”.

Nachdem die Daten durch alle Convolutional-Schichten verlaufen sind, gehen sie in den dicht verbundenen Teil des CNNs Þber. Die dicht verbundenen Schichten sind das, was ein traditionelles feed-forward neuronales Netz aussehen wÞrde, eine Reihe von Knoten, die in Schichten angeordnet sind und miteinander verbunden sind. Die Daten verlaufen durch diese dicht verbundenen Schichten, die die Muster lernen, die von den Convolutional-Schichten extrahiert wurden, und dadurch wird das Netz in der Lage, Objekte zu erkennen.

Blogger und Programmierer mit Spezialisierungen in Machine Learning und Deep Learning Themen. Daniel hofft, anderen zu helfen, die Macht von KI fÞr das soziale Wohl zu nutzen.