Der Versuch ein Gehirn nachzubauen

Unterschied zwischen Gehirn und Maschine

Das biologische Gehirn arbeitet mit analogen Signalen, wohingegen die Computer mit diskreten Werten operieren, und die eingegebenen Informationen immer von Menschen sorgfältig vorbereitet werden müssen. Deshalb ist es unmöglich, dem Computer unscharfe Fragen zu stellen. (Beispiel Abb. 1).

Ein grosser Vorteil des menschlichen Gehirns besteht darin, dass es sein Wissen nach Inhalt abrufen kann, im Gegensatz zum Computer, der die Adresse kennen muss (scharfe Angabe), um auf den Speicherinhalt zugreifen zu können. Dem Menschen genügt ein einziges Stichwort, um das Richtige zu assoziieren.

Abb.1: Beispiel verkleckste Wörter: Die Wortinformation ist unscharf.

Abb. 1) Das Gehirn kann viele kleine Stücke seines Wissens und viele Randbedingungen parallel berücksichtigen. Die Identität des Buchstabens wird nicht nur von seiner Form, sondern auch von den restlichen Buchstaben des Wortes bestimmt. So kann der Mensch aus bruchstückhafter Information eine logische Verknüpfungen erstellen und Zusammenhänge erkennen. Diese Fahigkeit ansatzweise nachzuahmen versucht das NEURALE NETZ.

Idee

Das Gehirn soll in seiner Struktur und Arbeitsweise nachgebildet werden. Inputs sollen durch ein Netzwerk, den Neuronen, parallel verarbeitet werden können. Die Neuronen werden untereinander verbunden und die Signale gewichtet. Diese gewichteten Verbindungen werden aufgrund bestimmter Vorschriften verändert. Man nennt das auch Lernen, Selbstadaption oder Selbstorganisation. Das Wissen eines derartigen Netzwerkes wird also in erster Linie in diesen Verbindungen repräsentiert. (auch Konnektionismus genannt)

Der Aufbau neuraler Netze

Der Aufbau des Netzes und die Vorgabe der Anzahl Neuronen erfolgt meist vor dem Ablauf.,

d.h. das Netzt ist statisch. Um das Netz doch etwas flexibler und dynamischer zu machen, können die Verbindungen zwischen den Neuronen auf - oder abgebaut werden.

Abb. 2: Einfaches Netz

Wie dies geschieht, wird gleich erläutert.

Auf dem Bild ist die prinzipielle Struktur eines neuronalen Netzes dargestellt. Links befinden sich die Inputneuronenschicht, in der Mitte die sogenannten Hidden layers, rechts die Outputneuronenschicht. Es können auch mehrere hidden layers vorhanden sein.

Eine noch gültige Aufstellung gab Rumelhart:

1) Verarbeitungseinheiten (n Units) [u_i] i=1,..,n

2) Verbindung zwischen den Units (weights, Gewichte) [w_ij]

3) Aktivierungswerte der Units (state of activation)

4) Regel der Signalausbreitung durch das Netzwerk (rule of propagation)

5) Aktivierungsfunktion zur Bildung des Aktivierungswertes (activation function)

6) Outputfunktion zur Bildung des Ausgangssignals (output function)

7) Lernregel (learning rule)

8) Umgebung, in der das System arbeitet (environment)

Nun die einzelnen Punkte im Detail:

Abb.3: a_i(t)= Aktivierung; o_i(t) = Ausgangssignal; net_i = Netto-Input , i=1,..,n:= Anz.Neuronen; u_i:= Unit i

Also kann man zusammenfassend sagen, dass ein Netzwerk aus sehr vielen Units (Verarbei-

zungseinheiten) besteht, die Ein- und Ausgänge besitzen und untereinander verbunden sind.

Das Ausgangssignal eines Units ist zugleich das Eingangssignal für ein oder mehrere Units.

Ein Unit bildet aus den anliegenden gewichteten Eingangssignalen einen internen Wert, den AKTIVIERUNGSWERT der Unit. Zumeist werden die Eingangssignale mit den jeweiligen Gewichten multipliziert und aufsummiert. Dieser Wert wird über eine oder mehrere Funktionen verändert (UEBERBERTRAGUNGSFUNKTION) und durch die AUSGABE-FUNKTION an andere Neuronen weitergeleitet.

Für den Eingang des Neurons i erfolgt bei n ankommenden Signalen eine (gewichtete) Wertsummation neti:

net_i = Sum (j=1,..,n)w_ij *o_j , i=1,..n

Die Aktivierungsfunktion

DerAktivierungswert einer Unit u_i wird über die Funktion a_i(t) bestimmt. Oft ist diese Funktion die identische Abbildung vom Netto-Input (a_i=net_i, i=1,..n). Allgemein ist sie von vorhergehenden Aktivierungen und einem Satz von Parametern P abhängig. Bezeichne t einen Zeitpunkt, so ist die allgemeine Aktivierungsfunktion gegeben durch:

a_i(t) = f(a_i(t-1),a_i(t-2),.......,net_i(t),P) ,i=1,..,n

Dieses Miteinbeziehen früherer Aktivierungen geben dem Unit ein "Gedächtnis", mit dem Adaption (=lernen) modelliert werden kann.

Die Outputfunktion

Die Outputfunktion stellt nun sicher,dass erstens das Eingangssignal neti weitergeleitet wird und zweitens, dass es sich innerhalb gewisser Grenzen hält, um die anderen Signale des Netzwerks nicht zu verfälschen. Typischerweise werden sigmoide Funktionen verwendet.

Zum Beispiel die Tangens-Hyperbolicus Funktion. Das heisst, die ankommenden Signale werden auf Werte im Intervall [-1,1] begrenzt. Es gilt: o_i(net_i), i=1,..,n.

