Freigeben über


Technische Referenz zum Microsoft-Algorithmus für neuronale Netzwerke

Das Microsoft Neural Network verwendet ein Multilayer Perceptron-Netzwerk , das auch als Back-Propagated Delta Rule-Netzwerk bezeichnet wird, das aus bis zu drei Ebenen von Neuronen oder Perceptrons besteht. Diese Ebenen sind eine Eingabeebene, eine optionale ausgeblendete Ebene und eine Ausgabeebene.

Eine ausführliche Erläuterung zu neuronalen Multilayer Perceptron-Netzwerken liegt außerhalb des Umfangs dieser Dokumentation. In diesem Thema wird die grundlegende Implementierung des Algorithmus erläutert, einschließlich der Methode, die zum Normalisieren von Eingabe- und Ausgabewerten verwendet wird, sowie Featureauswahlmethoden, die zur Reduzierung der Attributkardinalität verwendet werden. In diesem Thema werden die Parameter und andere Einstellungen beschrieben, die zum Anpassen des Verhaltens des Algorithmus verwendet werden können, und stellt Links zu zusätzlichen Informationen zum Abfragen des Modells bereit.

Implementierung des Microsoft Neural Network-Algorithmus

In einem mehrschichtigen neuronalen Perzeptron-Netzwerk empfängt jedes Neuron einen oder mehrere Inputs und erzeugt ein oder mehrere identische Outputs. Jede Ausgabe ist eine einfache, nicht lineare Funktion der Summe der Eingaben für das Neuron. Eingaben werden von Knoten in der Eingabeebene an Knoten in der ausgeblendeten Ebene weitergeleitet und dann von der ausgeblendeten Ebene an die Ausgabeebene übergeben. es gibt keine Verbindungen zwischen Neuronen innerhalb einer Schicht. Wenn keine verdeckte Schicht enthalten ist, wie in einem logistischen Regressionsmodell, werden Eingaben direkt von den Knoten der Eingabeschicht an die Knoten der Ausgabeschicht weitergeleitet.

Es gibt drei Arten von Neuronen in einem neuralen Netzwerk, das mit dem Microsoft Neural Network-Algorithmus erstellt wird:

  • Input neurons

Eingabe-Neuronen stellen Eingabeattributewerte für das Data Mining-Modell bereit. Bei diskreten Eingabeattributen stellt ein Eingabe-Neuron in der Regel einen einzelnen Zustand aus dem Eingabeattribute dar. Dies schließt fehlende Werte ein, wenn die Schulungsdaten Nullwerte für dieses Attribut enthalten. Ein diskretes Eingabe-Attribut mit mehr als zwei Zuständen generiert für jeden Zustand ein Eingabe-Neuron und ein Eingabe-Neuron für einen fehlenden Zustand, wenn in den Schulungsdaten fehlende Werte vorhanden sind. Ein fortlaufendes Eingabe-Attribut generiert zwei Eingabe-Neuronen: ein Neuron für einen fehlenden Zustand und ein Neuron für den Wert des fortlaufenden Attributs selbst. Eingabe-Neuronen liefern Eingaben für ein oder mehrere ausgeblendete Neuronen.

  • Hidden neurons

Verborgene Neuronen empfangen Eingaben von Eingabeneuronen und liefern Ausgaben an Ausgabeneuronen.

  • Output neurons

Ausgabe-Neuronen stellen vorhersagbare Attributwerte für das Data Mining-Modell dar. Bei diskreten Eingabeattributen stellt ein Ausgabe-Neuron in der Regel einen einzelnen vorhergesagten Zustand für ein vorhersagbares Attribut dar, einschließlich fehlender Werte. Beispielsweise erzeugt ein binäres vorhersagbares Attribut einen Ausgabeknoten, der einen fehlenden oder vorhandenen Zustand beschreibt, um anzugeben, ob ein Wert für dieses Attribut vorhanden ist. Eine boolesche Spalte, die als vorhersagbares Attribut verwendet wird, generiert drei Ausgabeneuronen: ein Neuron für einen echten Wert, ein Neuron für einen falschen Wert und ein Neuron für einen fehlenden oder vorhandenen Zustand. Ein diskretes vorhersagbares Attribut mit mehr als zwei Zuständen generiert für jeden Zustand ein Ausgabe-Neuron und ein Ausgabe-Neuron für einen fehlenden oder vorhandenen Zustand. Fortlaufende vorhersagbare Spalten generieren zwei Ausgabeneuronen: ein Neuron für einen fehlenden oder vorhandenen Zustand und ein Neuron für den Wert der fortlaufenden Spalte selbst. Wenn mehr als 500 Output-Neuronen durch Überprüfen der Gruppe vorhersagbarer Spalten generiert werden, generiert Analysis Services ein neues Netzwerk im Miningmodell, um die zusätzlichen Output-Neuronen darzustellen.

