Home   Was ist ot ?   Regeln   Mitglieder   Maintainer   Impressum   FAQ/Hilfe  

1.1. »Neuronale Netze« - die Macht der Annäherung

Maintainer: Stefan Meretz, Version 1, 13.02.2004
Projekt-Typ: halboffen
Status: Archiv

(1) Der Begriff »Neuronales Netz« wird zumeist zur Kennzeichnung einer besonderen Art von Programmen verwendet. Im Vergleich zu herkömmlichen Programmen kann diese Besonderheit leicht veranschaulicht werden.

(2) Programme sind Rechenvorschriften. Programme sollen einen Zweck erfüllen, sollen nützlich sein. Die Entwicklung eines Programms ist gleichbedeutend mit der Umsetzung eines gewünschten Zwecks in eine Rechenvorschrift, in einen Algorithmus. Die Rechenvorschrift muß alle möglichen Eingaben so verarbeiten, daß jeweils die gewünschten Ausgaben erzeugt werden. Das ist beim Programm zur Ansteuerung einer NC-Maschine und beim Textverarbeitungsprogramm gleich, und hierin unterscheiden sich auch »Neuroprogramm« und herkömmliches Programm nicht.

(3) Die Unterschiede zwischen beiden Programmarten zeigen sich bei der Erstellung der Programme, also bei der Entwicklung der Rechenvorschrift. Grob gesagt ist das Vorgehen bei der Erstellung klassischer Programme explizit, während es beim »Neuronalen Netz« eher implizit ist. Was heißt das?

Explizit zum herkömmlichen Programm

(4) Ausgehend vom angestrebten Zweck, den das Programm erfüllen soll, müssen (idealerweise) alle möglichen Eingaben, kombiniert mit den möglichen Programmzuständen, und die jeweils dazugehörigen Ausgaben vor der Erstellung des Programms bekannt sein. So muß bspw. bei der Erstellung eines Textverarbeitungsprogramms klar sein, daß bei Eingabe eines Druckbefehls, dem Vorhandensein eines druckbaren Dokuments und der Bereitschaft des Druckers die Druckausgabe erfolgt. Ist einer der drei Parameter anders, so liegt ein anderer Fall vor, für den eine andere Ausgabe erzeugt werden muß. So sollte z.B. ein abgeschalteter Drucker zu einer entsprechenden Nachricht führen. Ausgehend von diesem Beispiel ist sicher leicht vorstellbar, daß jede der Teilfunktionen (= Rechenvorschriften = Algorithmen) zerlegt werden muß in weitere Teilalgorithmen, die auf der "tieferen" Ebene wieder explizit als Kombination von Eingabeparametern (Eingabewerten und Programmzuständen) und Ausgabewerten definiert werden müssen. Zuende gedacht muß jedes Bit einzeln "angefaßt" werden, und historisch war das auch genauso. Heute gibt es Hilfsprogramme (z.B. sog. Übersetzer/Compiler), mit denen ein Teil der Arbeit automatisiert werden kann. Aber auch die Hilfsprogramme mußten ja einmal definiert werden...

(5) Festzuhalten bleibt hier: Ist der angestrebte Programmzweck klar, so müssen bei der Erstellung herkömmlicher Programme die Programmparameter in einem analytischen, deduktiven Prozeß explizit bestimmt werden, um die gewünschten Ausgaben zu erzielen. Jeder nicht vorher definierte Programmzustand führt in aller Regel zu nicht erwünschten Ausgaben oder gar zum »Absturz« des Programms.

Implizit zum »Neuronalen Netz«

(6) Bei »Neuronalen Netzen« werden die erforderlichen Programmparameter nicht analytisch ermittelt, sondern sukzessiv-kumulierend optimiert. Ziel ist dabei wie beim herkömmlichen Programm, den angestrebten Programmzweck zu realisieren. Im Unterschied zum herkömmlichen Programm werden »Neuronale Netze« dort eingesetzt, wo die Programmparameter (die Eingabeparameter und zugeordneten Ausgabewerte) gerade nicht explizit vollständig definierbar sind. Es reicht aus, wenn es eine Menge von "repräsentativen Beispielen" von Eingabe-Ausgabe-Paaren gibt, die dem gewünschten Programmzweck entsprechen. Als Beispiel mag ein sechsachsiger Roboterarm dienen, der gesteuert werden soll. Der Greifer eines solchen Arms kann einen Zielpunkt im Raum meist auf mehreren Wegen ansteuern. Die Raumbahn vom Start zum Ziel bestimmt, welche Achsen wann und wie schnell angesteuert werden müssen. Diese Ansteuerung kann explizit bestimmt (berechnet) werden, sie kann aber auch durch Optimierung der Steuerparameter schrittweise angenähert werden. In einer Reihe von Zyklen werden dabei die Steuerparameter zielgerichtet so verändert, daß eine zunehmend bessere Annäherung des Greifers an den Zielpunkt erreicht wird. Wird diese Optimierung mit einer Menge "repräsentativer Beispielpunkte" durchgeführt, so werden nach der Optimierung auch solche Raumpunkte vom Greifer hinreichend genau angesteuert, die nicht zur Menge der Beispielpunkte gehörten. Diese Art der impliziten Verallgemeinerung der Programmparameter ist eine der spannenden und hocherwünschten Eigenschaften »Neuronaler Netze«.

(7) Während bei herkömmlichen Programmen die Art der Umwandlung aller möglichen Eingaben in die zugeordneten Ausgaben im Prinzip vollständig bekannt sein muß, reicht es bei den »Neuronalen Netzen« aus, daß die zur Optimierung gewählten Beispiele repräsentativ sind. Nachteil der »Neuroprogramme« ist jedoch, daß man weder sicher sein kann, ob die gewählten Beispiele repräsentativ sind, noch, ob das Endresultat in allen Belangen dem angestrebten Zweck entspricht. Als Vorteil der herkömmlichen Programme wird demzufolge auch ihre prinzipielle Verifizierbarkeit, also der Nachweis der Korrektheit betont. Daß die Verifikation in der Praxis schwierig bis unmöglich ist, heben auf der anderen Seite die Anhänger der »Neuronalen Netze« hervor. Hier sei der "unscharfe Charakter" »Neuronaler Netze« gerade ein Vorteil, denn er führe zu einer hohen Fehlertoleranz.


[Navigation]

(8)

Zurück: 1. »Neuronale Netze« und Psychologie

Vor: 1.2. Kritische Psychologie - die Macht der Begriffe


Valid HTML 4.01 Transitional