K=1600 neural-rule pipeline result
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
ba81f0384b
commit
39079670c0
3 changed files with 15 additions and 1 deletions
|
|
@ -336,3 +336,4 @@ KNP, validation: `fc_v_plain` 81,0%, `fc_v_augB` 79,5%. Симулятор (2000
|
|||
- Опубликовано на тот же адрес: https://claude.ai/artifact/Vc1q1WCZuPY2QAHBSGtrKF (версия 2).
|
||||
- Всё обучение нейронными правилами (validation): признаки онлайн WTA K=800 (400 000 кусочков, то же выбеливание, `v3_k800_online.npz`) → точная симуляция (10 шагов, порог 108,08; 676 тыс. спайков/картинку) → выход: ridge + калиброванный нейрон 72,9–73,1%; **дофаминовое правило + калиброванный нейрон 69,4–69,8%**. Онлайн-WTA не хуже пакетных k-средних (там 71,8% / 69,3%).
|
||||
- Разброс по seed (validation, `objects/seeds_DE.sh`): D (top-256 + колонки, наказание 0,012, t1600) — seed 42/1/2/3: 64,3/64,7/63,4/63,5 → 64,0 ± 0,6; E (v2 sparse HOG, t4000) — 62,6/62,9/62,6/60,3 → 62,1 ± 1,2. Отчёт дополнен.
|
||||
- K=1600, всё нейронными правилами (`objects/run_k1600_online.sh`; онлайн WTA 600 000 кусочков → точная симуляция, 1,21 млн спайков/картинку, 1098 с → выход): ridge + калиброванный нейрон 72,8–73,5%; **дофамин + калиброванный нейрон 71,6%** (K=800 — 69,4–69,8%).
|
||||
|
|
|
|||
13
objects/run_k1600_online.sh
Normal file
13
objects/run_k1600_online.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
# Night: neural-rule pipeline with K=1600 (online WTA features → exact spiking → dopamine readout), validation.
|
||||
cd /home/int/run/cats-dogs
|
||||
~/anvenv/bin/python - <<'PY'
|
||||
import sys; sys.path.insert(0, "/mnt/c/knp/objects")
|
||||
import numpy as np, kmeans_features as kf
|
||||
kf.CONTRAST_DIVIDE = False
|
||||
tr = np.load("data-v3/train.npz"); base = dict(np.load("v3_k800_lin.npz"))
|
||||
m = kf.learn_online(tr["rgb"], k=1600, n_patches=600000, base={"mean": base["mean"], "zca": base["zca"]})
|
||||
np.savez("v3_k1600_online.npz", **m)
|
||||
PY
|
||||
~/anvenv/bin/python /mnt/c/knp/objects/spiking_pipeline.py --model v3_k1600_online.npz --thr1 108.0791244506836 --out spiking_v3_k1600_online.npz > spiking_v3_k1600_online.log 2>&1
|
||||
~/anvenv/bin/python /mnt/c/knp/objects/dopamine_readout.py spiking_v3_k1600_online.npz 2e-4 >> spiking_v3_k1600_online.log 2>&1
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
Проверено в симуляторе на проверочной выборке:
|
||||
|
||||
- **Слой признаков, обученный по-нейронному.** Картинки идут по одной, побеждает самый похожий нейрон, и только его веса сдвигаются к кусочку. Это аналог STDP с торможением «победитель забирает всё». Признаки получаются не хуже пакетного метода: 72,9% против 71,8% при одинаковом выходе.
|
||||
- **Выход, обученный локальным правилом с дофамином.** Синапс меняется на «ошибка × число пришедших спайков». Ошибку переносит сигнал дофамина со знаком, а сам дофамин в KNP уже есть. Результат **69,4–69,8%**, на 3 п.п. ниже, чем у гребневой регрессии. Это лучше колонок STDP (64%).
|
||||
- **Выход, обученный локальным правилом с дофамином.** Синапс меняется на «ошибка × число пришедших спайков». Ошибку переносит сигнал дофамина со знаком, а сам дофамин в KNP уже есть. Результат **69,4–69,8%** при 800 узорах и **71,6%** при 1600, на 2–3 п.п. ниже, чем у гребневой регрессии. Это лучше колонок STDP (64%).
|
||||
- **Нейрон-решатель без подбора порога.** Смещение нейрона сдвинуто так, что «потенциал дошёл до порога» означает «сумма больше нуля». Результат не зависит от порога.
|
||||
- **Больше шагов на картинку** (20 вместо 10) — +1,3 п.п.: 72,9% вместо 71,6%.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue