Diskussion zum Artikel "Tiefe neuronale Netzwerke (Teil II). Ausarbeitung und Auswahl von Prädiktoren"

 

Neuer Artikel Tiefe neuronale Netzwerke (Teil II). Ausarbeitung und Auswahl von Prädiktoren :

Der zweite Artikel der Serie über tiefe neuronale Netze befasst sich mit der Ausarbeitung und Auswahl von Prädiktoren (= Variablen zur Wertevorhersage anderen Variablen) während des Prozesses der Datenaufbereitung für das Training eines Modells.

Erinnern wir uns daran, welche Variablen des ursprüngliche Datensatzes DT$train enthält:

require(funModeling)
plot_num(env$DT$train %>% select(-Data), bins = 20)

FSelect 1

Abb. 28. Verteilung der Variablen im Datensatz DT$train

Autor: Vladimir Perervenko

 

Das ist interessant:

Обрезка минимального значения — это простой в использовании алгоритм, при котором на каждом шаге отключаются веса с наименьшим абсолютным значением. Этот алгоритм требует ретрансляции сети практически на каждом шаге и дает субоптимальные результаты.

Verstehe ich die Reihenfolge, in der diese Funktion ausgeführt wird, richtig?

1) Das ursprüngliche 12-8-5-1 Netz vollständig trainieren

2) Finde eine Verbindung mit minimalem Gewicht und entferne den Eingang

3) Trainiere das 11-8-5-1-Netzwerk erneut ohne den entfernten Eingang

Und so weiter für mehrere Dutzend Umschulungszyklen. Bis kein 6-2-1-1-Netzwerk mehr übrig ist.

Mir scheint, dass die Zeit, die für eine solche Eliminierung unbedeutender Gewichte, Eingänge und interner Neuronen aufgewendet wird, viel länger sein wird als ein einziges vollständiges Training (das wir in Schritt 1 durchgeführt haben).

Was sind die Vorteile dieses Ansatzes?

 
elibrarius:

Das ist interessant:

Verstehe ich die Reihenfolge, in der diese Funktion ausgeführt wird, richtig?

1) Das ursprüngliche 12-8-5-1 Netz vollständig trainieren

2) Finde eine Verbindung mit minimalem Gewicht und entferne die Eingabe

3) Trainiere das 11-8-5-1-Netzwerk erneut ohne entfernte Eingabe

Und so weiter für mehrere Dutzend Umschulungszyklen. Bis kein 6-2-1-1-1-Netzwerk mehr übrig ist.

Mir scheint, dass die Zeit, die für eine solche Eliminierung unbedeutender Gewichte, Eingänge und interner Neuronen aufgewendet wird, viel länger sein wird als ein einziges vollständiges Training (das wir in Schritt 1 durchgeführt haben).

Was sind die Vorteile dieses Ansatzes?

1- Der Algorithmus funktioniert genau wie dieser. Mit einer Ausnahme: Neuronen in allen versteckten Schichten werden verworfen.

2. Es wird ein minimaler Satz von Eingaben und eine minimale Struktur definiert, die das gleiche Ergebnis wie der vollständige Satz liefert.

Die Vorteile? Wir entfernen alles Unnötige, das zu einer falschen Klassifizierung führt. So behaupten es die Entwickler.

Nur eine Möglichkeit zur Auswahl wichtiger Prädiktoren

Viel Glück

 
Vladimir Perervenko:

1. der Algorithmus funktioniert genau so. Mit einer Ausnahme: Die Neuronen in allen versteckten Schichten werden verworfen.

2. Es werden eine minimale Menge von Eingaben und eine minimale Struktur definiert, die das gleiche Ergebnis wie die vollständige Menge liefern.

Die Vorteile? Wir entfernen alles Unnötige, das zu einer falschen Klassifizierung führt. So behaupten es die Entwickler.

Nur eine Möglichkeit, wichtige Prädiktoren auszuwählen

Viel Glück

