Künstliche Neuronale Netze, Test Phase

Hallo zusammen!
Ich studiere momentan Informatik und habe letztes Semester eine Studienarbeit über ANN gelesen und schreibe dieses Semester eine zur Umsetzung. Soweit eigentlich nichts großartig Neues, nur bin ich trotz aller (theoretischen) Recherche nun auf ein ganz praktisches Problem gestossen.
Wenn ich mein ANN mit dem Trainset trainiere und der Neterror das Konvergenzkriterium (z.B. 0.001) unterschreitet, teste ich das ANN mit dem Testset (ohne dabei die Gewichte zu adjustieren). Ist hier der Neterror zu groß (sprich, größer als 0.001), wird das ANN wieder trainiert. Soweit die Theorie, in der Praxis jedoch passiert in dieser zweiten (oder jeder weiteren) Trainingsiteration nicht viel, weil dort direkt nach dem ersten Traincycle der Neterror (immer noch) genügend klein ist ohne das überhaupt ein Gewicht adjustiert werden müsste. Ich habe also keinen wirklichen Fortschritt…
Oder übersehe ich etwas?
Als kleine Info: Ich benutze Neuroph Studio.

Vielen Dank im Voraus!
Felix

Hi,

ein neuronales Netz ist ja, wenn man mal alle Struktur innendrin weglässt, eine Funktion input zu output mit vielen vielen Parametern, an denen in der Lernphase gedreht wird.

Durch das Drehen an den Parametern kann man den Graphen der Funktion in viele Formen biegen, was ja an sich gewollt ist. Sind es aber zu viele Parameter, dann wird der Graph zu flexibel und es sind überflüssige Falten und Wellen etc. möglich.

D.h. die Lösung des Trainingsproblems ist nicht eindeutig und man kann in einer unsinnigen Lösung landen, die ein lokales Minimum ist, also durch zusätzliche Trainingsläufe nicht weiter verbessert werden kann. Z.B., als niedrigdimensionales Analogon, eine Ebene weit weg von sinnvollen Werten, die eng an den Trainingspunkten Löcher bzw. Eindellungen hat, die diese Punkte exakt treffen.

Lösungsansätze :

* Mache das Netzwerk einfacher, d.h. reduziere Struktur und vor allem und damit die Anzahl der Parameter. Damit wird der Graph glatter und steifer, was gut für Interpolationen ist, aber auch unflexibler, so dass man evtl. nicht so dicht an alle Testpunkte gleichzeitig kommt.

Oder

* Führe einen Strafterm ein, der die Parameter immer wieder in Richtung einer Grundkonfiguration treibt. z.B. zur Null oder was sonst sinnvoll erscheint.

Gruß Lutz