Wie lässt sich der Beitrag eines "spezifischen" Inputs zu den NS praktisch bewerten? - Seite 3

 
alexeymosc:
Es gibt auch eine umgekehrte Situation: Theoretisch ist es möglich, dass es zwei Eingaben mit hoher und eine mit niedriger Informativität gibt. Logischerweise wollen Sie den dritten entfernen, aber wenn Sie ihn entfernen, wird die komplexe Quadro-Beziehung (drei Eingänge - Ausgang) zerstört, und die beiden verbleibenden Eingänge sind nicht mehr so informativ.

Ich mache das sozusagen an einer fertigen Probe und sehe sofort, wie sich das Ergebnis der NS sowohl an der Trainingsstichprobe als auch außerhalb davon verändert. Wenn etwas zusammenbricht, sollte sich dies auf das Endergebnis auswirken. Ich habe eine Eingabe entfernt und es gab keine Verschlechterung; ich habe eine andere Eingabe entfernt und es gab eine Verschlechterung von weniger als 1 % des Endergebnisses; ich habe die dritte Eingabe entfernt und es gab eine Verschlechterung von 10 %. Dann das Gleiche mit Kombinationen von 2 Eingängen, 3 Eingängen usw.

Ich mache das erst seit ein paar Stunden, aber ich habe bereits eine leere Eingabe, eine vollständige Duplizierung einer anderen Eingabe (als Ergebnis eines Fehlers) und 2 Eingaben gefunden, deren Auswirkung sogar ein Minimum von Zehntelprozent ist. Ich denke, dass diese 3 Eingaben absolut unnötig sind.

Ich habe auch 2 Eingaben gefunden, deren Ausschluss das Ergebnis nicht verschlechtert, was klar war, sondern es verbessert, was unerwartet ist. Mit ihnen sollte ich mehr experimentieren, die Einträge sind offensichtlich nicht leer und ihr Einfluss auf das Ergebnis, wenn auch in umgekehrter Richtung, kann es beweisen.

Vielen Dank an alle, ich habe wirklich einige nützliche Ratschläge erhalten.

 
Figar0:

Ich mache das sozusagen an einer fertigen Probe und sehe sofort, wie sich das Ergebnis der NS sowohl an der Trainingsstichprobe als auch außerhalb davon verändert. Wenn etwas zusammenbricht, sollte sich dies auf das Endergebnis auswirken. Ich habe eine Eingabe entfernt und es gab keine Verschlechterung; ich habe eine andere Eingabe entfernt und es gab eine Verschlechterung von weniger als 1 % des Endergebnisses; ich habe die dritte Eingabe entfernt und es gab eine Verschlechterung von 10 %. Dann das Gleiche mit Kombinationen von 2 Eingängen, 3 Eingängen usw.


Dies ist die zuverlässigste Art, Eingaben auszuwählen - Brute-Force. Es ist hart, aber ehrlich. Viel Glück!
 

Bei 20 Eingaben ergibt ein sauberer Sweep etwa 2^20 Kombinationen, d. h. eine Million.

Die Informationstheorie kommt mir wieder in den Sinn, aber ich werde keine Ratschläge geben.

 
Mathemat:

Bei 20 Eingaben ergibt ein sauberer Sweep etwa 2^20 Kombinationen, d. h. eine Million.

Sie können also "von hier bis zum Abendessen" oder "bis es Ihnen langweilig wird" durchgehen...
Und dann ein Gentest... ...Testlauf.
 

Es ist möglich, die "Unbedarftheit" einer Eingabe zu bestimmen. Je näher das Gewicht eines Neurons bei 0 liegt, desto "unnötiger" ist es. Im Wesentlichen wird der Wert eines Neurons mit 0 multipliziert, undalles, was darin enthalten ist, ergibt 0, d. h. überhaupt keineEingabe.

Der größte Nachteil eines solchen unnötigen Neurons ist eine unnötig erhöhte Lernzeit.

Solche "unnötigen" Neuronen können jedoch nicht nur in der Eingabeschicht des Gitters auftreten, sondern in jeder seiner Schichten.

Sie können den Prozess der Suche nach überflüssigen Neuronen nach dem Testtraining automatisieren - nehmen Sie einen Modulo-Wert des Neuronengewichts und wenn der Wert kleiner als ein bestimmter Schwellenwert ist, löschen Sie es. Dann müssen Sie analysieren, welche Neuronen eine Gewichtung von 0 haben, diese aus dem Netz ausschließen und neu trainieren - das Training wird deutlich schneller und das Ergebnis ist dasselbe. Und natürlich verwenden Sie anschließend ein derart verdünntes Netz.

 
joo:

Es ist möglich, die "Unnötigkeit" einer Eingabe zu bestimmen. Je näher das Gewicht eines Neurons bei 0 liegt, desto "unnötiger" ist es. Im Wesentlichen wird der Wert eines Neurons mit 0 multipliziert, undalles, was darin enthalten ist, ergibt 0, d. h.die Eingabe ist so, als ob sie überhaupt nicht vorhanden wäre.


das ist richtig. aber woher kommt die eingabe immer gleich null? das kann es nicht geben.

Höchstwahrscheinlich handelt es sich in diesem Fall um ein Signal, das inkommensurabel kleiner ist als die anderen Signale. Dies kann leicht durch Signalskalierung korrigiert werden.

Das Signal von SSI ist millionenfach größer als das Signal von OsMA. Diese Signale sind nicht vergleichbar und können nicht verwendet werden, ohne sie auf den gleichen Maßstab zu skalieren.

 
joo:


