Mehrklassiges neuronales Netzwerk

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Erstellt ein mehrklassiges Klassifizierungsmodell mithilfe eines Algorithmus für neuronale Netzwerke

Kategorie: Machine Learning/Modell initialisieren/Klassifizierung

Hinweis

Gilt für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Modul Multiclass Neural Network in Machine Learning Studio (klassisch) verwenden, um ein neuronales Netzwerkmodell zu erstellen, mit dem ein Ziel mit mehreren Werten vorhergesagt werden kann.

Neuronale Netzwerke dieser Art können z.B. in komplexen Aufgaben des maschinellen Sehens wie Ziffern- oder Buchstabenerkennung, Klassifizierung von Dokumenten und Mustererkennung verwendet werden.

Die Klassifizierung mittels neuronaler Netze ist eine überwachte Lernmethode und erfordert daher ein mit Tags versehenes Dataset, das eine Bezeichnungsspalte enthält.

Sie können das Modell trainieren, indem Sie das Modell und das markierte Dataset als Eingabe für Train Model oder Tune Model Hyperparameters bereitstellen. Das trainierte Modell kann anschließend verwendet werden, um Werte für neue Eingabebeispiele vorherzusagen.

Weitere Informationen zu neuronalen Netzen

Ein neuronales Netz ist ein Komplex miteinander verbundener Schichten. Die Eingaben bilden die erste Schicht und sind mit einer Ausgabeschicht durch ein azyklisches Diagramm verbunden, das aus gewichteten Edges und Knoten besteht.

Zwischen Ein- und Ausgabeschicht können Sie mehrere ausgeblendete Schichten einfügen. Die meisten Vorhersageaufgaben können mithilfe nur einer oder einigen wenigen ausgeblendeten Schichten einfach durchgeführt werden. Aktuelle Untersuchungen haben jedoch gezeigt, dass tiefe neuronale Netze (Deep Neural Networks, DNN) mit vielen Ebenen in komplexen Aufgaben wie der Bild- oder Spracherkennung sehr effektiv sein können. Die aufeinanderfolgenden Schichten werden verwendet, um zunehmende semantische Tiefe zu modellieren.

Die Beziehung zwischen Ein- und Ausgaben wird durch das Training des neuronalen Netzes mit den Eingabedaten erlernt. Die Richtung des Graphen verläuft von den Eingaben über die ausgeblendete Schicht bis zur Ausgabeschicht. Alle Knoten einer Schicht sind durch die gewichteten Edges mit den Knoten der nächsten Schicht verbunden.

Um die Ausgabe des Netzes für eine bestimmte Eingabe zu berechnen, wird bei jedem Knoten in den ausgeblendeten Schichten und in der Ausgabeschicht ein Wert berechnet. Der Wert wird festgelegt, indem die gewichtete Summe der Werte der Knoten der vorherigen Schicht berechnet wird. Auf diese gewichtete Summe wird dann eine Aktivierungsfunktion angewendet.

