Diskussion:Backpropagation

Letzter Kommentar: vor 1 Jahr von Rüsselrüdiger in Abschnitt Ist das überhaupt Backpropagation oder schon SGD?

Diskussion: Wann wurde BP erstmals formuliert? Bearbeiten

Hallo,

ich hätte da einen Einwand bezüglich des folgenden Satzes: Formuliert wurde es zuerst 1974 durch Paul Werbos.

Vor mir liegt eine internationale Edition des Russel Norvig, erste Auflage. Auf Seite 578 unten heisst es: It was first invented in 1969 by Bryson and Ho, but was more or less ignored until the mid-1980s.

Viele Grüße,

IB. (nicht signierter Beitrag von 92.227.72.155 (Diskussion | Beiträge) 12:22, 12. Okt. 2009 (CEST)) Beantworten

Was der OP da schreibt ist auch das was auf der englischen Seite steht...

-- 84.133.211.108 10:07, 19. Aug. 2010 (CEST)Beantworten


Der Teil zur Geschichte von Backpropagation war wirklich in beklagenswertem Zustand. Ich habe zahlreiche Referenzen hierzu eingefügt, auch mit Hilfe der engl. Wikipedia:

Nach verschiedenen Quellen[1][2][3][4] wurden die Grundlagen des Verfahrens im Kontext der Steuerungstheorie hergeleitet durch Prinzipien dynamischer Programmierung, und zwar durch Henry J. Kelley[5] im Jahre 1960 und Arthur E. Bryson im Jahre 1961.[6] 1962 publizierte Stuart Dreyfus eine einfachere Herleitung durch die Kettenregel.[7] Vladimir Vapnik zitiert einen Artikel aus dem Jahre 1963[8] in seinem Buch über Support Vector Machines. 1969 beschrieben Bryson und Yu-Chi Ho das Verfahren als mehrstufige Optimierung dynamischer Systeme.[9][10]

Seppo Linnainmaa publizierte im Jahre 1970 schliesslich die allgemeine Methode für automatisches Differenzieren (AD) diskreter Netzwerke verschachtelter differenzierbarer Funktionen.[11][12] Dies ist die moderne Variante des Backpropagation-Verfahrens, welche auch bei dünner Vernetzung effizient ist.[13][14][3][4]

1973 verwendete Stuart Dreyfus Backpropagation, um Parameter von Steuersystemen proportional zu ihren Fehlergradienten zu adjustieren.[15] Paul Werbos erwähnte 1974 die Möglichkeit, dieses Prinzip auf künstliche neuronale Netze anzuwenden,[16] und im Jahre 1982 tat er dies auf die heute weit verbreitete Art und Weise.[17][4] Vier Jahre später zeigten David E. Rumelhart, Geoffrey E. Hinton und Ronald J. Williams durch Experimente, dass diese Methode zu nützlichen internen Repräsentationen von Eingabedaten in tieferen Lagen neuronaler Netze führen kann.[18] Eric A. Wan war 1993 der erste,[3] der einen internationalen Mustererkennungswettbewerb durch Backpropagation gewann.[19]

