Lade...
 

Neuronales Netzwerk Parameter

Neuronales Netzwerk Parameter

Beschreibung

Mit dieser App werden die Parameter eines neuronalen Netzwerks gesetzt. Einige Parameter können/müssen direkt bei der Neuerstellung eines neuronalen Netzwerks gesetzt werden, andere können während des Trainings angepasst werden. Daher ist das Bearbeitungsfenster unterteilt in ein Fenster "Setup Parameter" und ein Fenster "Trainingsparameter".

Als erste feste Einstellung wird aber immer zwischen einem "Regressions" oder einem "Klassifizierenden" neuronalen Netzwerk unterschieden, daher ist diese Einstellung als Erstes vorzunehmen. Einmal erstellt, sind diese Angabe und die "Setup Parameter" nicht mehr änderbar.

 

Funktionalität

Netzwerk

In diesem Fenster können alle Parameter eines neuronalen Netzwerks definiert und gepflegt werden.

Felder
Feld Beschreibung
Typ Grundsätzliche Typisierung eines neuronalen Netzwerks in "Regression" oder "Klassifizierend". Diese Typisierung hat Auswirkung auf den Typ der Ausgabespalten, d.h. bei einem "Regression" Netzwerk können die Ausgabespalten nur vom Typ Wert (Zahl, Bruch, Prozent, usw.), Datum oder Zeit sein, bei einem "Klassifizierend" Netzwerk können die Ausgangsspalten nur vom Typ Text oder Boolean (TRUE/FALSE) sein.
Setup Parameter
: Input Parameter Parameter bezogen auf die Eingabe Neuronen
: : Anzahl Eingabe Neuronen Hier kann die Anzahl der Eingabe Neuronen festgelegt werden. Bei "-1" ermittelt das System die Anzahl der Eingabe Neuronen automatisch aus der Anzahl der für das Training definierten Eingabewerte.
: : Skalierung der Eingaben Hier können Eingaben auf ein Intervall von -1 bis 1 skaliert werden. Dies ist generell zu empfehlen, wenn nichtlineare Aktivierungsfunktionen im Netz vorhanden sind, da der entscheidende Teil dieser Funktionen hauptsächlich in diesem Intervall definiert ist. Wenn im Vorhinein bekannt ist, dass die Vertileung der Eingaben im Zusammenhang mit einer Normalverteilung steht, dann ist "MeanStandardDevation" als Skalierungsmethode zu empfehlen. Wenn dies nicht bekannt ist, ist "MinimumMaximum" als Skalierungsmethode zu empfehlen. Wenn die Eingaben nicht skaliert werden sollen, kann "NoScaling" (Defaultwert) gewählt werden. Wichtig zu beachten ist, dass diese Methoden, besonders "MinimumMaximum", anfällig auf Ausreißer sind. Wenn Ausreißer festgestellt werden können oder grundsätzlich nur ein bestimmter Bereich an Werten in Frage kommt, dann sind Schranken zu empfehlen (siehe nächste Parameter).
: : Untere Schranke Eingaben  Hier kann eine untere Schranke für die Eingaben festgelegt werden. Eingabewerte, die unterhalb dieser Schranke liegen, werden dann auf den Wert der Schranke gesetzt.
: : Obere Schranke EIngaben Hier kann eine obere Schranke für die Eingaben festgelegt werden. Eingabewerte, die oberhalb dieser Schranke liegen, werden dann auf den Wert der Schranke gesetzt.
: (Hidden) Layer Parameter  
: : Anzahl an Hidden Layer

Bei Eingabe einer "0" werden alle nachfolgenden Felder dieser Gruppe ausgeblendet, d.h. das neuronale Netzwerk soll keine Hidden Layer Neuronen besitzen, die zwischen den Eingabe und Ausgabe Neuronen geschaltet sind.

Je nach Anzahl an Hidden Layern größer als Null, können pro Hidden Layer (aufsteigend gezählt ab 0) deren Parameter gesetzt werden. Bei einer Anzahl von einem Hidden Layer gibt es maximal die Layer Nummer 0, bei einer Anzahl von zwei Hidden Layern maximal die Layer Nummer 1, usw..