Konfigurieren von multiclass Neural Network

  1. Fügen Sie ihrem Experiment in Studio (klassisch) das Modul MultiClass Neural Network hinzu. Sie finden dieses Modul unter Machine Learning, Initialize (Initialisieren) in der Kategorie Classification (Klassifizierung).

  2. Create trainer mode (Trainermodus erstellen): Verwenden Sie diese Option, um anzugeben, wie das Modell trainiert werden soll:

    • Single Parameter (Einzelner Parameter): Wählen Sie diese Option, wenn Sie bereits wissen, wie Sie das Modell konfigurieren möchten.

    • Parameterbereich: Wählen Sie diese Option aus, wenn Sie sich der besten Parameter nicht sicher sind und einen Parameter-Sweep verwenden möchten. Anschließend geben Sie einen Wertebereich an und verwenden das Modul Tune Model Hyperparameters , um die Kombinationen zu iterieren und die optimale Konfiguration zu finden.

  3. Hidden layer specification (Ausgeblendete Schichtspezifikation): Wählen Sie den Typ der zu erstellenden Netzwerkarchitektur aus.

    • Vollständig verbundener Fall: Wählen Sie diese Option aus, um ein Modell mit der standardmäßigen Neuronalen Netzwerkarchitektur zu erstellen. Für mehrklassige neuronale Netzwerkmodelle lauten die Standardwerte:

      • Eine ausgeblendete Schicht
      • Die Ausgabeschicht ist vollständig mit der ausgeblendeten Schicht verbunden.
      • Die ausgeblendete Schicht ist vollständig mit der Eingabeschicht verbunden.
      • Die Anzahl der Knoten in der Eingabeschicht wird durch die Anzahl der Features in den Trainingsdaten bestimmt.
      • Die Anzahl der Knoten in der ausgeblendeten Schicht kann vom Benutzer festgelegt werden. Der Standardwert ist 100.
      • Die Anzahl der Knoten in der Ausgabeschicht hängt von der Anzahl der Klassen ab.
    • Benutzerdefiniertes Definitionsskript. Wählen Sie diese Option aus, um mithilfe der Net#-Sprache eine benutzerdefinierte neuronale Netzwerkarchitektur zu erstellen. Sie können die Anzahl der ausgeblendeten Ebenen, deren Verbindungen und erweiterte Optionen definieren, z. B. das Angeben der Zuordnungen zwischen Ebenen. Eine Einführung in Net# finden Sie weiter unten in diesem Thema unter Weitere Informationen zu Net#.

  4. Definition des neuronalen Netzwerks: Wenn Sie die Option für die benutzerdefinierte Architektur ausgewählt haben, verwenden Sie das Textfeld, um In der Net#-Sprache geschriebene Anweisungen ein- oder einfüge. Weitere Skriptbeispiele finden Sie unter Handbuch zur Net#-Spezifikationssprache für neuronale Netzwerke.

  5. Number of hidden nodes (Anzahl der ausgeblendeten Knoten): Mit dieser Option können Sie die Anzahl der ausgeblendeten Knoten in der Standardarchitektur anpassen. Geben Sie die Anzahl der ausgeblendeten Knoten ein. Der Standardwert ist eine verborgene Ebene mit 100 Knoten.

  6. Die Lernrate: Definieren Sie die Größe des bei jeder Iteration vor der Korrektur ausgeführten Schritts. Ein höherer Wert für die Lernrate kann dazu führen, dass das Modell schneller konvergiert, es kann jedoch auch lokale Mindestwerte unterschreiten.

  7. Number of learning iterations (Anzahl der Lerniterationen): Geben Sie die maximale Häufigkeit an, mit der der Algorithmus die Trainingsfälle verarbeiten soll.

  8. The initial learning weights diameter (Anfangsdurchmesser der Lerngewichtungen): Geben Sie die Knotengewichtungen am Anfang des Lernprozesses an.

  9. The momentum (Dynamik): Geben Sie eine Gewichtung an, die beim Lernen auf Knoten aus früheren Iterationen angewendet werden soll.

  10. Der Typ des Normalisierers: Wählen Sie die Methode aus, die für die Featurenormalisierung verwendet werden soll. Die folgenden Normalisierungsmethoden werden unterstützt:

    • Binning normalizer (Binningnormierer): Der Binningnormierer erstellt Behälter gleicher Größe und normalisiert dann jeden Wert in jedem Behälter, indem er durch die Gesamtzahl der Behälter dividiert wird.

    • Gaußsche Normalisierungsfunktion: Der Gaußsche Normalisierer skaliert die Werte der einzelnen Features neu, um den Mittelwert 0 und die Varianz 1 zu erhalten. Dies erfolgt durch Berechnen des Mittelwerts und der Varianz der einzelnen Features. Für jede Instanz wird der Mittelwert subtrahiert, und das Ergebnis wird durch die Quadratwurzel der Varianz (standardabweichung) dividiert.

    • Min-Max-Normalizer: Der Min-Max-Normalizer skaliert jedes Feature linear auf das [0,1]-Intervall neu.

      Die Umskalierung in das Intervall [0,1] erfolgt durch Verschieben der Werte jedes Features, sodass der Minimalwert 0 ist. Anschließend erfolgt eine Division durch den neuen Maximalwert (was die Differenz zwischen dem ursprünglichen Maximal- und Minimalwert ergibt).

    • Nicht normalisieren: Es wird keine Normalisierung durchgeführt.

  11. Shuffle examples (Beispiele mischen): Wählen Sie diese Option, um Fälle zwischen den Iterationen zu mischen.

    Wenn Sie diese Option deaktivieren, werden die Fälle bei jeder Ausführung des Experiments in genau der gleichen Reihenfolge verarbeitet.

  12. Random number seed (Zufälliger Startwert): Geben Sie einen Wert ein, der als Startwert verwendet werden soll, wenn Sie die Wiederholbarkeit über mehrere Läufe desselben Experiments hinweg sicherstellen möchten.

  13. Unbekannte Kategorieebenen zulassen: Wählen Sie diese Option aus, um eine Gruppierung für unbekannte Werte in den Trainings- und Validierungssätzen zu erstellen. Das Modell ist für bekannte Werte möglicherweise weniger präzise, bietet jedoch bessere Vorhersagen für neue (unbekannte) Werte.

    Wenn Sie diese Option deaktivieren, kann das Modell nur die Werte akzeptieren, die in den Trainingsdaten enthalten sind.

  14. Verbinden ein Trainings-Dataset und eines der Trainingsmodule:

    Hinweis

    Wenn Sie einen Parameterbereich an Train Model übergeben, wird nur der erste Wert in der Parameterbereichsliste verwendet.

    Wenn Sie eine einzelne Reihe bestimmter Parameterwerte an das Modul Tune Model Hyperparameters übergeben und ein Bereich von Einstellungen für jeden Parameter erwartet wird, werden die Werte ignoriert und stattdessen die Standardwerte für den Learner verwendet.

    Wenn Sie die Option Parameter Range (Parameterbereich) auswählen und einen einzelnen Wert für einen beliebigen Parameter eingeben, wird dieser angegebene einzelne Wert während des gesamten Löschvorgangs verwendet, auch wenn andere Parameter in einem Wertebereich geändert werden.

