Delta-rule KNP results: MNIST 94.8%, cats/dogs 69.1% on validation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
int 2026-10-15 05:59:50 +03:00
parent 64fc5161e0
commit 917b94035d
2 changed files with 34 additions and 8 deletions

View file

@ -12,3 +12,36 @@
- Пробный прогон (признаки coarse, 3000 обучение, 1000 проверка, 10 нейронов): скорость 0,3 — 48,5%, 1 — 76,8%, 3 — **77,4%** (колонки 200 нейронов на том же объёме: 69,8% без наказания, до 79% с наказанием).
- `cats-dogs/source`: те же изменения (`construct_network.cpp`, `spike_generators.cpp`), пересобран `cats_dogs`; `cats-dogs/run.py --backend delta`.
- Запущены: `readout/delta_runs.sh` (MNIST coarse, 30 000, 6 вариантов) и кошки/собаки на плотных признаках `features-v3/kmeans_validation` (2048 входов, 18 000 обучение, скорости 0,3/1/3).
### Результаты обучения дофамином по ошибке в KNP (validation)
MNIST, признаки coarse, 30 000 обучение, 10 000 проверка, 10 выходных нейронов (`KNP_COL_SIZE=1`), порог 60, торможение 255:
| скорость | a | b (штраф за свой спайк) | разброс | верно |
| --- | --- | --- | --- | --- |
| 1 | 1 | 1 | 20 | 85,17% |
| 3 | 1 | 1 | 20 | 86,25% |
| 3 | 1 | 1 | 0 | 85,86% |
| 10 | 1 | 1 | 20 | 79,42% |
| 3 | 1 | 0,5 | 20 | 59,79% |
| 1 | 1 | 2 | 20 | 91,43% |
| 3 | 1 | 2 | 20 | 93,27% |
| 10 | 1 | 2 | 20 | 93,02% |
| 3 | 1 | 3 | 20 | 94,31% |
| 3 | 1 | 4 | 20 | 94,76% |
| 3 | 1 | 6 | 20 | **94,81%** |
Для сравнения на тех же признаках: колонки STDP (200 нейронов) — 79,7% без наказания, 83,5% с наказанием 0,012; выход, обученный вне чипа (ridge, спайковый) — 94,9%. Симулятор на `dl_r3_a1_b2_j20`: 93,26% (KNP 93,27%); порог 20–160 и торможение 0/255 — 87,7–93,7%.
Кошки/собаки, плотные выученные признаки `features-v3/kmeans_validation` (2048 входов, K=512, без разреживания), 18 000 обучение, 1000 проверка, 2 нейрона, разброс 0:
| скорость | b | верно |
| --- | --- | --- |
| 0,3 | 1 | 50,1% |
| 1 | 1 | 54,5% |
| 3 | 1 | 58,4% |
| 3 | 2 | 65,8% |
| 10 | 2 | 65,6% |
| 10 | 4 | 65,6% |
| 3 | 4 | **69,1%** |
Колонки STDP на этих же плотных признаках молчали (≈0%), на разреженных top-256 — 64–65%; ridge на этих uint8-признаках 74,2%, спайковый нейрон-разность 72,4%. Симулятор `dl_cd_r3_b4`: порог 30–250, торможение 0/255 — 67,6–68,8%.

View file

@ -10,11 +10,4 @@ run() { n=$1; [ -f $n/done ] && return; mkdir -p $n
-t 30000 -i 10000 -l error --training_backend $HOME/run/delta-cpu/libknp-cpu-delta-backend.so > $n/log.txt 2>&1
touch $n/done; }
export -f run
cat <<SPECS | xargs -P 6 -L 1 bash -c 'run "$@"' _
dl_r1_a1_b1_j20 1 1 1 20
dl_r3_a1_b1_j20 3 1 1 20
dl_r10_a1_b1_j20 10 1 1 20
dl_r3_a1_b0.5_j20 3 1 0.5 20
dl_r3_a1_b2_j20 3 1 2 20
dl_r3_a1_b1_j0 3 1 1 0
SPECS
cat ${SPECFILE:-/dev/stdin} | xargs -P 6 -L 1 bash -c 'run "$@"' _