Solche "überflüssigen" Neuronen können jedoch nicht nur in der Eingabeschicht des Netzes, sondern in jeder Schicht des Netzes überhaupt landen.


Dies ist nicht möglich, wenn die Transformationen in den Neuronen nichtlinear sind.
 
mersi:

Das ist richtig, aber woher kommt das Eingangssignal, das immer gleich Null ist?

höchstwahrscheinlich handelt es sich in diesem Fall um ein Signal, das inkommensurabel kleiner ist als die anderen Signale. Dies kann leicht durch die Signalumwandlung korrigiert werden.

Das Signal von SSI wird millionenfach größer sein als das Signal von OsMA. Diese Signale sind nicht vergleichbar und können nicht verwendet werden, ohne sie zu verkleinern.

Ich dachte, dass für alle Neuronisten das Einbringen (Skalieren) von Signalen für das Netzwerk in einen Bereich, der für die Einspeisung in das Netzwerk geeignet ist, wie das "Vaterunser" ist, aber ich lag falsch, wie ich es sehe. :)

Die Signale werden also skaliert und variieren z. B. im Bereich [-1,0;1,0]. Aber eines der Eingangsneuronen hat das Gewicht 0. Was bedeutet das? - Das bedeutet, dass es dem Netz egal ist, welchen Wert dieses Neuron am Eingang hat, das Ergebnis des Netzes hängt nicht von diesem Eingang ab.

mersi:
dies kann bei nichtlinearen Transformationen in Neuronen nicht geschehen

Das kann sehr wohl passieren. Und das ist oft der Fall, wenn in den inneren Schichten mehr Neuronen vorhanden sind, als zur Lösung eines Problems erforderlich sind.

 
joo:

Ich dachte, dass für alle Neuronisten das Einbringen (Skalieren) der Signale für das Netzwerk in einen Bereich, der für die Einspeisung in das Netzwerk geeignet ist, wie das "Vaterunser" war, aber ich lag falsch, wie ich es sehe. :)

Die Signale werden also skaliert und variieren z. B. im Bereich [-1,0;1,0]. Aber eines der Eingangsneuronen hat das Gewicht 0. Was bedeutet das?- Es bedeutet, dass es dem Netz egal ist, welchen Wert dieses Neuron am Eingang hat - das Ergebnis der Netzoperation hängt nicht von diesem Eingang ab.

Das ist sehr wohl möglich. Und das ist oft der Fall, wenn es in den inneren Schichten mehr Neuronen gibt, als zur Lösung einer Aufgabe notwendig sind.

Auf den ersten Blick scheint diese Behauptung nicht falsch zu sein.

Die Daten von Eingang Xi werden jedoch gleichzeitig an mehrere Neuronen weitergeleitet, und alle ihre Synapsen sind nicht notwendigerweise gleich Null, so dass der Ausschluss von Eingang Xi die Netzwerkausgabe völlig verändern wird.

--------------

Je mehr Neuronen in einem Netz vorhanden sind, desto genauer und komplexer kann das neuronale Netz arbeiten.

Die Entwickler von NS selbst begrenzen die Anzahl der Neuronen in einem Netz aus dem Grund, dass die Genauigkeit des Ergebnisses bei einer akzeptablen Lernzeit ausreichend ist, da die Anzahl der für das Netztraining erforderlichen Epochen in einer Potenzabhängigkeit von der Anzahl der Neuronen wächst.

 
Figar0:

Nicht ganz Freitag, aber ...

Es gibt ein NS, irgendein NS, es gibt eine Eingabe A={A1, A2, .... A20}. Trainieren Sie die NS und erzielen Sie ein zufriedenstellendes Ergebnis. Wie lässt sich der Beitrag der einzelnen Elemente der Eingaben A1, A2, ... praktisch bewerten? A20 zu diesem Ergebnis?

Die Optionen, die mir in den Sinn kommen, sind:

1) Alle Gewichte, mit denen das Element das Netz durchläuft, irgendwie zusammenzählen und berechnen. Mir ist nicht ganz klar, wie ich das machen soll, ich müsste mich in den Netzbetrieb vertiefen und irgendwie einige Koeffizienten berechnen, usw.

2) Versuchen Sie, ein Element des Eingangsvektors auf Null zu setzen oder umzukehren und sehen Sie, wie sich dies auf das Endergebnis auswirkt. Bis jetzt habe ich mich damit abgefunden.

Doch bevor ich diese zweite Variante realisierte, beschloss ich, meinen Rat einzuholen. Wer hat vielleicht schon länger über dieses Thema nachgedacht als ich? Vielleicht kann mir jemand einen Buch-Artikel empfehlen?

Die Anwendung eines soliden, wissenschaftlich fundierten Ansatzes außerhalb seines ökonometrischen Kontextes wirft kindische Fragen auf.

Eine Regression durchführen:

Gewinn = s(1) * A0 + ... s(n) * A(n)

Wir schätzen die Koeffizienten dieser Regression.

Unmittelbar danach erhalten wir

Wahrscheinlichkeit, dass ein bestimmter Koeffizient gleich Null ist - löschen wir eine solche Eingabe

die Wahrscheinlichkeit, dass alle Koeffizienten zusammengenommen gleich Null sind

durch Ellipsen erhalten wir Korrelationskoeffizienten

Test auf redundante Eingänge

einen Test auf fehlende Eingaben durchführen

Prüfung der Stabilität der Koeffizientenwerte (Bewertung ihrer Zufälligkeit)