Gradienten (Diskussion) 19:38, 25. Sep. 2016 (CEST)Beantworten

  1. Stuart Dreyfus (1990). Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. J. Guidance, Control and Dynamics, 1990.
  2. Eiji Mizutani, Stuart Dreyfus, Kenichi Nishio (2000). On derivation of MLP backpropagation from the Kelley-Bryson optimal-control gradient formula and its application. Proceedings of the IEEE International Joint Conference on Neural Networks (IJCNN 2000), Como Italy, July 2000. Online
  3. a b c Jürgen Schmidhuber (2015). Deep learning in neural networks: An overview. Neural Networks 61 (2015): 85-117. ArXiv
  4. a b c Jürgen Schmidhuber (2015). Deep Learning. Scholarpedia, 10(11):32832. Section on Backpropagation
  5. Henry J. Kelley (1960). Gradient theory of optimal flight paths. Ars Journal, 30(10), 947-954. Online
  6. Arthur E. Bryson (1961, April). A gradient method for optimizing multi-stage allocation processes. In Proceedings of the Harvard Univ. Symposium on digital computers and their applications.
  7. Stuart Dreyfus (1962). The numerical solution of variational problems. Journal of Mathematical Analysis and Applications, 5(1), 30-45. Online
  8. Bryson, A.E.; W.F. Denham; S.E. Dreyfus. Optimal programming problems with inequality constraints. I: Necessary conditions for extremal solutions. AIAA J. 1, 11 (1963) 2544-2550
  9. Stuart Russell, Peter Norvig: Artificial Intelligence A Modern Approach. S. 578: „The most popular method for learning in multilayer networks is called Back-propagation.“
  10. Applied optimal control: optimization, estimation, and control. Blaisdell Publishing Company or Xerox College Publishing, 1969, S. 481.
  11. Seppo Linnainmaa (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master's Thesis (in Finnish), Univ. Helsinki, 6-7.
  12. Seppo Linnainmaa (1976). Taylor expansion of the accumulated rounding error. BIT Numerical Mathematics, 16(2), 146-160.
  13. Griewank, Andreas (2012). Who Invented the Reverse Mode of Differentiation?. Optimization Stories, Documenta Matematica, Extra Volume ISMP (2012), 389-400.
  14. Griewank, Andreas and Walther, A.. Principles and Techniques of Algorithmic Differentiation, Second Edition. SIAM, 2008.
  15. Stuart Dreyfus (1973). The computational solution of optimal control problems with time lag. IEEE Transactions on Automatic Control, 18(4):383–385.
  16. Paul Werbos (1974). Beyond regression: New tools for prediction and analysis in the behavioral sciences. PhD thesis, Harvard University.
  17. Paul Werbos (1982). Applications of advances in nonlinear sensitivity analysis. In System modeling and optimization (pp. 762-770). Springer Berlin Heidelberg. Online
  18. David E. Rumelhart, Geoffrey E. Hinton und Ronald J. Williams: Learning representations by back-propagating errors. In: Nature, 1986, Band 323, S. 533-536
  19. Eric A. Wan (1993). Time series prediction by using a connectionist network with internal delay lines. In SANTA FE INSTITUTE STUDIES IN THE SCIENCES OF COMPLEXITY-PROCEEDINGS (Vol. 15, pp. 195-195). Addison-Wesley Publishing Co.

Lemmadiskussion Bearbeiten

Es ist die typische Diskussion über einem englischen Fachbegriff und seine Eindeutschung. In diesem Fall Backpropagation vs. Rückwärtspropagierung. Ein Problem mit dem hier verwendeten dt. Begriff ist, daß Propagierung zwar im Duden zu finden ist, aber die Verwendung doch recht selten ist. Wäre meines Erachtens kein Hindernis, wenn nicht hinzukommen würde, daß der Begriff in der deutschen Literatur nicht durchgehen verwendet wird. In [1] kommt die deutsche Bezeichnung nicht vor, stattdessen wird von Backpropagation gesprochen. Ich würde mich nur überzeugen lassen, wenn ausreichend Literatur vorhanden ist, welche die dt. Bezeichnung trotzdem verwendet. In Künstliches neuronales Netz wird übrigens inkonsistenterweise auch von Backpropagation gesprochen.

[1] A. Zell: Simulation neuronaler Netze. ISBN 3-486-24350-0

Wenn also keine Einwände kommen, würde ich den Artikel gerne verschoben sehen. --Chrislb 17:56, 13. Jul 2005 (CEST)

Verschoben --Chrislb 00:04, 1. Aug 2005 (CEST)
"Rückpropagierung" bedarf keiner Eindeutschung, er ist genauso wie "Propagierung" selber ein alter Begriff aus der EDV. LuisDeLirio 23:57, 6. Nov 2005 (CET)
Beachte Diskussion auf Benutzer_Diskussion:LuisDeLirio#.5B.5BR.C3.BCckpropagierung.5D.5D --Chrislb 06:49, 16. Dez 2005 (CET)
Nachdem diese Diskussion im Sande verlaufen ist und offenbar auch sonst niemand Einsprüche machen wollte, habe ich die Seite wieder zurückverschoben. Grüße, --PartnerSweeny 22:48, 30. Dez 2005 (CET)
Ich habe die Diskussion mit angesehen, und sehe auch keinen Grund einen fremdsprachigen Begriff an erster Stelle zu nehmen. Auch wundere ich mich über die Vehemenz, mit der seitens PartnerSweeny für die Fremdsprachigkeit gestritten wird. Die Problematik will sich mir auch nicht erschließen, wenn der fremdsprachige Begriff doch genauso genannt wird?! Es sprechen mehere Argumente gegen, aber nur eines für die Verwendung des englischen Begriffes, wenn ich mir das so durchlese.
Das sehe ich genauso und habe keine Motivation mehr für diese Diskussion. LuisDeLirio 00:49, 31. Dez 2005 (CET)

"Keine Motivation mehr"? Das ist ja toll. Motivation zum Artikelverschieben hast du wohl, dann aber keine Lust das (wenigstens nachher) auszudiskutieren? Wenn du oder Bauernopfer Gegenargumente angeben könnt, dann bitteschön, aber doch nicht einfach wochenlang abwarten. Und wenn ich dann unter der Annahme, dass keine Gegenargumente mehr kommen, den Artikel umbenenne, dann wird er wieder ohne Diskussion zurückverschoben. Was soll das denn? Und wenn du hier in die Diskussion einsteigen willst, wäre es vielleicht angebracht gewesen, Bauernopfer, einen Kommentar auf die Disk-Seite zu schreiben, anstatt gleich die Verschiebung rückgängig zu machen. Gruß, --PartnerSweeny 01:12, 31. Dez 2005 (CET)

Ich kann mich dem nur anschließen und muß mich mühsam zurückhalten nicht noch mehr zu sagen. Die Diskussion ist offensichtlich für eine Verschiebung gewesen, da gegen das gewichtige Argument, der ausschließlichen Verwendung des englischen Begriffes auch im Deutschen, kein begründeter Einwand kam. Ich stimme daher auch für eine Verschiebung und werde dies bald durchführen, sollten (immer noch) keine Argumente dagegen vorliegen. --Chrislb 03:20, 31. Dez 2005 (CET)
Die Diskussion ist offensichtlich nicht für eine Verschiebung gewesen. Und "immer noch keine Argumente" ist schlichtweg unwahr. Ich habe mehrer Argumente genannt. Den englischen Begriff kann man auch auf der englischsprachigen Wikiped. nachschlagen und lesen. Wo ist genau Euer Problem? Das möchte ich mal wissen. LuisDeLirio 11:58, 31. Dez 2005 (CET)
Es geht hier um eine Begriffsbildung in der Wikipedia, was hier genau vermieden werden soll. Es soll das Wort verwendet werden, daß auch im Deutschen Anwendung findet. Du bist einen Beweis schuldig geblieben und hast bei der ersten Verschiebung lieber in Eigenregie gearbeitet, als andere Meinungen einzuholen. --Chrislb 12:18, 31. Dez 2005 (CET)
Du wirst ja wohl einsehen, dass es mit dem bloßen Nennen von Argumenten nicht getan ist. Damit du das Problem verstehst, fasse ich mal zusammen: Du sagst, deutsche Begriffe würden in dt. Enzyklopädien grundsätzlich bevorzugt. Das stimmt nicht, Beispiele habe ich dir auf deiner Diskussion genannt. Auch einen entsprechenden Verweis auf eine WP-Konvention hast du nicht gebracht. Du sagst, es gäbe einen deutschen Ausdruck "Rückpropagierung", kannst aber nicht nachweisen, wo er verwendet wird, geschweige denn, dass er auch nur ansatzweise "gebräuchlich" ist. Im Gegenteil demonstriert eine Google-Suche, dass der Begriff so gut wie nicht verwendet wird. Du sagst, es sei ausreichend, wenn der fremdsprachliche Begriff als Alternative genannt werde oder in der englischen(!) Wikipedia auftauche. Das ist falsch. Der Artikelname nennt den Gegenstand mit seiner gängigen Bezeichnung und führt außerdem ungebräuchlichere Alternativnamen auf. Wikipedia informiert den Leser über einen bestimmten Gegenstand, und dazu gehört zumindest mal der richtige Name. Gegen diese Argumente hast du nicht nur nichts vorgebracht, du hast sogar trotz meiner Nachfrage nicht einmal darauf geantwortet. Gruß, --PartnerSweeny 12:48, 31. Dez 2005 (CET)
"Bloßes nennen von Argumenten", was soll die Frechheit? Das ist nicht als Rabulistik von Dir. Das kann cih Dir genauso vorwerfen. Dein einziges Argument ist bis jetzt, dass das Wort öfters bei Google erscheine; Kunstück, verweisen doch die meisten Links auf Wikipedia, oder sind diesem entnommen. Beispiele hast Du gar keine genannt. DER richtige Name ist im Deutschen "Rückpropagierung". Argumente dagegen kommen von Dir nicht.

http://www.ubka.uni-karlsruhe.de/indexer-vvv/2000/maschinenbau/8 http://www.tu-chemnitz.de/informatik/HomePages/KI/scripts/ws2005/Neurokognition-04-stud-3.doc http://isl.ira.uka.de/~rogina/info99/990621/tsld032.htm http://shaker-online.com/Online-Gesamtkatalog/Element.asp?ID=774836&Element_ID=11998&Mode=Page http://www.uni-bielefeld.de/idm/neuro/Lernformen.html http://www.rus.uni-stuttgart.de/bi/1995/1/File16.html http://www.neuro.informatik.uni-kassel.de/Vorlesungen/WS0506/NeuronaleNetzwerke/Skript/NNver04_4BP.pdf http://wwwags.informatik.uni-kl.de/lehre/ws03-04/ES/Uebungen.dir/Blatt3.pdf Rückpropagierung, Bryson & Ho (1969)

Das waren jetzt eine Menge Beispiele. Google ist einfach kein Kriterium, da automatisch auch "immer" Verweise auf eng. Seiten enthalten sind. Als Wissenschaftler auf Google zu Verweisen ist, ehrlich gesagt unwürdig. LuisDeLirio 14:55, 31. Dez 2005 (CET)

In der Tat, das waren eine Menge Beispiele. Schade, dass du dir nicht die Mühe gemacht hast, sie dir mal genauer anzugucken. In deiner Reihenfolge:

[1] Hier heißt es im Kapitel "Training von Multilayer-Perceptrons": "Zum Training wird neben Standard-Backpropagation der Lernalgorithmus rprop verwendet"

[2] "Die Erweiterung der Deltaregel auf mehrere Schichten heißt Backpropagation, bei ihr wird der Fehler an der Ausgabe schichtenweise zurück propagiert, was die Anpassung der Gewichte erleichtert."

[3] Hat gleich gar nichts mit Backpropagation zu tun.

[4] dto.

[5] "Backpropagation" wird der Prozeß der schrittweisen "Zurückzüchtung" von Fehlern in mehrschichtigen neuronalen Netzen genannt

[6] "Folgende Lernverfahren sind derzeit in SNNS implementiert: verschiedene Varianten von Backpropagation, Batch-Backpropagation, Quickprop, Backpercolation1, Rprop, Cascade Correlation, Recurrent Cascade Correlation, Dynamic LVQ, Counterpropagation, Radial Basis Functions, ART-1, ARTMAP und ART-2, Backpropagation Through Time, Quickprop Through Time, Time-Delay-Netze, Jordan-Netze, Elman-Netze und selbstorganisierende Karten." "Während der Vorwärts-/ Rückpropagierung werden die Zwischenwerte für die Netzeingabe bzw. das akkumulierte Fehlersignal zyklisch nach links geschoben." Sonst nichts.

[7] Titel des Textes "Backpropagation". Auf S. 6 in Klammern "(Rückpropagierung des Fehlers)"

[8] Im Standardwerk zu künstl. neuronalen Netzen, dem Übungszettel Nummer 3 des Instituts für Informatik, Uni Karlsruhe heißt die Übungsaufgabe c) "Lernen mit Backpropagation"

