DAS Diskret-Allgemeine Schwellenelemente

Jürgen Gerdes und Dietrich Dörner (1988-2000):
DAS Diskret-Allgemeine Schwellenelemente – Ein Programm zur Konstruktion und Simulation neuronaler Netzwerke.

Download


Viola Hämmer und Johanna Künzel (2003):
DAS – Students Model Neural Networks.
(Posterbeitrag auf der ICCM-5 2003)

Dietrich Dörner, Christina Bartl, Frank Detje, Jürgen Gerdes, Dorothée Halcour, Harald Schaub und Ulrike Starker (2002): Die Mechanik des Seelenwagens: eine neuronale Theorie der Handlungsregulation.

Dietrich Dörner und Jürgen Gerdes (2001): Neuronale Netze (Poster).

Jürgen Gerdes und Dietrich Dörner (2000):
Wahrnehmung als neuronaler Prozeß.
(Posterbeitrag auf der 3. Tübinger Wahrnehmungskonferenz).

Dietrich Dörner (1974): Die kognitive Organisation beim Problemlösen: Versuche zu einer kybernetischen Theorie der elementaren Informationsverarbeitungsprozesse beim Denken.


Viola Hämmer und Johanna Künzel: Einführung

DAS steht für Diskret Allgemeine Schwellenelemente. Dabei bedeutet diskret, daß das Programm taktweise abläuft, es also aufeinanderfolgende diskrete Zustände gibt. Allgemein, weil jedes Neuron in DAS (fast) jede Art von denkbaren Neuronen simulieren kann, und schließlich Schwellenelemente, weil laut Dertouzos Neuronen eine besonderer Art von Schaltelementen sind. Dieses Programm dient zur Erstellung und Simulation neuronaler Netze.

Theoretische Hintergründe von DAS

Neuronen:

Verknüpfungen

Ein Neuron in DAS hat vier mögliche Arten von Input:

Die Stärke der Verknüpfung zwischen zwei Neuronen wird durch die Größe des gelben Balkens auf dem Verknüpfungspfeil dargestellt. Wenn der gelbe Balken (wie im obigen Bild) maximal ist, dann ist auch die Verknüpfungsstärke maximal.

Dazu gehören immer auch die entsprechenden Typen von Neuronen, nämlich:

Übertragungsstärke 1

Der Aktivator im Bild oben ist aktiv ...

Übertragungsstärke 2

... und aktiviert gleichzeitig den Assoziator und zwei weitere Neuronen.

Übertragungsstärke 3

Die Verknüpfungsstärke zwischen den beiden Neuronen im Bild unten wird erhöht.

