Wie hat man bis 2012 versucht Bilder zu klassifizieren?
Man hat versucht durch programmierung und wiedererkennung bestimmter Features Bilder zu klassifizieren.
Welche Probleme gibt es bei der Bilderkennung mit neuronalen Netzen und was ist die Lösung?
Zu viele Parameter bei fully connected layern: Wieviele Parameter hat man be einem 512x512 pixel RGB? 512 x 512 x 3 (RGB) + 1 (Bias) = 785.000 Parameter/neuron
Der Input/Größe der Bilder muss immer gleich sein, da sich sonst die Gewichte verändern. Bei zu großen —> fehlen Gewichte, bei kleinen —> zu viele Gewichte
Translation Invariance: Bei veränderung des Bildes werden zwei verschiedene Annahmen über das Pixel gemacht
Lösung: Man nimmt kleine Abschnitte des Bildes und sucht nach dem Objekt.
Was ist der allgemeine Zweck von Faltungen (Convolutions) in Convolutional Neural Networks (CNNs)?
Antwort: Faltungen, speziell diskrete Faltungen, sind ein zentraler Bestandteil von Convolutional Neural Networks (CNNs) und werden in der Bildverarbeitung für Funktionen wie Kantenerkennung, Bildglättung und Bildschärfung eingesetzt.
Frage: Was beschreibt die Faltungstheorie (Convolution) in Bezug auf Bilder und Kernel in der Bildverarbeitung?
Antwort: In der Faltungstheorie wird ein Bild I(x, y) als Matrix im Raum ℕ^m1×m2 betrachtet, und ein Kernel K(x, y) als eine kleinere Matrix im Raum ℝ^n×n. Die Faltung K * I(x, y) ist eine mathematische Operation, bei der der Kernel über das Bild geschoben wird und an jedem Punkt eine gewichtete Summe der Pixelwerte berechnet wird, was zu einem transformierten Bild führt. Diese Operation ist grundlegend für die Merkmalsextraktion in der Bildverarbeitung.
Frage: Wie wird eine Faltung (Convolution) praktisch auf ein Eingabebild angewendet?
Antwort: In der Praxis wird ein Faltungskern (z.B. ein 3x3-Matrix-Filter) über das Eingabebild (m x m) bewegt. Für jeden Bereich, über den der Kern bewegt wird, werden die entsprechenden Werte des Kernels mit den darunterliegenden Bildpixeln multipliziert und summiert, um einen einzigen Wert in der resultierenden Feature-Map zu erhalten. Dieser Prozess wird wiederholt, bis die gesamte Feature-Map erstellt ist, die wichtige Merkmale des ursprünglichen Bildes hervorhebt.
Frage: Wie werden Faltungen auf dreidimensionale Bilder, wie RGB-Bilder, angewendet?
Antwort: Bei RGB-Bildern, die dreidimensional sind (Breite x Höhe x Kanäle), wird jeder der drei Farbkanäle (Rot, Grün, Blau) einzeln betrachtet. Für jeden Kanal wird ein eigener Faltungskern verwendet, und die Faltungen werden getrennt auf jeden Kanal angewendet. Diese separaten Faltungen können dann kombiniert werden, um einen vollständigen konvolutionellen Filtereffekt auf das gesamte Bild zu erzielen.
Woraus besteht ein Convolutional Filter und wie berechnet man ihn und die Anzahl der Parameter
Genauso viele Kurnel wieviele Channel es hat —> bei RGB sind es 3 Channels das heißt auch 3 Kurnels
Jeder Kurnel kann andere Werte haben
Jeder Filter hat nur einen Bias
Jeder Filter besteht aus mehreren Kurnels —> Menge an Kurnels wieviele Channels es gibt also Eingaben
Woraus besteht nun ein Convolutional Layer
Antwort: Ein konvolutioneller Layer in einem neuronalen Netzwerk nimmt vorherige Feature-Maps als Eingabe und verwendet mehrere convultional Filter, um neue Feature-Maps zu erzeugen. Diese Filter extrahieren wichtige Merkmale aus den Eingabedaten. Die Größe der Ausgabe-Feature-Maps wird durch die Größe der Eingabe, die Filtergröße, die Anzahl der Filter (k) und den Schrittweite (stride) bestimmt, wobei die Formel m_new = (m - n) / s + 1 die neue Dimension der Feature-Maps berechnet.
Wieviele Feature maps erzeugen k convolutional Filter?
k convolutional Filter erzeugen k feature maps, Beispiel:
RGB-input Channels = feature map with 3 Channels
Frage: Wie ist die Standardarchitektur eines Convolutional Neural Network (CNN) aufgebaut?
Antwort: Eine Standard-CNN-Architektur ist typischerweise in fünf Stufen unterteilt, wobei jede Stufe mehrere convolutional layer enthält. Nach jede layer wird eine Aktivierungsfunktion angewendet, üblicherweise ReLU (Rectified Linear Unit). Die Feature-Maps behalten in jeder Phase eine konstante Auflösung bei. Mit jeder Stufe verringert sich die Auflösung der Feature-Maps jedoch um den Faktor vier (Quartierung), während sich die Anzahl der Filter nach jeder Stufe verdoppelt, um komplexere Merkmale zu extrahieren und die Repräsentation zu verdichten.
224 x 224 x 64 (64 Filter)
Was ist ein Strided Kernel?
Das ist die Schritte entfernung also die Größe unserer Feature Map. Stride (Wie groß sind die Schritte in denen wir nach rechts gehen.)
mnew: Größe der Feature map
Frage: Warum und wann wird Padding bei konvolutionellen Filtern verwendet?
Antwort: Padding wird bei konvolutionellen Filtern verwendet, um die Auflösung des Ausgangsbildes beizubehalten und sicherzustellen, dass auch die Pixel am Rand des Bildes durch den mittleren Wert des Kernels angemessen berücksichtigt werden. Ohne Padding würde die Verwendung von Kernels, die größer als 1x1 sind, die Auflösung des Bildes reduzieren. Zudem könnten bei gestrichelten konvolutionellen Filtern (strided convolutions) einige Werte ignoriert werden, was durch Padding vermieden wird.
Frage: Welche Padding-Methoden gibt es und warum werden sie verwendet?
Zero Padding: Fügt Nullen an den Rändern hinzu.
Reflect Padding: Spiegelt innere Werte an den Rändern.
Circular Padding: Übernimmt Werte von der gegenüberliegenden Seite.
Zweck: Erhaltung der Auflösungsgröße der Feature-Map und Einbeziehung der Randpixel in die Faltung.
Frage: Was ist ein Pooling Layer in einem CNN und welche Strategien gibt es?
Antwort:
Aggregiert kleine Bildbereiche (meist 2x2) in Feature Maps.
Strategien: Max Pooling (größter Wert) und Average Pooling (Durchschnittswert).
Vorteile: Erzeugt lokale Translationsinvarianz, reduziert Datenmenge, keine lernbaren Parameter (schneller).
Frage: Was ist der Unterschied zwischen gestrichelten (strided) konvolutionellen Filtern und Pooling in Bezug auf die Reduzierung der Auflösung?
Strided Convolution:
Reduziert Auflösung durch größere Schritte.
Enthält lernbare Parameter, was Training und Inferenz verlangsamen kann.
Pooling:
Wird manchmal für spätere Auflösungsreduktion verwendet, da
erste Auflösungsreduktion oft über konvolutionelle Schichten mit Strides erfolgt.
Max Pooling wählt den maximalen Wert, Average Pooling berechnet den Durchschnitt.
Pooling kann Informationen verlieren, bietet aber schnellere Verarbeitung und weniger Overfitting.
Frage: Was ist der Zweck von Aktivierungsfunktionen in CNNs und welche sind üblich?
Schaffen Nichtlinearität zwischen konvolutionellen Schichten.
Oft verwendet: ReLU (Rectified Linear Unit), da sie recheneffizient ist.
Neuere Funktionen: Swish/SiLU für möglicherweise bessere Leistung.
Frage 1: Wie haben sich die vollständig verbundenen Schichten in CNNs entwickelt?
Frühere CNNs hatten mehrere voll verbundene Schichten.
Heute oft nur eine voll verbundene Schicht.
Anzahl der Neuronen = Anzahl der Klassen.
Frage 2: Was ermöglicht klassenunabhängige Auflösung in CNNs?
Voll verbundene Schichten benötigen feste Auflösung.
Channelwise Global Average Pooling erlaubt variable Eingangsauflösungen.
Frage 3: Was ist die Funktion der Softmax-Schicht in CNNs?
Letzte Aktivierungsfunktion in voll verbundenen Schichten.
Erzeugt eine normalisierte Wahrscheinlichkeitsverteilung über Klassen.
Frage: Wie werden die Gewichte in einem CNN initialisiert und welche Methoden gibt es?
Initialisierung der Kernel-Gewichte beeinflusst das Training stark.
Methoden: Von Grund auf neu beginnen (z.B. Kaiming He, Xavier).
Transfer Learning: Gewichte von einem vorher trainierten CNN übernehmen, oft mit kleiner Lernrate für bestehende Gewichte, anwendbar bei gleicher Architektur.
Frage: Was ist das rezeptive Feld in der Konvolution und wie vergleichen sich die rezeptiven Felder bei unterschiedlichen Filtergrößen?
Rezeptives Feld: Region des Originalinputs, die ein Feature im Feature-Map-Pixel erzeugt.
Ein 7x7 konvolutiver Filter hat ein rezeptives Feld von 7x7 und 50 Parametern.
Drei 3x3 konvolute Filter, hintereinander angewendet, haben ebenfalls ein effektives rezeptives Feld von 7x7, aber nur 30 Parameter.
3x3 konvolute Filter sind der de facto Standard geworden.
Frage 1: Was versteht man unter hierarchischen Merkmalen in einem CNN?
Hierarchische Merkmale entstehen durch das Stapeln von konvolutionellen Filtern, wobei tiefer gelegene Schichten meist einfache Merkmale wie Kanten erkennen und höhere Schichten komplexe, semantische Informationen extrahieren.
Frage 2: Wie funktioniert das Training von CNNs?
Antwort 2:
Das Training ist ähnlich wie bei neuronalen Netzen, wobei die Gewichte und Biases der konvolutionellen Filter durch Backpropagation und einen Optimierer wie Adam oder SGD aktualisiert werden.
Frage 3: Was war die Struktur des LeNet (1989) und seine Bedeutung?
Antwort 3:
LeNet war eine frühe CNN-Architektur, die für die Dokumentenerkennung angewendet wurde und eine Kombination aus Konvolutions-, Subsampling- und voll verbundenen Schichten enthielt.
Warum werden GPUs statt CPUs für das Training und Ausführen von CNNs verwendet? (Klausur WS 22/23)
Da alle mathematischen Funktionen von CNNs/NNs Matrix Operationen sind und GPU`s dafür optimiert
sind.
Frage 1: Was kennzeichnet die VGG 16 Architektur?
VGG 16 ist eine tiefe CNN-Architektur mit sequentiellen Konvolutions- und Max-Pooling-Schichten, gefolgt von drei voll verbundenen Schichten und einem Softmax-Ausgang.
Frage 2: Was ist das besondere an der ResNet-Architektur? (Klausur WS 22/23, 4 b)
ResNet verwendet Skip-Connections, um die Identität über Schichten hinweg zu bewahren und ermöglicht das Training sehr tiefer Netze durch die Verbesserung des Gradientenflusses.
Frage 3: Wie viele Schichten hat ResNet und was ist der Vorteil?
ResNet kann bis zu 200 Schichten umfassen und zeigt, dass tiefere CNNs zu einer besseren Leistung führen können.
Frage 4: Was sind die Verbesserungen in ConvNext im Vergleich zu ResNet?
ConvNext modernisiert ResNet mit größeren Strides in Konvolutionsfiltern, größeren Kernels, wechselt von Re
Last changed10 months ago