Processing math: 100%

JGU Logo JGU Logo JGU Logo JGU Logo

Institut für Informatik

Modellierung 2

Michael Wand
David Hartmann
Sommersemester 2022

Lehreinheit 8

Einführung Optimierung mit PyTorch
Letzte Änderung: 02. May 2022, 11:00 Uhr
Abgabe: Montag, der 08.06.2021, 13 Uhr

  /  



Zur Vorbereitung schauen wir uns in dieser Lehreinheit an, wie man mit PyTorch Variablen optimieren kann.


Vorbereitung 1: Optimierung mit PyTorch

Arbeiten Sie die folgenden offiziellen Guides durch:

Praxisaufgabe 1: Testfunktionen für Optimierer

PyTorch implementiert bereits jede Menge Optimierer vor: (torch.optim). Um einen Einblick zu bekommen was für mögliche Stärken und Schwächen eine Wahl eines Optimierers mit sich bringen kann, gibt es sog. künstliche Landschaften.


Wiki: Testfunctions for Optimization


Aufgaben:

Praxisaufgabe 2: Adam Optimizer


Ein Optimierer aus torch.optim benötigt drei Methoden (siehe "Learning PyTorch with Examples"):


Aufgaben:

  1. (Optional): Implementieren Sie den Adam-Optimierer nach & vergleichen Sie das Ergebnis Ihrer mit dem der vorgefertigten Klasse torch.optim.Adam. Die Gradienten gt erhalten Sie wie vorher auch durch loss.backward() und werden in den Parameter-Attributen param.grad gespeichert.
  2. Als nächstes führen wir folgendes Experiment durch:
    • Wir starten mit einem Parametervektor aus Rd und weisen diesem in jeweils n Schritten zufällige Normalverteilte Gradienten zu.
    • In jedem Schritt wenden wir Adam an und messen die Magnitude der tatsächlichen Veränderung (also die Länge der Distanz θtθt1.
    • Plotten Sie diese Größe für Adam und SGD für etwa 1000 zufällige Optimierungsschritte und verschiedene Hyperparameter.
    • Können Sie die Beobachtung des Papers bestätigen, dass Adam selbstständig Learning Rate Änderungen durchführt?