Ergebnisse

Nach Abschluss des Trainings:

  • Klicken Sie mit der rechten Maustaste auf die Ausgabe von Train Model (Modell trainieren) oder Tune Model Hyperparameters (Modellhyperparameter optimieren), und wählen Sie Visualize (Visualisieren) aus, um eine Zusammenfassung der Modellparameter zusammen mit den aus dem Training gelernten Featuregewichtungen und anderen Parametern des neuronalen Netzwerks zu erhalten.

  • Um eine Momentaufnahme des trainierten Modells zu speichern, klicken Sie mit der rechten Maustaste auf die Ausgabe Trained model (Trainiertes Modell), und wählen Sie Save As Trained Model (Als trainiertes Modell speichern) aus. Dieses Modell wird bei nachfolgenden Ausführungen desselben Experiments nicht aktualisiert.

  • Um eine Kreuzvalidierung für ein bezeichnetes DataSet durchzuführen, verbinden Sie das untrainierte Modell mit Cross-Validate Model.

Beispiele

Beispiele für die Verwendung dieses Lernalgorithmus finden Sie in diesen Beispielexperimenten im Azure KI-Katalog. Die Experimente hängen zusammen und werden in einem einzelnen Dokument beschrieben, das zuerst grundlegende und dann erweiterte Konfigurationen darstellt:

Technische Hinweise

Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.

Anpassen des neuronalen Netzwerks mithilfe eines Skripts

In Machine Learning Studio (klassisch) können Sie die Architektur eines neuronalen Netzwerkmodells mithilfe der Net#-Sprache anpassen. Folgende Anpassungen werden von der Net#-Sprache unterstützt:

  • Angeben der Anzahl der ausgeblendeten Ebenen und der Anzahl der Knoten in jeder Ebene
  • Angeben von Zuordnungen zwischen Ebenen
  • Definieren von Konvolutionen und Gewichtungsfreigabebündeln
  • Auswählen der Aktivierungsfunktion

Das Modell eines neuronalen Netzwerks wird durch die Struktur seines Diagramms definiert, die folgende Attribute umfasst:

  • Die Anzahl der ausgeblendeten Ebenen
  • Die Anzahl der Knoten in jeder verborgenen Ebene
  • Wie die Ebenen verbunden sind
  • Welche Aktivierungsfunktion wird verwendet?
  • Gewichtungen an den Diagrammflanken

