Aufwärts
Info
Dokumentation
Beispiele
Downloads

Testbeispiele:
Lernverhalten verschiedener Netze mit unterschiedlichen Topologien und Aktivierungsfunktionen

Aktivierungs-Funktion (Topologie)

zu erlernende logische Funktion

AND

NAND

OR

XOR

IDENT

ohne Bias

mit Bias

ohne Bias

mit Bias

ohne Bias

mit Bias

ohne Bias

mit Bias

ohne Bias

mit Bias

Standard 1 (2-1)

std_a21

std_a21b

x

std_n21b

x

std_o21b

x

x

x

x

tanh (2-1)

tanh_a21

tanh_a21b

x

x

x

x

x

x

x

x

tanh (2-2-1)

tanh_a221

x

x

x

tanh_o221

x

tanh_x221

x

x

tanh_i221b

tanh (2-2-2-1)

x

x

x

x

x

x

tanh_x2221

x

x

x

logistische (2-1)

log_a21

log_a21b

x

x

x

x

x

x

x

x

log. (2-2-1)

x

log_a221b

x

log_n221b

x

x

x

log_x221b

log_i221

x

log. (2-2-2-1)

x

x

x

x

x

x

x

x

log_i2221

x

Bemerkungen

Logikfunktion:
Ist die vom Netz zu erlernende logische Verknüpfungsfunktion.

Topologie:
Gibt die Anzahl der Neuronen je Schicht für alle vorhandenen Schichten an.

BIAS/Schwellwerte:
Entweder das Netz verfuegt über BIAS-Neuronen, deren Gewichte sich im
Wertebereich der Startgewichte oder alle Neuronen besitzen einen einheitlichen,
konstanten Schwellwert. Die Gewichte der BIAS-Neuronen sind verschieden,
zufällig und konstant.

Startgewichte (SG):
Gibt den Wertebereich an, in dem sich die Gewichte bei der Initialisierung
bewegen sollen.

Durchschleifen:
Gibt an, ob die Ausgabewerte der Inputschicht mit deren Eingabewerte identisch
sind oder ob sich die Ausgabewerte wie bei jedem anderen Neuron aus der
Aktivierungs- und Outputfunktion berechnen.

Nullen erlaubt:
Gibt an, ob als Ausgabewert eines Neurons der Inputschicht 0,0 möglich ist
oder ob in diesem Fall der Ausgabewert auf 0,1 gesetzt wird.

Aktivierungsfunktion (fact):
Die Funktion, mit welcher der Nettoinput verrechnet wird

Outputfunktion (fout):
Die Outputfunktion dient dazu, fact zu "strecken", dh, den Wertebereich der
möglichen Ausgabewerte der Neuronen so zu vergrößern, daß sich die
erwünschten Ausgabewerte in diesem befinden.

Back:
Kennzeichnet die Methode der Fehlerrückreichung und Gewichtskorrektur.

Fehler:
Meint die maximale mittlere Fehlerquadratsumme der letzten 100 Lernzyklen.
Die mittlere Fehlerquadratsumme bezieht sich auf die Fehlerquadrate aller
Outputneuronen aller Trainingssätze eines Lernzyklus.

Testbeispiele

std_a21.net 
Logikfunktion:      AND
Topologie:            2 -1
BIAS-Neuron:       nein            ->             einheiliche Schwellwerte:             0,1
SG:                        0,2 .. 0,4
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       Standard 1 (Rückgabewert 0 oder 1)
fout:                       fact
Back:                    Delta-Regel

Lernzyklen

1

2

3

10

20

Lernfaktor

0,2

0,2

0,2

0,2

0,2

Fehler

0,75

0,50

0,25

0,75

0,00

Bemerkungen:
Sehr schneller Lernerfolg.

std_a21b.net
Logikfunktion:      AND
Topologie:            2-1
BIAS-Neuron:       ja
SG:                        0,2 .. 0,4
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       Standard 1 (Rückgabewert 0 oder 1)
fout:                       fact
Back:                    Delta-Regel

Lernzyklen

1

2

5

Lernfaktor

0,2

0,2

0,2

Fehler

0,25

0,00

0,00

Bemerkungen:
Sehr schneller Lernerfolg.

