Dienstag, 16. April 2024, 08:47 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Kai

unregistriert

1

Donnerstag, 10. Januar 2013, 16:11

Interpretation der Gewichtung

Hallo zusammen,

ich bin die letzte Zeit intensiv dran NNs zu entwickeln (standard Backpropagation),
passende Inputs zu definieren und mit den verschiedenen Einstellmöglichkeiten zu variieren.

Es gibt die Möglichkeit die Gewichtung der Inputs auszugeben, jedoch ist mir noch nicht schlüssig klar, wie ich die Ergebnisse interpretieren kann. Ziel ist zu identifizieren, welche Inputs mit welcher Gewichtung im entstandenen NN berücksichtigt wurden. Natürlich spielen viele Faktoren da noch mit rein, aber man sollte doch aus dem Ergebnis der Gewichtung und gezielten Ausprobieren verschiedener
Kombinationen die (Un)sinnhaftigkeit eines Inputs halbwegs bewerten können.

Da das doch wohl überhaupt eins der wichtigsten Themen bei der Erstellung der NNs ist, überraschte es mich in den Foren so wenig zu finden.
Ich kann es natürlich übersehen haben, aber sowohl im alten Forum, wie auch im neuen finde ich dazu gerade mal folgendes:

Gewichtung
Mit Verweis auf einen Threat im alten Forum #145. Den gibt es aber in dem statischen Archiv des alten Boards nicht, bzw. wurde vielleicht irgendwie konsolidiert? Ich finde im alten
Forum zu dem Thema nichts.

Aktivierungsfunktion der NNs
Blieb leider ungeantwortet - aber klingt sehr viel komplexer als der Beitrag oben

Vom Beitrag oben ist die folgende Info:

Zitat


Der Bias-Wert ist der Schwellenwert der Aktivierungsfunktion. Ich hoffe, ich habe das jetzt richtig ausgedrückt.

Vorgehensweise mit Excel:
Um es vorwegzunehmen: Wenn Du Deine NN mit "Crossvalidation" trainierst
und die Gewichte analysieren willst, hast Du "etwas" zu tun. Du musst es für jeden Sample separat machen.

Ansonsten: Du musst die Beträge der einzelnen Werte unter "Inp.." addieren. Wichtig: Die Beträge, nicht die simplen Zahlen,
weil ein negativer Wert von beispielsweise -10 dieselbe Gewichtung wie ein positiver von +10 besitzt. Die Beträge der Zahlen werden also von
oben nach unten addiert.

Anschließend werden diese Summen von links nach rechts addiert. Du erhälst damit eine Zahl, die den "Gesamteinfluss" aller Inputs
darstellt.

Der Rest ist Dreisatz. Du teilst dann nur noch (Einfluss des Inputs) / (Gesamteinfluss) * 100
und erhälst die prozentuale Gewichtung der einzelnen Inputs.

Wenn es Threats oder Doku gibt, die dieses Thema behandeln wäre es nett wenn jemand einen Link posten könnte. Ansonsten hätte ich da auf Anhieb ein paar konkrete Fragen:

1.) In der Auswertung der Gewichte werden mir mehr Inputs angezeigt, als ich verwende. Z.B. habe ich 40 Inputs, dargestellt werden 46. Sind die ersten 40 meine eigentlichen Inputs? Was sind die zusätzlichen Inputs (hidden und output?)

2.) Wenn Bias der Schwellenwert der Aktivierungsfunktion ist, muss der bei der Bewertung noch berücksichtigt werden? D.h. erst wenn der Wert über bzw. unterschritten wird, dann gilt der Input? Wenn ein Schwellenwert -0.1 ist, dann ist der Input nur relevant, wenn er diesen unteschreitet? Oder überschreitet?

3.) Sollte man die Summen der absoluten Zahlen bei jedem Input auf allen Hiddenschicht nehmen um den Einfluß des Inputs aufs Gesamtsystem zu erhalten?

