serhii.net

In the middle of the desert you can say anything you want

11 Oct 2022

DL 1: Orga + Chapter 1. Einführung

Orga

  • Modulinhalt in Kapitel
    • Vorlesungfolien
      • Moodle
    • Praktische aufgaben
      • Gitlab
  • 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 -> …
  • 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
  • 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
  • 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
  • “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

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

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
  • 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
  • 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
Nel mezzo del deserto posso dire tutto quello che voglio.