Konvolutionale neuronale Netze verwenden dreidimensionale Daten zur Bildklassifizierung und Objekterkennung.
Neuronale Netze sind eine Teilmenge des maschinellen Lernens und das Herzstück von Deep-Learning-Algorithmen. Sie bestehen aus Knotenschichten, die eine Eingabeschicht, eine oder mehrere verborgene Schichten sowie eine Ausgabeschicht enthalten. Jeder Knoten ist mit einem anderen Knoten verbunden und verfügt über eine bestimmte Gewichtung und einen Schwellenwert. Wenn der Output eines einzelnen Knotens über dem festgelegten Schwellenwert liegt, wird dieser Knoten aktiviert und sendet Daten an die nächste Schicht des Netzes. Andernfalls werden keine Daten an die nächste Schicht des Netzes weitergegeben.
Wir haben uns in diesem Artikel hauptsächlich auf Feedforward Networks konzentriert. Es gibt jedoch verschiedene Arten von Neural Networks , die für unterschiedliche Anwendungsfälle und Datentypen eingesetzt werden. Zum Beispiel werden rekurrente Neural Networks häufig für die Verarbeitung natürlicher Sprache und Spracherkennung verwendet, während Convolutional Neural Networks (ConvNets oder CNNs) häufiger für Klassifizierungs- und Computer-Vision-Aufgaben eingesetzt werden. Vor CNNs wurden manuelle, zeitaufwändige Merkmalextraktionsmethoden verwendet, um Objekte in Bildern zu identifizieren. Convolutional Neural Networks bieten jetzt jedoch einen skalierbareren Ansatz für Bildklassifizierungs- und Objekterkennungsaufgaben, indem sie Prinzipien der linearen Algebra, insbesondere die Matrixmultiplikation, nutzen, um Muster in einem Bild zu erkennen. Sie können allerdings rechenintensiv sein und erfordern grafische Verarbeitungseinheiten (GPUs), um Modelle zu trainieren.
Erfahren Sie, wie wirkungsvoll die Integration einer Data-Lakehouse-Strategie in Ihre Datenarchitektur sein kann, einschließlich Verbesserungen zur Skalierung von KI und Möglichkeiten zur Kostenoptimierung.
Leitfaden für Datenverantwortliche lesen
Konvolutionale neuronale Netze unterscheiden sich von anderen neuronalen Netzen durch ihre überlegene Leistung bei Bild-, Sprach- oder Audiosignaleingaben. Sie verfügen im Wesentlichen über folgende drei Arten von Schichten:
Die konvolutionale Schicht ist die erste Schicht eines konvolutionalen Netzes. Auf konvolutionale Schichten können weitere konvolutionale Schichten oder Pooling-Schichten folgen; die vollständig verbundene Schicht ist die letzte Schicht. Mit jeder Schicht nimmt die Komplexität des CNN zu, sodass immer größere Teile des Bildes identifiziert werden. Frühere Schichten konzentrieren sich auf einfache Merkmale wie Farben und Kanten. Wenn die Bilddaten die Schichten des CNN durchlaufen, beginnt das konvolutionale Netz, größere Elemente oder Formen des Objekts zu erkennen, bis schließlich das beabsichtigte Objekt identifiziert wird.
Die konvolutionale Schicht ist der Kernbaustein eines CNN und dort findet der Großteil der Berechnungen statt. Sie erfordert einige Komponenten, nämlich Eingabedaten, einen Filter und eine Feature-Map. Nehmen wir an, dass es sich bei der Eingabe um ein Farbbild handelt, das aus einer Pixelmatrix in 3D besteht. Das bedeutet, dass die Eingabe drei Dimensionen (Höhe, Breite und Tiefe) aufweist, die RGB in einem Bild entsprechen. Zudem gibt es einen Merkmalsdetektor, der auch als Kernel oder Filter bezeichnet wird. Er bewegt sich über die rezeptiven Felder des Bildes und prüft, ob das jeweilige Merkmal vorhanden ist. Dieser Prozess wird als Konvolution bezeichnet.
Der Merkmalsdetektor ist ein zweidimensionales (2-D) Array von Gewichten, das einen Teil des Bildes darstellt. Sie können zwar unterschiedlich groß sein, die Filtergröße ist jedoch typischerweise eine 3x3-Matrix; dies bestimmt auch die Größe des rezeptiven Feldes. Der Filter wird dann auf einen Bereich des Bildes angewendet und es wird ein Skalarprodukt aus den Eingabepixeln und dem Filter berechnet. Dieses Skalarprodukt wird dann in ein Ausgabearray eingespeist. Danach verschiebt sich der Filter Schritt für Schritt und wiederholt den Vorgang, bis der Kernel das gesamte Bild erfasst hat. Die endgültige Ausgabe aus der Reihe von Skalarprodukten aus der Eingabe und dem Filter wird als Feature-Map (Merkmalskarte), Aktivierungskarte oder konvolviertes Merkmal bezeichnet.
Beachten Sie, dass die Gewichte im Merkmalsdetektor fest bleiben, während er sich über das Bild bewegt, was auch als Parameter-Sharing bekannt ist. Einige Parameter, wie die Gewichtungswerte, werden während des Trainings durch den Prozess der Backpropagation und des Gradientenabstiegs angepasst. Es gibt jedoch drei Hyperparameter, die die Volumengröße der Ausgabe beeinflussen und die eingestellt werden müssen, bevor das Training des neuronalen Netzwerks beginnt. Dazu gehören:
1. Die Anzahl der Filter beeinflusst die Tiefe der Ausgabe. So würden beispielsweise drei verschiedene Filter drei verschiedene Merkmalskarten ergeben, was eine Tiefe von drei ergibt.
2. Stride ist die Entfernung oder Anzahl der Pixel, die der Kernel über die Eingabematrix bewegt. Eine Schrittweite von zwei oder mehr ist zwar selten, aber eine größere Schrittweite führt zu einer kleineren Ausgabe.
3. Zero-Padding wird normalerweise verwendet, wenn die Filter nicht zum Eingabebild passen. Dadurch werden alle Elemente, die außerhalb der Eingabematrix liegen, auf Null gesetzt, wodurch eine größere oder gleich große Ausgabe erzeugt wird. Es gibt drei Arten der Polsterung:
Nach jedem Konvolutionsvorgang wendet ein CNN eine ReLU (Rectified Linear Unit)-Transformation auf die Feature-Map an und führt so Nichtlinearität in das Modell ein.
Wie bereits erwähnt, kann auf die erste Konvolutionsschicht eine weitere Konvolutionsschicht folgen. In diesem Fall kann die Struktur des CNN hierarchisch werden, da die späteren Schichten die Pixel innerhalb der rezeptiven Felder der vorherigen Schichten sehen können. Nehmen wir beispielsweise an, dass wir ermitteln möchten, ob ein Bild ein Fahrrad enthält. Man kann sich das Fahrrad als eine Summe von Teilen vorstellen. Es besteht aus einem Rahmen, einem Lenker, Rädern, Pedalen und so weiter. Jedes einzelne Teil des Fahrrads bildet ein niedriger gelagertes Muster in dem Neural Network und die Kombination aller Teile stellt ein höher gelagertes Muster dar. So entsteht eine Merkmalshierarchie innerhalb des CNN. Letztendlich wandelt die konvolutionale Schicht das Bild in numerische Werte um, sodass das neuronale Netzwerk relevante Muster interpretieren und extrahieren kann.
Durch das Pooling von Schichten, auch „Downsampling“ genannt, wird eine Dimensionsreduktion erzielt, d. h. es wird die Anzahl der Parameter in der Eingabe reduziert. Ähnlich wie bei der konvolutionalen Schicht wird beim Pooling ein Filter über die gesamte Eingabe gezogen. Der Unterschied besteht jedoch darin, dass dieser Filter keine Gewichtungen hat. Stattdessen wendet der Kernel eine Aggregationsfunktion auf die Werte innerhalb des rezeptiven Feldes an und füllt so das Ausgabearray. Es gibt im Wesentlichen zwei Arten von Pooling:
In der Pooling-Schicht gehen zwar viele Informationen verloren, doch das Pooling bietet auch einige Vorteile für das CNN. Die Komplexität wird reduziert, die Effizienz wird verbessert und das Risiko einer Überanpassung (Overfitting) wird verringert.
Der Name der vollständig verbundenen Schicht lässt bereits darauf schließen, was sie auszeichnet. Wie bereits erwähnt, sind die Pixelwerte des Eingabebildes in teilweise verbundenen Schichten nicht direkt mit der Ausgabeschicht verbunden. In der vollständig verbundenen Schicht ist jedoch jeder Knoten in der Ausgabeschicht direkt mit einem Knoten in der vorherigen Schicht verbunden.
Diese Schicht führt die Klassifizierungsaufgabe basierend auf den Merkmalen, die durch die vorherigen Schichten und ihre verschiedenen Filter extrahiert wurden, aus. Während konvolutionale und Pooling-Schichten in der Regel ReLu-Funktionen verwenden, nutzen FC-Schichten für gewöhnlich eine Softmax-Aktivierungsfunktion, um Eingaben angemessen zu klassifizieren und eine Wahrscheinlichkeit zwischen 0 und 1 zu erzeugen.
Kunihiko Fukushima und Yann LeCun legten mit ihren Arbeiten aus dem Jahr 1980 (Link befindet sich außerhalb von ibm.com) und „Backpropagation Applied to Handwritten Zip Code Recognition“ im Jahr 1989 den Grundstein für die Forschung im Bereich der konvolutionalen neuronalen Netze. Bekannter ist, dass Yann LeCun erfolgreich Rückwärtspropagierung (Backpropagation) anwendete, um Neural Networks zu trainieren, die Muster in einer Reihe von handgeschriebenen Postleitzahlen identifizieren und erkennen können. Er setzte seine Forschungsarbeiten mit seinem Team im Laufe der 1990er Jahren fort. Diese gipfelten in „LeNet-5“, das die gleichen Prinzipien früherer Forschung auf die Dokumentenerkennung anwendete. Seitdem sind im Zuge der Einführung neuer Datensätze wie MNIST und CIFAR-10 sowie Wettbewerben wie ImageNet Large Scale Visual Recognition Challenge (ILSVRC) verschiedene Varianten von CNN-Architekturen entstanden. Zu diesen anderen Architekturen gehören:
LeNet-5 ist jedoch als die klassische CNN-Architektur bekannt.
Konvolutionale neuronale Netze unterstützen Bilderkennungs- und Computer Vision-Aufgaben. Computer Vision ist ein Bereich der künstlichen Intelligenz (KI), der es Computern und Systemen ermöglicht, aus digitalen Bildern, Videos und anderen visuellen Eingaben aussagekräftige Informationen abzuleiten und auf der Grundlage dieser Eingaben Maßnahmen zu ergreifen. Durch diese Fähigkeit, Empfehlungen zu geben, unterscheidet sie sich von Bilderkennungsaufgaben. Gängige Computer-Vision-Anwendungen sind aktuell in diesen Bereichen anzutreffen:
IBM SPSS Neural Networks kann Ihnen helfen, komplexe Zusammenhänge zu entdecken und einen höheren Wert aus Ihren Daten zu ziehen.
Erstellen und skalieren Sie vertrauenswürdige KI in jeder Cloud. Automatisieren Sie den KI-Lebenszyklus für ModelOps.
Implementieren Sie mit Python ein einfaches Network, das handgeschriebene Ziffern klassifiziert.
Lernen Sie die verschiedenen Schritte, die zur Erstellung eines Convolutional Neural Networks erforderlich sind, kennen.
In diesem Paper stellt IBM Research die These auf, dass doppelt konvolutionale neuronale Netze (DCNNs) die Leistung von CNNs erheblich verbessern können.
IBM-Forscher schlagen ein neuartiges Konzept von Deep Part Embeddings (DPEs) vor, mit dem neue konvolutionale neuronale Netze (CNNs) für verschiedene Klassen erlernt werden können.
Feinabstimmung eines vortrainierten Objekterkennungsmodells.