Biasneuron im neuronalem Netz
-
Ich hake da auch nochmal ein
Backpropagation ... (s. http://de.wikipedia.org/wiki/Backpropagation). Dieses Verfahren ist eines der mächtigsten und kompliziertesten Lernverfahren in der Geschichte der neuronalen Netze.
Ausser, dass schon vor ca 10 jahren abschließend herausgefunden wurde, dass Backpropagation zusammen mit Gradientenabstieg alles in allem ziemlich bescheiden funktioniert(weil Gradientenabstieg allgemein eine schlechte Idee ist). Und dabei ist es sehr trivial.
Vergleich das mal mit zum Beispiel deep belief networks. DIE sind kompliziert zu lernen...und mächtig.Diese Sigmoidfunktion hat sich in der Praxis als am tauglichsten erwiesen , da sie ebenfalls einen positiven Einfluss auf die Fehlerfunktion hat, indem sie diese glättet , und die Entstehung lokaler Minima forciert, und so den Gradientenabstieg erleichtert. Das heißt der Abstieg findet wirklich das absolute Minimum, und nicht irgend ein lokales
Von vorne bis hinten falsch. Die Sigmoidfunktion wird nur verwendet, weil sie die Eigenschaft hat, in einem neuronalen Netz einen universellen Approximator für jede Funktion liefern zu können(man hätte auch Gaussfunktionen nehmen können und würde bei Radiale-Basisfunktions-Netzwerken landen). Und weil sie biologisch motiviert ist. Was sie nicht macht, ist die Fehlerfunktion vereinfachen. Im Gegenteil. Die sieht nämlich ziemlich bescheiden aus und hat schon bei kleinen Problemen viele lokale Minima.
Das es mehr als ein globales Minimum gibt, kann man sogar sehr schnell sehen. Angenommen, wir haben ein neuronales Netz mit 2 Sigmoiden auf der mittleren Schicht. Angenommen, du hast die optimale Lösung. Dann kannst du einfach die Gewichte der Ein- und Ausgaben der Knoten miteinander tauschen und du erhälst ein neues globales Minimum. Ebenso (bei symmetrischen Sigmoiden) einfach bei einem Knoten alle Ein-und Ausgänge mit -1 multiplizieren. Die Sache mit dem lokalen Minimum lässt sich leider nicht so leicht zeigen(zumindest nicht ohne Fehlerfunktion), aber man sieht sehr schnell, dass sobald es ein lokales Minimum gibt, es auch verdammt viele andere gibt.
-
Ok, ich rede das ja auch nur von hier nach http://www.math.uni-muenster.de/SoftComputing/lehre/material/wwwnnscript/backprop1.html
Aber auch die Fehlerfunktion wird durch die Wahl einer sigmoiden Ausgabefunktion beeinflußt.
Die Fehlerkurve wird geglättet.
Die Fehlerkurve besitzt nur in einem Minimum oder Maximum eine waagerechte Tangente.
zeigt immer in Richtung des Minimums.
Sigmoide Ausgabefunktionen forcieren die Entstehung lokaler Minima.. Selber nicht wirklich getestet. Werd ich den Abschnitt wohl noch mal Überarbeiten. Vielen Dank euch beiden für die Info.
An otze:
Hast du schon mal was mit diesen deep belief networks gemacht, was mich interessieren würde wäre die Geauigkeit, und wie ich das zeug in meine Anwendung einbauen kann, also target und inputs gegben, und dann Algorithmus.. vielleicht mal ein Codebeispiel? Mein Rekord für XOR mit Backprop und 10 000 Lerndurchläufen wird (C# double) aufgerundet auf 1, oder eben ab auf 0. Vielen Dank, dass ihr euch mit meinem Mist befasst nochmal!
-
Entstehung lokaler Minima forciert
Heisst: Es gibt (viele) lokale Minima!
der Abstieg findet wirklich das absolute Minimum, und nicht irgend ein lokales
Diese Schlussfolgerung ist falsch.
-
Ähm ok, war eine blöde Reihenfolge, wird geändert, was ist mit der Tangente? Hat das denn nicht zur Folge, dass er mit (zumindest hoher Wahrscheinlichkeit) ein absolutes Minimum findet?
-
@lownd
Die Dinger lösen prinzipiell keine Regressions oder Klassifikationsaufgaben alleine. Am Ende steht immer eine ganz normale Klassifikation oder Refression mit nem einfachen Netzwerk. Codebeispiele habe ich nicht, weil ich die Dinger selbst noch nie implementiert hab, und am Institut auch nichts finales existiert.Sie sind aber auch für völlig andere Probleme designt, als ein einfaches xor Problem.
Wenn du geht englisch kannst, hier ist ein Talk darüber:
http://www.youtube.com/watch?v=AyzOUbkUf3M
Der Redner ist der Mann, der quasi das ganze machine learning Feld wiederbelebt hat, nachdem man mit den linearen Techniken gescheitert ist. Am Ende gibts ne unglaublich krasse Anwendung - die man so gar nicht mehr mit xor vergleichen kann.@Tangente: jedes lokale Minimum ist dadurchd efiniert, dass die Steigung Null ist und damit die Tangente Wagerecht. Und Sattelpunkte gibts auch noch, sind genau so definiert. Oh, und wenn du Gültigkeitsbereiche hast, zum Beispiel dass eine Variable nicht größer als 10 werden kann, dann benötigt das lokale Minimum nicht unbedingt eine Steigung von 0.
Beispiel: Funktion f(x)=-x Nebenbedingung x<=5
globales Minimum: x=5
Aber: f'(5)=-1
-
Danke dir! Werden die Teile denn in der Praxis schon angewendet? Natürlich mach ich nicht nur XOR mit meiner Backprop, hast du die schon mal den PatternRecognizer angeschaut? Ganz kleine Datei mit einem simplen Netz im Hintergrund, was darauf trainiert ist die Zahlen 1 bis 5 der Schriftart Arial zu erkennen. Ich denke doch, dass die Backprop in einigen Richtungen zumindest ganz gute Arbeit leistet. Wenn ich das richtig versteh entspricht das ja auch nicht ganz dem Anwendungsgebiet von diesen Dingern, oder?
-
Spul mal auf ca Minute 22 vor und staune.
-
Mach ich, mach ich, aber erst morgen, weil ich mit meim lahmen Internet nicht zu Fach komm, muss das Ding erst mal runterladen(und das dauert...) Danke dir noch mal sieht vom kurzen Reinschaun sehr interessant aus
-
Ich hab mal versucht das toy example vom Anfang nachzubauen, ich denk ich werd mal die Ergebnisse auf meinen Blog stellen. Klasse Video, der Mann hats echt drauf.
-
Ok, nur falls jemand auf die Seite stößt.. http://compositedevtec.tk/nnspace/downloads.html Mein Prototyp zum automatischen trainieren von deep belief networks und Ähnlichem.