Neural '95 — Backpropagation Workbench
★ MAY 1995 ★ NEURÁLIS HÁLÓZATOK HÁZI FELADAT — ZAJSZŰRÉS BACKPROPAGATION HÁLÓVAL ★ NNFILTER & RECOGNNN — VISUAL BASIC 3, WINDOWS 3.1, 486DX4-100 ★ NOW TRAINING LIVE IN YOUR BROWSER ★ STANDING ON THE SHOULDERS OF GIANTS ★

Neural '95

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

What is this?

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.

  1. Set up. In the Workbench, choose a symbol set (digits or letters, on grids from 3×3 to 8×8), the number of hidden neurons, the learning rate μ and the training noise. The defaults reproduce the report’s main experiment.
  2. Learn. Enter how many steps to train for and press ▶ Learn. The network trains for exactly that many steps and stops by itself. Watch the progress bar, the two error figures and, on the ② Learning tab, the error curve fall. Press it again to train further.
  3. Test. On the ① Test tab, draw a symbol or press Random symbol, then switch ✱ Noise on. The filter restores the symbol and the reader names it. See whether it still gets it right at 75% noise.
  4. Measure. On ③ Symbols, press Run test to score every symbol at 0, 20, 50 and 75% noise. Use ④ Optimize to search for the smallest hidden layer that still learns, or replay the report’s experiments in the 1995 lab report window below.
FUN FACT
I brought these programs back to life using AI, with minimal human effort.
1995: roughly 300–400 hours of work.   Today: recreating them took roughly 300–400 seconds, plus some fine-tuning afterwards.
The same idea, thirty-one years of progress.
Workbench — SYMBOLS.NNB
PHASE 1 — LEARN: train the network on noisy symbols
Symbol set Hidden neurons10 Learning rate μ0.10 Training noise50%
Steps to learn
Steps: 0
– steps/s
Filter MSE: –
Reader err: –
PHASE 2 — TEST: filter a noisy symbol, or identify it

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.

Input
➜
NNFilter output
➜
?
–
RecogNN says
?
–
…without the filter

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.

min2 max40 max steps / size6000 n steps below100 e (MSE)0.020

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

1995 lab report — replay the experiments

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”.

How it works

The network, as in the report

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.

IL 0 inputHiddenIL 1OutputIL 2 + bias cell = 1IL 3 = desired

The learning rule

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.

Filter vs. reader

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.

★ In tribute — the pioneers of AI

None of today’s AI would exist without them. Click an entry to expand. The highlighted row is the year of our two programs.

    About Neural '95

    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.