Sind die Units linear, so findet gar keine Verarbeitung der Signale statt. Hier gilt die Funktion:

(o_i = net_i).

Sind die Units binär, so sind nur zwei Signale möglich: 0 und 1.

Unit-Typen

Hier seinen nur einige erwähnt:

1)lineare Units

2)lineare Schwellwertunits

3)Brain State in a Box (BSB)

4)thermodynamische Units

5)Grossberg Units

6)Interactive Activation Units (IAC)

7)Feldmann- und Ballard- Units

8)Sigma-Pi-Units

9)Sigmoide Units

ausführliche Information können in Monika Köhles Buch: Neurale Netze gefunden werden.

Der Lernprozess im neuralen Netz

Ziel:

Gespeichertes "Wissen ", das durch Lernen an Mustern erworben wurde, soll auf neue, aber ähnliche Muster angewandt werden. Ein einfaches Beispiel: Lernt man , dass Schimpansen gerne Bananen fressen, so ist es wahrscheinlich, dass Gorillas gerne Bananen fressen. Ohne es

explizit gelernt zu haben, generalisiert man über das Konzept Affe, und diese Generalisierung wirkt sich auch bei Gorillas aus. Man unterscheidet zwischen zwei Arten von Lernen:

a)Das überwachte Lernen

Dem neuralen Netz werden Muster vorgelegt. Das heisst, die korrekten Einstellungen (Gewichte) eines Musters werden mit dem Ausgabewert des Netzes verglichen. Das heisst, dass das Netz das Muster und die zugehörige Klasse kennt. Die Differenz zwischen dem Ausgabewert und dem Soll- Werten des i-ten Ausgabeneurons wird mit der Funktion:

Error(i) = (soll_i - o_i)^2 , mit o_i:= Istwert

beschrieben. Bei n Ausgabeneuronen ergibt sich:

Error_p = 1/2*Summe(soll_i - o_i)^2 , i=1,..,n

Soll ein und dasselbe Netz mehrere Muster lernen, so werden die Gewichte zwischen den Units geändert, und zwar viele Gewichte um einen kleinen Betrag. Ist das Gewicht Null, so ist die Neuronenverbindung "abgebaut". Jedes zu erlernende Muster trägt ein wenig zur Gewichtsänderung bei, wodurch auch andere, in denselben Units (und anderen Gewichten) dargestellte Muster in ihrer Repräsentation verändert werden. Findet das Netz eine stabile Darstellung, d.h. die Repräsentation eines Musters führt nur mehr zu geringfügigen Aenderungen, so stellt sich der Generalisierungseffekt ein. Je grösser der Zusammenhang zwischen den Mustern, desto stärker ist dieser Effekt.

Also bei m Mustern:

Error_p = 1/2*(Summe(Summe(soll_i - o_i)^2 , i=1,..,n)j=1,..,m) , (Doppelsumme)

Dieser Fehler soll nun minimiert werden.

b) nicht überwachtes Lernen (clustering)

Dem Netz werden nur Muster vorgelegt, ohne zugehörige Klasse. Das Netz soll nun aufgrund der in den Mustern vorhandenen Gemeinsamkeiten diese selbständig entsprechenden Klassen zuordnen. Das Finden und bilden von Klassen ist Aufgabe des Netzes.

Wie werden die Gewichte nun verändert? - Lernregeln

1) Hebb-Regel

Idee: Wenn Unit a und b zugleich (wiederholt) stark aktiviert sind, so erhöhe die Stärke ihrer Verbindung.

Es gilt: delta w_ij= k*a_i*o_j

k:= Lernrate, a_i:= Aktivierung des Neurons i, o_j:=Ausgangswert des Neurons j.

D.h. Das Signal geht von Neuron j zum Neuron i.

Diese Regel findet bei beiden Arten von Lernen Anwendung.

2) Delta-Regel

Diese Regel ist eine Erweiterung der Hebb-Regel. Sie kann allerdings nur für zweischichtige Neuronen verwendet werden, da der gewünschte Output nur für Output- Units beschrieben ist. Hier wird zusätzlich die Differenz von Output und Soll-Wert der Netzausgabe mitberücksichtigt.

Es gilt: delta w_ij= k*(soll_i - o_i)*o_j

k:= Lernrate, (soll_i - o_i):= Differenz zwischen Ausgabewert und Sollwert des Neurons i, o_j:=Ausgangswert des Neurons j.

D.h. Das Signal geht von Neuron j zum Neuron i.

3) Back Propagation

Hier wird im Gegensatz zur Deltaregel das Fehlersignal zurück propagiert zu allen Units.

Zuerst wird dem Netz ein Muster präsentiert und der Outputwert berechnet. Dann erfolgt die Gewichtsveränderung, die abhängig ist vom Grad der Falschheit der Netzantwort. Die Fehlerbestimmung erfolgt schichtweise (vom Output-Layer zum Input-Layer). Ist die Ge-wichtsveränderung erfolgt, so kann dem Netz ein neues Muster vorgelegt werden. Der Fehler wird somit verringert. Ist er entsprechend klein geworden, so gilt der Lernvorgang als beendet.

Abb. 4: Der Output des Netzes wird mit dem gewünschten (Soll-Wert) verglichen und aus deren Differenz ein Fehlersignal gebildet. Dieses wird an die Units des nächsten Hidden-Layer

gesendet, dort neu berechnet und dann an den nächsten, weiter beim Input liegenden Layer geschickt. Abhängig vom Fehlersignal werden die Gewichte verändert.

Diverse Fragen, download u.s.w.

ftp://ftp.sas.com/pub/neural/FAQ.html

Uebersicht über alle Seminararbeiten