Ein Neuron empfängt Eingaben von anderen Neuronen oder von anderen Daten, je nachdem, in welcher Ebene sich das Netzwerk befindet. Ein Eingabe-Neuron empfängt Eingaben aus den ursprünglichen Daten. Ausgeblendete Neuronen und Ausgabeneuronen empfangen Signale aus der Ausgabe anderer Neuronen im neuronalen Netzwerk. Eingaben stellen Beziehungen zwischen Neuronen her, und die Beziehungen dienen als Analysepfad für eine bestimmte Gruppe von Fällen.

Jeder Eingabe wird ein Wert zugewiesen, der als Gewichtung bezeichnet wird, die die Relevanz oder Wichtigkeit dieses bestimmten Eingaben für das ausgeblendete Neuron oder das Ausgabe-Neuron beschreibt. Je größer die Gewichtung, die einer Eingabe zugewiesen ist, desto relevanter oder wichtiger ist der Wert dieser Eingabe. Gewichtungen können negativ sein, was bedeutet, dass die Eingabe ein bestimmtes Neuron hemmt und nicht aktiviert. Der Wert jeder Eingabe wird mit der Gewichtung multipliziert, um die Bedeutung einer Eingabe für ein bestimmtes Neuron hervorzuheben. Bei negativen Gewichtungen besteht die Auswirkung der Multiplikation des Werts mit der Gewichtung darin, die Wichtigkeit zu deemphasieren.

Jedem Neuron ist eine einfache, nicht lineare Funktion zugewiesen, die als Aktivierungsfunktion bezeichnet wird, die die Relevanz oder Wichtigkeit eines bestimmten Neurons auf dieser Ebene eines neuralen Netzwerks beschreibt. Ausgeblendete Neuronen verwenden eine hyperbolische Tangensfunktion (Tanh) für ihre Aktivierungsfunktion, während Ausgabeneuronen eine Sigmoidfunktion für die Aktivierung verwenden. Beide Funktionen sind nichtlineare, fortlaufende Funktionen, die es dem neuralen Netzwerk ermöglichen, nichtlineare Beziehungen zwischen Eingabe- und Ausgabe-Neuronen zu modellieren.

Training Neuronaler Netzwerke

Mehrere Schritte sind an der Schulung eines Data Mining-Modells beteiligt, das den Microsoft Neural Network-Algorithmus verwendet. Diese Schritte werden stark von den Werten beeinflusst, die Sie für die Algorithmusparameter angeben.

Der Algorithmus wertet zunächst Schulungsdaten aus der Datenquelle aus und extrahiert sie. Ein Prozentsatz der Schulungsdaten, die als Aufbewahrungsdaten bezeichnet werden, ist für die Bewertung der Genauigkeit des Netzwerks reserviert. Während des gesamten Schulungsvorgangs wird das Netzwerk unmittelbar nach jeder Iteration durch die Schulungsdaten ausgewertet. Wenn die Genauigkeit nicht mehr erhöht wird, wird der Schulungsvorgang beendet.

Die Werte der Parameter SAMPLE_SIZE und HOLDOUT_PERCENTAGE werden verwendet, um die Anzahl der Fälle zu ermitteln, die für das Sampling aus den Schulungsdaten und für die Ausscheidungsdaten zurückgelegt werden sollen. Der Wert des HOLDOUT_SEED-Parameters wird verwendet, um zufällig zu bestimmen, welche einzelnen Fälle für die Holdout-Daten beiseitegelegt werden.