Wichtig

Die Gesamtstruktur des Graphen sowie die Aktivierungsfunktion können vom Benutzer angegeben werden. Die Gewichtungen an den Kanten können jedoch nicht angegeben werden und müssen beim Trainieren des neuronalen Netzes mit den Eingabedaten erlernt werden.

Im Allgemeinen verfügt das Netzwerk über die folgenden Standardwerte:

  • Die erste Ebene ist immer die Eingabeebene.
  • Die letzte Ebene ist immer die Ausgabeebene.
  • Die Anzahl der Knoten in der Ausgabeebene sollte mit der Anzahl der Klassen identisch sein.

Sie können eine beliebige Anzahl von Zwischenebenen definieren: Diese werden manchmal als verborgene Ebenen bezeichnet, da sie im Modell enthalten sind und nicht direkt als Endpunkte verfügbar gemacht werden.

Das Net#-Referenzhandbuch erklärt die Syntax und enthält Beispiele für Netzwerkdefinitionen. Sie erfahren darin, wie Sie mit Net# verborgene Ebenen hinzufügen und die Methode definieren, mit der die verschiedenen Ebenen miteinander interagieren.

Das folgende Skript verwendet auto z. B. das Schlüsselwort , das die Anzahl der Features automatisch für Eingabe- und Ausgabeebenen und die Standardwerte für die verborgene Ebene verwendet.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Weitere Skriptbeispiele finden Sie unter Handbuch zur Net#-Spezifikationssprache für neuronale Netzwerke.

Tipp

Neuronale Netze können aufgrund einer Reihe von Hyperparametern und der Einführung benutzerdefinierter Netzwerktopologien rechenintensiv sein. In vielen Fällen erzeugen neuronale Netzwerke bessere Ergebnisse als andere Algorithmen. Allerdings erhalten Sie solche Ergebnisse mitunter nur durch viel Sweeping (Iteration) über Hyperparameter.

Modulparameter

Name Range type Standard Beschreibung
Hidden layer specification Liste Topologie des neuronalen Netzwerks Fully-connected case Geben Sie die Architektur der verborgenen Ebene oder Ebenen an.
The initial learning weights diameter >=double.Epsilon Float 0,1 Geben Sie die Knotengewichtungen am Anfang des Lernprozesses an.
The learning rate [double.Epsilon;1.0] Float 0,1 Geben Sie die Größe der einzelnen Schritte im Lernprozess an.
The momentum [0.0;1.0] Float 0.0 Geben Sie eine Gewichtung an, die beim Lernen auf Knoten aus früheren Iterationen angewendet werden soll.
Neural network definition Any StreamReader Geben Sie bei Auswahl von Custom definition script einen gültigen Skriptausdruck in jeder Zeile ein, um die Ebenen, die Knoten und das Verhalten eines benutzerdefinierten neuronalen Netzwerks zu definieren.
The type of normalizer Liste Normalisierungsmethode Minimum-maximum normalizer Wählen Sie den Typ der Normalisierung aus, der auf Lernbeispiele anzuwenden ist.
Number of learning iterations >=1 Integer 100 Geben Sie die Anzahl der Iterationen beim Lernen an.
Shuffle examples Any Boolean True Wählen Sie diese Option aus, um die Reihenfolge der Instanzen zwischen Lerniterationen zu ändern.
Random number seed Any Integer Geben Sie einen numerischen Ausgangswert für die Erzeugung von Zufallszahlen an. Lassen Sie das Feld leer, um den Standardausgangswert zu verwenden.
Allow unknown categorical levels Any Boolean True Geben Sie an, ob eine zusätzliche Ebene für unbekannte Kategorien erstellt werden soll. Wenn das Testdataset Kategorien enthält, die im Trainingsdataset nicht vorhanden sind, werden sie dieser Ebene für unbekannte Kategorien zugeordnet.

Output

Name Type BESCHREIBUNG
Untrainiertes Modell ILearner-Schnittstelle Ein untrainiertes mehrklassiges Klassifizierungsmodell

Siehe auch

Klassifizierung
Zweiklassiges neuronales Netzwerk
Regression mit neuronalen Netzwerken
Modulliste von A bis Z