JGU Logo JGU Logo JGU Logo JGU Logo

Institut für Informatik

Modellierung 2

Michael Wand
David Hartmann
Sommersemester 2022

Lehreinheit 10

Initialisierung & TBA
Letzte Änderung: 02. May 2022, 11:00 Uhr
Abgabe: Montag, der 04.07.2021, 12 Uhr

  /  




Aufgabe 0: AI-Art Challenge

Überlegen Sie sich drei Kategorien zu denen die Gruppe auf dem letzten Blatt AI-Art mithilfe von Disco Diffusion erstellen wird. Die Abstimmung der Kategorien erfolgt in der nächsten Woche.

Aufgabe 1: Initialisierung von ReLU-Netzwerken

Wir haben in der letzten Woche die Datenverteilung so normiert, dass sie in etwa Standardnormalverteilt ist. Dieses Wissen haben wir genutzt, um die Gewichte passend darauf auszurichten; wir haben die Initialisierung der Gewichte ebenfalls Standardnormalverteilt gewählt.


Warum tun wir dies?
Die Idee dabei ist, dass die Varianz der Zwischenergebnisse ungefähr gleich groß bleiben soll.
Im Falle einer steigenden Varianz (über die Layer hinweg) würden wir irgendwann ein numerical Overflow in den Zwischenrechnungen erhalten, da dieser Effekt sich multiplikativ auswirken würde. Entsprechend würde eine sinkende Varianz numerical Underflow hervorrufen. Von den Gradienten haben wir hier noch gar nicht gesprochen.


Konkret schauen wir uns einen beliebigen Layer der Form \(y = a(Wx + b)\) an, wobei \(x\) die Ausgabe des Layers davor oder die Eingabe des Neuronalen Netzes selbst ist und \(a\) eine Aktivierungsfunktion darstellt. Unser Ziel ist es die resultierenden Varianzen zweier beliebig aufeinanderfolgenden linearer Layer (inklusive Nicht-Linearität) konstant zu halten, also die Gleichung \[ \operatorname{Var}(y) = \operatorname{Var}(x) \] zu erfüllen.


Wir nehmen der Einfachheit halber an, dass alle Dimensionen von \(x\) stochastisch unabhängig sind. Streng genommen stimmt dies natürlich nicht, aber bessere Annäherungen sind zum einen nur schwierig zu bestimmen, zum anderen interessieren wir uns hier für die initialisierung der Gewichte von \(W\). Zu begin des Trainings sehen die jeweiligen Eingabedaten-Dimensionen unkorrelliert aus. Denken Sie hier beispielsweise an Aufgabe 2 aus Lehreinheit 7 — für einige Dimensionen kann man diese Annahme näherungsweise durchaus treffen.


Aufgaben:

  1. Angenomen, \(a(x) = x\). Wir betrachten zuerst rein-lineare Netzwerke.
    • Bestimmen Sie nur \(Var(y_i)\), die Varianz einer beliebigen Komponente nach der Matrix-Vektor Multiplikation.
      Hinweise:
      • Drücken Sie die Varianz mithilfe der Varianz \(Var(x)\) und der Varianz \(Var(W_{ij})\) dar.
      • Der Erwartungswert von \(x\) und somit aller nachfolgenden Layer ist 0. (Erinnern Sie sich, dass wir die Daten normiert hatten, bevor Sie in das Netz eingegeben wurden?)
    • Wie müssen wir nun \(Var(W_{ij})\), die Skalierung der Standardnormalverteilung der Gewichte wählen, damit die Zwischenergebnisse auch bei Wiederholung des Vorgangs (Anzahl Layer \(\rightarrow \infty\)) stets numerisch stabil bleiben?
  2. Bestimmen Sie Layer-weisen den jeweiligen Erwartungswert und die jeweilige Varianz praktisch.
    1. Was können Sie beobachten?
    2. Ändern Sie nun die Layer-Anzahl auf 11. Das Training sollte nun nicht mehr funktionieren. Können Sie dies mithilfe des Erwartungswertes und der Varianz erklären?
  3. Wir nehmen nun an \(a(x) = \operatorname{ReLU}(x) := \operatorname{max}(0,x)\). Wir können also nicht mehr so einfach darauf schließen, dass alle Zwischenergebnisse gemittelt bleiben.
    Bestimmen Sie die Varianz \(Var(y)\) für den Fall, dass der Biasterm stets 0 ist.

    Wie müssen wir unter diesen Bedingungen den die Gewichte sampeln, damit die Zwischenergebnisse numerisch stabil bleiben?
  4. Implementieren Sie das bestimmte Initialisierungsschema und testen Sie das Training erneut mit \(11\) Layern. (Diesmal sollte es klappen).

Aufgabe 2: Vervollständigung von LE 9

Vervollständigen Sie Ihre Lösung von LE 9.


Insbesondere möchten wir untersuchen inwiefern die Initialisierung der Gewichte die Landschaft und die Lernbarkeit beeinflussen.


  1. Was können Sie beim Training beobachten, welche Layer ändern sich mehr oder weniger schnell?
  2. Welche Auswirkungen haben mehr/weniger Layer im Netzwerk?
  3. Welche Auswirkungen haben breitere/schmalere Layer (größere/kleinere Anzahl an Zwischendimensionen) im Netzwerk?
  4. Testen Sie verschieden skalierte Normalverteilungen als Initialisierer und vergleichen Sie mit dem oben bestimmten „optimalen“ Skalierungsfaktor.
  5. Wie ändert sich die Voronoi-Landschaft, wenn wir die Voraktivierung (also das Ergebnis der Linearen Abbildung vor der ReLU-Aktivierung) normieren, also den Mittelwert abziehen und durch die Standardabteilung teilen?