Hinweis

Diese Algorithmusparameter unterscheiden sich von den eigenschaften HOLDOUT_SIZE und HOLDOUT_SEED, die auf eine Miningstruktur angewendet werden, um einen Testdatensatz zu definieren.

Der Algorithmus bestimmt als Nächstes die Anzahl und Komplexität der Netzwerke, die das Miningmodell unterstützt. Wenn das Miningmodell ein oder mehrere Attribute enthält, die nur für die Vorhersage verwendet werden, erstellt der Algorithmus ein einzelnes Netzwerk, das alle solchen Attribute darstellt. Wenn das Miningmodell ein oder mehrere Attribute enthält, die sowohl für Die Eingabe als auch für die Vorhersage verwendet werden, erstellt der Algorithmusanbieter ein Netzwerk für jedes Attribut.

Bei Eingabe- und vorhersagbaren Attributen, die diskrete Werte aufweisen, stellt jedes Eingabe- oder Ausgabe-Neuron einen einzelnen Zustand dar. Bei Eingabe- und vorhersagbaren Attributen mit fortlaufenden Werten stellt jedes Eingabe- oder Ausgabe-Neuron den Bereich und die Verteilung von Werten für das Attribut dar. Die maximale Anzahl von Zuständen, die in beiden Fällen unterstützt werden, hängt vom Wert des MAXIMUM_STATES Algorithmusparameters ab. Wenn die Anzahl der Zustände für ein bestimmtes Attribut den Wert des MAXIMUM_STATES Algorithmusparameters überschreitet, werden die am häufigsten verwendeten oder relevanten Zustände für dieses Attribut ausgewählt, bis zur maximalen Anzahl zulässiger Zustände und die verbleibenden Zustände werden als fehlende Werte für die Analyse zusammengefasst.

Der Algorithmus verwendet dann den Wert des HIDDEN_NODE_RATIO Parameters, wenn die anfängliche Anzahl von Neuronen bestimmt wird, die für die ausgeblendete Ebene erstellt werden sollen. Sie können HIDDEN_NODE_RATIO auf 0 festlegen, um die Erstellung einer ausgeblendeten Ebene in den Netzwerken zu verhindern, die der Algorithmus für das Miningmodell generiert, um das neurale Netzwerk als logistische Regression zu behandeln.

Der Algorithmus-Anbieter wertet die Gewichtungen aller Eingaben im gesamten Netzwerk gleichzeitig aus, indem er den Satz von Schulungsdaten verwendet, die zuvor reserviert wurden, und den tatsächlichen bekannten Wert jedes Falls in den Zurückhaltedaten mit der Vorhersage des Netzwerks vergleicht, in einem Prozess, der als Batch-Lernen bezeichnet wird. Nachdem der Algorithmus den gesamten Satz von Schulungsdaten ausgewertet hat, überprüft der Algorithmus den vorhergesagten und tatsächlichen Wert für jedes Neuron. Der Algorithmus berechnet den Fehlergrad( falls vorhanden) und passt die Gewichtungen an, die den Eingaben für dieses Neuron zugeordnet sind, und arbeitet rückwärts von Ausgabeneuronen bis hin zu Eingabeneuronen in einem Prozess, der als Backpropagation bezeichnet wird. Der Algorithmus wiederholt dann den Prozess über den gesamten Satz von Schulungsdaten. Da der Algorithmus viele Gewichte und Ausgabeneuronen unterstützen kann, wird der konjugierte Gradientenalgorithmus verwendet, um den Schulungsprozess zum Zuweisen und Auswerten von Gewichtungen für Eingaben zu leiten. Eine Diskussion über den konjugierten Gradientenalgorithmus wird in dieser Dokumentation nicht behandelt.

Featureauswahl

Wenn die Anzahl der Eingabeattribute größer als der Wert des MAXIMUM_INPUT_ATTRIBUTES-Parameters ist oder die Anzahl der vorhersagbaren Attribute größer als der Wert des MAXIMUM_OUTPUT_ATTRIBUTES-Parameters ist, wird ein Featureauswahlalgorithmus verwendet, um die Komplexität der Netzwerke zu verringern, die im Miningmodell enthalten sind. Die Featureauswahl reduziert die Anzahl von Eingabe- oder vorhersagbaren Attributen auf diejenigen, die statistisch am meisten für das Modell relevant sind.

