Seit dem letzten Artikel hier ist ja ein wenig Zeit vergangen, was ich mit einer Menge zu erledigender Aufgaben entschuldigen möchte. Jetzt ist aber wieder Zeit, und die möchte ich gleich für einen neuen Artikel benutzen. Heute soll es um künstliche Intelligenz gehen, beziehungsweise um eine spezielle Form davon: die künstlichen neuronalen Netze.
Künstliche Intelligenzen (abgekürzt KI) sind ja ein beliebtes Thema in Science-Fiction-Literatur und -Filmen, wobei es meist (aus mir unerfindlichen Gründen) früher oder später dazu kommt, dass die KI Allmachtsphantasien entwickelt oder auf andere Art und Weise “den Verstand verliert”. Die KI in derartigen Werken wird meist als sehr weit fortgeschritten und dem Menschen mindestens ebenbürtig, wenn nicht sogar überlegen, dargestellt; was dabei aber meist zu kurz kommt, ist eine Beschreibung der technologischen Grundlage dieser künstlichen Intelligenz. Ein geeigneter Kandidat für derartig unberechenbare Intelligenzen sind nun eben die künstlichen neuronalen Netze, da sie dem menschlichen Gehirn nachempfunden sind und ähnlich funktionieren. Aber von vorn.
Unser Gehirn besteht zum überwiegenden zu einem großen Teil aus Nervenzellen oder Neuronen, schätzungsweise einige 100 Milliarden an der Zahl. Eine Nervenzelle besteht hauptsächlich aus drei wichtigen Bestandteilen: dem Zellkörper, den Dendriten und dem Axon (siehe Bild). Der Zellkörper ist der zentrale Bestandteil der Zelle und enthält alle wichtigen Bestandteile, die zum Überleben und Funktionieren der Zelle wichtig sind. Die Dendriten sind gewissermaßen die “Eingänge” der Zelle – über sie werden Reize von anderen Nervenzellen an den Zellkern Zellkörper übertragen. Das Axon ist schließlich der “Ausgang” der Zelle, da die Zelle hierüber Reize an andere Neuronen übertragen kann (die Axonterminale in der Abbildung sind über Synapsen mit Dendriten weiterer Zellen verbunden).
Aufbau eines Neurons (Quelle: Wikipedia)
Ein Neuron funktioniert nun folgendermaßen: über die Dendriten werden von anderen Nervenzellen oder auch Sinneszellen eingehende Reize beziehungsweise Signale an den Zellkörper, konkret: an den Axonhügel (den Ansatz des Axons) weitergeleitet. Dadurch baut sich am Axonhügel ein sogenanntes Erregungspotential auf, also eine elektrische Spannung; (fast) gleichzeitig eingehenden Reize summieren sich hierbei auf. Übersteigt das aufsummierte Erregungspotential am Axonhügel eine bestimmte Schwelle (die folgerichtig als Schwellenpotential bezeichnet wird), wird ein Aktionspotential ausgelöst – man sagt, die Zelle feuert – und über das Axon an die verbundenen Dendriten und damit Nervenzellen verteilt (für die biologisch interessierten: die Reizübermittlung über das Axon und die Dendriten erfolgt elektrisch; zwischen diesen beiden Elementen werden die Reize über die Synapsen meist auf chemischem Weg übermittelt). Je kürzer ein Dendrit ist (also je näher sich seine Synapse am Zellkörper befindet), desto stärker ist auch das Signal, welches das Erregungspotential aufbaut. Noch einmal zusammengefasst: Reize werden über die Dendriten an den Zellkörper geleitet, wo sie sich aufsummieren; die Stärke der einzelnen Reize hängt von der Entfernung ihrer Ursprungssynapsen zum Zellkörper ab. Übersteigt die Summe der Reize einen gewissen Schwellwert, so wird über das Axon ein Signal (fester Stärke, das Aktionspotential) an die umliegenden Zellen weitergeleitet – die Zelle feuert. Das Zusammenspiel aller Neuronen im Körper, allen voran derer im Gehirn, stellt die Reiz- und Informationsverarbeitung dar, die allen Tieren zu eigen ist und von uns allgemein als “Denken” bezeichnet wird (wobei natürlich auch das gesamte vegetative
Nervensystem, also die automatisch ablaufenden Vorgänge wie Steuerung des Blutkreislaufes, Verdauung usw. über diese Reizübertratung gesteuert werden).
In den 40er und 50er Jahren des letzten Jahrhunderts (direkt in den Anfängen der Informatik selber!) kamen nun einige clevere Leute auf die Idee, diesen ausgeklügelten Mechanismus der Reizverarbeitung mit Hilfe der gerade aufkommenden Computertechnologie nachzubilden – das war die Geburtsstunde der künstlichen neuronalen Netze (kurz KNN). Im Prinzip ist ein KNN die Nachbildung eines Gehirns mit dem Ziel, die enormen Verarbeitungsfähigkeiten von Gehirnen im Computer nachzubilden. Mittlerweile gibt es die unterschiedlichsten Varianten derartiger künstlicher Netze; im Folgenden und den weiteren Artikeln werde ich das Prinzip im Allgemeinen sowie einige typische Vertreter näher beschreiben.
So wie die Neuronen die zentralen Bestandteile des Nervensystems sind, stellen künstliche Neuronen die Grundbausteine eines KNN dar. Im Prinzip sind Neuronen und künstliche Neuronen ähnlich aufgebaut; beide besitzen viele Eingänge für Reize (die Dendriten beim Neuron), einen Körper, welcher die Reizverarbeitung vornimmt (der Zellkörper) sowie einen Ausgang, über welchen das Ergebnis der Reizverarbeitung an andere (künstliche) Neuronen verteilt wird (das Axon im Neuron). Bildlich kann ein künstliches Neuron folgendermaßen dargestellt werden:
Ein künstliches Neuron (Quelle: Wikipedia)
Die Eingaben x1 bis xn entsprechen dabei den Dendriten im Neuron. Wir erinnern uns: die Länge eines Dendrits (die Entfernung seiner Synapse zum Axonhügel) bestimmt den Einfluss des Reizes, der über diesen Dendriten kommt, auf das gesamte Erregungspotential. Dies wird in einem künstlichen Neuron über die Gewichtung w abgebildet; je höher der Wert der Gewichtung, desto größeren Einfluss hat die Eingabe des zugehörigen Eingangs. Die Übertragungsfunktion in der Abbildung stellt gewissermaßen das Äquivalent zum Erregungspotential dar, da hier die ankommenden Signale entsprechend ihrer Gewichte aufsummiert werden. Der Schwellwert entspricht dementsprechend dem Schwellenpotential im biologischen Neuron und die Aktivierung beziehungsweise die Ausgabe stellt das Axon dar.
Eine Besonderheit stellt dagegen die Aktivierungsfunktion dar. Ein natürliches Neuron arbeitet nach dem Alles-oder-nichts-Prinzip, das heißt, dass bei Überschreitung des Schwellenpotentials ein festes, immer gleiches Aktionspotential erzeugt wird. Künstliche Neuronen können nach diesem Prinzip arbeiten, aber ebenso nach anderen; die Aktivierungsfunktion definiert hierbei, welche Ausgabe bei welcher Eingabe in Abhängigkeit des Schwellwertes generiert wird.
Eine häufig verwendete Aktivierungsfunktion ist eine Sprungfunktion, und zwar die sogenannte Schwellenwertfunktion. Diese bildet das Verhalten realer Neuronen nach, da eine konstante Ausgabe erzeugt wird, sobald die Eingabesignale den Schwellwert übersteigen. Weitere mögliche Aktivierungsfunktionen sind lineare und stückweise lineare Funktionen, deren Ausgabe lineare von der Eingabe abhängt (das heißt, bei doppelt so großem Eingabewert ist die Ausgabe auch doppelt so groß) und die ebenfalls relativ häufig verwendeten Sigmoidfunktionen mit einer ungleichmäßigen Abhängigkeit zwischen Eingabe und Ausgabe. Untenstehende Abbildungen zeigen drei mögliche Aktivierungsfunktionen anhand eines Funktionsgraphen; auf der x-Achse findet sich hierbei der aufsummierte und gewichtete Eingabewert, auf der y-Achse kann der zu dieser Eingabe generierte Ausgabewert abgelesen werden. Am Beispiel der Sprungfunktion bedeutet das, dass die Funktion solange den Wert 0 generiert, wie die Eingabe kleiner oder gleich 0 ist (siehe dazu auch die Anmerkung unter den Bildern); sobald die Eingabe aber größer als 0 wird, generiert die Funktion einen konstanten Wert von 1.
Aktivierungsfunktion: Sprungfunktion
Aktivierungsfunktion: stückweise linear
Aktivierungsfunktion: Sigmoid
In den drei Abbildungen ist jetzt jeweils der Schwellwert noch nicht berücksichtigt worden; dies lässt sich ziemlich einfach erreichen, indem die Kurve einfach nach links (niedrigerer Schwellwert) oder rechts (höherer Schwellwert) verschoben wird. Alternativ (mathematisch äquivalent) kann der Schwellwert natürlich auch einfach von der aufsummierten Eingabe abgezogen werden – das führt zum gleichen Ergebnis.
Es fällt übrigens auf, dass die Eingaben auch negativ sein können. In künstlichen Neuronen wird das erreicht, indem das Gewicht einer Eingabe ebenfalls einen negativen Wert erhält. Auch dafür gibt es eine Entsprechung in echten Neuronen, da bestimmte Synapsen nämlich ein hemmendes statt ein aktivierendes Potential hervorrufen können.
So, damit haben wir eine parallele zwischen biologischen und künstlichen Neuronen hergestellt (letztere können übrigens rein virtuell im Computer, aber auch als echte mechanische Bauteile existieren). In der Theorie könnte man sich nun vorstellen, dass einfach ganz viele künstliche Neuronen hergenommen und – ähnlich einem Gehirn – zusammengeschaltet werden können und schon hat man sich ein eigenes Gehirn gebaut. Ganz so einfach funktioniert das natürlich aber nicht; wie nun aber künstliche neuronale Netze genau eingesetzt (und vor allem, wie sie erzeugt) werden, erzähle ich im nächsten Artikel.
Kommentare (14)