Convolutional Neural Networks (CNNs): Eine Einführung

Convolutional Neural Networks bieten eine besser skalierbare Möglichkeit zur Objekterkennung und Bildklassifizierung.

Es gibt viele Fortschritte in der Welt der Technologie. Künstliche Intelligenz und maschinelles Lernen sind einige häufige Begriffe, die Sie möglicherweise häufig hören.

Derzeit werden diese Technologien in fast allen Bereichen eingesetzt, von Marketing, E-Commerce und Softwareentwicklung bis hin zu Banken, Finanzen und Medizin.

KI und ML sind riesige Felder, und es werden Anstrengungen unternommen, ihre Anwendungen zu erweitern, um viele Probleme der realen Welt zu lösen. Aus diesem Grund können Sie viele Zweige innerhalb dieser Technologien sehen; ML ist eine Teilmenge von KI selbst.

Convolutional Neural Networks sind einer der Zweige der KI, der heutzutage immer beliebter wird.

In diesem Artikel werde ich erörtern, was CNNs sind, wie sie funktionieren und wie nützlich sie in der modernen Welt sind.

Lass uns gleich eintauchen!

Was ist ein Convolutional Neural Network?

Ein Convolutional Neural Network (ConvNet oder CNN) ist ein künstliches neuronales Netzwerk (KNN), das Deep-Learning-Algorithmen verwendet, um Bilder zu analysieren, visuelle Elemente zu klassifizieren und Computer-Vision-Aufgaben auszuführen.

CNN nutzt Prinzipien der linearen Algebra, wie z. B. die Matrixmultiplikation, um Muster in einem Bild zu erkennen. Da diese Prozesse komplexe Berechnungen beinhalten, benötigen sie grafische Verarbeitungseinheiten (GPUs) zum Trainieren der Modelle.

Mit einfachen Worten, CNN verwendet Deep-Learning-Algorithmen, um Eingabedaten wie Bilder zu nehmen und verschiedenen Aspekten dieses Bildes Bedeutung in Form von Verzerrungen und lernbaren Gewichtungen zuzuweisen. Auf diese Weise kann CNN zwischen Bildern unterscheiden oder sie klassifizieren.

CNNs: Eine kurze Geschichte

Da ein Convolutional Neural Network ein künstliches Neural Network ist, ist es wichtig, Neural Networks zu wiederholen.

Bei der Berechnung ist ein neuronales Netzwerk ein Teil des maschinellen Lernens (ML), das Deep-Learning-Algorithmen verwendet. Es ist analog zu den Konnektivitätsmustern, denen Neuronen im menschlichen Gehirn folgen. Künstliche neuronale Netze lassen sich auch von der Anordnung des visuellen Kortex inspirieren.

Daher werden verschiedene Arten von neuronalen Netzen oder künstlichen neuronalen Netzen (KNN) für unterschiedliche Zwecke verwendet. Eines davon ist CNN, das für die Bilderkennung und -klassifizierung und mehr verwendet wird. Es wurde in den 1980er Jahren von einem Postdoktoranden, Yann LeCun, eingeführt.

Die frühe Version von CNN – LeNet, benannt nach LeCun, war in der Lage, handgeschriebene Ziffern zu erkennen. Dann wurde es in Bank- und Postdiensten zum Lesen von Ziffern auf Schecks und Postleitzahlen auf Umschlägen verwendet.

Dieser frühen Version fehlte jedoch die Skalierung; Daher wurden CNNs in künstlicher Intelligenz und Computer Vision nicht viel verwendet. Außerdem waren erhebliche Rechenressourcen und Daten erforderlich, um bei größeren Bildern effizienter zu arbeiten.

Darüber hinaus hat AlexNet im Jahr 2012 Deep Learning erneut aufgegriffen, das neuronale Netze verwendet, die aus mehreren Schichten bestehen. Um diese Zeit verbesserte sich die Technologie, und es standen große Datensätze und umfangreiche Computerressourcen zur Verfügung, um die Erstellung komplexer CNNs zu ermöglichen, die in der Lage sind, Computer-Vision-Aktivitäten effizient durchzuführen.