Hidden Layer werden bei nichtlinearen Abhängigkeiten zwischen Input- und Outputdaten benötigt.
: : Layer Nummer Nummer des Layers, aufsteigend gezählt ab 0. Bei einer Anzahl von einem Hidden Layer gibt es maximal die Layer Nummer 0, bei einer Anzahl von zwei Hidden Layern maximal die Layer Nummer 1, usw..
: : Layer Typ
  • "Perceptron" Layer sind die Grundbausteine eines Netzwerks. Sie sind mittels Anpassung von gewichteten Verbindungen zu Neuronen des nächsten Layers für das Modellieren von numerischen Zusammenhängen zuständig. Bei Regressionsnetzen ist der Outputlayer vom Typ "Perceptron".
  • "Probabilistic" Layer sind für das Modellieren stochastischer Zusammenhänge gedacht. Sie geben basierend auf numerischen Eingabewerten Wahrscheinlichkeiten für die Zugehörigkeit der Eingabe zu verschiedenen Kategorien raus. Bei Klassifikationsnetzen ist der Outputlayer vom Typ "Probabilistic".
  • "LongShortTermMemory" Layer sind für das Modellieren von sequenziellen Zusammenhängen, vor allem über längere Sequenzen, gedacht. Sie geben basierend auf einer Sequenz numerischer Eingabewerte eine Vorhersage für die nachfolgenden Werte dieser Sequenz raus. Bei Forecastingnetzen ist (mindestens) einer der Hidden Layer vom Typ "LongShortTermMemory".
: : AnzahlLayer Neuronen Anzahl der Neuronen eines Hidden Layers. Eine "richtige" Neuronenanzahl ist schwierig im Vorhinein zu bestimmen, und ist auch nicht fest definiert. Generell wird eine Anzahl, die zwischen der Anzahl der Eingabe- und Ausgabeneuronen liegt, zum Beispiel deren Mittelwert, vorgeschlagen. Eine erhöhte Neuronenanzahl erhöht generell bis zu einem gewissen Punkt die Genauigkeit des trainierten Netzes, erhöht aber ebenfalls die Zeitkomplexität des Trainings in einem linearen Verhältnis.
: : Aktivierungsfunktion Beschreibt die Funktion, die ein Neuron zum Abbilden der aus dem vorherigen Layer übergebenen Werte verwendet. Mithilfe nichtlinearer Aktivierungsfunktionen können nichtlineare Zusammenhänge modelliert werden. Allgemein ist zu empfehlen, nicht zu viele Layer mit Aktivierungsfunktionen zu verwenden, deren Ableitung in einem Großteil des Definitionsbereichs niedrig ist, da dies zu verschwindenden Gradienten führen kann. Die "RectifiedLinear" Funktion wird zum Beispiel oft verwendet, um dies zu vermeiden. Alternativ werden "HyperbolicTangent" oder "Logistic" Funktionen oft verwendet.
: Output Parameter Parameter bezogen auf die Ausgabe Neuronen
: : Anzahl Ausgabe Neuronen Hier kann die Anzahl der Ausgabe Neuronen festgelegt werden. Bei "-1" ermittelt das System die Anzahl der Ausgabe Neuronen automatisch aus der Anzahl der für das Training definierten Ausgabewerte.
: : Skalierung der Ausgaben Hier können Ausgaben aus einem Intervall von -1 bis 1 auf den Wertebereich der Ausgaben skaliert werden. Dies ist generell zu empfehlen, wenn die Ausgaben nicht bereits im Intervall von -1 bis 1 liegen. Wenn im Vorhinein bekannt ist, dass die Vertileung der Ausgaben im Zusammenhang mit einer Normalverteilung steht, dann ist "MeanStandardDevation" als Skalierungsmethode zu empfehlen. Wenn dies nicht bekannt ist, ist "MinimumMaximum" als Skalierungsmethode zu empfehlen. Wenn die Ausgaben nicht skaliert werden sollen, kann "NoScaling" (Defaultwert) gewählt werden. Wichtig zu beachten ist, dass diese Methoden, besonders "MinimumMaximum", anfällig auf Ausreißer sind. Wenn Ausreißer festgestellt werden können oder grundsätzlich nur ein bestimmter Bereich an Werten in Frage kommt, dann sind Schranken zu empfehlen (siehe nächste Parameter).
: : Untere Schranke Ausgaben  Hier kann eine untere Schranke für die Ausgaben festgelegt werden. Ausgabewerte, die unterhalb dieser Schranke liegen, werden dann auf den Wert der Schranke gesetzt.
: : Obere Schranke Ausgaben Hier kann eine obere Schranke für die Ausgaben festgelegt werden. Ausgabewerte, die oberhalb dieser Schranke liegen, werden dann auf den Wert der Schranke gesetzt.
: : Aktivierungsfunktion Bei Regressions- oder Forecastingnetzen werden "Linear" Funktionen generell für die Aktivierungsfunktion des Outputlayers verwendet. Bei Klassifikationsnetzen werden "Softmax" Funktionen bei mehreren Ausgabeklassen und "Logistic" Funktionen bei genau zwei Ausgabeklassen verwendet.
: Outputtyp Parameter Parameter bezogen auf Ausgabe Neuronen eines bestimmten Typs (Regression, Klassifizierung)
:: Aktivierungsfunktion Bei Regressions- oder Forecastingneuronen werden "Linear" Funktionen generell für die Aktivierungsfunktion verwendet. Bei Klassifikationsneuronen werden "Softmax" Funktionen bei mehreren Ausgabeklassen und "Logistic" Funktionen bei genau zwei Ausgabeklassen verwendet.
:: Verlustfunktion Bei Regressions- oder Forecastingneuronen wird "NormalizedSquaredError" generell für die Verlustfunktion verwendet. Bei Klassifikationsneuronen wird "CrossEntropy" generell verwendet.
 Trainingsparameter