tanh_a21.net
Logikfunktion:      AND
Topologie:            2-1
BIAS-Neuron:       nein            ->             einheiliche Schwellwerte:             0,1
SG:                        0,2 .. 0,4
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel 

Lernzyklen

1

50

5T

50T

100T

Lernfaktor

0,2

0,2

0,2

0,1

0,05

Fehler

0,27

0,27

0,25

0,104

0,082

Bemerkungen:
In dieser Konfiguration lernt das Netz zwar, jedoch nur bis zu einem
gewissen Grade.
Ein Mindestfehler ist nicht zu vermeiden.
Ausgabewerte unter 0,22 müßte man als 0 und Ausgabewerte über
0,70 als 1 gelten lassen.

tanh_a21b.net
Logikfunktion:      AND
Topologie:            2-1
BIAS-Neuron:       ja
SG:                        0,2 .. 0,4
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel

Lernzyklen

1

5

50

500

5T

50T

100T

150T

Lernfaktor

0,2

0,2

0,2

0,2

0,2

0,2

0,1

0,01

Fehler

0,158

0,207

0,224

0,23

0,233

0,233

0,111

0,11

Bemerkungen:
Analog wie bei tanh_a21.net.

tanh_a221.net
Logikfunktion:      AND
Topologie:            2-2-1
BIAS-Neuron:       nein            ->             einheiliche Schwellwerte:    0,1
SG:                        0,2 .. 0,4
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel 

Lernzyklen

1

100

1T

10T

50T

100T

200T

300T

400T

600T

Lernfaktor

0,2

0,2

0,2

0,2

0,2

0,1

0,1

0,05

0,05

0,01

Fehler

0,254

0,254

0,152

0,141

0,165

0,097

0,097

0,087

0,087

0,081

Bemerkungen:
Analog wie bei tanh_a221.net.
Mit folgenden Veränderungen erhält man jedoch ein erstaunliches gutes Ergebnis:
SG:                       -2 .. +2
Schwellwerte:      0,5

Lernzyklen

1

100

200

300

Lernfaktor

0,3

0,3

0,3

0,3

Fehler

1,526

2,83

4,7*E-10

7,1*E-19

log_a21.net
Logikfunktion:      AND
Topologie:            2-1
BIAS-Neuron:       nein            ->             einheiliche Schwellwerte:             0,1
SG:                        -2 .. +2
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       logistische Transallfunktion
fout:                       2*fact - 1/2
Back:                    Hebb-Regel 

Lernzyklen

1

100

1T

10T

100T

200T

Lernfaktor

0,3

0,3

0,3

0,2

0,1

0,01

Fehler

0,596

0,33

0,216

0,213

0,210

0,207

Bemerkungen:
Kaum Lernerfolg.

log_a21b.net
Analog wie log_a21.net, jedoch mit BIAS-Neuron.
Der Fehler beträgt nach 500T Lernschritten immer noch 0,137.

log_a221b.net
Analog wie log_a21b.net, jedoch mit einer Neuronenschicht mehr.
Der Fehler beträgt nach 300T Lernschritten noch 0,0407.

Setzt man die Startgewichte nicht so hoch an (0,3 .. 0,6) und stellt
"Durchschleifen" auf "ja",
erhält man sehr schnell ein gutes Ergebnis:

Lernzyklen

100

1T

10T

20T

Lernfaktor

0,1

0,1

0,1

0,1

Fehler

0,069

0,041

4,4*E-7

8,5*E-13

Bemerkungen:
Werden die Ausgangswerte der Inputneuronen mittels fact und fout
aus den Eingangswerten berechnet, so verringert sich der Wertebereich
von 0 .. 1 auf 0,5 .. 0,88. Dies wirkt sich extrem negativ auf das
Lernverhalten des Netzes aus.

/****************************************************/

std_n21b.net
Logikfunktion:      NAND
Topologie:            2-1
BIAS-Neuron:       ja
SG:                        -0,6 .. -0,3
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       Standard 1 (Rückgabewert 0 oder 1)
fout:                       fact
Back:                    Delta-Regel

Lernzyklen

1

2

5

Lernfaktor

0,2

0,2

0,2

Fehler

0,25

0,00

0,00

