18 Convolutional Neural Networks (CNNs)

18.1 Einführung

Convolutional Neural Networks (CNNs) sind eine spezielle Architektur neuronaler Netze, die besonders für die Verarbeitung von Bild- und Videodaten entwickelt wurde. Sie sind in der Lage, lokale Muster zu erkennen und hierarchische Merkmale aus Bildern zu extrahieren.


18.2 Aufbau eines CNN

Ein CNN besteht typischerweise aus den folgenden Schichten:

  1. Eingabeschicht: Nimmt Bilddaten als Input, z. B. eine Matrix von Pixelwerten.
  2. Faltungsschichten (Convolutional Layers): Extrahieren Merkmale aus dem Bild durch das Anwenden von Filtermatrizen (Kernen).
  3. Pooling-Schichten: Reduzieren die Dimensionalität der Merkmalskarten und verbessern die Invarianz gegenüber Verschiebungen.
  4. Fully Connected Layers: Verarbeiten die extrahierten Merkmale und erzeugen die finale Klassifikation.

18.3 Faltungsschicht (Convolutional Layer)

Die Faltungsschicht ist das Herzstück eines CNN. Sie verwendet Filter (Kernels), um lokale Merkmale wie Kanten, Texturen oder Muster zu extrahieren.

18.3.1 Mathematische Darstellung

Die Faltung wird definiert als:

Zᵢⱼ = Σ Σ Xᵢ₊ₘ,ⱼ₊ₙ ⋅ Wₘₙ + b

Dabei ist: - X die Eingabematrix (Bildpixel) - W die Filtermatrix (Kernel) - b der Bias - Z die gefaltete Ausgabe

📌 Beispiel: Ein 3×3-Sobel-Filter zur Kantendetektion

W =
⎡ -1 0 1 ⎤
⎢ -2 0 2 ⎥
⎣ -1 0 1 ⎦

Dieser Filter erkennt vertikale Kanten im Bild.


18.4 Pooling-Schicht

Die Pooling-Schicht reduziert die Dimensionalität der Merkmalskarten und hilft, Rechenaufwand und Überanpassung zu minimieren.

18.4.1 Wichtige Pooling-Methoden

  1. Max-Pooling: Wählt den höchsten Wert aus einem bestimmten Bereich.
  2. Average-Pooling: Berechnet den Durchschnittswert aus einem Bereich.

📌 Beispiel für 2×2 Max-Pooling:

Eingabematrix:

⎡ 1 3 2 4 ⎤
⎢ 5 6 7 8 ⎥
⎢ 9 10 11 12 ⎥
⎣ 13 14 15 16 ⎦

Max-Pooling mit 2×2-Fenster:

⎡ 6 8 ⎤
⎣ 14 16 ⎦


18.5 Fully Connected Layer

Nach mehreren Faltungs- und Pooling-Schichten werden die extrahierten Merkmale in vollständig verbundene Schichten überführt. Hierbei erfolgt die finale Klassifikation durch Softmax- oder Sigmoid-Funktionen.

18.5.1 Beispiel für eine Klassifikation

Angenommen, ein CNN erkennt handgeschriebene Zahlen (MNIST-Dataset):

Softmax(x) = e^(xᵢ) / Σ e^(xⱼ)

Falls die Ausgabe ist:
[0.1, 0.2, 0.05, 0.05, 0.6, 0.0, 0.0, 0.0, 0.0, 0.0]

wird die Zahl 4 erkannt, da sie die höchste Wahrscheinlichkeit hat (0.6).


18.6 Anwendungsbereiche von CNNs

Bildklassifikation (z. B. ImageNet, Gesichtserkennung)
Objekterkennung (z. B. YOLO, Faster R-CNN)
Spracherkennung (z. B. WaveNet)
Medizinische Bildanalyse (z. B. Tumorerkennung in MRTs)