Die Featureauswahl wird automatisch von allen Analysis Services Data Mining-Algorithmen verwendet, um die Analyse zu verbessern und die Verarbeitungslast zu reduzieren. Die Methode, die für die Featureauswahl in neuralen Netzwerkmodellen verwendet wird, hängt vom Datentyp des Attributs ab. Die folgende Tabelle enthält die Featureauswahlmethoden für neurale Netzwerkmodelle und zeigt außerdem die Featureauswahlmethoden für den Logistischen Regressionsalgorithmus, der auf dem neuralen Netzwerkalgorithmus basiert.

Algorithmus Analysemethode Kommentare
Neuronales Netzwerk Interessantheitsbewertung

Shannons Entropie

Bayesian mit K2 Prior

Bayesian-Dirichlet mit gleichmäßiger Priorverteilung (Voreinstellung)
Der Neural Networks-Algorithmus kann sowohl Entropie-basierte als auch Bayesian-Bewertungsmethoden verwenden, solange die Daten fortlaufende Spalten enthalten.

Vorgabe.
Logistische Regression Interessantheitswert

Shannons Entropie

Bayesian mit K2 Prior

Bayesian-Dirichlet mit gleichförmiger Prior-Verteilung (Standard)
Da Sie einen Parameter nicht an diesen Algorithmus übergeben können, um das Verhalten von Featurewahlen zu steuern, werden die Standardwerte verwendet. Wenn also alle Attribute diskret oder diskretisiert sind, ist die Standardeinstellung BDEU.

Die Algorithmusparameter, die die Featureauswahl für ein neurales Netzwerkmodell steuern, sind MAXIMUM_INPUT_ATTRIBUTES, MAXIMUM_OUTPUT_ATTRIBUTES und MAXIMUM_STATES. Sie können auch die Anzahl der ausgeblendeten Ebenen steuern, indem Sie den HIDDEN_NODE_RATIO-Parameter festlegen.

Bewertungsmethoden

Die Bewertung ist eine Art Normalisierung, die im Rahmen der Schulung eines neuralen Netzwerkmodells den Prozess der Konvertierung eines Werts, z. B. einer diskreten Textbeschriftung, in einen Wert bedeutet, der mit anderen Arten von Eingaben verglichen und im Netzwerk gewichtet werden kann. Wenn z. B. ein Eingabeattribute "Gender" ist und die möglichen Werte "Male" und "Female" lauten und ein weiteres Eingabeattribute "Income" mit einem variablen Wertebereich ist, sind die Werte für jedes Attribut nicht direkt vergleichbar und müssen daher mit einer gemeinsamen Skala codiert werden, damit die Gewichtungen berechnet werden können. Die Bewertung ist der Prozess der Normalisierung solcher Eingaben auf numerische Werte: insbesondere auf einen Wahrscheinlichkeitsbereich. Die für die Normalisierung verwendeten Funktionen tragen auch dazu bei, den Eingabewert gleichmäßiger auf einer einheitlichen Skala zu verteilen, sodass extreme Werte die Analyseergebnisse nicht verfälschen.

Die Ausgaben des neuralen Netzwerks werden ebenfalls codiert. Wenn ein einzelnes Ziel für die Ausgabe (d. h. Vorhersage) oder mehrere Ziele vorhanden ist, die nur für die Vorhersage und nicht für eingaben verwendet werden, erstellt das Modell ein einzelnes Netzwerk, und es scheint möglicherweise nicht notwendig, die Werte zu normalisieren. Wenn jedoch mehrere Attribute für Eingabe und Vorhersage verwendet werden, muss das Modell mehrere Netzwerke erstellen; Daher müssen alle Werte normalisiert werden, und die Ausgaben müssen ebenfalls codiert werden, wenn sie das Netzwerk verlassen.