Bemerkungen:
Sehr schneller Lernerfolg. 

log_n221b.net
Logikfunktion:      NAND
Topologie:            2-2-1
BIAS-Neuron:       ja
SG:                        -2 .. +2
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       logistische Transallfunktion
fout:                       2*fact - 1/2
Back:                    Hebb-Regel

Lernzyklen

1

100

1T

10T

Lernfaktor

0,3

0,3

0,3

0,2

Fehler

0,427

0,152

0,004

7,2*E-27

Bemerkungen:
Sehr schneller Lernerfolg, kontinuierliche Verbesserung.

/****************************************************/

std_o21b.net
Logikfunktion:      OR
Topologie:            2-1
BIAS-Neuron:       ja
SG:                        0,2 .. 0,4
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       Standard 1 (Rückgabewert 0 oder 1)
fout:                       fact
Back:                    Delta-Regel

Bemerkungen:
Nach 2-5 Zyklen bereits Fehlerfrei.

tanh_o221.net
Logikfunktion:      OR
Topologie:            2-2-1
BIAS-Neuron:       nein            ->            Schwellwerte:   0,2
SG:                        -2 .. +2
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel

Lernzyklen

100

500

1T

3T

Lernfaktor

0,3

0,3

0,3

0,1

Fehler

0,665

0,074

0,040

8,4*E-8

Bemerkungen:
Sehr schneller Lernerfolg, kontinuierliche Verbesserung.  

/****************************************************/

tanh_x221.net
Logikfunktion:      XOR
Topologie:            2-2-1
BIAS-Neuron:       nein            ->            Schwellwerte:   0,2
SG:                        -2 .. +2
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel

Lernzyklen

100

500

1T

3T

Lernfaktor

0,3

0,3

0,3

0,1

Fehler

0,665

0,074

0,040

8,4*E-8

Bemerkungen:
Sehr schneller Lernerfolg, kontinuierliche Verbesserung.

tanh_x2221.net
Logikfunktion:      XOR
Topologie:            2-2-1
BIAS-Neuron:       nein            ->            Schwellwerte:   0,2
SG:                        0,3 .. 0,6
Durchschleifen:    nein
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel 

Lernzyklen

100

500

Lernfaktor

0,1

0,1

Fehler

1,59

1,9*E-26

Bemerkungen:
Sehr schneller Lernerfolg, jedoch ab und an Neuinitialisierung der Gewichte erforderlich.

log_x221b.net
Logikfunktion:      XOR
Topologie:            2-2-1
BIAS-Neuron:       ja
SG:                        0,3 .. 0,6
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       logistische
fout:                       2*fact – 1/2
Back:                    Hebb-Regel 

Lernzyklen

100

1T

5T

10T

15T

20T

25T

Lernfaktor

0,5

0,5

0,5

0,5

0,5

0,5

0,5

Fehler

0,2549

0,2531

0,2523

0,25196

0,25192

5,4*E-4

6*E-26

Bemerkungen
:
Zuerst langsames, aber kontinuierliches Lernen, dann meißt plötzlicher Lernerfolg.

/****************************************************/ 

log_i2221.net
Logikfunktion:      IDENT
Topologie:            2-2-1
BIAS-Neuron:       nein            ->            Schwellwerte:   0,2
SG:                        0,3 .. 0,6
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       logistische
fout:                       2*fact – 1/2
Back:                    Hebb-Regel 

Lernzyklen

1T

5T

Lernfaktor

0,5

0,5

Fehler

0,2552

9,7*E-8

Bemerkungen:
Kontinuierliches Lernen. 

tanh_i221b.net
Logikfunktion:      IDENT
Topologie:            2-2-1
BIAS-Neuron:       ja
SG:                        -2 .. +2
Durchschleifen:    ja
Nullen erlaubt:      nein
fact:                       tanh(net)
fout:                       2*fact
Back:                    Hebb-Regel 

Lernzyklen

100

500

1T

5T

15T

20T

Lernfaktor

0,3

0,3

0,3

0,3

0,3

0,2

Fehler

5,48

5,17

4,73

4,44

5,04

1,33E*26

Bemerkungen:
Relativ schneller Lernerfolg, abhängig von Lernfaktor.