Bryson&Ho (1969) - Statt Rumelhart et al. (1986) also doch nicht Werbos (1974) sondern schon Bryson&Ho (1969)?

Mein Argument ist nicht, dass es öfter bei Google erscheint, sondern dass dein Ausdruck nie verwendet wird. Natürlich gibt es im Backpropagation-Verfahren einen bestimmten Schritt, den man in Erklärungen irgendwie "Rückpropagierung" oder "Rückwärtspropagierung" oder sonstwie nennt, deshalb taucht der Begriff manchmal auf. Darf ich dich außerdem daran erinnern, dass du ursprünglich den Artikel verschoben hast ohne nachzuweisen, dass dein Begriff gängig ist? Gruß --PartnerSweeny 17:56, 31. Dez 2005 (CET)

Du hast Dir immer nur Stellen rausgesucht, an denen der dt. Begriff gerade nicht verwendet wird. LuisDeLirio 18:01, 31. Dez 2005 (CET)
Werde bitte konkret! Welche von PartnerSweeny behandelten Quellen findest du von ihm falsch dargelegt? Zu deiner Information: Das Wort "Rückpropagierung" wird dort lediglich im Kontext der Fehlerkorrektur verwendet, nicht für die Benennung des Verfahrens. --Chrislb 08:46, 1. Jan 2006 (CET)
Das habe ich gechrieben. Dein Kommentar ist so nicht richt. LuisDeLirion
Nur der Vollständigkeit halber: Auch ich warte auf konkretere Einsprüche. --PartnerSweeny 20:53, 2. Jan 2006 (CET)
Mach Dich nicht lächerlich. Einfach begründete, konkrete Argumente abzutun ist schlichtweg ein schlechter Diskussionsstil unter unter aller Sau. So diskutiere ich mit niemanden. Ich warte noch auf konkrete Argumente von Dir. LuisDeLirio 21:45, 2. Jan 2006 (CET)
Ich fasse kurz zusammen: Du hast eine Liste von Quellen genannt, in der du zeigen willst, daß in der deutschen Literatur von "Rückpropagierung" gesprochen wird, statt von "Backpropagation". PartnerSweeny hat darauf hin deine Liste angegriffen und behauptet, daß die Quellen nicht verwendbar sind, oder genau das Gegenteil aussagen.
Ich will nun produktiv versuchen nochmal mit dir zusammen die Quellen durchzugehen und die Verwendung zu überprüfen. Ich bitte dich dann auch objektiv dazu Stellung zu nehmen. Ich fange erstmal mit den ersten vier Quellen an:
  1. In [9] wird von einer Rückpropagierung von Fehlern im System gesprochen, ohne spezielle Nennung des Verfahrens. Im gleichen Dokument auf einer anderen Seite [10] wird allerdings vom Backpropagation-Verfahren gesprochen.
  2. Es wird zweimal von Rückpropagierung des Fehlers gesprochen, allerdings wird der Algorithmus dazu immer als Backpropagation-Verfahren oder -Algorithmus genannt.
  3. Baum-Netze: k-kleinstes-Suche hat wirklich nichts hiermit zu tun.
  4. Es geht um Rückpropagierung von Beschleunigungsmeßwerten. Also auch nicht um unser Verfahren hier.