Neuronen haben jeweils drei Parameter: eine Schwelle (der Input muß den Betrag der Schwelle übersteigen, um das Neuron zu aktivieren), ein Maximum (maximale Aktivität des Neurons, stärker kann ein Neuron nicht aktiviert werden) und einen Verstärkungsfaktor (um diesen Faktor wird der Input im Neuron verstärkt (somit ist der Output dieses Neurons um diesen Faktor stärker als der Input). Die Höhe des gelben Balkens im Neuron stellt dar, wie aktiv dieses Neuron im Moment it. Ist der gelbe Balken nicht zu sehen, ist das Neuron im Moment nicht aktiv.

Verknüpfungen zwischen Neuronen haben ein bestimmtes Gewicht, das zwischen 0 und 1 liegt. Bei einem Gewicht von 1 wird der Input von Neuron a über die Verknüpfung voll auf Neuron b übertragen, bei einem Gewicht vom 0.5 wird nur 0.5*Input übertragen, ...

Ein Neuron kann nicht nur jeweils ein anderes Neuron aktivieren, es kann auch ein ganzes Feld von Quads aktivieren; genauer gesagt kann es in einem ganzen Feld von Neuronen jeweils bestimmte Arten von Neuronen aktivieren, nämlich z.B. alle Sub-Verbindungen (wenn man z.B. nach allen Teilen eines Ganzen sucht), alle Ret-Verbindungen, ...

Die Oberfläche von DAS:

Die Oberfläche von DAS

Beim ersten Öffnen von DAS erscheint zunächst ein schon vorgegebenes Neuronennetz. Wenn man ein eigenes Netz bauen möchte, muß man zuerst eine Datei für dieses Netz anlegen. Dies geschieht, indem man im Menü "Datei" auf den Punkt "Neu" klickt. Dann erscheint folgendes Feld:

Datei öffnen

Nun muß ein Dateiname eingegeben werden, z.B. "Versuch.das". Wenn dann auf "Öffnen" geklickt wird, wird eine neue Datei mit dem Namen "Versuch.das" angelegt und geöffnet.

Um das Hauptfeld näher heranzuzoomen wird die Scrolleiste unterhalb des grauen Feldes rechts unten betätigt.

Nun kann mit der Erstellung von Neuronennetzen begonnen werden.

Der Button "Neu" dient zur Erstellung neuer Neuronen. Welche Art von Neuronen dabei erstellt wird, hängt ab von der Einstellung im oberen der beiden Auswahlfeldern rechts oben. Im Moment ist hier "Aktivator" eingestellt. Von den Möglichkeiten in diesem Feld wurden schon Aktivator, Inhibitor, Dissoziator, Assoziator und Quad vorgestellt. "Unit" dient zur Erzeugung eines Neuronenfeldes (in diese Neuronenfelder können nur Quads aufgenommen werden), und Aktsub, Aktsur, Aktpor und Aktret dienen der Aktivierung der entsprechenden Neuronen eines Quads. Nur wenn die entsprechenden Neuronen eines Quads zu dem Zeitpunkt, zu dem sie gebraucht werden, voraktiviert sind, leiten sie Erregung weiter!

Der Button "Verbinden" dient dazu, Neuronen miteinander zu verknüpfen. Welcher Art diese Verknüpfungen sind, hängt von der Einstellung im zweiten Auswahlfeld oben rechts ab (im Bild ist hier "Standard" zu lesen). Hier gibt es die Wahlmöglichkeiten Standard (Verbindung zwischen zwei Neuronen), por, ret, sub, sur (Verbindungen, die nur von Quads aus zulässig sind, zur Bedeutung siehe Theorieteil), unit (wenn man ein Quad mittels der Verbindung "unit" mit einer Unit verbindet, wird das Quad in die Unit aufgenommen) und aktiv (nur von Quads aus zulässig). "Aktiv" ist ein zusätzlicher Ausgang aus Quads, der den Output des Quads sehr hoch verstärkt, so dass "Aktiv" immer einen sehr hohen Wert hat – es sei denn, die Aktivität des Quads liegt bei Null. Der Zweck von Aktiv ist es, mit seiner Hilfe feststellen zu können, wie viele Quads in einem Neuronennetz noch aktiv sind.

Der Button "Eigenschaften" dient zum Anzeigen der Eigenschaften eines Neurons, einer Verknüpfung oder des Hintergrundes. Wenn man sich die Eigenschaften eines dieser Elemente anzeigen lassen möchte, muß man zuerst auf "Eigenschaften" klicken, und dann auf das entsprechende Element. Im dann erscheinenden Feld kann man Eigenschaften verändern und mit O.K. die Änderungen bestätigen bzw. das Feld schließen. Die Lernrate eines Neurons ist die Rate, mit der das Gewicht einer Verknüpfung zu einem anderen Neuron steigt, wenn diese Verknüpfung aktiviert wird. Entsprechend ist die Vergessensrate das Absinken der Verknüpfungsstärke bei Nichtaktivierung.

Wenn man auf den Button "Info" klickt, werden im grauen Feld rechts unten Informationen über das Neuron angezeigt, auf das man klickt. Wenn man dann noch auf ein zweites Neuron klickt, werden nicht nur Informationen über das zweite Neuron, sondern auch über die Verknüpfung (falls vorhanden) zwischen diesen beiden Neuronen angezeigt.

Der Button "Sichtbarkeit" dient zum sichtbar/unsichtbar machen von Verknüpfungen. Wenn im Feld neben "sichtbar" kein Häkchen ist, dann wird durch einen Klick auf den Button "Sichtbar" und danach auf eine Verknüpfung diese Verknüpfung unsichtbar (v.a. bei großen Neuronennetzen sehr praktisch). Wenn sich dagegen im Feld neben "sichtbar" ein Häkchen befindet, werden nach einem Klick auf "Sichtbarkeit" und einem darauf folgenden Klick auf den Hintergrund oder eine Unit die versteckten Verknüpfungen wieder sichtbar.

Mit dem Button "Löschen" können sowohl Neuronen als auch Verknüpfungen gelöscht werden. Auch hier muß wieder zuerst auf den Button "Löschen" und dann auf das entsprechende Objekt geklickt werden.

Der Button "Num" dient zur schnellen Benennung von Neuronen. Wenn man zuerst auf "Num" und dann auf ein Neuron klickt, wird dieses Neuron mit einer Nummer benannt.

Der Button "Verschieben" dient dazu, Neuronen räumlich neu anzuordnen. Auch hier muß wieder zuerst auf den Button geklickt werden, dann kann das Neuron verschoben werden.

Auch der Button "Ausrichten" dient zur räumlichen Platzierung der Neuronen auf dem Bildschirm. Hier werden die Neuronen allerdings nach vorgegebenen Mustern neu positioniert.

Mit dem Button "Kopieren" kann man ein Neuron samt seiner Verknüpfungen kopieren. Dazu erst auf "Kopieren" klicken, dann auf das zu kopierende Neuron und dann auf den Bereich des Bildschirmes, wo das neue Neuron hin soll.

"Werte ändern" dient zur Veränderung der zu den Neuronen gehörigen Werte. Dazu muß zuerst auf "Werte ändern" geklickt werden, dann muß der zu ändernde Wert angegeben werde (z.B. Aktivität muß angekreuzt werden), in die Zeile Wert muß der neue Wert eingegeben werden, und dann muß auf das entsprechende Neuron geklickt werden.

Simulation von Erregungsausbreitung

Wenn ein Neuronennetz erstellt wurde, dann kann man die Erregungsausbreitung simulieren. Dazu muß zuerst in der Task-leiste auf "Run" gegangen werden, dann dort auf das Feld "Start" klicken. Damit wird das Neuronennetz in seinen Anfangszustand versetzt, d.h. die Anfangswerte der Neuronen werden eingelesen.

Mit "Run/Step" kann man dann Schritt für Schritt die Erregungsausbreitung im Neuronennetz verfolgen.

Mit "Run/Timer" läuft das Neuronenetz für einige Zeit, so lange, bis keine Aktivität mehr da ist.

Jürgen Gerdes 5/2003