From ba81f0384b3dee25090d00869586d62209f3983c Mon Sep 17 00:00:00 2001 From: int Date: Thu, 15 Oct 2026 02:12:58 +0300 Subject: [PATCH] Report: seed variation, neural-rule pipeline, page Co-Authored-By: Claude Opus 5.5 --- changes-2026-10-14.md | 1 + Отчёт_объекты_ночь.md | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/changes-2026-10-14.md b/changes-2026-10-14.md index 137dd0b..2830b18 100644 --- a/changes-2026-10-14.md +++ b/changes-2026-10-14.md @@ -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. Отчёт дополнен. diff --git a/Отчёт_объекты_ночь.md b/Отчёт_объекты_ночь.md index d3effcc..839048a 100644 --- a/Отчёт_объекты_ночь.md +++ b/Отчёт_объекты_ночь.md @@ -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. Перенести спайковую цепочку признаков на страницу визуализатора.