Kannst du dich dazu äußern? --Chrislb 09:37, 3. Jan 2006 (CET)

Kann er offenbar nicht. LuisDeLirio hat in der seit Wochen andauernden Diskussion keinen einzigen Beleg für einen Text bringen können, in dem der Autor das Backpropagation-Verfahren als "Rückpropagierung" bezeichnet. Stattdessen ergeht er sich in persönlichen Angriffen und beharrt darauf, dass andere eine übel zusammengewürfelte Liste erstbester Links ausdiskutieren, die nicht mal im Ansatz dazu taugt, seinen Standpunkt zu untermauern. - Der Vollständigkeit halber einige Belege für die Gebräuchlichkeit des Ausdrucks "Backpropagation":
Links von oben:

  • Link 1 Wie Chrislb erklärt hat.
  • Link 2 Zitat ""Die Erweiterung der Deltaregel auf mehrere Schichten heißt Backpropagation" und nicht "...heißt Rückpropagierung". Und "Die einfache Deltaregel [...] lässt sich aber verallgemeinern [...] und wird dann Backpropagation genannt" Nicht etwa "Rückpropagierung".
  • Link 5 Zitat ""Backpropagation" wird der Prozeß der schrittweisen "Zurückzüchtung" von Fehlern in mehrschichtigen neuronalen Netzen genannt." Wo taucht "Rückpropagierung" auf? "Wie Patricia Churchland und Sejnowski schreiben, können Netze, die mittels unüberwachter Lernverfahren trainiert werden, "so aufgebaut sein, daß die Gewichte Regelmäßigkeiten der betrachteten Domäne repräsentieren" (127). Auf diese Weise lasse sich ein "internes Fehlermaß" bilden. So könne "Rückpropagierung der Fehler auch in einem unüberwachten, aber kontrollierten System angewendet werden, obwohl das Verfahren normalerweise in überwachten und nicht-kontrollierten zum Einsatz kommt". Das heißt: "Rückpropagierung" findet sich bei Backpropagation und möglicherweise bei anderen Lernverfahren. Es ist also nicht der Name eines speziellen Verfahrens.
  • Link 6 Welche Lernverfahren kommen zum Einsatz? "Folgende Lernverfahren sind derzeit in SNNS implementiert: verschiedene Varianten von Backpropagation, Batch-Backpropagation, Quickprop, Backpercolation1, Rprop, Cascade Correlation, Recurrent Cascade Correlation, Dynamic LVQ, Counterpropagation, Radial Basis Functions, ART-1, ARTMAP und ART-2, Backpropagation Through Time, Quickprop Through Time, Time-Delay-Netze, Jordan-Netze, Elman-Netze und selbstorganisierende Karten." Kommt ein Lernverfahren namens "Rückpropagierung" zum Einsatz? Nein.
  • Link 7 Der Text handelt von "Backpropagation" und heißt auch so. Was wird als "Rückpropagierung" bezeichnet? Ein Schritt im Algorithmus.
  • Link 8 Aufgabe 1 c) "Lernen mit Backpropagation". Hier nennt der Autor die Aufgabe 1 c) "Lernen mit Backpropagation", weil er der Auffassung ist, der Algorithmus heiße "Backpropagation".

