UNPKG

deept.js

Version:

Eine TypeScript/JavaScript Library für ML im Browser

81 lines (80 loc) 3.46 kB
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; }