1. Wählen Sie bitte die "Teacher function" "y=x" und die "Output function" "Linear"! Starten Sie die Simulation im Schrittbetrieb ("Step")!
    1. Beobachten Sie dabei den Verlauf der Fehler E(t) bzw. E(w) sowie des Gradienten von E(w) in Abhängigkeit der präsentierten Inputs! Wodurch entsteht der periodische Verlauf der beiden Fehlerfunktionen?
    2. Initialisieren Sie das Netz neu ("Reset") und wählen Sie eine "Batch size" von "11 samples"! Beobachten Sie erneut den Verlauf der Fehler E(t) bzw. E(w) sowie des Gradienten von E(w) im Einzelschrittbetrieb ("Step")! Starten Sie nach etwa 30 Lernschritten den Trainingsprozess ("Start"). Welcher Unterschied ergibt sich für den Verlauf des Fehlers E(t)?
       
  2. Stoppen Sie bitte die letzte Simulation und initialisieren Sie das Netz neu ("Reset")! Wählen Sie "y=|x|" als "Teacher function" und starten Sie den Lernprozess ("Start")! Warum konvergiert der Fehler nicht gegen den Wert Null? Wie kann dieses Problem behoben werden?
     
  3. Wählen Sie die lineare Ausgabefunktion und aktivieren Sie die Checkbox "Use own output implementation". Da diese Ausgabefunktion die Aktivierung identisch weiterleitet, müssen Sie dem y-Wert einfach die Aktivierung zuweisen. Tragen Sie dazu bitte: y=z ein. Klicken Sie anschließend auf "Check code". Bei einer korrekten Umsetzung wird die Textbox grün hinterlegt.
     
  4. Aktivieren Sie die Checkbox "Use own derivative". Wenn Sie die Funktion y=z nach z ableiten, erhalten Sie die Ableitung von 1. Weisen Sie daher der Variablen dy_dz = 1 zu. Klicken Sie wieder auf "Check code" um Ihre Umsetzung zu testen.
     
  5. Wählen Sie "Sigmoid" als Ausgabefunktion. Aktivieren Sie die Checkbox "Use own output implementation" und geben Sie die Fermi-Ausgabefunktion ein (siehe Skript Neuroinformatik). Die erfolgreiche Umsetzung wird durch einen Haken hinter "Sigmoid output function" im unteren Bereich gekennzeichnet. Geben Sie anschließend auch die Gleichung für die Ableitung der Fermi-Funktion ein (Hinweis: die Ableitung enthält y, welches in diesem Code-Fenster noch nicht berechnet vorliegt).
     
  6. Wählen Sie "ReLU" als Ausgabefunktion und setzen Sie die Ausgabefunktion und deren Ableitung um. Beachten Sie für die Ableitung, dass sich die ReL-Funktion, abhängig von z, wie eine Konstante oder wie eine lineare Ausgabefunktion verhält. Die Umsetzung von If-Abfragen finden Sie am Ende dieser Seite.
     
  7. Wenn alle Funktionen korrekt umgesetzt wurden, wird der "Submit"-Button aktiviert. Klicken Sie auf den "Submit"-Button und geben Sie in dem sich öffnenden Fenster Ihre E-Mail-Adresse ein. Klicken Sie anschließend auf "Generate!", kopieren Sie den angezeigten, kodierten (nicht lesbaren) Text, welcher die von Ihnen bei der Bearbeitung eingestellten Parameter. Reichen Sie diesen Text über die dazugehörige Aufgabe in Moodle  (LINK ANPASSEN!!) ein. Bitte beachten Sie dabei die Einreichungsfrist im Moodle-Kurs.
 

Hinweise zur Implementierung von If-Abfragen

If-Abfragen können in Python folgendermaßen umgesetzt werden (achten Sie auf die Doppelpunkte und die Einrückung (4 Leerzeichen) unter if und else):

if Bedingung:
    dy_dz = 0
else:
    dy_dz = 1

Weiter Informationen zu If-Anweisungen finden Sie unter diesem Link.


 

zurück zu den Aufgabenserien