# Neural Network — HasiKe

> Neural Networks erklärt — wie Maschinen lernen. Vom Neuron bis zur Backpropagation.

Quelle: https://hasike.de/NeuralNetwork/

## Was ist ein *Neural Network*?

### Inspiriert vom *Gehirn*.

Ein neuronales Netz ist ein Computermodell, das vom menschlichen Gehirn inspiriert ist.
 Genau wie unser Gehirn aus Milliarden von Neuronen besteht, die miteinander verbunden sind,
 besteht ein künstliches neuronales Netz aus vielen kleinen Recheneinheiten.

Diese „künstlichen Neuronen" sind in **Schichten** organisiert und lernen
 durch Anpassung ihrer Verbindungen. Je mehr Daten sie sehen, desto besser werden sie
 darin, Muster zu erkennen und Vorhersagen zu treffen.

Das Besondere: Man programmiert nicht explizit, **WAS** das Netz tun soll —
 es lernt selbstständig aus Beispielen.

## Die *Bausteine*.

### Input *Layer*

Die Eingabeschicht empfängt die Rohdaten. Bei einem Bild wäre das jeder einzelne Pixel,
 bei einem Spiel wie FlappyBird die Position des Vogels und der Röhren.

### Hidden *Layers*

Die versteckten Schichten sind das „Gehirn". Hier werden komplexe Muster erkannt
 und Zusammenhänge gelernt. Je mehr Hidden Layers, desto komplexere Probleme.

### Output *Layer*

Die Ausgabeschicht liefert das Ergebnis. Bei FlappyBird: „Springe" oder „Nicht springen".
 Bei Bilderkennung: Die erkannte Kategorie mit Wahrscheinlichkeit.

## Wie lernt ein *NN*?

1. Forward *Pass*

 Die Eingabedaten werden durch das Netzwerk geschickt. Jedes Neuron berechnet seinen
 Output basierend auf den Inputs und seinen Gewichten. Am Ende kommt eine Vorhersage heraus.
2. Fehler *berechnen*

 Die Vorhersage wird mit dem tatsächlichen Ergebnis verglichen. Der Unterschied ist der
 „Fehler". Je größer der Fehler, desto mehr muss das Netzwerk noch lernen.
3. Backpropagation

 Der Fehler wird rückwärts durch das Netzwerk propagiert. Dabei wird berechnet,
 welche Gewichte wie stark zum Fehler beigetragen haben.
4. Gewichte *anpassen*

 Die Gewichte werden so angepasst, dass der Fehler kleiner wird. Dieser Prozess wird
 tausende Male wiederholt, bis das Netzwerk gute Vorhersagen macht.

## Meine *Projekte*.

![FlappiBird AI Screenshot](../projects/FlappiBird-AI/docs/screenshot.png)

### [FlappiBird AI](../projects/FlappiBird-AI/)

Ein neuronales Netz lernt selbstständig FlappyBird zu spielen. Genetischer Algorithmus wählt die besten Vögel aus.

### [NN Library](https://github.com/HasiKe)

Eine selbstgeschriebene Neural-Network-Library. Von Grund auf implementiert, um die Mathematik wirklich zu verstehen.

## FAQ.

### Wie ist ein Neural Network aufgebaut?

Aus drei Arten von Schichten: der Input Layer nimmt Rohdaten auf (z. B. Pixel oder Spielposition), Hidden Layers erkennen Muster dazwischen, der Output Layer liefert das Ergebnis, z. B. per Softmax eine Wahrscheinlichkeit pro Kategorie.

### Wie lernt ein Neural Network?

In vier Schritten: Forward Pass (Eingabe durch das Netz schicken), Fehler berechnen (Vorhersage vs. echtes Ergebnis), Backpropagation (Fehler rückwärts durchs Netz verteilen), Gewichte anpassen. Das wird tausende Male wiederholt.

### Welche Architektur nutzt FlappiBird-AI?

Ein 4-4-3-1-Netzwerk: 4 Input-Neuronen, zwei Hidden Layers mit 4 und 3 Neuronen, 1 Output-Neuron. Pro Generation treten 300 Netze an, die Mutationsrate liegt bei 1% — echte Werte aus dem Projekt-Code, kein Lehrbuch-Beispiel.

## Mehr *entdecken*.

Schau dir den Code auf GitHub an oder folge mir für mehr Projekte rund um Machine Learning und Elektronik.
