deept.js
Version:
Eine TypeScript/JavaScript Library für ML im Browser
81 lines (80 loc) • 3.46 kB
TypeScript
import * as comps from './neuralnet.lib';
/**
* @class Neurales Netzwerk für Machine-Learning.
* @constructs NeuralNet: Baut ein leeres Netzwerk auf.
* @method addLayers: Layer zum Netzwerk hinzufügen.
* @method predict: Feed-Forward Algorythmus.
* @method train: Trainiert das Netzwerk.
* @method test: Testet das Netzwerk.
* @method mutate: Mutate-Funktion für gen. Algorythmen.
* @method static log: Loggt ein gegebenes Netzwerk zur Konsole.
* @method log: Loggt dieses Netzwerk zur Konsole.
* @method emit: Wandelt das Netzwerk in JSON Format um.
*/
export default class NeuralNet {
hiddenLayers: comps.HiddenLayer[];
hiddenLayerNodes: number[];
inputNodes: number;
learningRate: number;
numHiddenLayers: number;
outputLayer: comps.OutputLayer;
outputNodes: number;
private totalError;
/**
* Leeres Neurales Netzwerk aufbauen.
* @returns Ein leeres Neurales Netzwerk.
*/
constructor();
/**
* Funktion die es für den User einfacher macht sein Network aufzustellen.
* Eine Art redirect zu den spezifischeren Funktionen.
* @param layerArray Ein Array aus Objekten welche informationen über die Struktur des Netzwerkes
* enthalten
*/
addLayers(layerArray: comps.IlayerInput[]): void;
/**
* Diese Funktion ist ein feed-forward Algorythmus durch das Netzwerk.
* @param inputArray Ein Array aus Zahlen mit denen das Netzwerk sein Ergebnis berechnet.
* @callback callback Eine Callback-Funktion welche nach dem Durchlauf aufgerufen wird und der das Ergebnis
* übergeben wird.
* @returns Ein Array mit den Ergebnissen des Netzwerkes.
*/
predict(inputArray: number[], callback?: (result: number[]) => void): number[] | void;
/**
* Ein backwards-propagation Algorythmus der einen Input und ein gewünschtes Ergebnis als Array
* nimmt und über eine optionale Anzahl (default 10000) an iterations das Training durchführt.
* @param trainingData Array mit Objekten welche als Eigenschaften die Informationen zum Training enthalten. Das
* Netzwerk benutzt zufällig eines aus diesem Array.
* @param ops Ein Objekt mit Optionen für den Ablauf des trainings.
*/
train(trainingData: comps.ITrainingInput[], ops?: comps.ITrainOps): void;
/**
* Diese Methode testet das Netzwerk indem es Richtige und falsche Antworten vergleicht.
* @param testingData Array aus Objekten wie die Trainingsdaten.
* @param ops Optionen für den Ablauf des Testings.
* @returns Den berechneten Prozentsatz der korrekten Antworten.
*/
test(testingData: comps.ITrainingInput[], ops?: comps.ITestOps): {
stat: string;
val: number;
};
/**
* Ein genetischer Algorythmus soll eine Population über Generationen mutieren und trainieren.
* @param rate Eine Zahl an der die Population mutieren soll.
*/
mutate(rate: number): void;
/**
* Loggt das gegebene Netzwerk in die Konsole.
* @param net Neurales Netzwerk welches ausgegeben werden soll.
*/
static log(net: NeuralNet): void;
/**
* Loggt das Netzwerk in die Konsole.
*/
log(): void;
/**
* Gibt das Netzwerk als String zurück um es z.B. zu speichern.
* @returns Einen String welcher z.B. in JSON Format gespeichert werden kann.
*/
emit(): string;
}