DL 1: Orga + Chapter 1. Einführung
Orga
- Modulinhalt in Kapitel
- Vorlesungfolien
- Moodle
 
 - Praktische aufgaben
- Gitlab
 
 
 - Vorlesungfolien
 - Grading
- 50% Prakiumaufgaben
 - 50% Klausur (60-90min.)
- Vorlesungsinhalte
 
 
 - Praktikum
- 1-3 Woche je Aufgabe
 - Shared task
- Wir bekommen Training Data
 - Eval. u. Test Daten 1-2 Tage vor Deadline
 
 
 - Literatur
- Slide 7
 - Erste zwei Links - Course by MIT/NYU
- “I suggest the first, unless you really like math - then choose the second”
 
 
 
Chapter 1. Einführung
- Deep learning < NN < ML < AI
 - Einfluss von DL auf ML
- Klassische ML Pipeline:
- Data -> Manual feature extraction -> Klassifikator
 
 - ML Pipeline mit DL:
- Data -> NN to get features, multiple layers that decide on relevant features -> Klassifikator
 
 - The usual picture that visualizes the layers, raw data -> lines -> face-looking things
 - Nutzung ungelabelter Daten für Pretraining
- Autoencoders
 - Original image + Noise -> Encoder -> Code -> Decoder -> …
 
 
 - Klassische ML Pipeline:
 - Grundlagen existierten seit 1950, aber nur jetzt haben wir viele Datei und Hardware + Community (Github, tf/pytorch, …)
 
Neuronale Netze
Einfaches Perzeptron
- $$w_0 + x_1w_1+x_2w2$$
 - $Engabe*Gewichte -> Summe -> Aktivierungsfunktion -> Ausgabe$
 - TODO - pic, slide 18.
 - Example, Mittelwert:
(3) ->0.5 ->3*0.5+5*0.5 -> 4 (5) ->0.5 
NN Aktivierungsfunktionen
- Lineare vs Nicht-lineare Separierbarkeit
- Sometimes you can’t divide points trhough a line in a clean way
 
 - NN Können NL-f. approximieren
 - AF müssen diffferenzierrbar sein
 - 3 main activation fns:
- Sigmoid
 - Tangens Hyperbolicus
 - Rectified Linear Unit (ReLU)
 
 - ReLU schnell berechenbar (Ableitungen ohne Rechnung bekannt)
 
NN - Hidden layers
- Input, output, the rest is a black ox
 
Dense layer / Fully Connected Layer
- “Ich empfehle eine Bibliotek dafür zu nutzen”
 keras.layers.Dense(2, activation='relu')dense_layer.get_weights()
- Each thing (TODO) connected with each one from the previous one
 - No need to input number of inputs because gets calculated automaticaly from the conection
 
Deep NN
- Multiple dense layers
 model.summary():- 3 input param, dense(2) -> 8 trainable params: $3*2$ weights + 2 weights for the activation f-n
 
BSP: Werde ich dieses Modul bestehen
$x_1$ - stunden, $x_2$ - vorlesungen $x^(1) = (4 / 5)$
- TODO pic S. 28
 - W bezeichnet die Gewichte desModells
 - /D Loss = Empirischer Vorhersagefehler
 - TODO - remember latex and add to blog
 - TODO finish formula:
 - $$E(W)=1/n\sum(y^(i)(true)-f(x^(i),W), y^i(true))$$
 - Losses for each case needed
 - Wir mussen nicht die definieren
 - Definition auf Ebene der Tensoroperationen: 
loss_tf=tf.reduce_mean(tf.square(tf.subtract(y,predicted))) - In practice - you never have to do this, there are functions etc.
 
Optimierungsziel, Loss-optimierung
Optimierung
- Finden des Modells mit der kleinste Optimierungsfehler
 - Picture of the usual local/global minima
 - $W^* = argmin_(W)E(W)$
 - Gewichte werden “zufällig” initialisiert
 - Usually you don’t really do real randomness, and you have existing “layer weight initializers”
 
Gradient
- 
Gradient
- Berechnung des Gradienten
- $$(dE(W)/dW)$$
 
 - The gradient shows the way to the top
 - Parameteranpassung erfolgt in entgegengesetzte Richtung des Gradienten
 - Wiederholung bis zur Konvergenz
 - Gradient descent is the most known algo for this
 - We have no guarantees that it’ll find the global minimum
 
 - Berechnung des Gradienten
 - 
Zusammenfassung
- Zufallig initializierung of the weights
 - Repeat till convergence:
- Berechnung des G
 - Go against the G to find the minimum
 
 
 
Backpropagation
- Einfluss von Parametern auf finalen Loss (ß = aktivierungsf-n)
x -(w^0) -> z(ß) -> (w^1) -> y(ß) -> E(W) - “Wie stark beeinflusst eine Änderung von $w^1$ den finalen Loss $E(W)$?”
 - TODO - slide 43
 - Kettenregel
- FORMULA
 - TL;DR step by step - from the change of the last step we can get the prev. step etc.
 
 - Propagation des Fehlers rückwärts durch das Netz
 - Wird für jeden Parameter wiederholt
 - Example (slide 45) TODO
