In spring 1995 I was a fourth-year student at BME (Budapesti Műszaki és Gazdaságtudományi Egyetem, the Budapest University of Technology and Economics, in Hungary). I wrote a backpropagation program in Visual Basic and handed in a report on it. This page brings my two programs back to life as one: NNFilter restores noisy symbols, RecogNN reads them. Same symbol sets, same learning rule, same “Optimize network size” search, now running in your browser with no libraries and no server.
— Peter Somos, 2026, thirty-one years later
A tiny neural network you can train and test yourself. It learns to recognize symbols drawn on a pixel grid, even when they are corrupted by noise.
Draw a symbol (click/drag; right-click or Shift erases) or pick one, and switch noise on. The filter restores it; the reader names it. Try 75% noise on a 3 and an 8.
Noise 50%
Reader’s output neurons
The error graph of the 1995 Learn window: mean squared error, scalable between 1 and 0.01.
■ filter MSE · ■ reader MSE
The symbol set as the filter reconstructs it. Top: clean. Bottom: the symbol with the chosen noise → filter output. Click one to send it to the Test tab.
Noise 75%
The 1995 report’s hidden-layer search: start with (min+max)/2 neurons and train. If training succeeds (the mean squared error stays under e for n steps in a row), halve the interval downwards; if it hits the step limit, halve it upwards — a binary search. The report warns it is not guaranteed to find the true optimum.
idle
“A spectacular but practically unimportant feature”, as the report puts it: choose the display colour (six base colours) and into how many grades the [0, 1] interval is divided (2–100).
Grades 16
Section 4 of the report describes experiments on the 5×5 digits 0–9, trained on 100 samples with up to 50% noise. Each button loads the same settings and starts learning; watch the graph in ② Learning.
“Training noise 0: the error decreased until step 3000, then oscillated…”— NEURAL.DOC §4
“After 2500 steps the network had learned the patterns (< 0.05).”
“…about 6000 steps were needed for successful learning.”
“With 5 neurons … learned all but two pixels of the ‘4’. With 3 neurons learning failed even after 10000 steps.”
Then test at 75% noise: the report found the only real confusion was between “3” and “8” — two pixels apart, “completely undecidable even for a human”.
A symbol of size m×n is a vector of m·n intensities, 0 = background, 1 = foreground, in-between = noise. The net has m·n inputs, one hidden layer and m·n outputs, plus a fixed “1” input for the bias. The 1995 design introduced the interlayer — a plain vector between two layers (or a layer and the outside world) so that hidden and output layers run through the same routine.
Sigmoid units. After a forward pass, each weight moves by w += μ·δ·x. For the output layer the report’s code uses δ = (desired − out) · out; for the hidden layer the error is propagated back, δ = Σ δⱼ·wⱼᵢ · σ′(s). That output δ is a simplification of the textbook out·(1−out); the “authentic” box above switches between them (the authentic one learned a bit faster in my tests).
Weights start random and small (< 0.1). The original even tabulated the nonlinearity at start-up (“Initializing nonlinearity…”) because exp() was expensive on a 486.
NNFilter maps a noisy image to the clean image (outputs = pixels). RecogNN maps it to a code — one output neuron per symbol. They share the engine, so here both train side by side on the same noisy samples and are chained into a pipeline.
Limits in 1995: 100 inputs/outputs, 100 hidden neurons — kept as slider limits.
None of today’s AI would exist without them. Click an entry to expand. The highlighted row is the year of our two programs.
Neural '95 is built from NEURAL.DOC — Neurális hálózatok házi feladat: zajszűrés backpropagation hálóval, by Peter Somos (Somos Péter; BME, Műszaki informatika szak, Intelligens rendszerek modul, 4th-year student, May 1995) — and the Visual Basic 3 projects it documents, NNFilter and RecogNN. Symbol sets (55_10.NFS, 57_26.NFS, 88_13.NFS …) are decoded straight from the original files. The Windows 3.1 look is a hommage too.
Everything runs locally in your browser. No cookies, no tracking, no analytics, no data collected or sent anywhere: the page makes no network requests and stores nothing on your device.
Disclaimer: this is a hobby project, recreated just for fun and out of nostalgia. It is not a faithful copy of the 1995 programs (their code is only partly recoverable), it is not a product or a research tool, and it comes with no warranty of any kind.