Schichten in einem CNN

Lassen Sie uns die verschiedenen Schichten in einem CNN verstehen. Die Erhöhung der Ebenen in einem CNN erhöht seine Komplexität und ermöglicht es ihm, mehr Aspekte oder Bereiche eines Bildes zu erkennen. Beginnend mit einem einfachen Merkmal ist es in der Lage, komplexe Merkmale wie die Form des Objekts und größere Elemente zu erkennen, bis es schließlich das Bild erkennen kann.

Faltungsschicht

Die erste Schicht eines CNN ist die Faltungsschicht. Es ist der Hauptbaustein von CNN, in dem die meisten Berechnungen stattfinden. Es benötigt weniger Komponenten wie Eingabedaten, eine Feature-Map und einen Filter.

Ein CNN kann auch zusätzliche Faltungsschichten haben. Dies macht die CNN-Struktur hierarchisch, da die nachfolgenden Schichten Pixel innerhalb der rezeptiven Felder der vorherigen Schichten visualisieren können. Als nächstes wandeln die Faltungsschichten das gegebene Bild in numerische Werte um und ermöglichen es dem Netzwerk, wertvolle Muster zu verstehen und zu extrahieren.

  So beheben Sie den VLC Converter No Audio Error

Pooling von Schichten

Pooling-Layer werden verwendet, um Dimensionen zu reduzieren, und werden als Downsampling bezeichnet. Es reduziert die in der Eingabe verwendeten Parameter. Die Pooling-Operation kann wie die Faltungsschicht einen Filter über die gesamte Eingabe verschieben, es fehlen jedoch Gewichte. Hier wendet der Filter eine gemeinsame Funktion auf die numerischen Werte im rezeptiven Feld an, um das Ergebnisarray zu füllen.

Pooling hat zwei Arten:

  • Durchschnittliches Pooling: Der Durchschnittswert wird in dem rezeptiven Feld berechnet, das der Filer über die Eingabe fegt, um sie an das Ausgabearray zu übertragen.
  • Max Pooling: Es wählt das Pixel mit dem maximalen Wert aus und sendet es an das Ausgangsarray, während der Filter über den Eingang fegt. Maximales Pooling wird häufiger als durchschnittliches Pooling verwendet.

Obwohl beim Pooling erhebliche Daten verloren gehen, bietet es dennoch viele Vorteile für CNN. Es trägt dazu bei, das Risiko einer Überanpassung und die Komplexität zu reduzieren und gleichzeitig die Effizienz zu verbessern. Es verbessert auch die Stabilität von CNN.

Vollständig verbundene (FC) Schicht

Wie der Name schon sagt, sind alle Knoten in einer Ausgabeschicht direkt mit dem Knoten der vorherigen Schicht in einer vollständig verbundenen Schicht verbunden. Es klassifiziert ein Bild basierend auf den extrahierten Merkmalen über vorherige Ebenen zusammen mit ihren Filtern.

Darüber hinaus verwenden FC-Schichten im Allgemeinen eine Softmax-Aktivierungsfunktion, um Eingaben korrekt zu klassifizieren, anstelle von ReLu-Funktionen (wie im Fall von Pooling- und Faltungsschichten). Dies hilft, eine Wahrscheinlichkeit von entweder 0 oder 1 zu erzeugen.

Wie funktionieren CNNs?

Ein Convolutional Neural Network besteht aus vielen Schichten, sogar Hunderten davon. Diese Ebenen lernen, verschiedene Merkmale eines bestimmten Bildes zu identifizieren.

Obwohl CNNs neuronale Netze sind, unterscheidet sich ihre Architektur von einem normalen KNN.

Letzteres leitet eine Eingabe durch viele verborgene Schichten, um sie zu transformieren, wobei jede Schicht mit einem Satz künstlicher Neuronen erstellt wird und vollständig mit jedem Neuron in derselben Schicht verbunden ist. Endlich gibt es eine vollständig verbundene Schicht oder die Ausgabeschicht, um das Ergebnis anzuzeigen.