1) Wenn es keine Verbindungen von den Eingängen zu den intrinsischen Neuronen gibt, dann können die Eingänge selbst ausgeschaltet werden.

2) Es verwirrt mich, dass der Zeitaufwand um ein Vielfaches höher ist, als wenn man nur das vollständige Modell gemäß Punkt 1 trainiert Wenn das Ergebnis dasselbe ist, warum dann so viel Zeit aufwenden?

Ich kann davon ausgehen, dass die eliminierten Prädiktoren in der Zukunft beim erneuten Training ignoriert werden und die Zeitersparnis genau dann eintritt. Aber die Bedeutung der Prädiktoren kann sich auch im Laufe der Zeit ändern.

Ich interessiere mich für diesen Trick, weil ich ihn auch einmal ausprobieren wollte, aber aufgegeben habe, als ich merkte, wie viel Zeit er kostet.

Vielleicht erlauben Dropout-Schleifen mehr Fehler und weniger Epochen der Umschulung als das endgültige Training.


Ich frage mich, welche Logik verwendet wird, um versteckte Neuronen auszusortieren? Jedes Neuron hat viele Eingangsverbindungen. Durch die minimale Summe der Eingangsgewichte? Oder nach der Mindestsumme der Ausgangsgewichte? Oder die Gesamtsumme?

 
elibrarius:

1) Wenn es keine Verbindungen von den Eingängen zu den internen Neuronen gibt, dann können die Eingänge selbst abgeschaltet werden.

2) Mich verwirrt der Umstand, dass es um ein Vielfaches zeitaufwändiger ist, als wenn man nur das vollständige Modell gemäß Punkt 1 trainiert, wenn das Ergebnis dasselbe ist, warum dann so viel Zeit verschwenden?

Ich kann davon ausgehen, dass die eliminierten Prädiktoren in der Zukunft beim erneuten Training ignoriert werden und die Zeitersparnis genau dann eintritt. Die Bedeutung der Prädiktoren kann sich aber auch im Laufe der Zeit ändern.

Ich interessiere mich für diesen Trick, weil ich ihn auch einmal ausprobieren wollte, aber aufgegeben habe, als ich merkte, wie viel Zeit er kostet.

Vielleicht erlauben Dropout-Schleifen mehr Fehler und weniger Epochen der Umschulung als das endgültige Training.


Ich frage mich, welche Logik verwendet wird, um versteckte Neuronen auszusortieren? Jedes Neuron hat viele Eingangsverbindungen. Durch die Mindestsumme der Eingangsgewichte? Oder nach der Mindestsumme der Ausgangsgewichte? Oder die Gesamtsumme?

Sehen Sie sich das Paket und die Funktionsbeschreibung an. Ich habe mich nicht eingehend damit befasst. Aber in mehreren Modellen (wie H2O) wird auf diese Weise die Wichtigkeit der Prädiktoren bestimmt. Ich habe es gerade überprüft und fand es nicht zuverlässig.

Natürlich ändert sich die Bedeutung der Prädiktoren im Laufe der Zeit. Aber wenn Sie meine Artikel gelesen haben, ist Ihnen sicher aufgefallen, dass ich dringend empfehle, das Modell regelmäßig neu zu trainieren, wenn die Qualität unter einen bestimmten Grenzwert sinkt.

Das ist der einzig richtige Weg. IMHO

Viel Glück

Viel Erfolg!

 
Vladimir Perervenko:

Sehen Sie sich das Paket und die Funktionsbeschreibung an. Ich habe mich nicht eingehend damit befasst. Aber in mehreren Modellen (z. B. H2O) wird auf diese Weise die Bedeutung der Prädiktoren bestimmt. Ich habe es gerade überprüft und fand es nicht zuverlässig.

Natürlich ändert sich die Bedeutung der Prädiktoren im Laufe der Zeit. Aber wenn Sie meine Artikel gelesen haben, sollten Sie bemerkt haben, dass ich dringend empfehle, das Modell regelmäßig neu zu trainieren, wenn die Qualität unter einen vordefinierten Grenzwert sinkt.