4.) Und noch dieselbe Frage wie Georg: - Für jedes Sample stehen am Ende noch Spalten für die Hiddenschichten 1...n mit Werten in der „Out-Zeile“. Stehen diese Werte für die
Gewichtung der einzelnen Hiddenschichten im jeweiligen Sample? Wenn ja, muss ich dann nicht diese Werte in der Berechnung der prozentualen
Gewichtung der einzelnen Inputs berücksichtigen ?

Das Ganze wird mit Sicherheit hier in den Foren schon mal diskutiert worden sein, aber wie gesagt nach durchstöbern, Google und Forumsuche finde ich nix.

Viele Grüße
Kai

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Donnerstag, 10. Januar 2013, 20:21

passende Inputs zu definieren und mit den verschiedenen Einstellmöglichkeiten zu variieren.

Hier bist Du auf dem richtigen Weg.

Es gibt die Möglichkeit die Gewichtung der Inputs auszugeben, jedoch ist mir noch nicht schlüssig klar, wie ich die Ergebnisse interpretieren kann.

Weil es die gesuchte Bewertung nicht gibt.

Ziel ist zu identifizieren, welche Inputs mit welcher Gewichtung im

Und ab hier geräts Du auf den Holzweg. Ziel ist, Geld zu verdienen. Welche Inputs, welche Gewichte, Rababer Rababer. Hier wird's akademisch und raus kommt am Ende eher nichts, was mit Trading zu tun hat. Aber ok, wenn Du NN's untersuchen willst, ist das OK. Wenn Du traden willst, ist das ein Schmarrn.

aber man sollte doch aus dem Ergebnis der Gewichtung und gezielten Ausprobieren verschiedener Kombinationen die (Un)sinnhaftigkeit eines Inputs halbwegs bewerten können.

Wozu?

Da das doch wohl überhaupt eins der wichtigsten Themen bei der Erstellung der NNs ist, überraschte es mich

Hier ist Du völlig im Quark mit Sosse angekommen. Das interessiert ja nicht. Genausowenig wie einem die Sinnhaftigkeit der Schlussfolgerungen eines menschlichen Experten interessiert - wenn er denn Erfolg um Erfolg einsammelt. Pragmatiker die Geld verdienen wollen stellen so einen Experten ein, Theoretiker stellen ihm viele Fragen und ergründen den Ursprung seines Genius am Ende doch nicht. Können dann aber Bücher schreiben warum der Typ so schlau ist - ohne selber je so schlau werden zu können.

Man hat post mortem das Gehirn von Experten millimetergenau in Scheiben geschnitten - ohne dem Ursprung ihrer Intelligenz auf den Grund gekommen zu sein. Und genauso interessant sind die Verbindungsgewichte eines NN's. Allenfalls könnte man als Programmierer mit dem ursprünglichen Source-Code ausgestattet via Verbindungsgewichte Clone des NN's erschaffen. Der Traum vom "Upload" eines menschlichen Denkmuskels bleibt dagegen Science Fiction ... mehr kannst damit aber auch nicht anfangen!

Mein Rat wenn Du mit NN's arbeiten willst: finde Markt-erklärende Inputs, erzeuge Generationen von Experten (NN's), suche Möglichkeiten, die prognose-fähigkeit der Probanden durch Vergleich mit Vergleichszeitreihen zu bewerten. Schneide unterwegs nicht ihr Gehirn auf. Stell' am Ende die besten Kandidaten ein.
Gruss
Bernd

Kai

unregistriert

3

Donnerstag, 10. Januar 2013, 21:10

Hallo Bernd,

ganz ehrlich, ich habe nicht im geringsten vor NNs akademisch anzugehen, aber ich hatte schon die Hoffnung aus den Gewichten den Mehr- oder Minderwert von dem einen oder anderen Input im Rahmen der vielen Tests zu erhalten. Verstehe nicht, wieso das in Deinen Augen schon akademisch ist und vom Traden weg. Wenn ich auf die Trefferquote oder Korrelation des NN schaue, dann kann ich genauso auf die genutzen Inputs (bei GA) oder Gewichtung schauen.

Wozu die "die (Un)sinnhaftigkeit eines Inputs" bewerten? Wenn ich aus 200 schon recht gut formulierten Inputs reduzieren möchte, dann ist jede Info, die das System mir bietet ein Mehrwert!

