Fragen und Antworten

Aus Kuenstliche Intelligenz
Wechseln zu: Navigation, Suche


Alternativ können Sie auch eine E-Mail schreiben an: uwe.laemmel@hs-wismar.de



Herleitung Fehlersignal Seite 220,221

Ich hab eine Frage zur Herleitung des Fehlersignals eines inneren Neurons(s.220/221 Backpropagation-Netze):
do/dnet=o*(1-o) (6.7)
dE/do=Summe(Fehlersignale*Gewichte) (6.10)
Fehlersignal= - dE/dnet (6.11)
wenn ich jetzt 6.7. und 6.10 in 6.11 einsetze:
Fehlersignal= - o*(1-o)*Summe(Fehlersignale*Gewichte)
..das Minus wird im folgendem Text und Beispiel aber unterschlagen.Warum darf man das?

Vielen lieben Dank im voraus:)

Uw 06:33, 15. Apr. 2009 (UTC):
Das Fehlersignal selbst ist als Negation der Ableitung des Fehlers E nach der Netzeingabe net (Formel 6.11). In der Formel (6.10) wird das Fehlersignal eingesetzt und damit hebt sich das Minuszeichen vor der Summe mit den Minuszeichen der Fehlersignale in der Summe auf.


Implementierung eines Perzetrons

Ich habe auch eine Frage - betreffend die Implementierung eines (einfachen) Perzeptrons. (Ich hoffe ich stelle diese Frage nun an der richtigen Stelle?)

Vorweg zur Info : Vorliegen habe ich die Version des Buches von 2001. Dort stolpere ich (auf Seite 288) in der Funktion teachPerceptron(int N)(...) in der Klasse TeachPerceptron.

Dort wird aufgerufen p.setInputPattern(inputPattern[m]);

Nun wundere ich mich (genauso wie mein Compiler ;) ) , da inputPattern ja ein zweidimensionales Array ist (doube[][] inputPattern). Leider bin ich in java nicht ganz so fit, und implementiere deswegen gerade in C# (Framework 3.5). Ist dies ein sprachspezifisches Problem, sprich, kann java mit p.setInputPattern(inputPattern[m]) automatisch ein 1D-Array generieren, oder handelt es sich hierbei um einen Tippfehler ? (Dies scheint mir aber nicht so, da setInputPatter in der Perceptron-Klasse ja auch nur ein 1D-Array entgegennimmt.) Irgendwie scheine ich da im Moment auf dem Schlauch zu stehen...

Wie kann man das erklären ? Ich würde mich über eine Antwort freuen :-).

Damit, viele Grüße aus Darmstadt !

Das wundert mich aber, dass Ihr Compiler sich da wundert. Es ist kein Fehler im Buch: inputPattern ist ein 2D-Array, d.h. ein Array von Arrays. Demzufolge ist inputPattern[i] das 1D-Array an der Stelle i. Die Methode SimplePerceptron.setInputPattern hat einen Parameter vom Typ double[]. Genau das liefert daher der Aufruf p.setInputPattern(inputPattern[m]).
Gruß aus Rostock, A. Raasch
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Funktionen
Werkzeuge