Auf der anderen Seite organisiert CNN die Schichten in drei Dimensionen – Breite, Tiefe und Höhe. Hier verbindet sich eine Schicht des Neurons nur mit Neuronen in einem kleinen Bereich, anstatt sich auf jedes einzelne von ihnen in der nächsten Schicht zu beziehen. Schließlich wird das Endergebnis durch einen einzelnen Vektor mit einem Wahrscheinlichkeitswert dargestellt und hat nur die Tiefendimension.

Nun fragen Sie sich vielleicht, was „Faltung“ in einem CNN ist.

Nun, Faltung bezieht sich auf eine mathematische Operation, um zwei Datensätze zusammenzuführen. Bei CNN wird das Faltungskonzept auf Eingabedaten angewendet, um eine Merkmalskarte auszugeben, indem die Informationen gefiltert werden.

Dies bringt uns zu einigen der wichtigen Konzepte und Terminologien, die in CNNs verwendet werden.

  • Filter: Auch als Merkmalsdetektor oder Kernel bekannt, kann ein Filter eine bestimmte Dimension haben, z. B. 3 × 3. Es geht über ein Eingangsbild, um eine Matrixmultiplikation für jedes Element durchzuführen, um eine Faltung anzuwenden. Das Anwenden von Filtern auf jedes Trainingsbild mit unterschiedlichen Auflösungen sowie die Ausgabe des gefalteten Bildes funktionieren als Eingabe für die nachfolgende Ebene.
  • Padding: Es wird verwendet, um eine Eingabematrix bis zu den Rändern der Matrix zu erweitern, indem gefälschte Pixel eingefügt werden. Es wird getan, um der Tatsache entgegenzuwirken, dass die Faltung die Matrixgröße reduziert. Beispielsweise kann eine 9×9-Matrix nach dem Filtern in eine 3×3-Matrix umgewandelt werden.
  • Striding: Wenn Sie eine Ausgabe erhalten möchten, die kleiner als Ihre Eingabe ist, können Sie Striding durchführen. Es ermöglicht das Überspringen bestimmter Bereiche, während der Filter über das Bild gleitet. Durch das Überspringen von zwei oder drei Pixeln können Sie ein effizienteres Netzwerk erstellen, indem Sie die räumliche Auflösung reduzieren.
  • Gewichte und Verzerrungen: CNNs haben Gewichte und Verzerrungen in ihren Neuronen. Ein Modell kann diese Werte während des Trainings lernen, und die Werte bleiben in einer bestimmten Schicht für alle Neuronen gleich. Dies impliziert, dass jedes verborgene Neuron dieselben Merkmale in verschiedenen Bereichen eines Bildes erkennt. Dadurch wird das Netzwerk beim Übersetzen von Objekten in ein bestimmtes Bild toleranter.
  • ReLU: Steht für Rectified Linear Unit (ReLu) und wird für ein effektiveres und schnelleres Training verwendet. Negative Werte werden auf 0 abgebildet und positive Werte beibehalten. Es wird auch Aktivierung genannt, da das Netzwerk nur die aktivierten Bildmerkmale in die nachfolgende Schicht trägt.
  • Rezeptives Feld: In einem neuronalen Netzwerk erhält jedes Neuron Eingaben von verschiedenen Stellen aus der vorherigen Schicht. Und in Faltungsschichten erhält jedes Neuron nur Eingaben von einem begrenzten Bereich der vorherigen Schicht, der als rezeptives Feld des Neurons bezeichnet wird. Im Fall der FC-Schicht ist die gesamte vorherige Schicht das rezeptive Feld.
  So verwenden Sie Sparklines in Google Tabellen

Bei realen Berechnungsaufgaben wird normalerweise eine Faltung in einem 3D-Bild durchgeführt, das einen 3D-Filter erfordert.

Zurück zu CNN, es besteht aus verschiedenen Teilen oder Knotenschichten. Jede Knotenschicht hat einen Schwellenwert und eine Gewichtung und ist mit einer anderen verbunden. Beim Überschreiten des Schwellenwerts werden Daten an die nächste Schicht in diesem Netzwerk gesendet.