Viele Grüße
Kai

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Donnerstag, 10. Januar 2013, 21:36

Es war nicht meine Absicht, Dich in Deinen Elan zu unterbrechen. Ich wollte mit meinen Erfahrungen nur helfen, Deine Lernkurve zu verkürzen.

Aber natürlich ist es völlig ok, wenn Du Deinen eigenen Weg suchst und "jede Information" nutzen möchtest. Und wer weiss, vielleicht findet sich ja jemand anders, der Dir einen tollen Weg aufzeigen kann, was man mit den ausgelesenen Gewichten anfangen kann. Oder Du findest selbst eine prima Idee zum Thema.

Ich habe es seinerzeit untersucht und die Schlüsse gezogen, die ich in vorstehendem Posting zusammengefasst habe.

Viel Erfolg!, und ich bin in diesem Thread nun gespannt auf Erkenntnisse zum Thema "Interpretation der Gewichtung", die sich von meinen unterscheiden.
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

5

Donnerstag, 10. Januar 2013, 22:01

Also wenn ich auf die Waage schaue, muss ich nett viel interpretieren, ich bin zu klein.

Aber als verkappter Wissenschaftler sehe ich das natürlich alles bisschen anders als der liebe Bernd.

Als Pragmatiker seh ich das auch noch mal bisschen anders:
Wenn ich über die Gewichtung eines Neuronale Netzen erfahren kann, dass der Input yxz nur mit 0,0x irgendwas verwurstet wird, weiß ich, dass ich Ihn unter den Tisch fallen lassen kann und lieber nach wichtigeren Inputs ausschau halten sollte.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lenzelott« (10. Januar 2013, 22:22)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Freitag, 11. Januar 2013, 01:07

Wenn ich über die Gewichtung eines Neuronale Netzen erfahren kann, dass der Input yxz nur mit 0,0x irgendwas verwurstet wird,

Schön wär's ja. Hast Du Dir die Gewichtungs-Zahlenwüste mal angesehen? Wie findest Du heraus, dass ein Input "nur" mit 0,0 "verwurstet" wird? Und warum ist 0,0 eigentlich "nur" und nicht "sogar"?

* 0,0 kann sehr hoch sein, desswegen heisst es ja Gewichtung, besonders natürlich, wenn die auch negativ werden können :D
* der Input kann in der nächsten Generation schon wieder anders wichtig sein
* fehlen Reize an scheinbar "hoch" gewichteten Inputs, kann je nach Datenlage auch ein nachrangiger Input seine Synapse heftig reiben :thumbup:

Leider ist die Bewertung von Input-Gewichten oder gar jenen der Hidden Schichten kompliziert und wie mir scheint auch von der Datenlage abhängig.

So sehen diese Gewichte als Beispiel aus (bei einem neuen Training aber bei gleichen Inputs wieder anders):

Zitat


Bias Inp 1 Inp 2 Inp 3 Inp 4 Inp 5 Inp 6 Inp 7 Inp 8 Inp 9 Inp 10 Inp 11 Inp 12 Inp 13 Inp 14 Inp 15 Hid 1 Hid 2 Hid 3 Hid 4 Hid 5
Hid 1 -1.473188E-02 -2.251006E-02 5.962144E-02 -8.825687E-02 0.1541747 -0.2512875 0.6573628 -0.1322738 -1.468547 -1.43871 -0.6185535 -8.139773E-02 5.396784E-02 0.1207178 8.700547E-02 -7.509996E-02
Hid 2 -7.918337E-02 -0.1550899 -0.3133672 -0.2733736 -0.5233839 -0.3902431 -2.419757E-02 -1.897931E-02 4.23804E-03 1.916597E-02 3.265934E-02 1.528122 1.219042 1.372433 2.791699 2.292877
Hid 3 -0.217758 1.793431E-02 6.826556E-02 -0.2038265 8.035357E-02 4.186615E-02 -1.580081E-02 0.1119882 0.1564727 0.1325196 0.2271232 -0.1550571 -3.063163E-02 0.1188796 -0.1381383 -8.323429E-02
Hid 4 1.811562E-02 -0.25527 -0.3549809 -0.1280562 -0.3353976 -0.4472086 -0.1651259 -0.1144377 -5.562849E-02 -6.165486E-03 3.701886E-02 -1.640699 -0.1809179 1.213176 0.3228647 -2.193444
Hid 5 0.7524177 -0.7716388 -0.9188456 -0.841154 -0.7311236 -0.4822775 1.641553E-02 -8.349136E-03 -3.696141E-02 -4.200844E-02 -3.482326E-02 -1.576807 -1.767645 -0.2291292 -1.128925 -1.222043
Out1 -5.964357E-02 -1.249714 8.399706E-02 0.1835295 0.1310659 -6.644831E-02


