Neuronale Netze für künstliche Intelligenz

Aus Spieleprogrammierer-Wiki
Version vom 28. September 2017, 23:13 Uhr von David Scherfgen (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Bitte beachte, dass dieser Artikel noch unvollständig ist! Hilf mit, ihn fertigzustellen.
Näheres dazu findest du ggf. auf der Diskussionsseite. Wenn du der Meinung bist, dass der Artikel vollständig ist, kannst du diesen Hinweis entfernen.

Inhaltsverzeichnis

Einstieg

Künstliche Intelligenz, gehört zu einem der faszinierendsten Teilgebieten der Informatik. In kaum einem anderem Gebiet wird so eine Resonanz hervorgerufen wie in diesem. Es gab schon zahlreiche Hollywood-Produktionen zu diesem Thema und es gibt auch zahlreiche Hoffnungen und Ängste, die mit utopischen Fantasien sowie mit weit hergeholten Schreckensszenarien assoziiert sind. In diesem Artikel wird über einen winzigen Teil dieses Gebiets gesprochen, über Neuronale Netze.

Nn 00.png

Im Grunde genommen ist ein Neuronales Netz eine Struktur mehrerer künstlicher Neuronen, die gemeinsame Eingabedaten und ein gewisse Anzahl an Ausgabesignalen erzeugen. Das wichtigste ist wohl die Lernfähigkeit dieser Systeme, so kann man sie beispielsweise zur Gesichtserkennung nutzen, zum umwandeln von handschriftlichen in 'maschinellen' Text oder aber auch als "Gehirn" für Wesen in einem Spiel. Entgegen einem evolutionären Algorithmus, der sich eher für Optimierungsprobleme eignet, wie etwa Autofahren von A nach B durch eine kurvige Straße, sind Neuronale Netze besonders gut darin, Muster zu erkennen. Natürlich gibt es verschiedene Arten von Neuronalen Netzen, der Grundaufbau bleibt jedoch stets gleich. Es gibt je eine so genannte "Input-Layer", "Hidden-Layer" und eine "Output-Layer".

Künstliche Neuronen

Künstliche Neuronen sind das Modell auf dem Neuronale Netze basieren. Das einfachste neuronale Netz ist eines mit einem einzelnen, künstlichem Neuron als Output-Layer, auch Perzeptron genannt. Sie sind den Synapsen nachempfunden und haben auch eine ähnliche Funktionsweise. Die Hidden-Layer wäre hier leer. Wir wollen uns erst einmal anhand eines solchen Neuronalen Netzes die Funktionsweise näher bringen. Nehmen wir an, wir wollen das logische Und umsetzen, wir bekommen also zwei Inputs mit jeweils den Werten Eins oder Null und wollen anhand dessen, sobald beide Inputs den Wert Eins annehmen, Eins als Output ausgeben, ansonsten eben Null. Unser Netz sieht also so aus: Nn 01.png

Unser Neuron, hier rot, weil es ja gleichzeitig der Output ist, bekommt einen Vektor, der den Input repräsentiert, macht irgendwas magisches mit diesem Input und gibt uns hoffentlich den richtigen Output. Jeder "Pfeil", jede Linie zu einem anderen künstlichen Neuron in diesen Grafiken, repräsentiert die Verbindung zu dem anderem, dass das andere den Output des letzten erhält. Dieser wird mit einer Gewichtung multipliziert. Der "magische" Prozess des Neurons ist nun, jede Komponente des Eingabevektors auf zu addieren und die Summe all dessen in eine so genannte Aktivierungsfunktion zu stecken. Diese Funktion kann man sich praktisch für jedes Neuron neu aussuchen. In unserem Beispielfall macht z.B. die Vorzeichenfunktion Sinn. Also §f\left(x\right)=\left\{ \begin{array}{l l} -1 & \quad \text{, wenn }x > 0\\ 0 & \quad \text{, wenn }x = 0\\ +1 & \quad \text{, wenn }x < 0 \end{array} \right\} §

Aufbau Neuronaler Netze

Ein neuronales Netz besteht aus mehreren diese Neuronen die in der Regel in verschieden Schichten angeordnet werden.

Lernverhalten

Lernregeln

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge