05 CNNs Flashcards
Faltung
Das “Convolution” in Convolutional NNs
In diesem Fall: diskrete Faltung
Bekannt aus der Bildverarbeitung.
- Kantenfilter
- Bildglättung
- Bildschärfung
Datenfluss im Netz
Daten werden in Form von Feature Maps von Layer zu Layer übertragen
- Jeder Layer erhält als Eingabe r Feature Maps (mxm)
- Im Input Layer gilt: Feature Maps = Eingabebild (RGB: mxmx3)
- Alle Feature Maps zwischen zwei Layern entsprechen einem Tensor
Pooling Layer
Zusammenfassung kleiner Bildbereiche
Max Pooling / Mean Pooling / Stochastic Pooling
Nutzen:
- lokale Translationsinvariant
- Invarianz gegen leichte Veränderungen und Verzerrungen
- Datenreduktion
Convolutional Layer
Anwendung von Faltungsoperationen auf die Eingabe
Faltung erfolgt auf beliebigen Schichten der Eingabe
LeNet
Entwickelt zur Handschrifterkennung
7 layer
- 2xConvolution
- 2xSubsamling(Pooling)
- 3x fully connected NN
Activation Layer
Nichtlineare Aktivierung
z.B. ReLU (nicht Sigmoid oder Tanh)
Einsatz: nach Convolutional Layer (teilw. als teil des conv-layer gesehen)
Hierarchische Features
bedingt durch die Architektur der CNNs
Feaure eines Layers basieren auf den Ausgaben der Features des vorherigen Layers
Eingabebild –> Low level Features –> Mid level features –> high level features –> klassifikator
Labeling von daten
Effizient für Training:
One Hot Encoding - ein vektor pro feature
1000: Auto
0100: Fahrrad
0010: Ample
…
Loss (Fehlerfunktion)
Misst die aktuelle Güte des Modelles
Der Loss über alle Daten entspricht dem Durchschnitt der Losse über die einzelnen Daten
L = 1/N Summe(L_i (f(x_i,W),y_i)
Wahl der Fehlerfunktion beeinflusst die Eigentschaften des Modells
- Cross Entropy
- SoftMax
- Mean Squared Error (MSE)
- Mean Absolute Error (MAE)
- Mean Squared Logarithmic Error (MSLE)
Grandient Descent Varianten
Batch Gradient Descent:
- Ein Update über den gesamten Trainingsdatensatz
- Langsame Konvergenz bei großen Datensätzen
Stochastic Gradient Descent:
- Ein Update pro Trainingsdatum
- Sprunghaftes Lernen
Mini Batch Gradient Descent
- Ein Update pro “Mini Batch”
- KOmpromiss mit Stellgröße Mini Batch Size
Momentum SGD:
* Berücksichtigung des vorherigen Updates als Momentum
Nesterov:
- Bewegung in die ungefähre Richtung
- Dort Gradientenbestimmung
- “Vorausschauen” möglich
AdaGRAD:
- Erlaubt ein Anpassen der Lernrate basierend auf den Parametern
- kein manuells Anpassen der Lernrate nötig
- Aber: Lernrate wird mit fortschreitendem Training kleiner, immer!
AdaDelta:
* AdaGRAD ohne verschwindende Lernrate
Adaptive Movement Estimation (ADAM)
Fully Convolutional Networks (FCN)
Konvertierung der Fully Connected Schichten in Convolutional Schichten
Netze äquivalent bei gleicher Eingabegröße
Im Gegensatz zu Fully Connected CNNs Eingabe größe nicht fix. Größere Eingabebiilder möglich
Ausgabe eines FCN:
- Eine Wahrscheinlichkeiskarte pro Klasse (statt wert)
- Gibt die Wahrscheinlichkeit dafür an, dass ein Bereich/Pixel im Bild zur entsprechenden Klasse gehört
- Größe eines Bereichs abhängig von der Netzarchitektur
Upsampling Methoden
Nearest Neighbor:
- Einfaches Ausfüllen der hinzugefügten Felder
- –> “Unschärfe”
Bed of Nails:
- Einfügen an vorgegenbenen Punkten
- –> Ungenauigkeit im Netz
Max Unpooling:
- Speichern der Location beim Pooling
- Rekonstruktioin anhand dieser Locations
- –> kein Zugewinn an Information
Tiling:
- Lernen verschobener Sichten in zusätzlichen Filtern
- –> Steigerung der Präzision
- –> Aber: Steigerung der Parameteranzahl
Objektdetektion klassisch
Auswahl von Regionen
Extraktion von Features
Klassifikation der Regionen durch einen Klassifikator
Möglichkeiten zu Regionsauswahl:
- Sliding Window + Pyramid (mehrere millionen Regionen, je nach Bildgröße)
- Interest Point Detektor (Meist mehrere 100 bis 1000 Regionen)
Objektdetektion mit CNNs
CNNs in klassische Pipeline:
- sog. “two stage” Ansätze
- Eine Netzausführung pro Region
- Zeitintensiv
- Ausführungszeit vorab nicht bekannt
Möglichkeiten zur Verbesserung
- Bessere Regionsauswahl
- Berechnen von Features über das gesamte Bild
- Direkte Detektion im CNN
Fast R-CNN
- Two-Stage Ansatz
- Berechnung der Features vorab
- Extraktion der Regionen aus den Feature Maps
- Klassifikation in weiterem CNN
Faster R-CNN
* Region Proposal durch das CNN
One Stage - Bounding Box Regression
Bisher:
- Ausgabe einer Wahrscheinlichkeit pro Klasse für jede Region / Pixel
- Segmentierung anhand der Wahrscheinlichkeitskarten
Jetzt:
- zusätzliches Vorhersagen einer Objekt-Bounding Box pro Region
- Bounding Box ist klassenunabhängig
- Anhand der extrahierten Features
- Vorhergesagte Bounding Box im Field of View der entsprechenden Region
- Overfeat, YOLO, SSD