Was neuronale Netze sind und wie sie arbeiten (Teil 2 und Schluß):

Als wär's ein Stück vom Hirn...

08.04.1988

Ob als sture Rechenknechte in Forschung und Technik, oder ob als treue Lohn- und Gehaltsbuchhalter in der Wirtschaft: Seit ihren Anfängen schon schlagen Computer dort jeden Menschen. Und auch auf dem zukunftsträchtigen Gebiet der sogenannten "Künstlichen Intelligenz" (KI) erstaunen Computer immer häufiger mit beachtlichen Leistungen. Dennoch: Bei bestimmten Aufgaben stellen sie sich auch heute noch dümmer an als jedes Kleinkind. Aber das soll anders werden.

Sollten die Beschreibungen einmal nicht reichen, ein gesuchtes Objekt eindeutig zu identifizieren, so grenzt das Netz den Kreis der verbleibenden Kandidaten von selber auf ein Minimum ein. Und zum Addieren weiterer einzelner Wissens-Elemente wird hier weder ein Programmierer noch ein teurer Wissens-Ingenieur benötigt, denn jede neue Beschreibung wird ja sofort Bestandteil aller künftigen Erkennungs- und Such-Vorgänge; es ist also nicht nötig, genau festzulegen, wie und wann jedes einzelne Stückchen Wissens-Regel genau heranzuziehen ist, sucht die Maschine eine bestimmte Antwort. Denn die richtige Nutzung der gespeicherten Fakten besorgt so ein semantisches Netz einfach auf Grund seiner Struktur ganz von selber.

Nachteilig an Netzen dieser Art ist hingegen, daß sie nur mit festen Ja-Nein-Aussagen arbeiten und somit schlecht mit unscharfen Beobachtungen und vagen Aussagen wie etwa "vermutlich..." und "wahrscheinlich..." zurechtkommen. Und dann wäre noch zu bemerken, daß die Knoten und Verbindungs-Prozessoren dieser Art Rechner zwar alle sehr einfach, klein und billig sind, daß aber der Aufbau des eigentlichen Leitungs- und Schalter-Netzgeflechts zwischen den Knoten erhebliche Probleme bereitet. - Ein reales Beispiel, wie das in praxi gemacht werden kann, ist die bekannte Connection-Machine mit ihren rund 64 000 Prozessoren; doch eigentlich will man ja Systeme mit Millionen von Rechenelementen bauen

Will man nicht nur mit klaren Ja-Nein-Aussagen umgehen, sondern sogar die unscharfen Beobachtungen und Aussagen der realen Welt in den Griff bekommen, so kann man auf die schon skizzierten, analogen Netz-Strukturen übergehen, bei denen jeder der Verbindungen ein bestimmtes, skalares "Gewicht" beigemessen wird. Dabei errechnet nun jeder Knoten eine gewichtete Summe der ankommenden Werte und transformiert sie mittels einer nichtlinearen Funktion in einen Ausgabe-Wert, der dann weitergeleitet wird. Man hat es hier also im wesentlichen mit einer besonderen Art von Analog-Rechner zu tun; und dies auch dann, wenn der interne Aufbau der Knoten in Digitalbauweise erfolgen mag.

Unsichere Beobachtungen werden zu klaren Aussagen

Mit Einheiten der beschriebenen Art kann man Systeme bauen, die unsichere Beobachtungen in klare Aussagen verwandeln sollen. Dabei wird jedem, direkt in der Umwelt beobachtbaren Wert - etwa der Helligkeit eines bestimmten Objekts - eine eigene Eingabe-Einheit (ein Knoten) zugeordnet, deren Eingabe-Einheit wiederum zu der beobachteten Helligkeit etc. proportional ist. Viele solcher Eingangs-Einheiten bilden die untere Schicht einer netzförmigen Struktur zum Erkennen bestimmter Muster, während in einer oberen Schicht so viele Ausgabe-Knoten angeordnet sind, wie unterschiedliche Hypothesen oder Aussagen in Betracht kommen. Soll das Netz also etwa zwischen höchstens drei verschiedenen Bit-Mustern unterscheiden, so besitzt es drei Ausgabe-Knoten, die für jede der drei möglichen Aussagen separat Signal geben.

