Neuronale Netzwerke

Werbung
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
Herunterladen