Literatur:

  • P. Rojas. Theorie der neuronalen Netze - . Springer, 1993. Kap. 7 Backpropagation-Algorithmus
  • A. Zell. Simulation Neuronaler Netze. Addison-Wesley 1996. Kap. 8 Backpropagation
  • Detlef Nauck, Frank Klawonn und Rudolf Kruse. Neuronale Netze und Fuzzy-Systeme - Grundlagen des Konnektionismus, Neuronaler Fuzzy-Systeme und der Kopplung mit wissensbasierten Methoden 2., überarbeitete und erweiterte Auflage. Verlag Vieweg, Wiesbaden (1996). Kap. 5.2. Backpropagation - die Verallgemeinerte Delta-Regel

Ich halte deshalb alle Voraussetzungen für ein Rückverschieben des Artikels und ein Ende dieser leidigen Diskussion gegeben. --PartnerSweeny 19:52, 4. Jan 2006 (CET)

Verschoben --PartnerSweeny 12:14, 6. Jan 2006 (CET)

'Ich bin für die Beibehaltung der existierenden, deutschen Bezeichung. Bauernopfer 12:28, 6. Jan 2006 (CET)

Erweiterung des Artikels Bearbeiten

Ich habe den Artikel erweitert und einen extra Abschnitt Herleitung spendiert. Unverständliches bitte anmerken. --Chrislb 18:15, 6. Aug 2005 (CEST)

Hallo Chrislb. Ich habe ein paar Kleinigkeiten an dem Abschnitt geändert, zwei größere Probleme bleiben aber IMHO:
  • In der Einleitung zu dem Abschnitt Herleitung heißt es: "Stellt man sich die Ausgabe eines Neurons abhängig zweier Eingaben x und y als Graph vor, erhält man eine zweidimensionale Fehleroberfläche.". Mag sein, dass ich das falsch verstanden habe, aber ich denke das ist falsch: Die Fehleroberfläche sollte den Fehler in Abhängigkeit von der Gewichtsmatrix darstellen, einfach illustrieren lässt sich das natürlich nur für maximal zwei Gewichte. Es werden dann die passenden Gewichte zu einem Fehlerminimum gesucht. Den Fehler in Abhängigkeit von "zwei Eingaben" zu minimieren macht m.E. keinen Sinn...
  • Der erste Teil Neuronenausgabe ist noch nicht ganz klar, Die "Eingaben  " gehen ja nur an die Neuronen der ersten Schicht.
Gruß --eo !? 19:27, 16. Jan 2006 (CET)
Danke für die inhaltliche Kritik, die hier def. zu kurz kommt ;). Das mit der Oberfläche muß ich nochmal suchen. Zu der Neuronenausgabe soll noch ein wenig dazukommen, mit Hinweis auf den Hauptartikel Künstliches Neuron. --Chrislb 03:50, 17. Jan 2006 (CET)

Momentum mit rein konstanter Lernrate? Bearbeiten

Bei Verwendung eines Momentumterms wird die Lernrate konstant gehalten, wurde auf Backpropagation_mit_Trägheitsterm geschrieben. Ich bin da anders informiert, hab es dementsprechend auch im Artikel vermerkt. Jemand genaueres? --Chrislb 17:13, 7. Dez 2005 (CET)

Eine veränderliche Lernrate eta ist (denke ich) eine eigene Erweiterung (z.B. wie bei SuperSAB). Alpha als Einfluß des Trägheitsterms ist natürlich veränderlich.
Warum wurde o_i zu x_i ?- schon bei der Propagierungsfunktion net_j weiter oben müsste meiner Meinung nach o_i stehen, da verdeckte Neurone jenseits der 1. Schicht keine direkten Eingaben mehr erhalten, sondern nur noch die Ausgaben der Vorgängerzellen (mögliche short-cuts beiseite)...
Ohne den Pattern-Index handelt es sich nicht mehr um ein Online sondern Batch Verfahren, habe die Klammer deshalb entfernt
Ich habe die Einleitung zum Momentum so geändert, daß es auch isoliert von einer Verwendung einer variablen Lernrate sein kann. Da jetzt schonmal zwei Verbesserungen/Erweiterungen Eingang in den Artikel gefunden haben, könnten ja vielleicht noch weitere folgen.
Um das Verständnis nicht zu erschweren, dachte ich, ist es besser auf die Unterscheidung On- und Offline zu verzichten. Es sollte aber nochmal ein eigener Absatz zur Abgrenzung her.
Die Änderung von   zu   habe ich der Einheithalber durchgeführt. Die Ausgabe eines Neurons ist abgesehen von der Ausgabeschicht immer auch die Eingabe eines anderen Neurons. Hier geht es wohl mehr um die Sichtweise, und die ist im Artikel auf das einzelne Neuron ausgerichtet.
Wenn du an dem ganzen Themenkomplex künstliche Neuronale Netze interessiert bist, würde ich mich freuen, wenn du dich registrierst und auch weiterhin beteiligst. Hier ist noch einiges zu tun.
Bitte Wikipedia:Signatur verwenden. Das erleichtert das abgrenzen der Beiträge in der Diskussion. --Chrislb 10:28, 8. Dez 2005 (CET)
Verstehe aber suggeriert das nicht eine (nicht vorhandene) Indirektion?
Die Eingabe eines Neurons ist doch seine Netzeingabe (gewichtete Ausgaben der Vorgängerneurone).
Gibt es ein Beispiel, wo x_i != o_i? Wenn nicht würde ich die Unterscheidung weglassen, da sie einen Verarbeitungsschritt zwischen den Neuronen nahe legt, der nicht stattfindet... --Scapa