Sehr einfache Netze dieser Art besitzen nur die beiden erwähnten, der Ein- und der Ausgabe dienenden, Schichten von Knoten; doch für praktische Versuche reichen sie kaum je aus. Im allgemeinen werden zwischen die Ein- und die Ausgabe-Knoten weitere "versteckte" Einheiten geschoben, die aus den einlaufenden Roh-Informationen komplizierte Zusatz-Aussagen ableiten können und auf die nicht verzichtet werden kann, soll das Netz brauchbare Resultate liefern (siehe Bild 3 auf Seite 47). Diese versteckten Einheiten werden in einer oder mehreren zusätzlichen Schichten angeordnet.

Mehrlagige Netze mit versteckten Einheiten lernen das korrekte Erkennen bestimmter Muser vielfach dadurch, daß man die Reaktion ihrer Ausgabe-Einheiten in Bezug auf ein bestimmtes Eingabe-Muster beobachtet und dabei die Abweichung von der gewünschten Ausgabe festhält. Diese Differenz wird dann wiederum als eine Art zweites Eingabe-Muster benutzt, das nunmehr in Gegenrichtung durch das Netz wandert und es zu neuen, internen Anpassungen der Gewichte der einzelnen Verbindungen veranlaßt. Die Anpassungen erfolgen dabei so, daß die beobachteten Abweichungen zwischen Aussage-Soll und -Ist schrittweise minimiert werden.

Daß die geschilderten Prozesse des automatischen Lernens keine theoretische Spielerei sind, belegt Fahlmans Aussage, auf diese Weise seien bereits optimale Filter entstanden, die zur klaren Unterscheidung zwischen zwei vertauschten und einander obendrein noch sehr ähnlichen Signalen dienten.

Ein anderes Netz, das nach dem beschriebenen Vorwärts-Rückwärts-Lernverfahren arbeitet, lernte im Zuge eines Trainings sozusagen vorzulesen. Denn es kann aus Gruppen von Buchstaben, die man ihm eingibt, passende Steuersignale für eine Sprachsynthese-Einheit, erzeugen und dabei sogar eine Reihe von Ausnahmen beachten, die die allgemeinen englischen Aussprache-Regeln fallweise außer Kraft setzen.

Aus dem Erlernten die Antwort ableiten

Bemerkenswert ist aber auch noch ein Netz, das in fünf Schichten strukturiert ist und dem man in der Trainings-Phase 100, eine große Familie betreffende, Aussagen in Form "Peters Vater ist Klaus" vorsetzte. Dabei lernte dieses Netz nun nicht etwa nur, zu den beiden ihm jeweils beigebrachten Eingangs-Werten wie "Peter" und "Vater" den erlernten korrekten Ausgabe-Wert "Klaus" zu finden, sondern auch noch, sich im verwickelten Familien-Stammbaum selbsttätig zurechtzufinden. Es konnte später nämlich auch noch Fragen wie etwa "Marias Schwester ist??" korrekt mit "Anna" beantworten, obwohl es zuvor nie expressis verbis die entsprechende Verwandtschafts-Beziehung gelernt hatte; es mußte sich die Antwort hier also selber aus dem Erlernten herleiten.

Noch erstaunlicher ist aber, daß dieses Netz im Laufe seines Lernens selbsttätig Eigenschaften wie "alt" oder "Italiener" von anderen zu unterscheiden gelernt hatte; das nämlich sah man, als man die Aktivitätsmuster der versteckten Einheiten einzeln beobachtete. Wobei hier der Klarheit halber nochmals festgehalten sei, daß in der Lernphase niemals die Rede war von Begriffen wie "alt" oder "Italiener".

Auf dem Weg zum optimalen Lernen

Lernende Netze leiden heute noch an dem geringen Tempo, in dem sie ihre internen Gewichte schrittweise so anpassen, daß zu den jeweiligen Eingabe-Mustern schließlich die richtigen Ausgabe-Signale erzeugt werden. Außerdem besteht immer wieder die Gefahr, daß sie bei dieser schrittweisen Anpassung in einer Scheinlösung hängenbleiben, die man sozusagen als "lokales Minimum" bezeichnen kann: es sieht dabei alles so aus, als würde jede Änderung des schon erreichten Zustands die Qualität des "Erlernten" wieder verschlechtern. Doch in Wahrheit würde, durch umfangreiche Variationen der schon erlernten Gewichte jenseits dieser Verschlechterung der Weg frei sein zu einem viel besseren Zustand.