x -(w^0) -> z(ß) -> (w^1) -> y(ß) -> E(W) 0.5 -(0.2) -> z(ß) -> (0.4) -> y(ß) -> E(W) y_true = 1.0- Forward pass:
z=relu(..)- Total loss
E(W)=0.5(y_true-y)^2 = 1/2(1.0-0.04)^2 = 0.8 - BP
- …
 
 
 
 - Forward pass:
 - You calculate one after the other, but assume they’re static till the end - and update them all together basically
 
Lernrate / Learning rate
- /L Lernrate
 - S. 1/51
 - Usual pic of global/local minimums
 - Kleine Lernrate
- T. konvergiert langsam
 - Lokale Minima können langsam / gar nicht überwunden werden
 
 - Große Lernrate
- Minima können übersprungen werden
- Schlimm nur wenn der globale Minimum übersprungen wird
 
 - Training divergiert/verläuft instabil
 
 - Minima können übersprungen werden
 - “Wie wird die optimale Lernrate gewählt?”
- Train multiple times with diff lr
- Choose the model with the best eval
 
 - Lernrate ist nicht fix
- Angepasst nach
- Große des Gradienten
 - Konvergenzgeschwindigkeit des Trainings
 - Größe der zu  verändernden Modellgewichte
- If they’re big and my lr is big -> big changes -> unstable
 
 - …
 
 
 - Angepasst nach
 
 - Train multiple times with diff lr
 
Mini batches
- Betrachten by jeder Parameterupdate not the entire DS, but a Teilmenge B
- -> leicht zu berechnen / Ausreichend gute Abschätzung des Gradienten
 
 - Add a step at the beginning of “wiederholung bis zur Konvergenz”
 - MB ermöglichen:
- Gleichmäßigeren Trainingsverlauf
 - Höhere Lernraten
 - Hohen Grad der Parallelisierung
 
 - -> Schnelleres Training
 
Optimizer in TF/Keras
- Literaturempfehlung https://ruder.io/optimizing-gradient-descent/
 - S 1/57
 - A lot of different optimizers
- SGD - stochastic gd
 - Adam, Nadam etc.
 
 
Learning rate scheduling
- Flexible Anpassung der Lernrate
 - S 1/58 Literatur - TODO - tds “learning rate schedlues and adaptive learning rate methods for DL”
 - LM finetuning:
- First fast increase, then slow decrease
 - If you’re close to the best minimum, you don’t want to make big jumps
 
 - Nowadays a lot of data etc. and even such things have only an effect in the last %
 - TF/Keras - done with Callbacks that change the LR
 
Regularisierung
- Motivation
- underfitted:
 - Good fit / robust
 - Overfitted
- Viel zu nah an die Date
 - Auswendig gelernt
 
 
 - /D TODO S. 1/61
 
Dropout
- Zusätzliche / unnötige Parameter können ….
 - D/Dropout werwirft zufällige Aktivierungen während des Trainings
 - Removes some of the connections (=set weight to 0), different ones every time
 - -> Netzwerke sind gezwungen, redundant Data zu speichern
 - Usually 10%-50%
 
Early Stopping
- D/Early stopping - Training wird vor Overfitting abgebrochen
 - How?
- Usually at some time Training/Testing start diverging, training error decreases but testing increases
 - Gewichte des besten Zustands werden wieder hergestellt, sobald keine Verbesserung mehr zu beobachen ist
 
 - Params:
- Patience - geduld - how long to suffer worsening scores
 - min_delta - how much of a difference should increase for it to count
- Ansonsten betrachte ich mir das als null
 
 
 
Batch Normalization
- TODO
 - Instanzen und deren Attribute können sehr unterschiedliche Ausprägungen annehmen
 - height/age
 - Vor Normalisierung:
- Underschiedlich starke Gradienten je Feature
- TODO - height/age graph
 - “very narrow mountain”
 - Different directions have a dramatically different effect
 
 - -> kleine LR notwendig
 - -> Langsames training
 
 - Underschiedlich starke Gradienten je Feature
 - Normalisierung:
- If different features have a different distribution, normalize them to be +/- same
 - Standartisierung
- Divide each X of a batch by the std. dev - TODO
- $X’=(X-\mu)/\sigma$
 
 - Mountain becomes round
 - We can use the same LR
 
 - Divide each X of a batch by the std. dev - TODO
 
 - Nach:
- Ähnlich starke Gradienten je Feature
 - Großere Lernrate möglich
 - Schnellere Konvergenz
 
 - Passiert für jedes Batch
- Die Batches werden zufällig gestellt
 - Each batch has their own params because diff. stdev and average etc.
 
 - Regularisierender Effekt
- Since batches are random, the params for it mean that:
- “random” $\mu$ gets subtracted
 - “random” $\sigma$ gets multiplied
 
 - TODO -> ergo can’t learn things auswendig
 
 - Since batches are random, the params for it mean that:
 
				
					Nel mezzo del deserto posso dire tutto quello che voglio.
				
			
comments powered by Disqus