Ich versteh nicht ganz das Problem. Ich will ja spätestens in   zwischen der Ist-Ausgabe und der Eingabe des Neurons unterscheiden. Bei einer jeden Formel im Artikel wird ja von der Sichtweise eines Neurons ausgegangen (siehe neues Bild im Artikel). --Chrislb 16:14, 8. Dez 2005 (CET)
„Ich will ja spätestens in Δwij zwischen der Ist-Ausgabe und der Eingabe des Neurons unterscheiden“ – OK, angenommen Neuron i projiziert auf Neuron j. Dann ist doch die Eingabe von j: net_j = o_i * w_ij und die Ist-Ausgabe von j : o_j = phi(net_j)…
Konkret: Mit x_i wird doch die externe Eingabe bezeichnet, diese liegt aber nur an den Neuronen der ersten Schicht (Eingabeschicht) direkt an und wird dort „transformiert“ und als Ausgabe an die nächste Schicht weitergegeben, dort wieder „transformiert“ und ebenfalls als Ausgabe weitergegeben etc. deshalb müsste es meiner Meinung nach heißen  
Da Backpropagation gerade eine Verallgemeinerung der Hebb-Regel für mehrere verdeckte Schichten von Neuronen ist, sollte die gewählte Sichtweise das vielleicht stärker widerspiegeln.
(P.S. gute Bilder und danke für die nette Begrüßung) --Scapa
Wenn man sich die Graphendarstellung des kompletten Netzes vorstellt, dann erhält man die Eingaben des Netzes   für   Eingaben, die Ausgaben   unserer insgesamt  Neuronen (Schichtmodell wird im allgemeinen Fall ignoriert) und die  Zielwerte für die gleiche Anzahl Ausgabeneuronen. Die Neuronen sind komplett miteinander verbunden und erhalten auch alle Eingaben. Die Schichtenaufteilung kann über die Verfügung der jeweiligen Gewichte zu 0 erreicht werden. Die Eingabe eines Neurons bestehen also allgemein jetzt aus Eingaben des Netzes und allen anderen Ausgaben, auch der eigenen. Es reicht also nicht lediglich   zu betrachten. Sehe ich das richtig? Die Darstellung der Formeln aus dem allgemeinen, vollverbundenen Netzwerk kollidiert hier verständlichkeitstechnisch mit der Schichtendarstellung für den Algorithmus.
Allerdings stellt sich mir jetzt eine Frage: Ausgehend davon, daß jedes Neuron mit jedem verbunden ist, und auch jede Nezwerkeingabe anliegt (Gewicht der Kante darf aber 0 sein), dann wird die Gewichtsänderung   auch bei 0-Kanten (den wegen Schichtmodell nicht zugelassenen) berechnet, und ergibt mglw. einen von Null verschiedenen Wert, der, wenn auf das alte Gewicht addiert, auch 0-Kanten verändert. Ist irgendwo in dem Algorithmus spezifiziert, daß diese speziellen 0-Kanten nicht verändert werden dürfen? (Alles ausgehen von dem von mir darüber beschriebenen Modell)--Chrislb 10:31, 9. Dez 2005 (CET)


Lernrate allgemein Bearbeiten

"Die Wahl der Lernrate η ist wichtig für das Verfahren, da ein zu hoher Wert eine starke Veränderung bewirkt, wobei das Minimum verfehlt werden kann" - steht hier nicht eher der Verlust der Generalisierungsfähigkeit im Vordergrund?

Inwieweit hängt die Lernrate direkt mit der Generalisierungsfähigkeit zusammen? Wenn die Lernrate ungünstig gewählt wurde, dann findet kein Konvergieren des Lernprozesses statt. --Chrislb 10:28, 8. Dez 2005 (CET)
Man könnte dem NN ein Beispiel durch eine hohe Lernrate auf einen Schlag beibringen, dadurch würden betragsmäßig große Gewichte entstehen, die das Beispiel exakt repräsentieren. Nach dem nächsten Beispiel mit hoher Lernrate, wäre das erste Beispiel wieder vergessen, das Netz hätte also nicht über die Beispiele generalisiert.In der Fehlerfunktion ist natürlich implizit eine Generalisierungsfähigkeit über die Eingabemuster gefordert, weshalb der Satz ja auch völlig richtig ist. Ich wollte trotzdem auf das Konzept hinaus, dass langsames Lernen notwendige Vorraussetzung ist, um von Einzelbeispielen abstrahieren zu können (auch in der Biologie…)--Scapa
Beim Online-Training sehe ich das ein. Beim Offline-Training kann ich das nun nicht so einfach nach vollziehen, zur Zeit fehlt mir auch die Literatur zum nachschlagen. Eine Verbindung der Sichtweise der Optimierung mit jener des biologischen Vorbildes hört sich gut an. --Chrislb 15:53, 8. Dez 2005 (CET)

Auswirkung des Momentum-Terms Bearbeiten

Im Artikel steht, dass die Gewichtsänderung für alpha=1 allein von der vorigen Gewichtsänderung abhängt (und nicht vom Gradienten). Dies ist meines Erachtens falsch. Die Aussage wäre nur dann richtig, wenn der Gradient selber noch mit einem Faktor (1-alpha) versehen wäre. Für größeres alpha steigt lediglich der Einfluss der vorigen Gewichtsänderung auf die aktuelle im Vergleich zum Einfluss des Gradienten.

