# Что именно взято из коннектома Документ отвечает на два вопроса: какие параметры решения пришли из данных о мозге дрозофилы, и почему взяты **схемы**, а не полная симуляция. --- ## 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`.