Die Codierung für Eingaben basiert darauf, jeden einzelnen Wert in den Trainingsfällen zu summieren und diesen Wert mit seinem Gewicht zu multiplizieren. Dies wird als gewichtete Summe bezeichnet, die an die Aktivierungsfunktion in der ausgeblendeten Ebene übergeben wird. Ein Z-Score wird wie folgt für die Kodierung verwendet:

Diskrete Werte

μ = p - die vorherige Wahrscheinlichkeit eines Zustands

StdDev = sqrt(p(1-p))

Fortlaufende Werte

Wert present= 1 - μ/σ

Kein vorhandener Wert= -μ/σ

Nachdem die Werte codiert wurden, werden die Eingaben einer gewichteten Summierung unterzogen, wobei die Kanten des Netzwerks als Gewichtungen dienen.

Die Codierung für Ausgaben verwendet die Sigmoidfunktion, die Eigenschaften aufweist, die es sehr nützlich für die Vorhersage machen. Eine solche Eigenschaft ist, dass unabhängig davon, wie die ursprünglichen Werte skaliert werden, und unabhängig davon, ob Werte negativ oder positiv sind, die Ausgabe dieser Funktion immer ein Wert zwischen 0 und 1 ist, der für die Schätzung von Wahrscheinlichkeiten geeignet ist. Eine weitere nützliche Eigenschaft besteht darin, dass die Sigmoidfunktion einen Glättungseffekt hat, sodass sich Werte von einem Punkt der Ablenkung entfernt, die Wahrscheinlichkeit für den Wert in Richtung 0 oder 1 bewegt, aber langsam.

Anpassen des neuralen Netzwerkalgorithmus

Der Microsoft Neural Network-Algorithmus unterstützt mehrere Parameter, die sich auf das Verhalten, die Leistung und genauigkeit des resultierenden Miningmodells auswirken. Sie können auch die Art und Weise ändern, wie das Modell Daten verarbeitet, indem Sie Modellierungskennzeichnungen für Spalten festlegen oder Verteilungskennzeichnungen festlegen, um anzugeben, wie Werte in der Spalte behandelt werden.

Festlegen von Algorithmusparametern

In der folgenden Tabelle werden die Parameter beschrieben, die mit dem Microsoft Neural Network-Algorithmus verwendet werden können.

HIDDEN_NODE_RATIO (Verhältnis versteckter Knoten)
Gibt das Verhältnis versteckter Neuronen zu Eingabe- und Ausgabeneuronen an. Die folgende Formel bestimmt die anfängliche Anzahl von Neuronen in der ausgeblendeten Ebene:

HIDDEN_NODE_RATIO * WURZEL(Gesamtanzahl der Eingabe-Neuronen * Gesamtanzahl der Ausgabe-Neuronen)

Der Standardwert ist 4,0.

Zurückbehaltensprozentsatz
Gibt den Prozentsatz der Fälle innerhalb der Schulungsdaten an, mit denen der Haltefehler berechnet wird, der als Teil der Stoppkriterien beim Trainieren des Miningmodells verwendet wird.

Der Standardwert ist 30.

HOLDOUT_SEED
Gibt eine Nummer an, die verwendet wird, um den Pseudo-Zufallsgenerator zu initialisieren, wenn der Algorithmus zufällig die Ausschlussdaten bestimmt. Wenn dieser Parameter auf 0 festgelegt ist, generiert der Algorithmus den Seed basierend auf dem Namen des Miningmodells, um sicherzustellen, dass der Modellinhalt während der Verarbeitung gleich bleibt.

Der Standardwert ist 0.

MAXIMALE_EINGABEEIGENSCHAFTEN
Bestimmt die maximale Anzahl von Eingabeattributen, die dem Algorithmus bereitgestellt werden können, bevor die Featureauswahl verwendet wird. Durch Festlegen dieses Werts auf 0 wird die Featureauswahl für Eingabeattribute deaktiviert.

Der Standardwert ist 255.

MAXIMUM_OUTPUT_ATTRIBUTES
Bestimmt die maximale Anzahl von Ausgabeattributen, die dem Algorithmus bereitgestellt werden können, bevor die Featureauswahl verwendet wird. Durch Festlegen dieses Werts auf 0 wird die Featureauswahl für Ausgabeattribute deaktiviert.