: Optimierungs Algorithmus "GradientDescent" wird generell als Grundoptimierungsalgorithmus gesehen. Allerdings ist der Algorithmus im Allgemeinen rechenaufwendiger als die anderen Algorithmen. Eine Erweiterung dieses Algorithmus, "ConjugateGradient", reduziert den Rechenaufwend, indem schneller ein Optimimum gefunden wird. Eine andere Erweiterung von "GradientDescent", "StochasticGradientDescent", reduziert ebenfalls den Rechenaufwand mittels Wahl der Trainingsreihen pro Batch und kann mithilfe des Momentums auch schneller ein Optimum finden. Ein weiterer stochastischer Algorithmus ist "Adam", welcher mittels zusätzlicher Parameter noch schneller optimieren kann. Vorteilhaft bei den stochastischen Algorithmen ist, dass sie in der Regel besser generalisieren als nicht-stochastische Algorithmen. Das Ziel eines neuronalen Netzes ist letzendlich nicht nur eine hohe Genauigkeit bei den Traningsreihen, sondern auch ein hohes Generalisierungsvermögen. Eine weitere Klasse von Optimierungsalgorithmen arbeitet nicht nur mit dem Gradienten, sondern auch mit der Hessematrix. Ein solcher Algorithmus, "QuasiNewton", approximiert die Hessematrix mithilfe des Gradienten und optimiert dadurch generell schneller als "GradientDescent" und "ConjugateGradient". Wenn die "SumSquared" Verlustfunktion verwendet wird, kann der "LevenbergMarquardt" Algorithmus verwendet werden, welcher die Hessematrix mithilfe der Differenzen der Verlustfunktion approximiert, und dadurch generell ebenfalls schneller optimiert als "GradientDescent" und "ConjugateGradient". Allgemein lassen sich "Adam" und besonders "QuasiNewton" als Optimierungsalgorithmen empfehlen.
: Regularisierungsmethode Regularisierung sorgt dafür, dass das Netz gut generalisiert, indem die Gewichte möglichst klein gehalten werden. "L1" führt strikterweise zu sehr geringen Gewichten und ist dementsprechend robust. "L2" ist weniger restriktiv, aber hat dafür einen niedrigeren Rechenaufwand. Generell wird "L2" empfohlen.
: Lambda Das Lambda beeinflusst die Stärke der Regularisierung. Generell wird 0.01 empfohlen. Ein niedrigeres Lambda führt zu weniger Generalisierung und ein Höheres führt zu höherem Generalisierungsvermögen.
: Verlustfunktion Die Verlustfunktion misst den Abstand zwischen dem Output des Netzes und dem wahren Output während des Trainings. Generell und per Default wird "NormalizedSquared" für Regressions- und Forecastingnetze sowie "CrossEntropy" für Klassifikationsnetze gewählt.
: Stichprobenziehung Hier kann die Art der Stichprobenziehung gesetzt werden. Diese ist per Default "Random" bei Regressions- und Klassifikationsnetzen und "Sequential" bei Forecastingnetzen, wobei eine "Sequential" Stichprobenziehung bei Forecastingnetzen notwendig ist. Bei Regressions- und Klassifikationsnetzen ist für reproduzierbare Trainingsergebnisse eine "Sequential" Stichprobenziehung zu empfehlen, ansonsten ist eine "Random" Stichprobenziehung zu empfehlen.
: Anzahl maximaler Iterationen Hier kann die Anzahl maximaler Iterationen im Training gesetzt werden. Da jeder Optimierungsalgorithmus anders schnell relativ zur Iterationsanzahl konvergiert, variiert die empfohlene maximale Iterationsanzahl entsprechend:
  • QuasiNewton: 100
  • Adam: 1000
  • GradientDescent: 100
  • ConjugateGradient: 100
  • StochasticGradientDescent: 1000
  • LevenbergMarquardt: 100
