Hallo zusammen, ich habe eine Frage zu einem kleinen projekt aus der Ausbildung.
Inbesondere unter Punkt 5, weiß ich nicht wie ich Ausgabe bzw. Eingabe der Vektoren auf der Console ausgeben kann.
Kann hier jemand helfen?
Zum eigentlichen projekt (1-4) sind schon implementiert
Legen Sie als erstes eine Klasse „Neuron“ an. Das Neuron benötigt folgende Eigenschaften:
Erstellen Sie einen Konstruktor, bei dem der Index als Parameter direkt übergeben und gesetzt wird.
Legen Sie folgende Methoden im Neuron an und erstellen Sie den zugehörigen Code in den Methoden:
public void Aktivierungsfunktion():
In dieser Methode soll aus dem NettoInput der Aktivierungswert des Neurons berechnet werden. Da die Aktivierungsfunktion bei Assoziativspeichern die Signum-Funktion ist, können Sie auf „Math.Sign“ zurückgreifen. Setzen Sie das Ergebnis in der Eigenschaft „Aktivierung“ des Neurons.
public void Ausgabefunkton():
In dieser Methode wird der Ausgabewert des Neurons berechnet. Da die Ausgabefunktion bei einem Assoziativspeicher die Identitätsfunktion ist, können Sie hier einfach den Ausgabewert gleich dem Aktivierungswert setzen.
Legen Sie außerdem ein privates Feld „double[,] _matrix“ an. Darin wird die Gewichtsmatrix gespeichert. Auf dieses Feld wird von außen über den „Indexer“ der Gewichtsmatrix zugegriffen. Dieser wird beim implementieren des Interfaces automatisch angelegt.
Erweitern Sie den Indexer wie folgt:
public double this[int x, int y]
{
get
{
return _matrix[x,y];
}
set
{
_matrix[x, y] = value;
}
}
Legen Sie einen Konstruktor an, der die Anzahl der Zeilen und Spalten übergeben bekommt. Erzeugen Sie im Konstruktor das entsprechende _matrix-Objekt und initialisieren Sie es mit Nullen.
Implementieren Sie die folgenden beiden Methoden:
a. Prüfen Sie alle Trainingsmuster darauf, ob die Eingabevektor-Arrays alle die gleiche Länge haben (ebenso die Ausgabevektor-Arrays). Sollte das nicht der Fall sein, werfen Sie eine ArgumentException.
b. Erzeugen Sie die Listen der Eingabe- und Ausgabeneuronen und legen Sie entsprechend der Trainingsmuster Neuronen in den Listen an.
c. Erzeugen Sie für jedes Trainingsmuster eine Matrix. Dazu muss der jeweilige Eingabevektor mit dem zugehörigen Targetvektor multipliziert werden. Verwenden Sie dazu zwei ineinander geschachtelte for-Schleifen. Sammeln Sie die Teilmatrizen in einer Liste.
d. Erstellen Sie die _matrix des AssoziativSpeichers und addieren Sie alle berechneten Teilmatrizen. Dazu müssen Sie die Liste der Teilmatrizen mit einer foreach-Schleife durchlaufen und die einzelnen Komponenten aufaddieren (geschachtelte for-Schleifen über alle Zeilen und Spalten der Matrix).
a. Setzen Sie den NettoInput der Eingabeneuronen anhand des Eingabevektors.
b. Führen Sie für die Eingabeneuronen die Aktivierungsfunktion und die Ausgabefunktion aus.
c. Setzen Sie den NettoInput aller Ausgabeneuronen auf Null.
d. Addieren Sie die Ausgabewerte aller Eingabeneuronen multipliziert mit dem zugehörigen Gewicht aus der Gewichtsmatrix auf den NettoInput der Ausgabeneuronen.
(Verwenden Sie hier zwei ineinander geschachtelte for-Schleifen, um später auch Vektoren unterschiedlicher Länge verarbeiten zu können.
e. Führen Sie für alle Ausgabeneuronen die Aktivierungsfunktion und die Ausgabefunktion durch.
f. Fügen Sie die Ausgabewerte der Ausgabeneuronen in eine Liste ein, um diese zurückzugeben.
g. Wandeln Sie den Ausgabevektor (die Liste) in einen String um, um diesen als Out-Parameter zurückzugeben (in der Form: [ 1, -1, 1]). Setzen Sie den Out-Parameter „ausgabeVektor“ und geben Sie dann die Liste zurück.
**Erzeugen Sie eine Instanz Ihres Assoziativspeichers.
Generieren Sie die Matrix mit der entsprechenden Methode berechnen Sie dann für jeden Eingabevektor der Trainingsmuster den zugehörigen Ausgabevektor.
Geben Sie auf der Konsole jeweils hintereinander den Eingabevektor und den Targetvektor des Trainingsmusters sowie den tatsächlich berechneten Ausgabevektor des Netzes aus.**
Was ist Deine Frage? Das Forum ist kein Quellcode-Generator für Hausaufgaben.
...vor allem nicht im Code-Review-Forum, daher verschoben
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code