Zum Hauptinhalt springen Skip to page footer

NEURONALE NETZE - KI -AI

Tutorial : neurales Netz Erstellen mit c#

Erstellt von BtiTechnology |

Hier ist ein Beispiel, wie man ein mehrschichtiges Perzeptronen-Netzwerk in C# erstellen kann. Wir werden das Netzwerk mit der Backpropagation-Lernalgorithmus trainieren, um eine binäre Klassifizierungsaufgabe auszuführen.

Schritt 1: Erstellen der Klassen

Zunächst erstellen wir die Klassen, die das Netzwerk und seine Schichten repräsentieren. Wir erstellen eine Klasse für das Netzwerk, eine Klasse für jede Schicht und eine Klasse für Neuronen.

public class Network
{
    public List<Layer> Layers { get; set; }
    
    public Network()
    {
        Layers = new List<Layer>();
    }
}

public class Layer
{
    public List<Neuron> Neurons { get; set; }
    
    public Layer()
    {
        Neurons = new List<Neuron>();
    }
}

public class Neuron
{
    public List<double> Weights { get; set; }
    public double Bias { get; set; }
    public double Output { get; set; }
    public double Delta { get; set; }
    
    public Neuron(int inputCount)
    {
        Weights = new List<double>();
        for (int i = 0; i < inputCount; i++)
        {
            Weights.Add(0.5); // initial weights
        }
        Bias = 0.5; // initial bias
    }
}
 

Schritt 2: Initialisieren des Netzwerks

Als nächstes initialisieren wir das Netzwerk mit den gewünschten Einstellungen. Wir erstellen drei Schichten, eine Eingangsschicht mit zwei Neuronen, eine versteckte Schicht mit drei Neuronen und eine Ausgangsschicht mit einem Neuron. Wir initialisieren auch die Eingabe- und Ausgabe-Arrays.

 

int inputCount = 2; // Anzahl der Eingangsneuronen
int hiddenCount = 3; // Anzahl der versteckten Neuronen
int outputCount = 1; // Anzahl der Ausgangsneuronen

Network network = new Network();

// Eingangsschicht
Layer inputLayer = new Layer();
for (int i = 0; i < inputCount; i++)
{
    inputLayer.Neurons.Add(new Neuron(inputCount));
}
network.Layers.Add(inputLayer);

// Versteckte Schicht
Layer hiddenLayer = new Layer();
for (int i = 0; i < hiddenCount; i++)
{
    hiddenLayer.Neurons.Add(new Neuron(inputCount));
}
network.Layers.Add(hiddenLayer);

// Ausgangsschicht
Layer outputLayer = new Layer();
for (int i = 0; i < outputCount; i++)
{
    outputLayer.Neurons.Add(new Neuron(hiddenCount));
}
network.Layers.Add(outputLayer);

double[] inputs = new double[inputCount];
double[] outputs = new double[outputCount];
 

Schritt 3: Vorwärtspropagation

Als nächstes implementieren wir die Vorwärtspropagation, um die Ausgabe des Netzwerks zu berechnen. Dazu iterieren wir über alle Schichten und alle Neuronen in jeder Schicht. Wir berechnen die Ausgabe jedes Neurons, indem wir die Eingabe mit den Gewichten jedes Neurons multiplizieren und dann die Summe aller Produkte mit dem Bias des Neurons addieren. Schließlich verwenden wir eine Aktiv

Zurück