Neuronale Netzwerke - Einführung 1. Einleitung Während Problemstellungen, die durch Algorithmen mit einem Computer wesentlich schneller zu lösen sind, gibt es Problemstellungen, wie z.B. das Erkennen eines Gesichts, für die das menschliche Gehirn wesentlich weniger Zeit benötigt. Außerdem reicht das Ergebnis eines Computers nicht an die Erkennungsleistung eines Gehirns heran. Das Gehirn kann zusätzlich auch mit fehlender Information umgehen, zum Beispiel bei schlecht erkennbarer Schrift, bei der ein Computer unbrauchbare Ergebnisse liefern würde. Aufgrund dieser Vorteile ergab sich die Motivation, neuronale Netze in die Informationsverarbeitung zu übertragen. Während ein Computer eingehende Informationen (normalerweise) mittels einer zentralen Recheneinheit (CPU) sequentiell verarbeitet, besteht ein neuronales Netz aus vielen kleinen Elementen – den Neuronen – die sich untereinander über gerichtete Verbindungen aktivieren. Die Verarbeitung verläuft auf diese Weise massiv parallel. Neuronale Netze werden zudem nicht programmiert, sie lernen. Durch die große Anzahl an Elementen im Netz spielt der Ausfall eines oder mehrerer Neuronen keine große Rolle, das erlernte Wissen leidet nur geringfügig darunter. 2. Ausflug ins Gehirn Das Gehirn ist das neuronale Netzwerk schlechthin. Die neuronalen Nervenzellen sind nach wie vor nicht vollständig erforscht. Der Aufbau sieht in etwa wie folgt aus: Dentriten: Die Verästelungen, welche die elektrischen Impulse anderer Zellen sammeln. Synapsen: Die Sysnapsen befinden sich an den Dentriten, aber auch an anderen Teilen der Nervenzelle. An den Synapsen sind andere Nervenzellen angekoppelt. Über den synaptischen Spalt werden Botenstoffe übertragen, die zur Auslösung des elektrischen Signals in der Zelle führen. Die Vorgänge in den Synapsen sind komplex. Eine Nervenzelle (im Kleinhirn) kann bis zu 15.000 Synapsen haben. Zellkern: Hier findet man das Erbgut. Außerdem erfolgt hier die Versorgung mit Nährstoffen. Axon: Das Axon ist eine Nervenfaser und leitet das elektrische Signal an andere Zellen weiter. Es ist an anderen Ende an eine Synapse gekoppelt. Das menschliche Gehirn verfügt über rund 30 bis 100 Milliarden neuronale Nervenzellen, die wiederum über etwa eine Billiarde Synapsen miteinander verbunden sind. Pro mm² sind das etwa 10.000 Neuronen. Jedes Neuron hat rund 10.000 Synapsen, bestimmte Zellen, die Purkinje-Zellen, können bis zu 80.000 aufweisen. Die Anzahl möglicher Kombinationen von Verbindungen zwischen den Nervenzellen übersteigt somit der Anzahl der Atome in unserem Universum. Der Mensch verfügt über etwa 300-400 Millionen reizaufnehmender Zellen und 4 Millionen motorischer Zellen (Input / Output im übertragenen Sinn). Beim Versuch, die Leistung des Gehirns mit der eines Computers zu vergleichen, wird man auf sehr verschiedene Ansichten stoßen. Zum Beispiel schätzen die Autoren des Romans „Gottes Gehirn“ [6] – Johler und Burow – die Leistung eines menschlichen Gehirns auf etwa 10 Billionen Flops (Floating Point Operations per Second), während ein handelsüblicher Rechner ein paar Millionen Flops leistet. Geht man davon aus, dass die Computerleistung in dem Maß weiter steigt wiebisher, könnte ein Computer das Gehirn in etwa 20 – 30 Jahren eingeholt haben. Seite 1 Trotz der hohen Komplexität des menschlichen Gehirns wäre es völlig überfordert, wenn die eintreffenden Reize als ungefilterte Information verarbeitet werden müsste. Dazu müssen die Eindrücke auf einige wenige reduziert werden, man schätzt von etwa 10 Millionen Eindrücken einer in das Bewusstsein gelangt. Das ergibt dann geschätze 16 verschiedene Informationen in der Sekunde, die bewusst verarbeitet werden. 3. Künstliche Neuronale Netze 3.1. Aufbau eines künstlichen Neuralen Netzwerkes Neuronale Netze werden im Computer in einer anderen, stark vereinfachten, Form angewendet. Die Theorie der neuronalen Netze wurde durch die Entwicklung des McCulloch-Pitts Neurons (Warren McCulloch und Walter Pitts) im Jahre 1943 eingeleitet. 1949 kamen die ersten Lernregeln von Donald O. Hebb dazu. Da man damals noch einschichtige, also sehr einfach struktiuierte, Netze verwendet wurden, konnten 1969 Marvin Minsky und Seymour Papert nachweisen, dass es logische und mathematische Problemstellungen gab, wie z.B. die XOR (exklusives Oder) Funktion, die mit den damals entwickelten Netzen nicht gelöst werden konnten. Dies führte zu einer lang anhaltenden Stagnation in der Erforschung neuronaler Netze, da große Förderer, wie z.B. die DARPA (Defense Advanced Research Projects Agency), keine Gelder mehr zur Verfügung stellten. Erst 1986 konnte durch Rumelhart, Hilton und Williams die Minsky-Probleme gelöst werden. Seit diesem Zeitpunkt sind neuronale Netze sehr populär geworden und konnten nach und nach auch Einzug in reale Anwendungen halten. Ein künstliches Neuron besteht ist gegenüber seinem natürlichen Pendant sehr vereinfacht und sieht als Modell wie folgt aus: § Ein Gewicht an den Verbindungen von anderen Neuronen bzw. Eingängen und eine Gewicht, dass als Schwellenwert dient. § Eine Summe § Aktivierungsfunktion und Ausgabe x1 Die Gewichtung (wn) der Eingänge kann w1 gewichtete Aktivierungspositiv oder negativ sein, dementsprechend x2 Summe funktion kann die Erregung eines vorgeschalteten w2 Neurons erregende oder dämpfende x3 net w3 Wirkung haben. Man f(net) Σ Die gewichteten Eingangsreize (Σ) dienen xn wn als Summe als Parameter für die Aktivierungsfuktion. Folgende Aktivierungsfunktionen werden verwendet, wobei die beiden letzeren am häufigsten verwendet werden. Seite 2 Da es verständlicherweise sehr umständlich und kompliziert ist, neuronale Netze als Hardware zu realisieren, werden sie üblicherweise auf einem herkömmlichen Rechner simuliert. Die Netze werden dann in einer Matrix abgebildet, die einfach die Gewichte der Verbindungen als Zahlenwerte abbildet. 3.2. Lernvorgang eines künstlichen Neuralen Netzwerkes Ein neuronales Netzwerk lernt, indem es sich gemäß einer fest vorgeschriebenen Lernregel selbst modifiziert. Am häufigsten basiert der Lernvorgang auf der Modifikation der Verbindungsstärke, also der Gewichte (wn). Es sind aber auch Vorgänge, wie die Entwicklung neuer Zellen, löschen bestehender Zellen und ähnliches denkbar. Eine weitere Unterscheidungsmöglichkeit besteht in der Art des verwendeten Lernparadigmas. Hier lassen sich drei Arten unterscheiden: § Überwachtes Lernen (supervised learning): Ein externer Lehrer gibt dem Netz zu jeder Eingabe die korrekte Ausgabe. Aufgrund der Differenz zwischen Ein- und Ausgabe wird das Netz mithilfe der Lernregel entsprechend modifiziert. Ein Beispiel dafür ist das Back-PropagationVerfahren: § Das Eingabemuster wird dem Netz durch entsprechende Aktivierung der Eingabeneuronen präsentiert. § Die angelegte Eingabe läuft vorwärts durch das Netz. Dadurch wird ein Ausgabemuster für die aktuelle Eingabe erzeugt. § Tatsächliche und korrekte Ausgabe werden miteinander verglichen und die Differenz berechnet. § Die Fehler laufen rückwärts von der Ausgabe- zur Eingabeschicht. Die Verbindungsgewichte werden dabei so verändert, dass der Fehler verringert wird. § Bestärkendes Lernen (reinforcement learning): Das Netz erfährt hier lediglich, ob seine Ausgabe korrekt war oder nicht. § Unüberwachtes Lernen (unsupervised learning): Das Netz erfährt hier überhaupt nichts über die Korrektheit seiner Ausgabe. Es versucht stattdessen, die präsentierten Daten in Ähnlichkeitsklassen einzuteilen. 4. Paradigmen neuronaler Netze supervised unsupervised binärer Input Hopfield-Netz: Speicher. Pat. Rest. real-wertiger Input Perzeptron: Klassifikation Hanning-Netz: Optimierer Multi-Layer Perzeptron: Approximation Carpenter/Grossberg: Clusteranalyse Kohonen selbstorganisierende Feature Maps: Reduktion der Dimension von Daten auf das Wesentliche 5. Ge- und missglückte Anwendungen neuronaler Netze 5.1. Bildverarbeitung / Mustererkennumg: Ein bekanntes Beispiel dafür war ein Versuch der DARPA in den 80ern, mittels neuraler Bildverarbeitung Panzer in einer Landschaft zu erkennen [4]. Dazu wurden Bilder mit Bäumen und Bilder mit Bäumen und Panzern gemacht. Diese Bilder wurden in einen Mainframe Computer mit einem simulierten neuronalen Netzwerk eingespielt. Das System gab Bild für Bild Antworten, ob nun ein Panzer zu sehen war oder nicht. Die anfänglich sehr zufälligen Antworten wurden von einem Menschen entsprechend bestätigt oder verneint, woraufhin das System „lernte“ und nach und nach besser wurde. Das Lernen erfolgte durch Gewichtung der einzelnen neuronalen Verbindungen. Nach einiger Zeit wurde der Versuch mit einem neuen Set an Fotos gemacht und der Computer konnte bereits richtige Seite 3 Aussagen treffen. Bei der Vorführung vor einem (skeptischen) mit einem weiteren Set an Fotos kam aber die Ernüchterung – der Computer machte wieder völlig zufällige Aussagen. Anfangs wusste niemand, was der Grund dafür war. Schon damals wude klar, das das große Problem eines neuronalen Netzes ist, dass man nicht mehr nachvollziehen kann, wie es eigentlich zu seinen Ergebnissen kommt. Schlussendlich hat sich herausgestellt, dass die ersten 200 Fotos sich dadurch unterschieden, dass alle Panzer-Fotos an einem wolkigen Tag aufgenommen wurden und alle ohne Panzer an einem sonnigen. Somit hat das Militär Millionen für ein Sstem ausgegeben, das herausfinden konnte, ob es sonnig ist oder nicht! 5.2. Personenüberwachung Neuronale Netze können zum Beispiel darauf trainiert werden, dass sie menschliche Figuren erkennen und diese „tracken“ können. Diese Technik kann zum Beispiel zur Erkennung von Gebärdensprache oder zur Personenüberwachung verwendet werden. 5.3. Finanzorakel "Was wie Science-Fiction anmutet, ist schon längst Wirklichkeit: Nicht mehr der Fondsmanager bestimmt, welche Aktien gekauft werden, sondern allein der Computer trifft die Entscheidung. Möglich ist das durch neuronale Netze. Mit ihnen versuchen Techniker und Wissenschaftler das menschliche Gehirn nachzubilden, aus aus Millionen zusammengeschalteter Nervenzellen (Neuronen) besteht. Genau wie das Gehirn sind neuronale Netze lernfähig - anders als Programme, die statisch und nur so gut wie ihre Entwickler sind. (...)“ – aus „Börse Online“ vom Mai 2002. In Beispiel für solch ein Programm ist MoneyBee [7]. Es läuft als Bildschirmschoner – ähnlich dem bekannten SETI-Programm – und erhält von einem – Server Aktienkurse. Nach einer längeren Lernphase aufgrund von Daten aus der Vergangenheit versucht das Programm Prognosen zu erzeugen. 6. Quellenverzeichnis [1] Manfred Nölte: Glossar: Neuronale Netze, http://home.zait.uni-bremen.de/~mn/old/glossar/g/, Uni Bremen, 1997 [2] Einführung in Neuronale Netze, http://wwwmath.uni-muenster.de/SoftComputing/lehre/material/ wwwnnscript/startseite.html, Uni Münster [3] Christoph Tornau: Neuronale Netze – Eine Übersicht, http://www.neuro.ct-webspace.de/ [4] Neil Frasier: Neural Network Follies (Verrücktheiten), http://neil.fraser.name/writing/tank/ [5] Hartmann Neuron Synthesizer, http://www.hartmannmusic.com/home/de/neuron/soundengine/soundengine_basics.html [6] Johler & Burow: Gottes Gehirn, Piper Verlag, 2003 [7] generation5: at the front of artificial intelligence (Web-Site), http://www.generation5.org/ [8] i42: MoneyBee (Verteiltes Börsenprognose-Werkzeug), http://de.moneybee.net/ Seite 4