# Нейронные клеточные автоматы: как MNIST классифицирует сам себя по мнению Килчера

Источник: https://www.youtube.com/watch?v=EbHUU-gLyRA
Канал: Yannic Kilcher
Опубликовано: 02.09.2020

---

Янник Килчер разбирает интригующую работу «Self-classifying MNIST Digits», в которой традиционная задача классификации изображений решается не через глобальный классификатор, а с помощью децентрализованного взаимодействия «умных» пикселей. Авторы исследуют, как локальные правила коммуникации между клетками могут привести к глобальному согласию всей системы о том, какой объект она собой представляет.

## 🧩 Клеточный разум: как пиксели находят общий язык
[[JUMP:0:01]]

Представьте, что каждый пиксель на изображении — это живая клетка, способная общаться только со своими ближайшими соседями. В этой модели, называемой нейронными клеточными автоматами (NCA), нет центрального процессора, который «видит» всю картинку целиком. Вместо этого клетки обмениваются сообщениями, чтобы прийти к консенсусу: какую именно цифру из набора MNIST они сейчас образуют. 

Янник Килчер демонстрирует это на живом примере: когда на холсте рисуется цифра, клетки начинают «пульсировать», передавая сигналы, пока вся область не окрасится в цвет, соответствующий определённому классу (например, серый для семерки или зеленый для тройки). По мнению ведущего, это исследование не ставит целью побить рекорды точности в классификации, а направлено на изучение биологических принципов самоорганизации и регенерации сложных анатомических структур.



## 🛠 Механика общения: векторы состояния и свертки
[[JUMP:5:52]]

Каждая клетка обладает собственным вектором состояния, который включает:

* 10 слотов для вероятностей классов (от 0 до 9).
* Дополнительные латентные (скрытые) переменные, используемые для передачи служебной информации.

Классификация считается успешной, когда значение в одном из 10 целевых слотов становится максимальным и совпадает у всех активных клеток. Чтобы обновить своё состояние, клетка анализирует соседей. Биологическая логика здесь в том, что все клетки следуют **одному и тому же правилу обновления**, независимо от их местоположения. 

Технически это реализовано через операцию свертки $3 \times 3$, которая применяется рекуррентно. Янник Килчер подчеркивает, что это фактически рекуррентная нейронная сеть (RNN) с остаточными (residual) связями, где один и тот же обученный фильтр свертки используется на каждом шаге итерации. 



## 🧬 Обучение через мутации и борьба за выживание
[[JUMP:14:44]]

Для того чтобы система была устойчивой к изменениям в реальном времени, авторы применили стратегию «мутаций». Процесс выглядит так:

1.  Клетки инициализируются случайным образом и обучаются распознавать цифру MNIST.
2.  Через 200 шагов итерации цифра на холсте внезапно меняется с вероятностью 90%.
3.  Клетки, которые остались «живыми» (находятся на линиях новой цифры), сохраняют часть старого состояния, а новые клетки инициализируются случайно.

Такой подход заставляет нейросеть постоянно находиться в «состоянии готовности» к изменениям. Однако Янник Килчер отмечает проблему: со временем точность и уровень согласия между клетками могут начать снижаться. Исследователи обнаружили, что значения в векторах состояний имеют тенденцию к бесконечному росту, что в итоге дестабилизирует систему.

## 📉 Математическая ловушка: почему Softmax взрывает веса
[[JUMP:19:31]]

Проблема кроется в стандартном подходе к классификации — использовании функции Softmax и кросс-энтропийной потери. 

Формула Softmax выглядит следующим образом:
$$\sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}$$

Янник Килчер объясняет: поскольку экспонента никогда не достигает нуля, функция потерь всегда будет подталкивать «правильный» логит вверх, а остальные — вниз, в область отрицательных значений. В обычной сети, где проход совершается один раз, это не критично. Но в клеточном автомате, где итерации повторяются бесконечно, численные значения весов начинают «взрываться», пытаясь минимизировать потерю до недостижимого идеала.

Чтобы купировать этот эффект, авторы предложили два решения:

* Использование **L2-потери** вместо кросс-энтропии (сравнение векторов по евклидову расстоянию).
* Добавление **шума** в остаточные обновления, чтобы держать сеть в тонусе и не давать ей зацикливаться на экстремальных значениях.



## 🎭 Химеры и скрытые смыслы: что видят клетки
[[JUMP:26:20] ]

Одним из самых интересных свойств модели является её реакция на «химерные» или некорректные изображения. Если нарисовать фигуру, не похожую ни на одну цифру, клетки не смогут договориться и будут постоянно менять своё «мнение», создавая эффект мерцания. Это демонстрирует естественную устойчивость системы к данным, выходящим за рамки обучающей выборки (out-of-distribution).

Визуализация латентных состояний показала, что разные каналы «общения» клеток специализируются на определенных геометрических примитивах:

* Одни каналы отвечают за распознавание изгибов (например, верхняя часть «двойки» или «нуля»).
* Другие — за идентификацию углов и окончаний линий.

В завершение Янник Килчер признается, что в восторге от формата публикации в журнале *Distill*, который позволяет читателю взаимодействовать с демо-версиями прямо в тексте. По его мнению, такие биологически обоснованные модели — это перспективное и крайне эффективное с точки зрения ресурсов направление для современных исследований в области ИИ.