[PYTHON] Deep Learning Specialization (Coursera) Selbststudienprotokoll (C4W2)
Einführung
Dies ist der Inhalt von Kurs 4, Woche 2 (C4W2) von Deep Learning Specialization.
(C4W2L01) Why look at case studies?
Inhalt
- Der Umriss dieser Woche
- Classic Networks
- ResNet (152 layers)
- Inception
(C4W2L02) Classic Networks
Inhalt
LeNet-5 (1998)
- Input ; 32 x 32 x 1
- CONV (5x5, s=1) ; 28 x 28 x 1
- Avg POOL (f=2, s=2) ; 14 x 14 x 6
- CONV (5x5, s=1) ; 10 x 10 x 16
- Avg POOL (f=2, s=2) ; 5 x 5 x 6
- FC, 120 Parameter
- FC; 84 Parameter
- \hat{y}
- Anzahl der Parameter: 60k
- $ n_H $, $ n_W $ werden kleiner und $ n_C $ wird größer
- Typische Netzwerke von CONV, POOL, CONV, POOL, FC, FC
AlexNet (2012)
- Input ; 227x227x3
- CONV (11x11, s=4) ; 55 x 55 x 96
- Max POOL (3x3, s=2) ; 27 x 27 x 96
- CONV (5x5, same) ; 27 x 27 x 256
- Max POOL (3x3, s=2) ; 13 x 13 x 256
- CONV (3x3, same) ; 13 x 13 x 384
- CONV (3x3, same) ; 13 x 13 x 384
- CONV (3x3, same) ; 13 x 13 x 256
- Max POOL (3x3, s=2) ; 6 x 6 x 256
- FC; 4096 Parameter
- FC; 4096 Parameter
- Softmax; 1000 Parameter
- Similarity to LeNet, but much bigger (\sim 60M parameters)
- ReLU
- Multiple GPUs
- Local Response Normalization
VGG-16
- CONV = 3x3 filter, s=1, same
- Max POOL = 2x2, s=2
- Input ; 224 x 224 x 3
- CONV64 x 2 ; 224 x 224 x 64
- POOL ; 112 x 112 x 64
- CONV128 x 2 ; 112 x 112 x 128
- POOL ; 56 x 56 x 128
- CONV256 x 3; 56 x 56 x 256
- POOL ; 28 x 28 x 256
- CONV512 x 3; 28 x 28 x 512
- POOL ; 14 x 14 x 512
- CONV512 x 3 ; 14 x 14 x 512
- POOL ; 7 x 7 x 512
- FC; 4096 Parameter
- FC; 4096 Parameter
- Softmax; 1000 Parameter
- Anzahl der Parameter; $ \ sim $ 138M
- Relative strukturelle Einheitlichkeit
Impressionen
――Die Geschwindigkeit der Zeiten, in denen 2015 als klassisch ausgedrückt wird
(C4W2L03) Residual Networks (ResNet)
Inhalt
-
Residual block
- a^{[l]}
- z^{[l+1]} = W^{[l+1]}a^{[l]} + b^{[l+1]}
- a^{[l+1]} = g(z^{[l+1]})
- z^{[l+2]} = W^{[l+2]}a^{[l+1]} + b^{[l+2]}
- a^{[l+1]} = g(z^{[l+1]} + a^{[l]})
-
Je tiefer die Schicht, desto größer der Trainingsfehler in einem normalen Netzwerk.
――Aber mit ResNet verringern sich die Trainingsfehler, selbst wenn sie 100 Schichten überschreiten. Effektiv zum Erlernen tiefer Netzwerke
(C4W2L04) Why ResNets works
Inhalt
- Wenn $ W ^ {[l + 2]} = 0 $, $ b ^ {[l + 2]} = 0 $, dann ist $ a ^ {[l + 2]} = g (a ^ {[l] ]}) = a ^ {[l]} $
- Die Identitätsfunktion ist für den Restblock leicht zu erlernen (der Restblock ist für den Restblock leicht zu erlernen).
(C4W2L05) Network in network and 1x1 convolutions
Inhalt
- Why does a 1x1 convolution do?
- (6 \times 6 \times 32) \ast (1 \times 1 \times 32) = (6 \times 6 \times
\textrm{#filters})
- Bild der Anwendung von vollständig verbunden (FC) auf jedes Eingangspixel
- Auch als Netzwerk im Netzwerk bekannt
- Using 1x1 convolutions
- Input ; 28 \times 28 \times 192
- ReLU, CONV 1x1, 32 filters → Output ; 28 \times 28 \times 32
- $ n_C $ kann reduziert werden
(C4W2L06) Inception network motivation
Inhalt
- Wenden Sie Folgendes auf Input (28x28x192) an und kombinieren Sie sie.
- 1x1 → Output ; 28x28x64
- 3x3 → Output ; 28x28x128
- 5x5 → Output ; 28x28x32
- Max POOL → Output ; 28x28x32
- Insgesamt 28x28x256
- Wenden Sie alle verschiedenen Filtergrößen und Pools an und lassen Sie das Netzwerk die richtige auswählen
- The problem of computational cost
- Input ; 28x28x192
- CONV 5x5, same, 32 → Output ; 28x28x32
- Berechnungskosten: 28 x 28 x 32 x 5 x 5 x 192 = 120 M.
- Using 1x1 convolution
- Input ; 28x28x192
- CONV 1x1, 16 → Output ; 28x28x16 (bottle neck layer)
- CONV 5x5, 32 → Output ; 28x28x32
- Berechnungskosten: 28 x 28 x 16 x 192 + 28 x 28 x 32 x 5 x 5 x 16 = 12,4 M (1/10 oben)
- Wenn Sie die Flaschenhalsschicht richtig gestalten, können Sie den Rechenaufwand reduzieren, ohne die Leistung zu beeinträchtigen.
(C4W2L07) Inception network
Inhalt
- Beschreibung des Inception-Netzwerks mit Flaschenhalsschicht
- GoogLeNet genannt
(C4W2L08) Using open-source implementation
Inhalt
- Beschreibung des Herunterladens des Quellcodes von GitHub (`` `git clone```)
(C4W2L09) Transfer Learning
Inhalt
-In $ x $ → Ebene → Ebene → $ \ cdots $ → Ebene → Softmax → $ \ hat {y} $
--Wenn nur wenige Daten vorhanden sind, trainieren Sie nur Softmax (andere Parameter sind festgelegt)
- Bei großen Datensätzen wird beispielsweise die zweite Hälfte der Ebene trainiert und die erste Hälfte der Ebene fixiert.
- Lernen Sie das gesamte Netzwerk, wenn Sie sehr große Datenmengen haben
(C4W2L10) Data augumentation
Inhalt
- Common augmentation method
- mirroring
- random cropping
- Die folgenden werden selten verwendet
- rotation
- shearing
- local warping
- color shifting
- Addiere (oder subtrahiere) Zahlen zu R, G, B.
--AlexNets Artikel beschreibt die Methode der PCA-Farbvergrößerung.
- Implementing distortions during training
- Nachdem Sie ein Bild geladen haben, verzerren Sie das Bild und machen Sie es Mini-Batch und trainieren.
(C4W2L11) The state of computer vision
Inhalt
- Die aktuelle Datenmenge ist sinnlich Spracherkennung $ \ gt $ Bilderkennung $ \ gt $ Objekterkennung (erkennt, wo sich das Objekt befindet)
- Wenn Sie viele Daten haben, können Sie einen einfachen Algorithmus mit weniger Handarbeit verwenden.
- Hand-Engineering oder Hack nimmt zu, wenn nur wenige Daten vorhanden sind
- Two sources of knowledge
- labeled data
- hand-engineering features / network architecture / other components
--Transfer Learning ist nützlich, wenn nur wenige Daten vorhanden sind
- Tips for doing well on benchmark / winning competitions
- Ensemble
- Training several networks independently and average their output (3 ~ 15 networks)
- Multi-crop at test time
- Run classifier on multiple versions of test images and average results (10 crops)
- Use open source code
- Use architecture of network published in the literature
- Use open source implementations if possible
- Use pre-trained models and fine-tune on your data set
Referenz
- Die Übung dieser Woche ist die Implementierung von ResNet
Referenz