Diese Schichten können Operationen ausführen, um die Daten zu ändern, um relevante Merkmale zu lernen. Außerdem wiederholen diese Operationen Hunderte verschiedener Ebenen, die ständig lernen, andere Merkmale eines Bildes zu erkennen.

Die Bestandteile eines CNN sind:

  • Eine Eingabeebene: Hier wird die Eingabe vorgenommen, z. B. ein Bild. Es wird ein 3D-Objekt mit einer definierten Höhe, Breite und Tiefe sein.
  • Eine/mehrere verborgene Schichten oder Merkmalsextraktionsphase: Diese Schichten können eine Faltungsschicht, eine Pooling-Schicht und eine vollständig verbundene Schicht sein.
  • Eine Ausgabeschicht: Hier wird das Ergebnis angezeigt.

Das Passieren des Bildes durch die Faltungsschicht wird in eine Merkmalskarte oder Aktivierungskarte umgewandelt. Nach dem Falten der Eingabe falten die Ebenen das Bild und übergeben das Ergebnis an die nachfolgende Ebene.

Das CNN führt viele Faltungs- und Pooling-Techniken durch, um die Merkmale während der Merkmalsextraktionsphase zu erkennen. Wenn Sie beispielsweise das Bild einer Katze eingeben, erkennt CNN ihre vier Beine, Farbe, zwei Augen usw.

Als Nächstes fungieren vollständig verbundene Schichten in einem CNN als Klassifikator für die extrahierten Merkmale. Basierend auf dem, was der Deep-Learning-Algorithmus über das Bild vorhergesagt hat, würden die Schichten das Ergebnis liefern.

Vorteile von CNNs

Höhere Genauigkeit

CNNs bieten eine höhere Genauigkeit als normale neuronale Netze, die keine Faltung verwenden. CNNs sind hilfreich, insbesondere wenn die Aufgabe viele Daten, Video- und Bilderkennung usw. beinhaltet. Sie liefern hochpräzise Ergebnisse und Vorhersagen; Daher nimmt ihre Verwendung in verschiedenen Sektoren zu.

Recheneffizienz

CNNs bieten eine höhere Recheneffizienz als andere reguläre neuronale Netze. Dies liegt an der Verwendung des Faltungsprozesses. Sie verwenden auch Dimensionsreduktion und Parameterfreigabe, um die Modelle schneller und einfacher bereitzustellen. Diese Techniken können auch optimiert werden, um auf verschiedenen Geräten zu funktionieren, sei es Ihr Smartphone oder Laptop.

Feature-Extraktion

CNN kann die Merkmale eines Bildes leicht lernen, ohne dass manuelles Engineering erforderlich ist. Sie können vortrainierte CNNs nutzen und die Gewichte verwalten, indem Sie ihnen Daten zuführen, wenn Sie an einer neuen Aufgabe arbeiten, und das CNN passt sich nahtlos daran an.

Anwendungen von CNN

CNNs werden in verschiedenen Branchen für viele Anwendungsfälle eingesetzt. Einige der realen Anwendungen von CNNs umfassen:

  So reparieren Sie einen eingefrorenen Mac

Bildklassifizierung

CNNs werden häufig bei der Bildklassifizierung verwendet. Diese können wertvolle Merkmale erkennen und Objekte in einem bestimmten Bild identifizieren. Daher wird es in Bereichen wie dem Gesundheitswesen, insbesondere MRTs, eingesetzt. Darüber hinaus wird diese Technologie bei der handschriftlichen Ziffernerkennung verwendet, die zu den frühesten Anwendungsfällen von CNNs in der Computer Vision gehört.

Objekterkennung

CNN kann Objekte in Bildern in Echtzeit erkennen und diese auch kennzeichnen und klassifizieren. Daher wird diese Technik in automatisierten Fahrzeugen weit verbreitet verwendet. Es ermöglicht Smart Homes und Fußgängern auch, das Gesicht des Fahrzeugbesitzers zu erkennen. Es wird auch in KI-gestützten Überwachungssystemen verwendet, um Objekte zu erkennen und zu markieren.

Audiovisueller Abgleich

