litegrad
v1.0.1
Published
A lightweight, zero-dependency Neural Network and Matrix math library.
Readme
LiteGrad 🧠
A lightweight, zero-dependency Neural Network and Matrix math library built entirely from scratch in pure TypeScript.
I built this library to bridge the gap between the mathematics of electrical engineering (like matrix-based signal processing) and software-based machine learning. Instead of relying on massive black-box libraries like TensorFlow or PyTorch, LiteGrad exposes the raw matrix calculus and backpropagation algorithms that power multi-layer networks.
Features
- Zero Dependencies: Pure TypeScript implementation from the ground up.
- Custom Math Engine: Includes a bespoke
Matrixclass for linear algebra operations (dot products, transpositions, Hadamard products). - Multi-Layer Perceptron (MLP): Configurable input, hidden, and output layers.
- Backpropagation: Implements gradient descent with configurable learning rates.
- Modern Activations: Supports Sigmoid, ReLU, and Tanh activation functions.
- Model Persistence: Serialize and deserialize trained networks to JSON for easy storage and loading.
Installation
npm install litegrad
import { NeuralNetwork } from 'litegrad';
// 1. Initialize: 2 Inputs, 4 Hidden Nodes, 1 Output Node
const nn = new NeuralNetwork(2, 4, 1);
nn.learningRate = 0.1;
// 2. The Training Data (XOR Logic Gate)
const trainingData = [
{ inputs: [0, 0], targets: [0] },
{ inputs: [0, 1], targets: [1] },
{ inputs: [1, 0], targets: [1] },
{ inputs: [1, 1], targets: [0] },
];
// 3. Train the Network
console.log("Training started...");
for (let i = 0; i < 50000; i++) {
const data = trainingData[Math.floor(Math.random() * trainingData.length)];
// The train method returns the Mean Squared Error (MSE) for loss tracking
const loss = nn.train(data.inputs, data.targets);
}
console.log("Training complete!");
// 4. Make Predictions
console.log("Guess for [0, 0]:", nn.predict([0, 0])[0]); // Expect ~0
console.log("Guess for [1, 0]:", nn.predict([1, 0])[0]); // Expect ~1