new NeuralNetwork(topology)
- Description:
Erstellt ein neues Neuronales Netz mit der gegebenen Topologie.
- Source:
Examples
// XOR-Netz: 2 Inputs → 4 Hidden → 1 Output
const net = new NeuralNetwork({
layers: [2, 4, 1],
activations: ['relu', 'sigmoid'],
lossFunction: 'mse',
learningRate: 0.1
});
// TTT-Netz: 9 Inputs → 36 Hidden → 36 Hidden → 9 Output (Softmax)
const net = new NeuralNetwork({
layers: [9, 36, 36, 9],
activations: ['relu', 'relu', 'softmax'],
lossFunction: 'crossEntropy',
learningRate: 0.01
});
Parameters:
| Name | Type | Description |
|---|---|---|
topology |
NetworkTopology |
Members
activationNames :Array.<string>
- Description:
Aktivierungsnamen pro Layer (für Snapshot/Serialisierung).
- Source:
Aktivierungsnamen pro Layer (für Snapshot/Serialisierung).
Type:
- Array.<string>
epoch :number
- Description:
Aktuelle Epoche (Trainingsfortschritt).
- Source:
Aktuelle Epoche (Trainingsfortschritt).
Type:
- number
lastInput :Float64Array|null
- Description:
Letzter Input (für Snapshot nach Forward-Pass).
- Source:
Letzter Input (für Snapshot nach Forward-Pass).
Type:
- Float64Array | null
lastLoss :number
- Description:
Letzter berechneter Verlust.
- Source:
Letzter berechneter Verlust.
Type:
- number
layers :Array.<Layer>
- Description:
Alle Layers (ohne Input-Layer — der Input-Layer ist kein echtes Layer-Objekt). Index 0 = erster Hidden-Layer, letzter Index = Output-Layer.
- Source:
Alle Layers (ohne Input-Layer — der Input-Layer ist kein echtes Layer-Objekt). Index 0 = erster Hidden-Layer, letzter Index = Output-Layer.
Type:
- Array.<Layer>
learningRate :number
- Description:
Lernrate für Gradient Descent.
- Source:
Lernrate für Gradient Descent.
Type:
- number
lossFunction :LossFunction
- Description:
Aktuelle Verlustfunktion.
- Source:
Aktuelle Verlustfunktion.
Type:
lossFunctionName :string
- Description:
Name der Verlustfunktion.
- Source:
Name der Verlustfunktion.
Type:
- string
topologyDef :Array.<number>
- Description:
Topologie als Array der Layer-Größen.
- Source:
Topologie als Array der Layer-Größen.
Type:
- Array.<number>
Methods
backward(target) → {number}
- Description:
Führt einen Backward-Pass (Backpropagation) durch. Berechnet Gradienten und aktualisiert Gewichte mit Gradient Descent.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
target |
Float64Array | Array.<number> | Zielwerte |
Returns:
Der berechnete Verlust
- Type
- number
deserialize(data)
- Description:
Lädt Gewichte aus einem serialisierten Objekt.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
data |
Object | Serialisiertes Netzwerk (von serialize()) |
forward(input) → {Float64Array}
- Description:
Führt einen Forward-Pass durch das gesamte Netzwerk aus. Daten fließen sequenziell durch alle Layers.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
input |
Float64Array | Array.<number> | Eingabedaten (Größe = topologyDef[0]) |
Returns:
Output des letzten Layers
- Type
- Float64Array
forwardMasked(input, legalMask) → {Float64Array}
- Description:
Forward-Pass mit Maskierung illegaler Züge (für Game-KI). Wendet maskedSoftmax auf den Output an.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
input |
Float64Array | Array.<number> | Eingabedaten |
legalMask |
Array.<number> | 1 = erlaubter Zug, 0 = blockiert |
Returns:
Maskierte Wahrscheinlichkeitsverteilung
- Type
- Float64Array
getCompactSnapshot() → {Object}
- Description:
Erstellt einen kompakten Snapshot (nur Gewichte und Outputs, ohne Gradienten). Für High-Frequency Updates während des Trainings.
- Source:
Returns:
Kompakter Snapshot
- Type
- Object
getSnapshot() → {NetworkSnapshot}
- Description:
Erstellt einen vollständigen Snapshot des Netzwerks. Dieser wird über die IframeBridge an die Visualisierung gesendet.
Alle Daten werden kopiert (Immutable Pattern, Convention §5).
- Source:
Returns:
- Type
- NetworkSnapshot
getTotalParameterCount() → {number}
- Description:
Gibt die Gesamtzahl aller Parameter (Gewichte + Biases) zurück.
- Source:
Returns:
- Type
- number
serialize() → {Object}
- Description:
Serialisiert das Netzwerk in ein JSON-kompatibles Objekt. Kann zum Speichern/Laden des trainierten Netzes verwendet werden.
- Source:
Returns:
Serialisiertes Netzwerk
- Type
- Object
setBias(layerIndex, neuronIndex, value)
- Description:
Setzt den Bias eines Neurons manuell.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
layerIndex |
number | |
neuronIndex |
number | |
value |
number |
setLearningRate(rate)
- Description:
Setzt die Lernrate dynamisch (für Nutzer-Interaktion via Bridge).
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
rate |
number | Neue Lernrate (z.B. 0.001 bis 1.0) |
setWeight(layerIndex, neuronIndex, weightIndex, value)
- Description:
Setzt ein einzelnes Gewicht manuell.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
layerIndex |
number | Index des Layers (0-basiert, ohne Input-Layer) |
neuronIndex |
number | Index des Neurons im Layer |
weightIndex |
number | Index des Gewichts |
value |
number | Neuer Wert |
trainEpoch(dataset) → {TrainingResult}
- Description:
Trainiert das Netz mit einem Batch von Datenpunkten (eine Epoche). Stochastic Gradient Descent: Ein Update pro Sample.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
dataset |
Array.<TrainingSample> | Array von {input, target} Paaren |
Returns:
Epochen-Statistik
- Type
- TrainingResult
trainSingle(input, target) → {number}
- Description:
Trainiert das Netz mit einem einzelnen Datenpunkt.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
input |
Float64Array | Array.<number> | |
target |
Float64Array | Array.<number> |
Returns:
Verlust für diesen Datenpunkt
- Type
- number