Mit Blick auch auf das erwähnte "lokale Minimum" wurden in den letzten Jahren verschiedene Typen Netze erdacht, die mit neuartigen Techniken des Lernens arbeiten; dabei ändert dann beispielsweise jeder Knoten, in Abhängigkeit vom Zustand der anderen Knoten, seinen eigenen Schalt-Zustand so, daß das gesamte Netz rasch dem angestrebten zu erlernenden End-Zustand näherkommt. Und damit dabei nun keine Zustände fixiert werden, die nicht wirklich das Optimum an "Lerneffekt" repräsentieren, wird außerdem eine Art zusätzlicher Erregung eingeführt, die Änderungen über einen nur schein-optimalen Lern-Zustand, also über das lokale Minimum hinaus möglich machen.

Trennung von Bild und Hintergrund möglich

Ein lokales Minimum kann man sich bildlich als flache Senke an einem Berghang vorstellen; gerät eine zu Tal gleitende Kugel dort hinein, bleibt sie liegen, ohne je wirklich bis ins Tal zu gelangen. Doch stellt man sich statt der Kugel einen hüpfenden Ball vor, der erregt auf- und ab vibriert, so kann dieser dank seiner Anregung der lokalen Senke wieder entkommen und am Ende doch das Endziel seines Wegs - oder hier eben das Lernziel des Netzes - erreichen.

Diesen Vorgang des Lernens kann man auch gut durch das Analogon einer langsam kristallisierenden Metall-Schmelze illustrieren, die erst stark erhitzt, beziehungsweise erregt wird und somit am Anfang einen hohen Grad an Homogenität erreicht. Dann aber kühlt man sie sanft und langsam ab, um am Ende ein völlig gleichmäßiges Kristallgitter zu erzielen. Man hat also anfangs quasi stark hüpfende Bälle, die lokalen Senken sicher entgehen, und am Ende "kühle", kaum mehr erregte Kugeln, die ihren endgültigen Platz im Tale dann nicht mehr versehentlich zu verlassen drohen.

Lernende Systeme mit schrittweise abklingender Erregung werden in der Fachwelt als Boltzmann-Netze bezeichnet; ihr Name ehrt einen österreichischen Physiker, der sich viel mit Energieproblemen befaßt hat. Mit ihnen konnten bereits Aufgaben der Trennung von Bild und Hintergrund gelöst werden und es laufen auch Versuche, sie der symbolischen Datenverarbeitung nutzbar zu machen.

Netze wieder eines etwas anderen Typs haben sich inzwischen auch schon bei der bekannten Optimierungsaufgabe bewährt, den kürzesten Weg zum Bereisen einer gewissen Zahl von Städten zu finden. Denn diese sogenannten Hopfield-Netze sollen bereits laut Fahlmann "sehr schnell ziemlich gute Lösungen" finden. Auch sie sind übrigens mit Mechanismen zum Vermeiden lokaler Minima ausgestattet.

Neuronale Netze arbeiten nach einfachen Prinzipien

Wie hochentwickelte Neuronale Netze heute konkret arbeiten, läßt sich abschließend nochmals am Beispiel einer lernenden Konfiguration des Boltzmann-Typs beschreiben. Dabei fällt vor allem auf, daß die ganze Sache eigentlich überraschend einfach über die Bühne geht.

Die Boltzmann-Maschine unseres Beispiels soll über Eingabe- und über Ausgabe-Einheiten verfügen und die Aufgabe haben, bestimmte Eingabe-Muster korrekt in bestimmte andere Muster auf der Ausgabe-Seite umzuwandeln. Dazu wird sie auf der Eingabe-Seite zunächst mit einer gewissen Anzahl der zu lernenden Muster versorgt.