Antwort: Man findet die Formel (1-alpha) * Lernrate * Delta * X + alpha * w(t-1) nur selten, meist wird der Term (1-alpha) weggelassen, was ich nicht nachvollziehen kann. Es sieht für mich so aus, als ob die Formel nur mit (1-alpha) tatsächlich funktioniert, da meine neuronalen Netze ohne (1-alpha) keine optimalen Ergebnisse approximieren können. Sinnvolle Werte für alpha habe ich von 0.2 bis 0.8 gefunden. Da das meine eigenen Erfahrungen sind, möchte ich den Artikel nicht einfach daraufhin erweitern. Jemand ähnliche Werte?

Formel für quadratischen Fehler Bearbeiten

Hallo,

die Formel für den quadratischen Fehler des Netzes ist angegeben als

 ,

wobei n die Dimension des Eingabevektors darstellen soll. Das kann aber doch nicht sein, da   und   doch Komponenten des Ausgabevektors (soll und ist) darstellen? Ich denke, n sollte also die Dimension des Ausgabevektors sein. Wenn ich da etwas nicht verstanden habe, wäre ich ansonsten für Aufklärung dankbar. Viele Grüße, --Flo12 11:42, 22. Dez. 2006 (CET)Beantworten

Okay, nachdem der Benutzer mit dem schwer abzutippenden Namen das in "Anzahl der Muster, die dem Netz vorgestellt werden" geändert hat, ergibt es auch Sinn (hab das grad noch mal im Buch nachgeschlagen, steht da auch so). Insofern meinen zweifelnden Kommentar bei der typo-Korrektur bitte ignorieren. Danke und Gruß, --Flo12 14:33, 29. Dez. 2006 (CET)Beantworten

Hab das auch aus einem Buch. Ich will nicht behaupten ich kenne mich auf diesem Gebiet sehr gut aus da ich mich gerade in das Thema einarbeite. Schön Dass ich dir helfen konnte ;-) مبتدئ 03:17, 30. Dez. 2006 (CET)Beantworten

Fehler? Bearbeiten

Ist da vielleicht ein Fehler in dem Bild mit dem Untertitel:Künstliches Neuron mit Index j?
die allgemein gängige Notation/Definition ist: Wij==> Kante von j nach i; im Bild ist es aber umgekehrt مبتدئ 03:36, 28. Dez. 2006 (CET)Beantworten

Ist doch reine Definitionssache --chrislb 问题 14:16, 29. Dez. 2006 (CET)Beantworten

Klar! ich sage nur dass, es einfacher ist wenn man sich an die allgemein bekannte Definition hält einen Vergleich mit der Litteratur etc. durchzuführen. Ich weiss nicht ob diese Notation konsequent eingehalten wird in diesem Artikel (Switchen zwichen den Definitionen ist tödlich in diesem Zusammen hang den das Gewicht Wij ist nicht gleich Wji (denke ich zumindest)). Danke an die Verfasser anyway مبتدئ 03:14, 30. Dez. 2006 (CET)Beantworten

Das Bild ist im SVG-Format, man kann es also mit einem normalen Texteditor recht einfach ändern. Auf Wunsch kann ich eine zweite Kopie davon hochladen, oder du machst es einfach selber. Einen Standard in der Literatur kann ich persönlich nicht erkennen, aber lasse mich gerne mit dem Hinweis auf ein paar andere Bücher belehren. Einheitliche Verwendung von Formeln ist auf jeden Fall etwas wünschenswertes. Grüße --chrislb 问题 13:34, 30. Dez. 2006 (CET)Beantworten

Du hast anscheinend Recht ein Standard gibt es nicht. Für mich wenn ich ein Netz als gerichtetn Graphen betrachte und wenn mir erklärt wir Wij ist die Kante von J nach i dann ist es Graphtheoretisch nicht das Gleiche wie die Kante von i nach J. Es scheint aber doch so zu sein dass es in der NN Litteratur doch recht Großzügig gehandhabt wird. Vielleicht macht es keine Probleme wenn man so vorgeht und schenkt der Sache deswegen keine Beachtung? Anyway Danke für die Das Lesen meines Posts und der Antwort. مبتدئ 04:34, 10. Feb. 2007 (CET)Beantworten

Wenn die Literatur hier uneinheitlich ist muss in diesem Artikel unbedingt eine Konvention explizit gewählt und konsequent verwendet werden.--Hfst (Diskussion) 07:59, 6. Nov. 2019 (CET)Beantworten

Woher kommt das k? Bearbeiten

In dem Abschnitt "Ableitung der Fehlerfunktion" kommt bei der Formel für die Berechnung der Steigung der Hidden Neuronen plötzlich eine Summe mit k und w_jk vor. Es ist aber nirgendswo erklärt was das nun bedeutet. Und wie genau werden die Gewichte nun eigentlich aktualisiert? Eine beliebige Eingabe nehmen, alle Gewichte Berechnen und in einem rutsch aktualisieren oder nur ein Gewicht aktualisieren, dann neu rechnen und dann wieder das nächste Gewicht?78.54.165.57 00:21, 14. Aug. 2008 (CEST)Beantworten

Das sollte wohl ergänzt werden. Es wird über die nachfolgenden Neuronen summiert, dies ist der "Back"-teil. Alle Gewichte des Netzes werden zusammen aktualisiert, dies muss aber nicht nach jeder Eingabe erfolgen, sondern kann in einem "Batch" zusammengefasst werden. --chrislb 20:17, 15. Aug. 2008 (CEST)Beantworten

"Es wird über die nachfolgenden Neuronen summiert" - lt. Zell et al. "Betriebswirtschaftliche Anwendungen des Soft Computing" S. 14 wird es über die nachfolgenden Schichten summiert. Wenn ich in einer verdeckten Schicht bspw. Neuron 4 und 5 und der Ausgangsschicht Neuron 6 habe, dann würde es ja implizieren, dass ich zur Ermittlung des Fehlersignals von Neuron 4, die Fehlersignale von 5 und 6 benötige. Ich würde aber meinen, dass nur das Fehlersignal des 6. Neurons gemeint ist.

