Einführung
Dies ist der Inhalt von Kurs 2, Woche 3 (C2W3) von Deep Learning Specialization.
(C2W3L01) Tuning process
Inhalt
-
Erläuterung zum Einstellen des Hyperparameters
-
Die Bedeutung von Hyperparameter ist wie folgt
--Das wichtigste
- \alpha
――Sekunde wichtig
- \beta (\sim 0.9)
- #hidden_units
- mini-batch size
»Drittens wichtig
- #layers
- learning rate decay
-
Nicht stimmen
-
Adam Optimierungsalgorithmus $ \ beta_1 $, $ \ beta_2 $, $ \ epsilon $
-
Wenn Sie Hyperparameter ausprobieren, versuchen Sie es mit zufälligen Werten und verwenden Sie kein Raster
-
Grob bis fein; Wenn Sie einen Wert finden, der gut aussieht, überprüfen Sie ihn in der Nähe.
(C2W3L02) Using an appropriate scale to pich hyperparameter
Inhalt
--Hyperparameter, mit dem Sie einen Wert auf einer linearen Skala zufällig auswählen können
- n^{[l]}
- #layers L
- Hyperparameter für die Auswahl zufälliger Werte auf der Protokollskala
- \alpha ; 0.0001 ~ 1
- \beta ; 0.9 ~ 0.999
r = -4 \ast \textrm{np.random.rand()} \\
\alpha = 10^r \\
r = -2 \ast \textrm{np.random.rand()} - 1 \\
1-\beta = 10^r\\
\beta = 1-10^r
(C2W3L03) Hyperparameter Tuning in Practice : Panda vs. Caviar
Inhalt
-
Re-test hyperparameters occasionally
-
Intuitions do get stale. Re-evaluate occasionally
-
Konzentriere dich auf ein Modell und melde dich, babysitte ein Modell (Panda)
-
Viele Modelle parallel abstimmen (Caviar)
-
Wenn Sie genug Ressourcen haben, Kaviar
-
Große Daten, großes Modell, Panda
(C2W3L04) Normalizing Activations in a Network
Inhalt
- Durch Anwenden der Normalisierung, die auf Eingabedaten angewendet wird, auf die verborgene Ebene wird die Lerngeschwindigkeit von $ W $ und $ b $ erhöht.
- Für $ z ^ {(i)} $ der verborgenen Schicht $ l $
\mu = \frac{1}{m}\sum_{i} z^{(i)} \\
\sigma^2 = \frac{1}{m} \sum_{i} \left( z^{(i)} - \mu \right)^2 \\
z^{(i)}_{norm} = \frac{z^{(i)} - \mu}{\sqrt{\sigma^2 + \epsilon}} \\
\tilde{z}^{(i)} = \gamma z^{(i)}_{norm} + \beta
- $ \ gamma $ und $ \ beta $ sind lernbare Parameter
- Stellen Sie den Mittelwert und die Varianz von $ z ^ {(i)} $ auf die gewünschten Werte in $ \ gamma $ und $ \ beta $ ein
(C2W3L05) Fitting Batch Norm into a Neural Network
Inhalt
- Erläuterung der Berechnungsmethode unter Verwendung der Chargennorm
- Normal; $ z ^ {[l]} \ rightarrow a ^ {[l]} $
- Batch Norm ; z^{[l]} \rightarrow \tilde{z}^{[l]} \rightarrow a^{[l]}
- Die Parameter sind $ W ^ {[l]} $, $ b ^ {[l]} $, $ \ beta ^ {[l]} $, $ \ gamma ^ {[l]} $, aber $ z ^ { Durch die Berechnung des Durchschnitts von [l]} $ wird der Effekt des konstanten Terms $ b ^ {[l]} $ eliminiert, sodass $ b ^ {[l]} $ nicht mehr benötigt wird.
- $ z ^ {[l]} $, $ \ beta ^ {[l]} $, $ \ gamma ^ {[l]} $ hat eine Dimension von $ \ left (n ^ {[l]}, 1 \ right ) $
- Implementing gradient descent
- for t=1 … numMiniBatches
- Compute forward prop on X^{\\{t\\}}
- In each hidden layer, use BN (Batch Norm) to replace z^{[l]} with \tilde{z}^{[l]}
- Use backprop to compute dW^{[l]}, d\beta^{[l]}, d\gamma^{[l]}
- Works w/ momentum, RMSProp, Adam
- Mit TensorFlow können Sie dies mit `` `tf.nn.batch_normalization``` tun.
Impressionen
――Da verschiedene Berechnungsmethoden herausgekommen sind, kann ich es ehrlich gesagt nicht verdauen (der Inhalt ist nicht schwierig, aber es gibt viel Volumen)
(C2W3L06) Why Does Batch Norm Work?
Inhalt
- Intuitive Erklärung, warum die Chargennorm verwendet wird?
- Das Anwenden der Chargennorm auf die interessierende Mini-Charge hat den Effekt, dass etwas Rauschen (wie Dropout) gemischt wird.
Impressionen
»Ehrlich gesagt habe ich es nicht verstanden
(C2W3L07) Batch Norm at Test Time
Inhalt
- $ \ mu $ und $ \ sigma ^ 2 $ werden für jede Mini-Charge berechnet.
--Aber wenn die Anzahl der Daten zum Zeitpunkt des Tests gering ist, verwenden $ \ mu $ und $ \ sigma ^ 2 $ einen exponentiell gewichteten Durchschnitt (über Mini-Batch).
(C2W3L08) Softmax regression
Inhalt
- Problem der Klassifizierung mehrerer Klassen
- C ; #classes
- Lassen Sie die letzte Schicht ($ L $ Schicht) des neuronalen Netzwerks die Softmax-Schicht sein
z^{[L]} = W^{[L]} a^{[L-1]} + b^{[L]} \\
t = e^{z^{[L]}} \ \textrm{(element-wise)}\\
a^{[L]} = \frac{e^{z^{[L]}}}{\sum^C_{j=1}t_i}
- Wenn es keine versteckte Ebene gibt, das Bild, das den Bereich durch eine gerade Linie teilt
――Wenn es sich um ein kompliziertes neuronales Netzwerk handelt, wird es zu einer komplizierten Grenze
(C2W3L09) Training a softmax classification
Inhalt
- Softmax regressoin generalizes logistic regression to C classes.
- If C=2, softmax reduces to logistic regression.
L\left( \hat{y}, y \right) = - \sum^{C}_{j=1} y_j \log \hat{y}_j\\
J = \frac{1}{m} \sum^m_{i=1} L\left( \hat{y}^{(i)}, y^{(i)} \right)
(C2W3L10) Deep Learning Frameworks
Inhalt
- Deep Learning Frameworks
- Caffe / Caffe2
- CNTK
- DL4J
- Keras
- Lasagne
- mxnet
- PaddlePaddle
- TensorFlow
- Theano
- Torch
- Bei der Auswahl des Deep Learning Framework
- Ease of programming (development and deployment)
- Running speed
- Truly open (open source with good governance)
(C2W3L11) Tensorflow
Inhalt
-Erläuterung zur Verwendung von TensorFlow mit dem Thema, $ w $ zu finden, das $ J (w) = w ^ 2 -10w + 25 $ minimiert
- Wenn Sie eine Kostenfunktion festlegen, wird die Back-Prop automatisch implementiert.
Referenz