Per Default liegt die maximale Iterationsanzahl grundsätzlich bei 100.
: Abbruch Verlustschranke Hier kann die Schranke gesetzt werden, bei der das Training abgebrochen wird, wenn der Trainingsverlust diese Schranke unterschreitet. Bei skalierter Ein- und Ausgabe kann 0.01 empfohlen werden, aber dieser Wert ist per Default auf 0 gesetzt, und kann hier gelassen werden, wenn eine Verlustschranke nicht als Abbruchkriterium verwendet werden soll.
: Abbruch Optimierungsiterationen Hier kann die maximale Anzahl an Iterationen, bei der der Validierungsverlust höher als der Validierungsverlust der Vorgängeriteration ist, gesetzt werden. Per Default liegt diese bei 3 Iterationen.
: Maximale Trainingsdauer (s) Hier kann die maximale Trainingsdauer gesetzt werden. Per Default liegt diese bei 60 Sekunden.  
: weitere Parameter die folgenden Felder sind abhängig vom gewählten Optimierungs Algorithmus
  Quasi Newton  
  : Hesseapproximationsmethode Die "DFP" Methode ist die ursprüngliche Approximationsmethode des Quasi-Newton-Verfahrens. Die neuere empfohlene Methode ist die "BFGS" Methode, die toleranter gegenüber Fehlern bei der Schrittweitensteuerung ist, und per Default gesetzt ist.
  : Minimale Verlustreduzierung Hier kann als Abbruchkriterium eine untere Schranke für die Verlustreduzierung gesetzt werden. Wenn die Differenz des Trainingsverlustes zwischen der aktuellen und vorherigen Iteration diese Schranke unterschreitet, wird das Training beendet. Bei skalierter Ein- und Ausgabe kann 0.001 empfohlen werden, aber dieser Wert ist per Default auf 0 gesetzt, und kann hier gelassen werden, wenn eine minimale Verlustreduzierung nicht als Abbruchkriterium verwendet werden soll.
  : Lernratenanpassungsmethode Hier kann die Methode zur Lernratenanpassung gesetzt werden. Die "GoldenSection" Methode ist eine robuste Methode, die "vom Schlimmsten ausgeht". Die "BrentMethod" hingegen, die als Defaultwert gesetzt ist, geht von einer parabolischen Struktur aus, kann aber die Konsequenzen einer solchen Fehlannahme korrigieren.
  : Lernratentoleranz Die Lernratentoleranz wird bei der Lernratenanpassung für die Interpolation verwendet. Per Default beträgt diese die Entfernung zwischen 1 und der nächsten repräsentierbaren Gleitkommazahl des aktuellen Gleitkommazahltypen.
  Adam  
  : Initiale Lernrate Hier kann der Wert der Lernrate zu Beginn des Trainings gesetzt werden. Ein Wert von 0.001 wird empfohlen und ist als Defaultwert gesetzt.
  : Trainingsreihen pro Batch Bei der Anzahl an Trainingsreihen pro Batch müssen Generalisierungsvermögen und Laufzeit abgewägt werden. Größere Batches führen zu niedrigeren Laufzeiten, generalisieren dafür aber schlechter. Per Default ist die Anzahl an Trainingsreihe pro Batch auf 10 gesetzt.
  : Hyperparameter 1. Zerfall Hier kann der Grad des Einflusses des Gradienten in späteren Iterationen gesteuert werden. Ein höherer Hyperparameterwert führt zu höherem Einfluss und dementsprechend generell zu gleichmäßigerer Konvergenz bei der Trainingsoptimierung. Ein Wert von 0.9 wird empfohlen und ist als Defaultwert gesetzt.
  : Hyperparameter 2. Zerfall Hier kann der Grad des Einflusses des quadratischen Gradienten in späteren Iterationen gesteuert werden. Äquivalent zum 1. Zerfall führt ein höherer Hyperparameterwert zu höherem Einfluss und dementsprechend generell zu gleichmäßigerer Konvergenz bei der Trainingsoptimierung. Ein Wert von 0.999 wird empfohlen und ist als Defaultwert gesetzt.
  : Minimalentfernung Die Minimalentfernung beeinflusst die Varation der Lernrate über die Trainingsiterationen. Eine höhere Minimalentfernung führt zu weniger Variation. Eine Minimalentfernung von 10**(-7) wird empfohlen und ist als Defaultwert gesetzt.
  Conjugate Gradient  
  : Trainingsrichtung Hier kann die Methode zur Bestimmung der Trainingsrichtung gesetzt werden. Die "FR" Methode ist die bekannteste Methode, die allerdings "stur" bei schlechter Richtungswahl sein kann. Die "PR" Methode ist desbezüglich flexibler, aber garantiert nicht stets eine absteigende Richtung. Per Default wird die "FR" Methode verwendet.
  : Minimale Verlustreduzierung Hier kann als Abbruchkriterium eine untere Schranke für die Verlustreduzierung gesetzt werden. Wenn die Differenz des Trainingsverlustes zwischen der aktuellen und vorherigen Iteration diese Schranke unterschreitet, wird das Training beendet. Bei skalierter Ein- und Ausgabe kann 0.001 empfohlen werden, aber dieser Wert ist per Default auf 0 gesetzt, und kann hier gelassen werden, wenn eine minimale Verlustreduzierung nicht als Abbruchkriterium verwendet werden soll.
  : Lernratenanpassungsmethode Hier kann die Methode zur Lernratenanpassung gesetzt werden. Die "GoldenSection" Methode ist eine robuste Methode, die "vom Schlimmsten ausgeht". Die "BrentMethod" hingegen, die als Defaultwert gesetzt ist, geht von einer parabolischen Struktur aus, kann aber die Konsequenzen einer solchen Fehlannahme korrigieren.
  : Lernratentoleranz Die Lernratentoleranz wird bei der Lernratenanpassung für die Interpolation verwendet. Per Default beträgt diese die Entfernung zwischen 1 und der nächsten repräsentierbaren Gleitkommazahl des aktuellen Gleitkommazahltypen.
  Gradient Descent  
  : Minimale Verlustreduzierung Hier kann als Abbruchkriterium eine untere Schranke für die Verlustreduzierung gesetzt werden. Wenn die Differenz des Trainingsverlustes zwischen der aktuellen und vorherigen Iteration diese Schranke unterschreitet, wird das Training beendet. Bei skalierter Ein- und Ausgabe kann 0.001 empfohlen werden, aber dieser Wert ist per Default auf 0 gesetzt, und kann hier gelassen werden, wenn eine minimale Verlustreduzierung nicht als Abbruchkriterium verwendet werden soll.
  : Lernratenanpassungsmethode Hier kann die Methode zur Lernratenanpassung gesetzt werden. Die "GoldenSection" Methode ist eine robuste Methode, die "vom Schlimmsten ausgeht". Die "BrentMethod" hingegen, die als Defaultwert gesetzt ist, geht von einer parabolischen Struktur aus, kann aber die Konsequenzen einer solchen Fehlannahme korrigieren.
  : Lernratentoleranz Die Lernratentoleranz wird bei der Lernratenanpassung für die Interpolation verwendet. Per Default beträgt diese die Entfernung zwischen 1 und der nächsten repräsentierbaren Gleitkommazahl des aktuellen Gleitkommazahltypen.
  Levenberg Marquardt  
  : Dämpfung Hier kann der initale Wert des Dämpfungsparameters gesetzt werden, der den Optimierungsschritt bestimmt. Ein niedrigerer Wert führt zu einem ähnlicheren Verhalten zum Gradient Descent Algorithmus. Empfohlen und per Default gesetzt ist ein Wert von 0.001.
  : Dämpfungsfaktor Hier kann der Dämpfungsfaktor gesetzt werden, der den Optimierungsschritt beeinflusst. Ein höherer Faktor führt zu einem ähnlicheren Verhalten zum Gradient Descent Algorithmus. Empfohlen und per Default gesetzt ist ein Wert von 10.
  : Minimale Dämpfung Hier kann eine untere Schranke für den Dämpfungsparameter gesetzt werden. Empfohlen und per Default gesetzt ist ein Wert von 10**(-6).
  : Maximale Dämpfung Hier kann eine obere Schranke für den Dämpfungsparameter gesetzt werden. Empfohlen und per Default gesetzt ist ein Wert von 10^6.
  : Minimale Verlustreduzierung Hier kann als Abbruchkriterium eine untere Schranke für die Verlustreduzierung gesetzt werden. Wenn die Differenz des Trainingsverlustes zwischen der aktuellen und vorherigen Iteration diese Schranke unterschreitet, wird das Training beendet. Bei skalierter Ein- und Ausgabe kann 0.001 empfohlen werden, aber dieser Wert ist per Default auf 0 gesetzt, und kann hier gelassen werden, wenn eine minimale Verlustreduzierung nicht als Abbruchkriterium verwendet werden soll.
  Stochastic Gradient Descent  
  : Initiale Lernrate Hier kann der Wert der Lernrate zu Beginn des Trainings gesetzt werden. Ein Wert von 0.01 wird empfohlen und ist als Defaultwert gesetzt.
  : Trainingsreihen pro Batch Bei der Anzahl an Trainingsreihen pro Batch müssen Generalisierungsvermögen und Laufzeit abgewägt werden. Größere Batches führen zu niedrigeren Laufzeiten, generalisieren dafür aber schlechter. Per Default ist die Anzahl an Trainingsreihe pro Batch auf 1000 gesetzt.
  : Initialer Zerfall Hier kann der initiale Wert des Zerfalls gesetzt werden. Der Zerfall schränkt die Lernrate proportional zur Iterationszahl ein. Der initial Wert des Zerfalls beträgt in der Regel immer 0, und ist defaultmäßig entsprechend dessen gesetzt.
  : Momentum Hier kann der initiale Wert des Momentums gesetzt werden. Man kann sich den Optimierungsprozess unter Momentum als "rollenden Ball" vorstellen. Der initiale Wert des Momentums beträgt in der Regel immer 0, und ist defaultmäßig entsprechend dessen gesetzt.
  : Nesterov Hier kann der boolsche Nesterov Parameter gesetzt werden, der das Verhalten des Momentums erweitert. Man kann sich den Optimierungsprozess unter Nesterov als "vorausschauenden rollenden Ball" vorstellen. Per Default wird Nesterov nicht verwendet.

 

Knöpfe
Knopf Beschreibung
Aktion -
: Zurück Die App wird geschlossen.
: Setzen Die Parameter werden im neuronalen Netzwerk gesetzt.

 

Verwandte Themen

 


Technische Dokumentation

Bearbeitungsmodul

Modulname

neuralNetworkInitialize.app

Klassen

CX_NEURAL_NETWORK

Security

Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.

Empfangene Messages
Message Parameter Funktion Security

INITIALIZE_NEURAL_NETWORK

TRUE/FALSE

CX_NEURAL_NETWORK Objekt

Aufruf der App  
Gesendete Messages
Message Parameter Funktion Empfangs-Modul

NEURAL_NETWORK_INITIALIZED

CX_NEURAL_NETWORK Objekt    

 

 

Operativer Betrieb