Im Zuge dieser Lernphase soll das Boltzmann-Netz selbsttätig seine internen Gewichte schrittweise so adjustieren, daß später immer dann die korrekten, korrespondierenden Ausgabe-Muster erscheinen, wenn man ihm erneut eines der bekannten Eingabe-Muster vorlegt und ihm überdies noch etwas Zeit gegeben hat, nach einem Zustand des endgültigen Minimums zu suchen; Zeit also, um sozusagen nach anfänglicher Erregung schrittweise abzukühlen. Außerdem sollen die "erlernten" internen Gewichte aber auch noch sicherstellen, daß das Netz selbst bei Vorlage eines ihm zuvor nie präsentierten Eingabe-Musters noch zu einer sozusagen "sinnvollen", zum zuvor Gelernten logisch passenden Aussage seiner Ausgabe-Einheiten gelangt.

Abkühlungsvorgang im Lernzyklus

Der Boltzmann-Lernzyklus umfaßt zwei als "positive" und "negative" Phasen bezeichnete Abschnitte, auf die jeweils Anpassungen der Gewichte folgen. Dabei wird während der positiven Phase der gesamte Satz von Eingabe-Ausgabe-Muster-Paaren durchlaufen, wobei die Ein-Ausgabe-Einheiten jedesmal auf die entsprechenden festen Werte eingestellt werden und das Netz dann die beschriebene Art von Abkühlungsvorgang durchläuft. Hat das Netz in dieser Phase seinen Gleichgewichts-Zustand - also quasi das absolute Minimum - schon fast erreicht, so läßt man es dann noch einige weitere Zyklen durchlaufen und beobachtet dabei für jede einzelne Verbindung zwischen je zwei Knoten, wie oft beide Knoten zur gleichen Zeit aktiviert werden. Daraus wiederum wird für jede Verbindung ein Wert p(+) errechnet, der angibt, in wieviel Prozent der Gesamt-Betriebszeit die Endknoten der jeweiligen Verbindung gleichzeitig aktiv sind.

Die negative Phase entspricht praktisch der positiven, doch werden hier jetzt nur die Eingangs-Knoten auf feste Werte eingestellt; die Ausgangs-Einheiten hingegen können beliebige Werte annehmen. Man erwartet aber natürlich für den Fall eines perfekt verlaufenden Lernprozesses, daß die Ausgangs-Einheiten praktisch die gleichen Zustände annehmen, wie in den vergleichbaren Situationen während der positiven Phase. Außerdem wird in der negativen Phase erneut - und auf sinngemäß gleiche Weise wie p(+) - ein Wert errechnet, der auch wieder für jede Verbindung angibt, wie häufig ihre beiden Knoten gleichzeitig aktiv sind; er heißt p(-).

Sollte sich nun zeigen, daß p(+) und p(-) - wider Erwarten - noch voneinander abweichen, so kann man die Situation noch verbessern, indem man das Gewicht der entsprechenden Verbindung gezielt um einen Betrag ändert, der proportional zu der Differenz zwischen p(+) und p(-) ist.

Schon erfolgreich in der Spracherkennung

Zwar weichen die praktischen Versuche in ihren bisherigen Ergebnissen noch deutlich vom Geschehen in jenem Ideal-Prozeß ab, der hier knapp dargestellt wurde, was übrigens auch oft mit der vielfach zu kleinen Zahl von konkreten Eingaben zusammenhängt. Doch immerhin wurden Boltzmann-Maschinen schon erfolgreich im Bereich Spracherkennung erprobt und ihre Einfachheit läßt für die Zukunft den Bau schneller Chips erwarten, die viele Knoten so eines Netzes in sich vereinen. Wobei an dieser Stelle noch notiert sei, daß die Arbeiten an der Carnegie-Mellon-Universität ja nicht allein vom Pentagon und verschiedenen amerikanischen Unternehmen, sondern auch von der Münchner (Chip-) Firma Siemens gefördert werden.

Die aktuellen Forschungen im Bereich neuronaler Netze haben laut Fahlmann heute vor allem das Ziel, noch schnellere Methoden des Lernens zu entwickeln. Und die wiederum sollen die Tür öffnen zu konkreten Versuchen mit umfangreicheren Netz-Strukturen als den heutigen, wobei es längst keine schiere Utopie mehr ist, an Konfigurationen mit Millionen modifizierbarer Verbindungen zu denken.

Vielleicht versuchen diese Systeme dann einmal, tatsächlich ein Kleinkind zu übertrumpfen.