Der Standardwert ist 255.

MAXIMALE_ZUSTÄNDE
Gibt die maximale Anzahl einzelner Zustände pro Attribut an, die vom Algorithmus unterstützt wird. Wenn die Anzahl der Zustände für ein bestimmtes Attribut größer als die Für diesen Parameter angegebene Zahl ist, verwendet der Algorithmus die am häufigsten verwendeten Zustände für dieses Attribut und behandelt die verbleibenden Zustände als fehlt.

Der Standardwert ist 100.

Stichprobengröße
Gibt die Anzahl der Fälle an, die zum Trainieren des Modells verwendet werden sollen. Der Algorithmus verwendet entweder diese Zahl oder den Prozentsatz der Gesamtzahl der Fälle, die nicht in den Haltedaten enthalten sind, wie durch den parameter HOLDOUT_PERCENTAGE angegeben, je nachdem, welcher Wert kleiner ist.

Anders ausgedrückt: Wenn HOLDOUT_PERCENTAGE auf 30 festgelegt ist, verwendet der Algorithmus entweder den Wert dieses Parameters oder einen Wert von 70 Prozent der Gesamtanzahl der Fälle, je nachdem, welcher Wert kleiner ist.

Der Standardwert ist 10.000.

Modellierung von Flaggen

Die folgenden Modellierungskennzeichnungen werden für die Verwendung mit dem Microsoft Neural Network-Algorithmus unterstützt.

NICHT NULL
Gibt an, dass die Spalte keinen Nullwert enthalten kann. Ein Fehler führt dazu, dass Analysis Services während der Modellschulung auf einen Nullwert stößt.

Gilt für die Spalten von Miningstrukturen.

N/A (No improvements necessary unless context provides a translatable equivalent requiring alteration).
Gibt an, dass das Modell nur berücksichtigen sollte, ob ein Wert für das Attribut vorhanden ist oder ob ein Wert fehlt. Der genaue Wert spielt keine Rolle.

Gilt für Miningmodellspalten.

Verteilungsmarkierungen

Die folgenden Verteilungskennzeichnungen werden für die Verwendung mit dem Microsoft Neural Network-Algorithmus unterstützt. Die Kennzeichen werden nur als Hinweise für das Modell verwendet; wenn der Algorithmus eine andere Verteilung erkennt, verwendet er die gefundene Verteilung, nicht die im Hinweis angegebene Verteilung.

Normal
Gibt an, dass Werte in der Spalte so behandelt werden sollen, als ob sie die normale oder gaussische Verteilung darstellen.

Uniform
Gibt an, dass Werte innerhalb der Spalte so behandelt werden sollten, als wären sie einheitlich verteilt; d. h. die Wahrscheinlichkeit eines beliebigen Werts ist ungefähr gleich und ist eine Funktion der Gesamtzahl der Werte.

Protokoll normal
Gibt an, dass Werte innerhalb der Spalte so behandelt werden sollen, als ob sie gemäß der Protokollnormalkurve verteilt werden, was bedeutet, dass der Logarithmus der Werte normal verteilt wird.

Anforderungen

Ein neurales Netzwerkmodell muss mindestens eine Eingabespalte und eine Ausgabespalte enthalten.

Eingabe- und vorhersagbare Spalten

Der Microsoft Neural Network-Algorithmus unterstützt die spezifischen Eingabespalten und vorhersehbaren Spalten, die in der folgenden Tabelle aufgeführt sind.

Kolumne Inhaltstypen
Eingabeattribute Fortlaufend, zyklische, diskrete, diskretisierte, Schlüssel, Tabelle und sortiert
Vorhersehbares Attribut Fortlaufend, Zyklisch, Diskret, Diskretisiert und Sortiert

Hinweis

Zyklische und sortierte Inhaltstypen werden unterstützt, der Algorithmus behandelt sie jedoch als diskrete Werte und führt keine spezielle Verarbeitung durch.

Siehe auch

Microsoft Neural Network Algorithm
Inhalt des Miningmodells für neuronale Netzwerkmodelle (Analysis Services - Data Mining)
Beispiele für neurale Netzwerkmodellabfragen