Lösung: XOR mit verschiedenen Aktivierungsfunktionen trainieren
Completion requirements
Die Sprungfunktion lässt sich erwartungsgemäß nicht verwenden (nan - not a number).
Die lineare Aktivierungsfunktion konvergiert erwartungsgemäß nicht, weil das KNN gewissermaßen auf 2 Schichten zusammenfällt.
Alle anderen Aktivierungsfunktionen (Sigma, TanH, ReLU) eignen sich erwartungsgemäß alle im Jupyter Notebook aufgeführten Aktivierungsfunktionen.
Lediglich die ReLU-Funktion versagt bei diesem sehr kleinen KNN, wenn alle Gewichte einer Schicht zufällig negativ sind (bei großen KNN unwahrscheinlich). Diese Knoten werden einfach abgeschaltet. Es gibt dann überhaupt keine Aktivierung über diese Schicht hinaus:
Randomly initialized weights: [[-0.04755226 -0.66596005 -0.45736369] [-0.01470455 -0.45306135 -0.71884325]] [[-0.32511896] [ 0.90423162] [-0.01290863]] Error:2.0 Error:2.0 Error:2.0 Error:2.0 Error:2.0 Error:2.0 Trained weights: [[-0.04755226 -0.66596005 -0.45736369] [-0.01470455 -0.45306135 -0.71884325]] [[-0.32511896] [ 0.90423162] [-0.01290863]]

ReLU-Funktion versagt, weil zu viele Knoten "abgeschaltet" werden.
Generell gilt:
Für jede Aktivierungsfunktion müssen Lernrate und Zahl der Iterationen individuell aufeinander abgestimmt werden.
Last modified: Monday, 7 November 2022, 3:50 PM