Report: seed variation, neural-rule pipeline, page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
int 2026-10-15 02:12:58 +03:00
parent febc599ff2
commit ba81f0384b
2 changed files with 17 additions and 1 deletions

View file

@ -335,3 +335,4 @@ KNP, validation: `fc_v_plain` 81,0%, `fc_v_augB` 79,5%. Симулятор (2000
- Проверка JS против Python (QuickJS, установлен в `~/anvenv` через pip): 105/105 одинаковых ответов на картинках галереи, признаки расходятся максимум на 1 из 255 (округление); весь скрипт страницы разбирается без ошибок.
- Опубликовано на тот же адрес: 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. Отчёт дополнен.

View file

@ -33,6 +33,8 @@
Погрешность при 600 картинках около ±3,7 п.п. Прибавка к вчерашней сети на пределе погрешности, но в одну сторону у обоих спайковых вариантов.
Разброс по 4 seed на проверочной выборке: выученные признаки + колонки STDP — 64,0% ± 0,6 (63,4–64,7), вчерашняя сеть — 62,1% ± 1,2 (60,3–62,9). Колонки на новых признаках устойчиво лучше, но всего на ~2 п.п. На свежем тесте разница вышла больше, по-видимому, отчасти случайно.
## Где теряется точность
1. **Нормировка контраста:** −0,7 п.п. Её нельзя сделать одним нейроном, но потеря небольшая.
@ -52,6 +54,19 @@
Колонки по 80 нейронов на полном MNIST — 93,5% на тесте, лучший результат на пикселях (один seed). Кодирование ON/OFF «в лоб» не работает: спайков на входе становится втрое больше, и сеть молчит. Нужно нормировать поток спайков.
## Всё обучение — нейронными правилами (продолжение ночи)
Проверено в симуляторе на проверочной выборке:
- **Слой признаков, обученный по-нейронному.** Картинки идут по одной, побеждает самый похожий нейрон, и только его веса сдвигаются к кусочку. Это аналог STDP с торможением «победитель забирает всё». Признаки получаются не хуже пакетного метода: 72,9% против 71,8% при одинаковом выходе.
- **Выход, обученный локальным правилом с дофамином.** Синапс меняется на «ошибка × число пришедших спайков». Ошибку переносит сигнал дофамина со знаком, а сам дофамин в KNP уже есть. Результат **69,4–69,8%**, на 3 п.п. ниже, чем у гребневой регрессии. Это лучше колонок STDP (64%).
- **Нейрон-решатель без подбора порога.** Смещение нейрона сдвинуто так, что «потенциал дошёл до порога» означает «сумма больше нуля». Результат не зависит от порога.
- **Больше шагов на картинку** (20 вместо 10) — +1,3 п.п.: 72,9% вместо 71,6%.
## Цифры на странице
На странице https://claude.ai/artifact/Vc1q1WCZuPY2QAHBSGtrKF появилась панель «4 · Сеть штрихов»: 16 карт штрихов, спайки 10 выходных нейронов и ответ. На тесте MNIST эта сеть даёт 94,7%, колонки — 92,2%. Сеть входит в строку «Итог всех сетей», так что её можно сравнивать на своих рисунках и сдвигах. Расчёт в браузере сверен с Python: на 105 картинках ответы совпали.
## Ограничения
- Слой признаков учится методом k-средних в обычном коде. Правило совпадает с соревновательным обучением на нейронах, но на модели AltAI в KNP он пока не обучался.
@ -61,7 +76,7 @@
## Что дальше
1. Обучить слой признаков в самом KNP: соревновательные нейроны AltAI с STDP на кусочках картинок.
1. Перенести в KNP оба нейронных правила, проверенных в симуляторе: соревновательный слой признаков и выход с дофамином по ошибке.
2. Сократить потерю на спайках: дать нейрону признака больше спайков на картинку или использовать время первого спайка.
3. Научить колонки STDP работать с плотными признаками, а не только с разреженными: например, вычитать среднее перед подачей или добавить тормозящий вход.
4. Перенести спайковую цепочку признаков на страницу визуализатора.