Aber als verkappter Wissenschaftler sehe ich das natürlich alles bisschen anders als der liebe Bernd.

Wie es aussieht, hat sich noch kein Wissenschaftler an die Analyse gemacht; Lenzelott, wie wär's
Gruss
Bernd

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

7

Freitag, 11. Januar 2013, 08:38

Hallo,

bei der Sensitivitätsanalyse der Inputs geht es ja letztlich darum, aus einer größeren Anzahl Inputs die "wichtigsten" auszuwählen und damit deren Anzahl zu reduzieren. Ein Problem dabei ist u.a. z.B., dass der bereits entfernte Input x nach Entfernung von Input y vielleicht wieder wichtiger wäre. In Investox ist die Idee, dass die Auswahl einer reduzierten Anzahl von Inputs durch das GA-Training vorgenommen wird.

Viele Grüße
Andreas Knöpfel

Kai

unregistriert

8

Samstag, 12. Januar 2013, 15:39

Hallo zusammen,

ich bin zwar noch genauso schlau wie vorher, aber das hat mir keine Ruhe gelassen. In meiner Unwissenheit habe ich mich gestern dann mal dran gemacht und in Excel/VBScript eine Auswertung programmiert.
Sie mag vielleicht keinen akademischen oder wissenschaftlichen Anforderungen genügen, aber in den paar Stunden, die ich damit arbeite ist sie ein Meilenstein für meine NN Entwicklungen.

Mit GA habe ich bisher nur begrenzt Erfolg gehabt. Gerade wenn noch Variablen im Spiel sind fällt die Generalisierung doch schwer.
Ob die Berechnung der Gewichtung so ganz Richtig ist weiß ich wie gesagt nicht, aber was raus kommt ist sehr schlüssig für mich und ich konnte auch so schon Verbesserungen bei meinen NNs erreichen. Wie Bernd und Hr. Knöpfel schon richtig sagten ändert sich natürlich auch die Gewichtung von Aufbereitung zu Aufbereitung und wenn man einen Input weg lässt, dann hätte ein anderer nicht vorher weggelassen werden sollen, etc. Man kann aber nun Versuchsreihen nebeneinander darstellen und bekommt so deutlich schneller ein Gefühl dafür was funktioniert - zumindest geht es mir so :thumbup:

Letztlich nimmt das Tool alle Inputs und Kennzahlen aus der Beschreibung, kombiniert sie mit der Gewichtung und stellt diese im Excel dar. Als Berechnung für die Inputs werden die Absoluten Werte aufsummiert und zur Gesamtheit gewichtet. Bei Crossvalidation werden die Samples zusammengefasst, wobei jedes Sample die gleiche Gewichtung bekommt. Falls doch noch jemandem einfällt, wie die Berechnung verbessert werden kann, dann bitte melden.

Aus Quick & Dirty habe ich dem Excel heute noch einen Hauch von Benutzerfreundlichkeit eingehaucht und stelle es hier mal rein.
Als Beispiel habe ich wahllos mit ein paar Templates zwei NNs erzeugt und die Daten zur Illustration importiert. Nach dem dem runterladen einfach auf "Reset Output" klicken und auf "Info" wie es funktioniert.

NN_Auswertung_v01.zip

Viel Spaß damit und ich hoffe dem ein oder anderen hilft es.

Viele Grüße
Kai

Ähnliche Themen