Wie ein Computer lernt, ohne dass man ihm sagt, wie. Vom einzelnen Neuron bis zum kompletten Netzwerk, das selbständig Muster erkennt.
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 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.
input.shape = (n,)Die versteckten Schichten sind das „Gehirn". Hier werden komplexe Muster erkannt und Zusammenhänge gelernt. Je mehr Hidden Layers, desto komplexere Probleme.
Dense(64, 'relu')Die Ausgabeschicht liefert das Ergebnis. Bei FlappyBird: „Springe" oder „Nicht springen". Bei Bilderkennung: Die erkannte Kategorie mit Wahrscheinlichkeit.
softmax(output)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.
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.
Der Fehler wird rückwärts durch das Netzwerk propagiert. Dabei wird berechnet, welche Gewichte wie stark zum Fehler beigetragen haben.
Die Gewichte werden so angepasst, dass der Fehler kleiner wird. Dieser Prozess wird tausende Male wiederholt, bis das Netzwerk gute Vorhersagen macht.
Schau dir den Code auf GitHub an oder folge mir für mehr Projekte rund um Machine Learning und Elektronik.