Ableitung der Fehlerfunktion Bearbeiten

Sollte es bei der Berechnung der   nicht

 

heißen?

Ich glaube nicht, und ich glaube das ist so falsch wie es jetzt im Artikel steht, richtig waer:

 

--152.105.203.62 17:14, 20. Apr. 2010 (CEST)Beantworten

Nein, ich denke nicht. Auch laut der verlinkten Literatur hängt das Fehlersignal von der Neuroneneingabe und nicht von der Aktivierung ab. Was ist der Grund für deine Annahme? MfG --Adlange B 19:13, 20. Apr. 2010 (CEST)Beantworten
Also ich habe mir da nochmal ein paar Gedanken gemacht und halte es für egal, ob die Netzeingabe oder die Aktivierung für die Errechnung des Fehlersignals verwendet wird. Voraussetzung ist allerdings, dass keine hard limit-Aktivierungsfunktion verwendet wird, da das Netz sonst mMn sehr viel undynamischer wird. Definiert ist das Fehlersignal aber so, wie es im Artikel steht, demnach sollte es dort auch so bleiben. MfG --Adlange B 12:13, 21. Apr. 2010 (CEST)Beantworten

Nur für Zahlen <1? Bearbeiten

 
Künstliches Neuron mit Index j

Möglicherweise habe ich etwas missverstanden aber für mich sieht es so aus als würde das Lernen (Backpropagation#Herleitung) nur bei kleinen Zahlen (genauer: zwischen -1 und +1) funktionieren?

Ein Beispiel:

Ein einfaches Neutron in der Ausgabeschicht. Um das ganze möglichst einfach zu halten sind gibt es 2 Eingaben die konstant den Wert 2 liefern (Also x1 und x2 sind 2). Die Ausgabe (Soll-Ausgabe bzw.  ) soll konstant 1000 betragen. Um es einfach zu machen die Aktivierungsfunktion   d.h.  .

Wenn ich das richtig verstanden habe gilt dann für den Fehler:   bzw. weil die   ist:   D.h. in dem konkreten Fall (bei einer initialisierung der Gewichte mit 0) ergibt sich  .

Wenn ich das in die Fehlerfunktion:   einsetze (die Lernrate   ist der Einfachheit halber 1) kommt folgendes heraus:

 

Das neue   bzw.   wäre dann also 2000 und die nächste tatsächliche Ausgabe ist X1*w1+x2*w2 d.h. 2*2000+2*2000 = 8000. Das Neuron hat also nichts gelernt sondern ist im Gegenteil "dümmer" geworden.

Fehlt in dem Artikel die Einschränkung auf den Wertebereich -1 bis +1 oder - was wahrscheinlicher ist - hab ich etwas falsch verstanden? ZeugeDerNacht (Diskussion) 16:32, 7. Mai 2015 (CEST)Beantworten


Das sieht für mich eher danach aus, dass der Fehlerteufel zugeschlagen hat - und zwar ist das Minus wohl schlicht und ergreifend verloren gegangen. In der englischen Fassung ist die Welt noch in Ordnung. Ich habe die Änderung hier eingebracht. (anonymer Nutzer, 03:27 AM GMT + 1, 30.04.2017)

Abgrenzung zu GANs Bearbeiten

Ist die Fehlerrückführung mit Generational Adversarial Networks (GANs) identisch? Zu diesen fehlt sowieso noch dringend ein deutscher Artikel, bedenkt man, das wohl in nächster Zukunft eine große Menge an KI-Anwendungen darauf basieren wird. --79.242.203.134 08:19, 10. Jun. 2017 (CEST)Beantworten

Generative Adversarial Networks, Backpropagation wird dort beim Training auch benutzt. biggerj1 (Diskussion) 09:00, 18. Jul. 2021 (CEST)Beantworten

Über die Eindeutigkeit der Formel (speziell Sigma) Bearbeiten

Hallo,

ich finde es persönlich wenig eindeutig, ob bei der Berechnung von Sigma für die Fehlerrückführung eines verdeckten Neurons das neue, das alte oder das Delta des Synapsengewichtes wjk genutzt wird. Wenn jemand die Antwort kennt bitte bescheid geben und ggf. anpassen. So wie es jetzt angegeben ist gehe ich davon aus, dass das bereits geänderte Gewicht genutzt wird (rein wegen der Rückführung von hinten nach vorne). Grüße

Ableitung der Fehlerfunktion Bearbeiten

Die partielle Ableitung der Fehlerfunktion E ergibt sich durch Verwendung der Kettenregel:  

Das halte ich für möglicherweise irreführend (war es jedenfalls für mich), denn eigentlich liefert die Kettenregel ja erstmal eine Summe:

 

In dem speziellen Fall hier geben dann die inneren Ableitungen aber genau die Kronecker-Deltas, die man braucht, damit am Ende überall wieder nur der Index j steht.

Ist das überhaupt Backpropagation oder schon SGD? Bearbeiten

Bitte den Unterschied erläutern.--Albin Schmitt (Diskussion) 03:16, 24. Jul. 2022 (CEST)Beantworten

Backpropagation dient der Berechnung des Gradienten. Stochastic Gradient Descent ist das Optimierungsverfahren, in dem die Gewichte angepasst werden.
Man kann beide Verfahren kombinieren, um neuronale Netze zu trainieren und das ist, soweit ich weiß, sogar die häufigste Kombination oder zumindest eine der häufigsten. --Rüsselrüdiger (Diskussion) 22:43, 29. Mär. 2023 (CEST)Beantworten