Dies ist der einzig richtige Weg. IMHO

Viel Glück

Viel Erfolg!

Ich danke Ihnen!
 

Wäre es nicht besser, die Stunden- und Tagesdaten nicht mit einem Prädiktor, sondern mit getrennten Prädiktoren für die Anzahl der Stunden und Tage in das NS einzugeben?

Wenn dies der Fall ist, unterscheiden sich die Gewichte/Werte von Montag (1) und Dienstag (2) um 100 % und von Donnerstag (4) und Freitag (5) um 20 %. Bei den Stunden 1,2 und 22,23 ist der Unterschied noch größer. Und wenn man von 5 auf 1 oder von 23 auf 1 wechselt, wäre das insgesamt ein gewaltiger Sprung im Gewicht.

Das heißt, dass die Bedeutung von Tagen und Stunden verzerrt wird, wenn sie durch einen einzigen Prädiktor dargestellt werden.

5 und 24 zusätzliche Prädiktoren sind eine ganze Menge. Da aber die Abfolge von Tagen und Stunden zyklisch ist, können sie in einen Winkel auf einem Kreis übersetzt werden und tun das Gleiche wie normale Winkel: "Es ist sinnvoller, den Sinus und den Kosinus dieses Winkels als Eingabe zu verwenden. D.h. es wird jeweils 2 Prädiktoren für Stunden und Tage geben. Die Idee stammt von hier http://megaobuchalka.ru/9/5905.html
 
elibrarius:

Wäre es nicht besser, die Stunden- und Tagesdaten nicht mit einem Prädiktor, sondern mit separaten Prädiktoren für die Anzahl der Stunden und Tage in das NS einzugeben?

Wenn dies der Fall ist, unterscheiden sich die Gewichte/Werte von Montag (1) und Dienstag (2) um 100 % und von Donnerstag (4) und Freitag (5) um 20 %. Bei den Stunden 1,2 und 22,23 ist der Unterschied noch größer. Und wenn man von 5 auf 1 oder von 23 auf 1 wechselt, wäre das insgesamt ein gewaltiger Sprung im Gewicht.

Das heißt, dass die Bedeutung von Tagen und Stunden verzerrt wird, wenn sie durch einen einzigen Prädiktor dargestellt werden.

5 und 24 zusätzliche Prädiktoren sind eine ganze Menge. Da aber die Abfolge von Tagen und Stunden zyklisch ist, können sie in einen Winkel auf einem Kreis übersetzt werden und tun das Gleiche wie normale Winkel: "Es ist sinnvoller, den Sinus und den Kosinus dieses Winkels als Eingabe zu verwenden. D.h. es wird jeweils 2 Prädiktoren für Stunden und Tage geben. Die Idee stammt von hier http://megaobuchalka.ru/9/5905.html

Tageszeit und Tag (Woche, Monat, Jahr) sind nominale Variablen, nicht numerisch. Wir können nur darüber sprechen, ob sie geordnet sind oder nicht. Also danke für den Vorschlag, aber nicht akzeptiert.

Verwenden Sie diese Variablen als numerische Variablen? Sie können experimentieren, aber ich suche nicht in dieser Richtung. Wenn Sie Ergebnisse haben, teilen Sie diese bitte mit.

Viel Glück!

 
Ich habe den Artikel gelesen, im ersten Teil gibt es eine Menge Transformationen von Prädiktoren, es ist sicherlich informativ, aber ich würde gerne zwei Modelle mit und ohne Transformation sehen, um die Wirksamkeit all dieser Transformationen zu bewerten. Außerdem, was bringt es, eine Normalverteilung anzustreben?
 

Diskussionen und Fragen zum Code können in diesem Thread geführt werden

Viel Glück

 
das R-Paket funModelling hat nicht die Funktion "
bayesian_plot()
?

Das R-Paket funModeling hat nicht die Funktion "?