Künstliche Intelligenz Neuronale Netze Proseminarbeitrag BIT September 2003 Thomas Thiel (MatrNr: 1277982, Uni Bonn) Inhaltsverzeichnis 1. Einleitung . . . . . . . 2. Der biologische Kontext von neuronalen Netzen . 1. Ein Neuron im Detail . . . . . 2. Zusammenarbeit mehrerer Neuronen . . 3. Der Schritt zur Abstraktion . . . . 1. Das Neuron als Modell . . . . 2. neuronale Netzmodelle . . . . 4. Lernfähigkeit neuronaler Netze . . . 5. Praktisches Beispiel von Neuronalen Netzen in der KI 6. Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 5 6 6 7 8 9 11 Einleitung Die Begrifflichkeit der “künstlichen Intelligenz” ist heutzutage in aller Munde, und das nicht nur in der Spieleindustrie um Computergegener für interessantere und herausfordernde Spiele zu schaffen. Künstliche Intelligenzen spielen heutzutage eine viel größere Rolle, als man es sich vielleicht denken könnte. Doch der Terminus allein impliziert schon, das es sich um etwas künstliches handelt, was der natürlichen Intelligenz nachempfunden sein soll. Daher stößt man schon unweigerlich auf die Frage, wie natürliche Intelligenz eigentlich funktioniert. Wer sich mit dieser Fragestellung eingehender beschäftigt, dem wird schnell klar, das hinter zum Beispiel dem menschlichen Verhalten viel mehr steckt als eine Menge festgelegter Verhaltensregeln, die man mehr oder weniger klar in agorithmische Strukturen abbilden kann. Um biologische Intelligenzen zu begreifen, muß man das Zentrum dieser Intelligenzen finden. Das Zentrum, in dem alle Vorgänge, die den Begriff der Intelligenz umfassen, zusammengefasst sind, ist das Gehirn, ein Netz aus Milliarden von kleinen, hochspezialisierten Zellen, den Neuronen. Dieser Seminarbeitrag soll sich speziell mit der Thematik neuronaler Netze beschäftigen, der Abstraktion biologischer Vorgänge auf eine theoretische Basis, durch die komplexe Aufgaben, die ohne diese Technologie menschliche Fähigkeiten erfodern würden, technologisch automatisierbar werden. Im folgenden werde ich eine Einführung über die biologischen Zusammenhänge von natürlichen Neuronen geben. In ihr werde ich über deren Aufbau, Funktion und Zusammenarbeit schreiben. Danach werde ich die Abstraktion auf das theoretische Modell hinter virtuellen Neuronen erläutern. Wenn somit die Grundlagen über Aufbau und Zusammenspiel von Neuronalen Netzen gelegt sind, werde ich mich mit dem zentralen Vorteil dieser Netze beschäftigen, der Lernfähigkeit. Teil 1 – Der biologische Kontext neuronaler Netze Ein Neuron im Detail Das Gehirn ist aus Milliarden hochspezialisierten Zellen zusammengesetzt, den Neuronen. Ein Neuron hat die Eigenschaft, auf externe Reizung mit einer Spannungspotentialsteigerung auf der äußeren Zellmembran zu reagieren. Technisch ist grundsätzlich jede Zelle zu einer vergleichbaren Reaktion fähig, aber bei Neuronen entsteht unter besonderen Bedingungen eine Kettenreaktion, die die Funktion des Gehirns erst möglich macht, da sich Neuronen besonders durch Leitfähigkeit und Erregbarkeit hervorheben. Doch bevor ich auf diese Tatsache eingehe, hier erstmal ein Neuron im schematischen Aufbau: • • • Axon: ein langer Fortsatz, der in einer oder mehreren Synapsen endet, den Verbundsstellen an andere Neuronen. Zellkörper: der für Zellen typische Kern einer Zelle. Dendriten: Weite, baumartige Verzweigungen (dendron, griechisch für Baum). Sowohl am Zellkörper als auch an den Dendriten könen Synapsen anderer Neuronen anlaufen. Wie eben schon erwähnt, heben sich Neuronen besonders hervor, daß sie sich durch elektrische Stimulation besonders gut erregen lassen. Sollte nun diese elektrische Stimulation einen bestimmten Schwellwert überschreiten, entwickelt sich an der Zellwand des Neurons eine elektrische Kettenreaktion, die über die gesamte Länge des Neurons und über das Axon, das bis mehrere Meter lang sein kann, Abb. 1: schematischer Aufbau eines Neurons fortläuft und schließlich in den dem Axon angeschlossenen Synapsen ankommt. Diese Reaktion bezeichnet man als “feuerndes Neuron”. Die an den Synapsen anliegenden Neuronen werden dann durch diese elektrische Stimulation gereizt und können, wird der entsprechende für das Neuron spezifische Schwellwert überschritten, ihrerseits auch feuern. Hierbei würde eine Erklärung der Wechselwirkungen auf chemischer Basis, die die Wanderung von elektrischer Spannung über die Zellmembran bewirken, den Rahmen dieses Seminars sprengen. Daher sei nur gesagt, daß das zu Grunde liegende Prinzip der Austausch von Natriumionen und Kaliumionen sind, die durch die Zellmembran hindurch ausgetauscht werden und so eine lokale Potentialdifferenz erzeugen. Dieser Austausch breitet sich dann im Feuerungsfall über die gesamte Zellmembran aus. Aber wie ermöglicht diese Reaktion die Funktion des Gehirns ? Bisher hab ich nur gezeigt, wie ein Neuron aufgebaut ist, das es auf elektrische Stimulation entsprechend reagiert und so einen elektrischen Impuls über weite Strecken durch den Körper übertragen kann. Daruaf werde ich im nächsten Teil eingehen. Zusammenarbeit mehrerer Neuronen Im letzen Teil habe ich gezeigt, das Neuronen auf elektrische Stimuli besonders reagieren. Die Frage, was sie eigentlich stimuliert, habe ich noch nicht angesprochen. Die Antwort darauf ist aber genau das, was die Funktionalität eines neuronalen Netzes ausmacht, nämlich die Verschaltung mehrerer Neuronen zu einem Verband. Das Schlüsselelement hierbei ist die Synapse. Eine Synapse ist das Bindeglied zwischen einem Axon und dem Zellkörper oder Dendrons eines Nachbarneurons. Läuft ein elektrischer Impuls über das Axon in die Synapse, wird in ihrem Inneren ein komplexer chemischer Vorgang initiiert. Dieser Vorgang reizt dann die anliegende Zelle. Das besondere allerdings ist, das dieser chemische Vorgang seinerseits noch die Möglichkeit hat, den ankommenden Impuls stärker oder schwächer als Reiz an das Neuron abzugeben. Die Größenordnung, unter dem die Hemmung oder Verstärkung der “Impulsweitergabe” steht, nennt sich Synapsengewichtung. In dieser Fähigkeit zur Hemmung und Verstärkung liegt erst die Fähigkeit eines neuronalen Netzes zur Lernfähigkeit begründet. Doch bevor ich mich mit konkreten Beispielen über das Lernen in neuronalen Netzen beschäftige, muß ich der Einfachheit halber erst den Abb. 2: schematische Darstellung einer Synapse Schritt in die Abstraktion vollführen. Denn erst, als neuronale Netze mathematisch abstrakt erfaßt werden konnten, also mathematische Modelle von neuronalen Netzen entstanden, konnte man sich mit konkreten Ideen des Lernens beschäftigen. Teil 2 – Der Schritt zur Abstraktion Das Neuron als Modell Wir haben kennengelernt, wie Neuronen in biologischem Kontext funktionieren. Doch der Schritt zur Abstraktion fehlt noch. Die frühesten Modelle neuronaler Netze stammen noch aus den 40er Jahren. Zwei Mathematiker, McCulloch und Pitts, schlugen 1943 vor, ein Neuron als logisches Schwellwertelement zu beschreiben, was zwei mögliche Ausgangszustände besitzt. Ein solches Element besitzt L Eingangleitungen und eine Ausgangsleitung, die entweder aktiv oder inaktiv sein können. Ein Eingabesignal wird daher durch einen Vektor von L binären Signalkomponenten spezifiziert. Die synaptische Hemmung wird mitberücksichtigt und wird als Faktor von +/-1 zum zugeordneten Eingabesignal mutlipliziert. Die gewichteten Eingabesignale werden dann aufsummiert und mit einem neuronspezifischen Schwellwert verglichen. Ist er erreicht oder überschritten, feuert das Neuron, wird er unterschritten, bleibt es still.Der Ausgabewert y eines Neurons ist daher definiert als: wobei (x) = 1 für x >= 0 und (x) = 0 für x<0. Dieses Modell zeigte erstmals, das mit Hilfe von Neuronalen Netzen beliebige logische Operationen durchfühbar waren, beweisbar dadurch, das Spezialfälle der oben aufgeführten Formel als AND- und Invertergatter funktionieren und somit jede logische Operation durch sie repräsentierbar wird. Auch der moderne Ansatz eines mathemathischen Modells eines Neurons hat diese Fähigkeit noch. Nur ist in modernen Modellen die Verarbeitung innerhalb des Neurons nicht mehr an boolsche Werte gebunden, sondern ist nun vollständig analog, ganz nach dem Vorbild natürlicher Neuronen. Abb. 3: modernes Neuronenmodell. Links ist der Eingabevektor W, die Summe der Synapsengewichtungen wird in der Eingabefunktion in gebildet und dann über die Aktivierungsfunktion mit dem Schwellwert verglichen. Abb. 4: Abbildung boolscher Grundfunktionen über Neuronen Doch eine wichtige Eigenschaft neuronaler Netze fehlte: die Lernfähigkeit und nicht zuletzt die hohe Schadens- und Fehlertoleranz biologischer Netze. Das änderte sich erst, als der kanadische Neurophysiologe Donald Hebb eine wichtige Entdeckung machte. Er fand heraus, das die synaptische Hemmung oder Verstärkung des auf ein Neuron einwirkendes Signals keinesfalls statisch ist, sondern an sich variabel und abhängig von der Dauer und Häufigkeit des einlaufenden Signals. Sein Originaltext hierzu lautete: “Sofern ein Axon der Zelle A einer Zelle B nahe genug ist, um sie immer wieder zu erregen bzw. Dafür zu sorgen, das sie feuert, findet ein Wachstumsprozeß oder eine metabolische Veränderung in einer der beiden Zellen oder in beiden statt, so daß die Effektivität der zelle A, die Zelle B zu erregen, gesteigert wird.” (Hebb, 1949/1988, S.50) Diese “Hebbsche Lernregel” ist die Grundlage für Lernprozesse in Modellen neuronaler Netze. Sie besagt, daß ein Neuron eine Art Gewöhnungsprozess durchmacht. Wird eine Zelle über eine bestimmte Synapse sehr häufig stimuliert, steigt ihr Verstärkungs- oder Hemmungsfaktor, und die Zelle wird leichter über diese spezifische Synapse erregt. Die Hebbsche Lernregel hat als mathematische Eigenschaft in vielen Netzmodellen bis heute überlebt, obwohl sie experimentell bis heute nicht hundertprozentig nachgewiesen werden konnte. Eine ihrer einfachsten mathematischen Fassungen ist wi = * y(x) * xi für die Änderungsdifferenz der Synapsengewichtung wi eines Neurons unter einem Input x=(x1,x2,...xn). Dabei ist y(x) die Erregung eines Neurons und >0 ein Parameter, der die Größeordnung einer Änderung der Synapsengewichtung beschreibt. Neuronale Netzmodelle Als durch die Einführung mathematischer Modelle die computergestütze Simulation neuronaler Netze möglich wurde, entwickelten sich verschiedene weiterführende Verbundstrategien von Neuronen, die jeweils verschiedene Ansätze verfolgten, Lern- und Verarbeitungsprozesse zu implementieren. Ein sehr frühes Modell war das des Perzeptrons. Ein Perzeptron ist eine endliche Menge von N Neuronen, die jeweils eine für alle Neuronen fixe Menge von L Eingabeleitungen besitzen, die, wie üblich in der Arbeit mit Neuronalen Netzen, durch einen Eingabevektor mit L Elementen, genannt Eingabemuster, repräsentiert werden. Jedes Neuron r berechnet seinen Zustand über: Die Koeffizienten wri, für i = 1,2,...,L bestimmen das Verhalten von Neuron r, wie im letzten Kapitel angesprochen. Während der Trainingsphase passt dann jedes Neuron r seine Koeffizienten so an, das es auf “seine” Eingabeklasse Cr hin feuert und auf keine sonst. Dieses Vorgehen ist sehr einleuchtend und leicht zu analysieren. Doch hat es einige schwerwiegende Nachteile. So genügt für komplexere Aufgaben die Menge geeigneter Gewichte wri nicht, was den Einsatzbereich des Perzeptrons zum Beispiel in Aufgaben der Mustererkennung verhindert. Dieser Nachteil wurde dann aber durch die Einführung mehrschichtiger Netzmodelle überkommen. Diese Modelle zeichnen sich dadurch aus, das es eine Schicht von Eingabeneuronen gibt, eine Schicht von Ausgabeneuronen und eine endliche Menge von Zwischenschichten, deren Neuronen mit allen Neuronen der Vorgänger- und Nachfolgeschichten verbunden sind. Dieser Aufbau ermöglicht eine sehr viel höhere Erkennungsgenauigkeit und Abstraktionsfähigkeit des Netzes. Abb. 5: Dreilagiges Neuronennetz Grundsätzlich unterscheidet man zwei mehrschichtige Netztopologien: Feed-forward Netze: Die Eingabe wird von einer Schicht zur nächsten weitergereicht, bis sie die letzte erreicht. Ein Beispiel dieser Topologie wäre das Perzeptron. Rekurrente Netze: Neuronen können untereinander Zyklen bilden, das Durchschreiten des Netzes ist nicht mehr linear und somit nicht mehr leicht überschaubar. Rekurrente Netze sind kaum erforscht. Ein Beispiel dieser Topologie wäre das menschliche Gehirn. Lernen in neuronalen Netzmodellen Die Existenz der Hebbschen Regel ermöglicht es uns nun, mathematisch zu erfassen, wie Neuronale Netze lernen. Aber wie sieht es nun konkret in der Implementierung aus ? In der Einführung des Perzeptrons oder mehrschichtiger Netze ist lediglich erwähnt worden, das die Synapsengewichtungen extern zu variieren sind. Wie sie variiert werden, wurde nicht erwähnt. Grundsätzlich gibt es drei verschiedene Ansätze, was das Lernen in neuronalen Netzen angeht: • • • Überwachtes Lernen (supervised learning) Bestärkendes Lernen (reinforcement learning) Unüberwachtes Lernen (unsupervised learning) Überwachtes Lernen braucht einen externen Lehrer, der von sich aus die Synapsengewichtungen korrigiert. Hierzu speist der Lehrer verschiedene Referenzmuster in das Netz ein, beobachtet die Ausgabe und korrigiert dann die Gewichtungen so, das nach Wiederholung der Einspeisung die Ausgabe von sich aus korrekt ist, dies insbesondere auch bei ähnlichen Eingaben zwecks Generalisierung. Diese Methode ist die schnellste Lernmethode, da die Änderungen der Gewichtung zielgerichtet gegen den Fehler angewendet werden kann. Allerdings ist diese Lernmethode biologisch nicht plausibel, da im Idealfall das neuronale Netz sich selbst organisieren sollte. Als Beispiel für solche Netze sei das oben angesprochene Perzeptron zu nennen, das in der gezeigten Form keine Möglichkeit hat, sich selbst zu organisieren. Bestärkendes Lernen hingegen nutzen selbstorganisierende Netzmodelle, die minimale Einwirkung von außen benötigen. Der Vergleich zwischen Eingabemuster und Ausgabemuster erfolgt hierbei ebenfalls extern, die Gewichtungskorrektur jedoch wird durch das Netz selbst vorgenommen. Der Lehrer gibt hierbei nur ja/nein Antworten. Diese Lernmethode kostet natürlich viel mehr Zeit, da die Änderung der Gewichtungen nicht mehr so distingiert erfolgen kann, wie durch den externen Lehrer im vorigen Lernmodell. Dieses Modell ist biologisch schon plausibler, doch an die Realität kommt es trotzdem nicht sehr nah heran. Unüberwachtes Lernen ist die biologisch plausibelste Lernmethode. Netzmodelle, die eine solche Organisationsstruktur implementieren, sind vollständig selbstorganisierend. Es wird kein Lehrer mehr benötigt, das Lernen beruht auf einer fixen Trainingsmenge von Ein/Ausgabemustern, die nach einer unüberwachten Trainingszeit das Netz selbst zur Gewichtungskontrolle nutzt. Praktisches Beispiel von Neuronalen Netzen in der KI Zur bisherigen eher grundsätzlichen Betrachtung der Funktionsweise neuronaler Netze möchte ich nun noch ein konkretes Beispiel anführen, was mit diesem äußerst mächtigen Werkzeug der Informatik möglich ist. Als Grundlage dient hier ein mehrschichtiges Netzmodell, eine Eingabeschicht, eine Ausgabeschicht, mehrere Verarbeitungsschichten. Abb. 6: Eingabe/Ausgabemodell NN Als Problem nehmen wir uns ein biologisches heraus, die Mustererkennung. Die Eingabeschicht repräsentiert hier ein optisches Eingabegerät, möglicherweise ein Auge, die Ausgabeschicht zeigt das erkannte Muster. Abb. 7: Beispielmuster In den obigen Abbildungen erkennt unser biologisches neuronales Netz problemlos Krokodil, JFK, Bananen und Spinne. Die Netzhaut des menschlichen Auges, welches die Bildinformationen dieser Grafiken aufnimmt, besteht aus Sinneszellen, die einfachen Neuronen sehr ähneln. Sie reagieren auf photonische Stimulation bestimmter Frequenzbereiche und setzen diese in Nervenimpulse um, die über bekannte Abläufe in das Gehirn weitergeleitet werden. Dort werden sie verarbeitet und in Assoziationen umgesetzt. Die Netzhautzellen repräsentieren nun also unsere Eingabeschicht. Und im Gehirn sitz irgendwo ein Bereich von Neuronen, der das erkannte, das assoziierte Objekt repräsentiert, unsere Ausgabeschicht. Abstrahieren wir nun diesen Ablauf, so sehen wir, das eine bestimmte Konstellation erregter Neuronen in der Eingangsschicht, ein Neuron in der Ausgabeschicht erregen soll: Abb. 8: Eingabe/Ausgabemustererkennung Nach entsprechendem Training mit einer dem Problem entsprechenden Trainingsmenge (in einem entsprechend umfangreicheren Netz als in der obigen Grafik) sind wir nun in der Lage, komplexe Muster zu erkennen, ein Prozeß, der in der Informatik eines der anspruchsvollsten Themenbereiche ist. Aber dieses Netz wäre nicht nur in der Lage, Muster zu erkennen, es wäre auch in der Lage, innerhalb einer bestimmten Toleranzgrenze Fehler zu berücksichtigen und zu filtern: Abb. 9: Fehlertoleranz Neuronale Netze haben aber auch schwere Nachteile. Das Training zum Beispiel ist teilweise sehr aufwendig und komplex, dabei entstehende Fehler können sehr schwer zu finden sein, weil neuronale Netze wie eine Blackbox arbeiten. Sind sie trainiert, weiß man nicht genau, wie es arbeitet. War die Trainingsmenge zu klein, kommt es zu Abweichungen in der Ausgabe, weil die Abstraktionsfähigkeit des Netzes nicht ausreicht, benutzt man ein zu großes Netz, kann das Netz alle gelernten Entscheidungen treffen, aber durch die Größe des Netzes sind alle Eingabedaten fest kodiert, so das keine Abstraktionsfähigkeit existiert. Neuronale Netze sind enorm mächtige Werkzeuge in Prozessen, die sonst komplexe Algorithmen erforden würden, die zum größten Teil so noch nicht einmal existieren. Ihre Abstraktionsfähigkeit und Fehlertoleranz sind die Gründe, warum sie heute einen sehr wichtigen Teil in der Forschung nach künstlicher Intelligenz spielen und deshalb kaum noch wegzudenken sind. Literatur Ritter, Helge: Neuronale Netze : eine Einführung in die Neuroinformatik selbstorganisierender Netzwerke, Addison-Wesley, 1990 Spitzer, Manfred: Geist im Netz: Modelle für Lernen, Denken und Handeln. Berlin: Spektrum, Akad. Verl., 1996