Die Hilfe von CNN beim audiovisuellen Abgleich trägt zur Verbesserung von Video-Streaming-Plattformen wie Netflix, YouTube usw. bei. Es hilft auch, Benutzeranfragen wie „Liebeslieder von Elton John“ zu erfüllen.

Spracherkennung

Neben Bildern sind CNNs hilfreich bei der Verarbeitung natürlicher Sprache (NLP) und der Spracherkennung. Ein reales Beispiel dafür könnte Google sein, das CNNs in seinem Spracherkennungssystem verwendet.

Objektrekonstruktion

CNNs können bei der 3D-Modellierung eines realen Objekts in einer digitalen Umgebung verwendet werden. Es ist auch möglich, dass CNN-Modelle ein 3D-Gesichtsmodell anhand eines Bildes erstellen. Darüber hinaus ist CNN nützlich bei der Konstruktion digitaler Zwillinge in Biotechnologie, Fertigung, Biotechnologie und Architektur.

Die Nutzung von CNN in verschiedenen Sektoren umfasst:

  • Gesundheitswesen: Computer Vision kann in der Radiologie eingesetzt werden, um Ärzten zu helfen, Krebstumore bei einer Person effizienter zu erkennen.
  • Landwirtschaft: Die Netzwerke können Bilder von künstlichen Satelliten wie LSAT verwenden und diese Daten nutzen, um fruchtbares Land zu klassifizieren. Dies hilft auch, die Fruchtbarkeit des Bodens vorherzusagen und eine effektive Strategie zur Maximierung des Ertrags zu entwickeln.
  • Marketing: Social-Media-Anwendungen können eine Person auf einem Bild vorschlagen, das im Profil einer Person gepostet wurde. Dies hilft Ihnen, Personen in Ihren Fotoalben zu markieren.
  • Einzelhandel: E-Commerce-Plattformen können visuelle Suche verwenden, um Marken dabei zu unterstützen, relevante Artikel zu empfehlen, die die Zielkunden kaufen möchten.
  • Automobil: CNN findet Verwendung in Automobilen, um die Sicherheit von Passagieren und Fahrern zu verbessern. Dies geschieht mithilfe von Funktionen wie Spurlinienerkennung, Objekterkennung, Bildklassifizierung usw. Dies trägt auch dazu bei, dass sich die Welt der selbstfahrenden Autos weiter entwickelt.

Ressourcen zum Erlernen von CNNs

Coursera:

Coursera bietet diesen CNN-Kurs an, den Sie belegen können. In diesem Kurs lernen Sie, wie sich Computer Vision im Laufe der Jahre entwickelt hat und einige Anwendungen von CNNs in der modernen Welt.

Amazonas:

Sie können diese Bücher und Vorträge lesen, um mehr über CNN zu erfahren:

  • Neuronale Netze und Deep Learning: Es behandelt Modelle, Algorithmen und die Theorie von Deep Learning und neuronalen Netzen.
  • A Guide to Convolutional Neural Networks for Computer Vision: In diesem Buch lernen Sie die Anwendungen von CNNs und ihre Konzepte kennen.
  • Hands-on Convolutional Neural Networks with Tensorflow: Mit Hilfe dieses Buches können Sie verschiedene Probleme in der Computer Vision mit Python und TensorFlow lösen.
  • Angewandtes Deep Learning für Fortgeschrittene: Dieses Buch hilft Ihnen, CNNs, Deep Learning und ihre fortgeschrittenen Anwendungen, einschließlich Objekterkennung, zu verstehen.
  • Convolutional Neural Networks and Recurrent Neural Networks: In diesem Buch erfahren Sie mehr über CNNs und RNNs und wie Sie diese Netzwerke aufbauen.

Fazit

Convolutional Neural Networks sind eines der aufstrebenden Gebiete der künstlichen Intelligenz, des maschinellen Lernens und des Deep Learning. Es hat verschiedene Anwendungen in der heutigen Welt in fast allen Bereichen. Angesichts der zunehmenden Nutzung wird erwartet, dass es sich weiter ausdehnt und bei der Bewältigung realer Probleme nützlicher ist.