Ретина, ламина, медулла, лобула, грибовидное тело, веерное тело, центральный комплекс, нисходящие нейроны. Обучение памяти тоннеля и считывания MBON, оценка leave-one-bag-out, полигон дальности, 24 теста. Реальный объект на 55 м — 98.9 % кадров, ложных 7.5 трека на км, кадр обрабатывается за 33 мс на CPU.
205 lines
17 KiB
Markdown
205 lines
17 KiB
Markdown
# Что именно взято из коннектома
|
||
|
||
Документ отвечает на два вопроса: какие параметры решения пришли из данных о мозге
|
||
дрозофилы, и почему взяты **схемы**, а не полная симуляция.
|
||
|
||
---
|
||
|
||
## 1. Почему не полная симуляция мозга
|
||
|
||
Полный коннектом взрослой дрозофилы (FlyWire) — около 139 тыс. нейронов и порядка
|
||
54 млн синапсов. Симуляция такого мозга в виде leaky integrate-and-fire существует
|
||
(Shiu et al., 2024), но для нашей задачи не годится по трём причинам.
|
||
|
||
**Бюджет времени.** Осмысленная спайковая динамика требует шага интегрирования 0.1–1 мс,
|
||
то есть 100–1000 шагов на один кадр лидара. Каждый шаг — разрежённое умножение по
|
||
десяткам миллионов синапсов с нерегулярным доступом к памяти. На стенде жюри
|
||
(i7-9700E, 8 ядер, 2.6 ГГц) это даёт от единиц до десятков секунд на кадр при бюджете
|
||
в 100 мс. GPU сокращает разрыв, но не закрывает его и съедает весь ресурс, ничего не
|
||
оставляя геометрии, трекингу и выводу.
|
||
|
||
**Потеря разрешения — главная причина.** У мухи около 800 омматидиев на глаз с угловым
|
||
шагом порядка 5°. Чтобы подать данные в настоящий коннектом, лидар пришлось бы проредить
|
||
с 460 800 лучей до ~800, то есть с 0.1° до 5°. Предмет 0.5 м на 200 м занимает 0.14°
|
||
и исчез бы полностью. Мы выбросили бы ровно то, ради чего в поезде стоит Pandar128.
|
||
|
||
**Неполнота данных.** Коннектом даёт связность, но не даёт знаки синапсов, веса и
|
||
постоянные времени — их всё равно пришлось бы подбирать.
|
||
|
||
Поэтому берутся **вычислительные схемы** и измеренные параметры, а работают они на полном
|
||
разрешении лидара в rate-based виде: один шаг на кадр, состояние популяции — массив.
|
||
|
||
---
|
||
|
||
## 2. Параметры, пришедшие из коннектома
|
||
|
||
### Грибовидное тело: 6 «когтей» на клетку Кеньона
|
||
|
||
Клетка Кеньона получает вход от небольшого числа проекционных нейронов, выбранных почти
|
||
случайно; в реконструкциях hemibrain и FlyWire среднее число входных «когтей» составляет
|
||
примерно 5–7. Это значение мы не подбирали, а взяли — и затем проверили перебором
|
||
(`tools/tune_memory.py`, leave-one-bag-out, ROC AUC новизны):
|
||
|
||
| «когтей» на KC | 4 | **6** | 8 | 10 |
|
||
|---|---|---|---|---|
|
||
| ROC AUC | 0.756 | **0.890** | 0.891 | 0.872 |
|
||
|
||
Биологическое значение оказалось на плато оптимума. Это не доказательство, но хорошая
|
||
проверка того, что схема перенесена осмысленно: случайная разрежённая проекция с малым
|
||
числом входов на клетку — не украшение, а работающий механизм.
|
||
|
||
### Грибовидное тело: разрежённость кода и APL
|
||
|
||
Гигантский тормозный нейрон APL собирает активность всех клеток Кеньона и возвращает
|
||
торможение всем сразу, оставляя активными единицы процентов. Мы сохранили саму схему
|
||
(глобальное торможение → отбор сильнейших), но **изменили масштаб**:
|
||
|
||
| | муха | FlyGuard |
|
||
|---|---|---|
|
||
| клеток Кеньона | ~2 000 на полушарие | 50 000 |
|
||
| активных одновременно | ~5 % | 0.1 % (50 клеток) |
|
||
|
||
Причина инженерная и измеренная. Муха за жизнь встречает сотни запахов; нам нужно
|
||
запомнить десятки тысяч видов тоннельной обстановки. При мушиных 2000 клетках и 5 %
|
||
активных память насыщается после нескольких тысяч примеров: подавлены 98 % синапсов,
|
||
и новым не выглядит уже ничто — новизна реального препятствия падала до 0.001, и оно
|
||
переставало обнаруживаться вовсе. Увеличение популяции и снижение разрежённости
|
||
восстанавливают работоспособность: ROC AUC 0.905, новизна объекта 0.49 против 0.13 у фона.
|
||
|
||
### Грибовидное тело: депрессия KC→MBON
|
||
|
||
Familiarity suppression — экспериментально описанное свойство выходных нейронов
|
||
грибовидного тела (в частности MBON-α′3): повторно предъявленный стимул даёт заметно
|
||
меньший ответ. Мы воспроизводим это умножением веса активных синапсов на (1 − rate)
|
||
при каждом предъявлении.
|
||
|
||
Темп депрессии **согласуется с размером выборки**: на одну клетку приходится
|
||
`n · n_active / n_kc` попаданий, и без такой поправки любая достаточно большая выборка
|
||
обнуляет память целиком. Темп выбирается так, чтобы типичная клетка ослабла в
|
||
фиксированное число раз; тогда шкала новизны отражает частоту обстановки, а не факт
|
||
«видел хоть раз».
|
||
|
||
### Дофаминергический контроль пластичности: когда учиться
|
||
|
||
Депрессия KC→MBON у мухи происходит не всегда, а когда её разрешают дофаминергические
|
||
нейроны PPL1 и PAM. Их вход зависит от состояния животного, а не только от стимула:
|
||
одно и то же предъявление запоминается или нет в зависимости от того, что происходит
|
||
вокруг.
|
||
|
||
У нас ту же роль играет координата пути из центрального комплекса. Кратковременное
|
||
привыкание (`mushroom_body.Habituation`) депрессирует синапсы только тогда, когда
|
||
форма встретилась в **новой точке пути**; повторное наблюдение того же предмета с
|
||
другой дальности пластичности не вызывает. Это перенос схемы «учитель решает
|
||
момент», а не самого нейромедиатора.
|
||
|
||
**Механизм по умолчанию выключен**, и это честный отрицательный результат, а не
|
||
недоделка: замер показал, что узнавания повторов у него нет, а весь видимый эффект
|
||
давало насыщение маленькой популяции (EXPERIMENTS п. 10). Сама же наблюдаемая
|
||
величина — сила дофаминового сигнала как средняя незнакомость сцены — осталась в
|
||
виде мозга: она заранее говорит, что участок новый и ложных тревог будет больше.
|
||
|
||
### T4/T5: четыре направления, два канала
|
||
|
||
T4 получает вход из ON-пути, T5 — из OFF-пути; каждый существует в четырёх подтипах,
|
||
настроенных на четыре стороны света в поле зрения. Воспроизведено буквально: четыре
|
||
направленных коррелятора Хассенштайна–Райхардта, отдельно для ON- и OFF-каналов ламины.
|
||
|
||
### LPLC2: четырёхслойный дендрит
|
||
|
||
Дендриты LPLC2 разложены на четыре слоя лобулярной пластинки так, что каждый слой
|
||
принимает T4/T5 «своего» направления с той стороны поля, куда поток уходит при
|
||
надвигании. Сумма четырёх слоёв — это дивергенция потока, и именно так реализован
|
||
детектор. Свойство подавляться однородным широкопольным потоком (то есть собственным
|
||
движением) сохраняется автоматически: у равномерного сдвига дивергенция равна нулю.
|
||
|
||
### Эллипсоидное тело: кольцевой аттрактор
|
||
|
||
Клетки EPG образуют единственный бугор активности, клетки PEN сдвигают его по сигналам
|
||
собственного вращения, взаимное торможение не даёт возникнуть второму бугру. В FlyGuard
|
||
эта схема переносится с курса на положение: треки живут в координате пути, сдвигаются
|
||
оценкой собственного движения, накапливают улику при совпадении и гасят соседей при
|
||
конкуренции за место.
|
||
|
||
### Нисходящие нейроны: два порога
|
||
|
||
Гигантское волокно (DNp01) — толстый аксон с высоким порогом, запускающий немедленный
|
||
аварийный манёвр; DNp02 и DNp11 реагируют раньше и мягче. Отсюда два уровня решения:
|
||
предупреждение и экстренное торможение, с гистерезисом между ними.
|
||
|
||
---
|
||
|
||
## 3. Что взято как идея, а не как число
|
||
|
||
Честное разделение: перечисленное ниже вдохновлено биологией, но конкретные величины
|
||
подобраны под задачу, а не измерены у мухи.
|
||
|
||
* число и размеры масштабов центр-окружения в ламине (три масштаба);
|
||
* постоянная времени задержки в корреляторе T4/T5 (1.5 кадра);
|
||
* коэффициенты накопления и утечки в центральном комплексе;
|
||
* пороги нисходящих нейронов и гистерезис;
|
||
* геометрические множители веса улики (целостность, компактность, опора снизу) — они
|
||
выведены из физики тоннеля, а не из анатомии;
|
||
* ограничение «одна фигура на компоненту» при разрезе по контрасту: приём глобального
|
||
торможения взят у APL и у широкопольного подавления LC11, но само число выбрано
|
||
замером (одна против двух и против всех: 6.4 / 7.4 / 9.4 ложных трека на километр);
|
||
* шаг «разных мест» и путь полузабывания в привыкании (5 м и 800 м) — механизм
|
||
выключен, но параметры остались.
|
||
|
||
---
|
||
|
||
## 3.5. Атлас: те же клетки, видимые глазом
|
||
|
||
Проверить, что архитектура действительно собрана из заявленных схем, можно не на
|
||
словах. `tools/build_brain_atlas.py` берёт публичные выгрузки Codex (FAFB v783) и
|
||
сводит их в атлас: положение сомы каждого нейрона и номер стадии FlyGuard, которой
|
||
он соответствует. Привязка идёт по **имени типа клетки**, а не по догадке, и все
|
||
типы находятся поимённо:
|
||
|
||
| Тип | В коннектоме | Где используется |
|
||
|---|---|---|
|
||
| LC11 | 127 | `lobula.py` — кандидаты как компактные группы лучей |
|
||
| LPLC2 | 210 | `medulla.py` — надвигание как дивергенция потока |
|
||
| HS (HSE/HSN/HSS) | 6 | `medulla.py` — широкопольный поток |
|
||
| VS1…VS8 | 16 | там же, вертикальный канал |
|
||
| T4a–d / T5a–d | 6243 / 6002 | `medulla.py` — коррелятор Хассенштайна–Райхардта |
|
||
| L1 / L2 | 3503 | `lamina.py` — каналы ON и OFF |
|
||
| Клетки Кеньона | 5177 | `mushroom_body.py` — разрежённый код |
|
||
| MBON | 96 | там же, выход памяти |
|
||
| APL | 2 | там же, глобальное торможение |
|
||
| EPG | 47 | `central_complex.py` — кольцевой аттрактор |
|
||
| DNp01 | 2 | `descending.py` — гигантское волокно |
|
||
|
||
Совпадение с литературой полное: LC11 около 110–130 клеток, HS по три на сторону,
|
||
VS по восемь, APL и гигантское волокно — по одной на полушарие.
|
||
|
||
Вид `brain_style: cloud` рисует эти 139 255 нейронов на их анатомических местах и
|
||
подсвечивает активностью соответствующей стадии. Симуляции по-прежнему нет:
|
||
коннектом даёт анатомию, конвейер даёт активность, вид накладывает одно на другое
|
||
за 8 мс на кадр.
|
||
|
||
## 4. Источники
|
||
|
||
* Dorkenwald S. и др. **Neuronal wiring diagram of an adult brain.** Nature, 2024 —
|
||
коннектом FlyWire: около 139 тыс. нейронов, ~54 млн синапсов.
|
||
* Scheffer L. и др. **A connectome and analysis of the adult Drosophila central brain.**
|
||
eLife, 2020 — hemibrain; статистика входов клеток Кеньона.
|
||
* Shiu P. и др. **A leaky integrate-and-fire computational model based on the connectome
|
||
of the entire adult Drosophila brain.** Nature, 2024 — оценка стоимости полной симуляции.
|
||
* Dasgupta S., Stevens C., Navlakha S. **A neural algorithm for a fundamental computing
|
||
problem.** Science, 2017 — FlyHash: разрежённая случайная проекция с отбором победителей.
|
||
* Dasgupta S., Sheehan T., Stevens C., Navlakha S. **A neural data structure for novelty
|
||
detection.** PNAS, 2018 — грибовидное тело как детектор новизны.
|
||
* Hattori D. и др. **Representations of novelty and familiarity in a mushroom body
|
||
compartment.** Cell, 2017 — familiarity suppression у MBON-α′3.
|
||
* Maisak M. и др. **A directional tuning map of Drosophila elementary motion detectors.**
|
||
Nature, 2013 — четыре подтипа T4 и T5.
|
||
* Klapoetke N. и др. **Ultra-selective looming detection from radial motion opponency.**
|
||
Nature, 2017 — LPLC2 и четырёхслойная организация дендритов.
|
||
* Seelig J., Jayaraman V. **Neural dynamics for landmark orientation and angular path
|
||
integration.** Nature, 2015 — кольцевой аттрактор эллипсоидного тела.
|
||
* von Reyn C. и др. **A spike-timing mechanism for action selection.** Nature Neuroscience,
|
||
2014 — гигантское волокно и пороги реакции ухода.
|
||
|
||
Параметры сенсора взяты из **Pandar128E3X User Manual v4p5** (п. 1.4 «Specifications» и
|
||
Приложение A «Channel distribution data»); поканальная таблица извлечена скриптом
|
||
`tools/extract_channel_table.py` в `ros2_ws/src/flyguard/flyguard/data/pandar128_channels.csv`.
|