Skip to content

im23b-busere/Neural-Network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Neural-Network

Meine ersten versuche an einem neural network (°_°)

Meine Idee mit dem Projekt ist ein einfaches neuronales Netzwerk zur Lösung des klassischen XOR-Problems. Das XOR-Problem ist eine grundlegende Herausforderung im Bereich des maschinellen Lernens, da es nicht linear separierbar ist und somit die Grenzen eines einfachen Perzeptrons aufzeigt. Hier verwenden wir ein mehrschichtiges neuronales Netzwerk (MLP), das aus einer versteckten Schicht besteht, um das Problem zu lösen.

Das Netzwerk wird von Grund auf in Python erstellt, unter Verwendung von numpy für numerische Berechnungen.

Bildliche darstellung:

Visualization

Das XOR-Problem besteht darin, die Ausgabe einer exklusiven Oder-Operation (XOR) zu modellieren:

Input x1 Input x2 Zielausgabe (y)
0 0 0
0 1 1
1 0 1
1 1 0

Mathematischer Hintergrund

1. Aufbau des Netzwerks

  • Eingabeschicht: 2 Neuronen (entspricht den Eingaben x1 und x2).
  • Versteckte Schicht: 2 Neuronen mit Sigmoid-Aktivierung.
  • Ausgabeschicht: 1 Neuron mit Sigmoid-Aktivierung.

Sigmoid Funtktion (σ) :

Sigmoid

Diese Funktion transformiert die kontinuierliche reelle Zahl in einen Bereich von (0, 1).

Ableitung der Sigmoid Funktion (σ) :

Sigmoid-derivative

Die Ableitung der Sigmoid-Funktion gibt an, wie empfindlich die Sigmoid-Funktion in einem bestimmten Punkt auf Änderungen ihrer Eingabe reagiert.

Das Netzwerk berechnet die Ausgabe wie folgt:

  1. Vorwärtsdurchlauf (Forward Pass):

    • Berechnung der gewichteten Summe in der versteckten Schicht: = (X * W) +B

    • Aktivierung der versteckten Schicht mit Sigmoid Funktion: H = σ ((X * W) + B)

    • Berechnung der gewichteten Summe in der Ausgabeschicht: Y-input = (H * W-output) + B-output

    • Aktivierung der Ausgabeschicht: Y-output = σ (Y-input)

  2. Rückwärtsdurchlauf (Backpropagation):

    • Fehlerberechnung: error = Y-output - Zielausgabe
    • Anpassung der Gewichte und Biases mittels Ableitung der Sigmoid-Funktion.

Fehlerverlauf während des Trainings

Nachfolgend ein Beispiel für die Visualisierung der Fehlerentwicklung mit Lernrate 0.1:

Fehlerentwicklung während des Trainings

In diesem Diagramm wird der Fehler pro Zyklus dargestellt, was die Übereinstimmung des Modells verdeutlicht.

Autor

im23b-busere
Feedback oder Vorschläge? Öffne ein Issue oder erstelle einen Pull-Request!

About

First attempts on a neural network (°_°)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages