Eigenschaften für den Aufbau eines mehrschichtigen Perzeptron-Neuronalen Netzwerks mit Keras?

datascience.stackexchange https://datascience.stackexchange.com/questions/9502

  •  16-10-2019
  •  | 
  •  

Frage

Ich versuche, ein mehrschichtiges perzeptronisches neuronales Netzwerk aufzubauen und zu trainieren, das korrekt vorhersagt, welcher Präsident in welchem ​​Landkreis zum ersten Mal gewonnen hat.Ich habe die folgenden Informationen für Trainingsdaten.

Gesamtbevölkerung Durchschnittsalter % Bachelor-Abschluss oder höher Arbeitslosenquote Pro-Kopf-Einkommen Haushalte gesamt Durchschnittliche Haushaltsgröße % Eigengenutzte Wohnungen % Mieter bewohnte Wohnungen % Leerstehende Wohnungen Mittlerer Eigenheimwert Bevölkerungswachstum Haushaltswachstum Pro-Kopf-Einkommenswachstum Gewinner

Das sind 14 Spalten mit Trainingsdaten und die 15. Spalte ist die Ausgabe, die ausgegeben werden sollte.

Ich versuche, Keras zum Aufbau eines mehrschichtigen Perzeptron-Neuronalen Netzwerks zu verwenden, benötige jedoch Hilfe beim Verständnis einiger Eigenschaften und der Vor- und Nachteile der Auswahl verschiedener Optionen für diese Eigenschaften.

  1. AKTIVIERUNGSFUNKTION

Ich weiß, dass mein erster Schritt darin besteht, eine Aktivierungsfunktion zu entwickeln.Ich habe immer untersucht, dass neuronale Netze Sigmoid-Aktivierungsfunktionen verwenden.Ist eine Sigmoid-Aktivierungsfunktion die beste?Woher wissen Sie, welches Sie verwenden sollen?Keras bietet außerdem die Möglichkeit, eine Softmax-, Softplus-, Relu-, Tanh-, lineare oder hard_sigmoid-Aktivierungsfunktion zu verwenden.Ich bin damit einverstanden, was auch immer zu verwenden, aber ich möchte nur verstehen, warum und welche Vor- und Nachteile es hat.

  1. Wahrscheinlichkeitsinitialisierungen

Ich weiß, dass Initialisierungen die Wahrscheinlichkeitsverteilung definieren, die zum Festlegen der anfänglichen Zufallsgewichte von Keras-Ebenen verwendet wird.Die Optionen, die Keras gibt, sind einheitliche Lecun_uniform, Normal, Identität, orthogonal, null, glorot_normal, glorot_uniform, he_normal und he_uniform.Wie wirkt sich meine Auswahl hier auf mein Endergebnis oder Modell aus?Sollte es keine Rolle spielen, weil wir das Zufallsmodell, mit dem wir beginnen, „trainieren“ und trotzdem zu einer optimaleren Gewichtung der Schichten kommen?

War es hilfreich?

Lösung

1) Die Aktivierung ist eine Architekturauswahl, die auf eine Hyperparameterauswahl hinausläuft.Sie können ein theoretisches Argument für die Verwendung jeder Funktion vorbringen, aber der beste Weg, dies festzustellen, besteht darin, mehrere auszuprobieren und anhand eines Validierungssatzes auszuwerten.Denken Sie auch daran, dass Sie Aktivierungen verschiedener Ebenen kombinieren und anpassen können.

2) Theoretisch ja, viele zufällige Initialisierungen wären gleich, wenn sich Ihre Daten extrem gut verhalten würden und Ihr Netzwerk ideal wäre.In der Praxis soll jedoch durch Initialisierungen sichergestellt werden, dass der Gradient angemessen beginnt und das Signal korrekt zurückgeleitet werden kann.In diesem Fall würde wahrscheinlich jede dieser Initialisierungen ähnlich funktionieren, aber der beste Ansatz besteht darin, sie auszuprobieren und zu wechseln, wenn Sie unerwünschte Ergebnisse erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top