Об авторе: Анатолий Шалыто, профессор, д.т.н., Университет ИТМО
Александр Мордвинцев родился в 1985 году и вырос в городе Миасс, расположенном на Урале. Он самостоятельно научился программировать, моделируя динамику планет, диффузию газов и колонии муравьёв. «Идея о том, что вы можете создать крошечную вселенную внутри компьютера, а затем запустить её и получить эту смоделированную реальность, в которой у вас есть полный контроль, всегда восхищала меня», – говорил Александр.
В 2001 году на XIII Всероссийской олимпиаде школьников (ВСОШ) по информатике, которая проходила в Екатеринбурге, он разделил 39 место, учась в восьмом классе в то время, как все остальные участники финала учились с девятого по одиннадцатый класс. При этом Александр получил диплом третьей степени. В 2002 году на XIV ВСОШ по информатике, которая проходила в Перми, он снова занял 39 место и снова получил диплом третьей степени. В 2003 году на XV ВСОШ по информатике, которая проходила в Санкт-Петербурге, Мордвинцев занял 15 место и получил диплом первой степени. В 2004 году на XVI ВСОШ по информатике в Твери Александр занял 14 место и получил диплом второй степени.
В 2005 году, как многократный дипломант этой олимпиады, Мордвинцев поступил на кафедру «Компьютерные технологии» Университета ИТМО.
В 2007 году, учась на третьем курсе, он выполнил под моим руководством работу на тему «Использование графического ускорителя для моделирования динамики жидкости методом Lattice-Boltzmann», в которой для моделирования жидкости применил клеточные автоматы, в которых между собой связаны только соседние клетки, обладающие одинаковым поведением.
При этом он разработал две реализации, первая из которых использует для вычислений только центральный процессор компьютера, а вторая – переносит большой объём вычислений на графический ускоритель. Отмечу, что такой гуру в нейронных сетях, как Хинтон, и его ученики для стали использовать графические ускорители позже – в 2009 году.
Эта работа Александра вошла в мой перечень «Работы по однородным структурам и клеточным автоматам, выполненные в СССР, России и бывших республиках СССР», опубликованный в 2016 году. Позднее (в 2019 году) был опубликован большой обзор по клеточным автоматам: Матюшкин И.В., Заплетина М.А. Обзор по тематике клеточных автоматов на базе современных отечественных публикаций // Компьютерные исследования и моделирование. 2019. Том 11. Вып. 1, с. 9-57, в который, в свою очередь, вошёл указанный выше перечень. А вот ещё один обзор по этой тематике: Sarkar P. A Brief History of Cellular Automata // ACM Computing Surveys/ Vol. 32. 2000. Issue 1, pp. 80-107. По клеточным автоматам выходит журнал: Journal of Cellular Automata.
В 2007 году под моим руководством на кафедре было выполнено ещё три работы по клеточным автоматам – две магистерские диссертации: Скаков П.С. Классификация поведения одномерных клеточных автоматов и Суясов Д.И. Разработка алгоритмов распознавания текста на основе клеточных автоматов, а также кандидатская диссертация: Наумов Л.А. Метод введения обобщенных координат и инструментальное средство для автоматизации проектирования программного обеспечения вычислительных экспериментов с использованием клеточных автоматов / Диссертация на соискание ученой степени кандидата технических наук. ИТМО. 2007, 282 с. В последствии (2011 год) Лев под руководством профессора Питера Слоота в Амстердаме стал PhD: «Modelling with cellular automata: problem solving environments and multidimensional applications».
В 2010 году Мордвинцев окончил магистратуру нашей кафедры и начал работать в компании «Транзас» (Санкт-Петербург), где через некоторое время после тренажёрной тематики стал заниматься компьютерным зрением.
По этому вопросу в 2011 году Александр в Computer Science клубе при Санкт-Петербургском отделении Математического института им. В. А. Стеклова РАН прочёл лекцию на тему «Выделение и сопоставление особых точек в обработке изображений».
В 2014 году он получил письмо с предложением пройти собеседование в компании Google. Рекрутёр нашла его фамилию в списке участников олимпиад по программированию российских школьников начала 2000-х годов и вышла на него, что по приведенному выше списку его результатов на ВСОШ было немудрено.
Александр успешно прошёл собеседование на позицию Software engineer. В цюрихском офисе Google работало несколько выпускников кафедры (например, его однокурсник Роман Сатюков). Мордвинцев попал в команду, которая внедряла глубокие нейронные сети в продукты Google, развивая при этом свои знания и умения в этой области.
В то время новая технология распознавания изображений, основанная на глубоких нейронных сетях, охватила технологическую индустрию (Krizhevsky A., Sutskever I., Hinton G. ImageNet Classification with Deep Convolutional Neural Networks / Proceeding of Advances in Neural Information Processing Systems 25 (NIPS 2012), pp. 1090-1098).
Несмотря на всю мощь, эти сети были (и, возможно, до сих пор остаются) непостижимыми. Александр решил разобраться в этом вопросе.
Он начал проводить программные эксперименты с такими сетями, а после того, как одна из его программ– DeepDream – стала популярной сначала в Google, а затем и за пределами компании, ему предложили перейти на исследовательскую работу в подразделение Google Research, которое также находилось и находится в Цюрихе.
В 2015 году была опубликована статья Mordvintsev A., Olah C., Tyka M. Inceptionism: Going Deeper into Neural Networks (Inceptionism: углубляемся в нейронные сети) / Google Research Blog. 2015. Отмечу, что слово Inceptionism – производное от слова Inception («зарождение»).
В статье рассматривается вопрос о понимании процессов, проходящих во внутренних слоях глубоких нейронных сетей. Если авторы загружали в сеть изображение предмета, и на выходе получалось название этого предмета, то они не знали точно, как сеть пришла к такому выводу. Для того чтобы ответить на этот вопрос, они показывали сети изображение, а затем извлекли то, что сеть «видит» на разных уровнях процесса распознавания. Затем авторы «просили» сеть по слоям улучшить то, что она обнаружила, усиливая те признаки, которые она «видит» в изображениях разных слоёв. При этом нейросеть, обученная различать указанные признаки, может быть использована для генерации изображений, визуализируя собственные представления о классе объектов, или усиливая «видимые» ей черты на фотографии. Изображения, полученные в результате этого процесса, некоторые считают похожими на сон. Поэтому предложенный подход может быть использован в художественном творчестве для изображения «сновидений» нейросетей.
Указанная выше программа для поддержания описанного процесса работает следующим образом: в заранее обученной свёрточной нейросети выбирается определённый слой, и потом сеть «усиливает» те признаки исходного изображения, которые она распознает в этом слое. На начальных слоях нейросети появляются простые формы и текстуры. Если использовать более глубокие слои, усиливаются уже более сложные образы – например, животные, архитектурные элементы, лица. Процесс итеративный – изображение несколько раз прогоняется через сеть, и после каждого шага в нём выполняются такие корректировки, чтобы выбранные нейроны стали активироваться ещё сильнее. Если первоначально сеть видит некоторые элементы изображения, то на следующих итерациях эти элементы становятся всё более отчётливыми, создавая галлюцинаторно-психоделический эффект.
Итоговое изображение становится как бы «сном» нейросети, в котором исходные детали преобразуются в то, что она чаще всего встречала при обучении. Поэтому описанный процесс был назван авторами «глубокими сновидениями» (Deep Dreaming), а указанная выше программа – «глубоким сном» (DeepDream).
На основе этой программы Мордвинцевым создан Free AI Art Generator. Это платформа для создания арт- и видеоконтента на основе ИИ. Она позволяет создавать нетривиальные визуальные эффекты с помощью нейронных сетей. Отмечу, что всё это было создано задолго до появления больших языковых моделей.
Интерес к этой тематике у Александра не проходит. Сравнительно недавно (24.10.2024) он, Аро Кумбусян (коллекционер медиаискусства) и Ярив Адан (разработчик, проработавший 17 лет в Google, и инвестор) выступили на выставке «Эксперименты ИИ», проходившей в Цюрихе. Они увлечены так называемым «искусством ИИ» и видят в нём огромный потенциал, который планируют развивать в будущем.
Как отмечено выше, долгое время Александр пытался объяснить результаты работы нейронных сетей и процесс их обучения, и для этого стал заниматься изучением системы как совокупности небольших локально взаимодействующих элементов, пытаясь понять, как найти практические подходы к дизайну таких систем. К ним, в частности, относятся клеточные автоматы, с которыми, как показано выше, он занимался, ещё будучи студентом. В 2019 году Александру казалось, что он занимается тем, что в то время было не в тренде, но это то, чему, на его взгляд, следует уделять больше внимания. Ему по духу близок японский исследователь David Ha, который гордился тем, что пока все обучают нейронные сети, в которых миллиарды параметров и миллионы элементов, он создает сети из единиц элементов и десятков параметров. Однако и такие сети могут делать очень интересные и неожиданные вещи.
Среди многих учёных, обратившихся к Мордвинцеву после появления DeepDream, был и Майкл Левин – ведущий специалист по биологии развития из Университета Тафтса. Он проводил эксперименты по регенерации, изучал этот процесс у червей, а именно у планарий, которые способны, если их разрезать, образовывать несколько независимых особей. Левин пытался понять механизмы самоорганизации, экспериментируя с практическими методами воздействия на процесс регенерации. Ему удалось заставить лягушку регенерировать конечность, хотя она от природы не обладает такой способностью.
Нейронные сети в настоящее время непостижимы, то же самое, естественно, можно сказать и о биологических организмах, и поэтому Левину было интересно, может ли что-то вроде «глубоких сновидений» помочь в их постижении. Письмо Левина вновь пробудило в Мордвинцеве интерес к моделированию природы с помощью клеточных автоматов, что через некоторое время нашло своё отражение в статье 2020 года: Mordvintsev A., Randazzo E., Niklasson E., Levin M. Growing neural cellular automata (Выращивание нейронных клеточных автоматов) // Distill. 2020. Vol. 5. Issue 2. Pages e23. Эта статья имеет подзаголовок Differentiable Model of Morphogenesis (Дифференциальная модель морфогенеза).
В ней ключевым нововведением Мордвинцева, Левина и двух других исследователей из Google стало использование нейронов в качестве ячеек клеточного автомата. Здесь, как и в традиционных клеточных автоматах (Wolfram S. A New Kind of Science. Wolfram Press, 2003, 1200 p., Wolfram S. Cellular automata and complexity: Collected papers. CRC Press, 2018. 608 p.), все клетки автомата одинаковы, а каждая из них взаимодействует только с ближайшими соседями. Однако они вместе могут формировать сложные фигуры, демонстрирующие свойства, напоминающие живые организмы, которые даже могут восстанавливаться после повреждений. Такие автоматы были названы нейронными клеточными автоматами.
Указанная статья рассказывает о прорыве в исследовании клеточных автоматов, который состоит в том, что традиционный порядок действий, характерный для клеточных автоматов (переход от простых и одинаковых правил, описывающих поведение клеток (простейших автоматов), к сложному поведению клеточного поля из таких автоматов, которое называется клеточным автоматом), инвертируется: задается желаемая структура и автоматизируется подбор локальных правил, описывающих поведение клеток, которые приводят к самосборке этой структуры. Таким образом, если в клеточных автоматах простые правила функционирования клеток практически случайным образом создают сложные структуры, то теперь исследователи могут начать со структуры и провести обратную разработку – определить правила поведения клеток.
Таким образом статья переносит подход клеточных автоматов в эпоху глубокого обучения, предложив для этого нейронные клеточные автоматы. Нейронный клеточный автомат – это гибридная вычислительная модель, сочетающая свойства клеточных автоматов и нейронных сетей. В таких автоматах каждая клетка является нейроном и способна изменять своё состояние на основе состояний соседних клеток по определённым правилам, аналогичным применяемым в клеточных автоматах, но при этом допускается использование непрерывных или более сложных (например, вещественных) состояний, и, как в нейронных сетях, используется обучение, которое обеспечивает самоорганизацию.
В таких автоматах состояние клетки определяется не только локальными правилами перехода, но и может изменяться под действием корректировки весовых коэффициентов или функций активации, характерных для нейронных сетей. О клеточных автоматах, в том числе нейронных, написано также и здесь: Мокрецов Н.С., Татарникова Т.М. Самоорганизующиеся нейронные клеточные автоматы для обучения с подкреплением и эволюционного развития // Известия СПбГЭТУ «ЛЭТИ». 2023. Т. 16, № 7, с. 68-75.
В нейронных клеточных автоматах вместо ячейки с фиксированными правилами поведения используется нейрон, что обеспечивает возможность автоматического поиска таких локальных правил, которые заставят «клетки» самоорганизовываться в заранее заданную, часто сложную и устойчивую форму, обладающую даже такой способностью к восстановлению после повреждений.
Подобный подход называется Complexity Engineering: вместо того чтобы проектировать сложную структуру целиком, достаточно определить, как должны вести себя элементы (клетки) для того, чтобы в результате их взаимодействия получалась нужная конечная форма. Это напоминает биологический морфогенез, упомянутый в названии одной из статей, указанных выше: из взаимодействия простых клеток возникают цельные организмы, а нейронные клеточные автоматы могут визуализировать этот процесс и имитировать регенерацию (например, виртуальная бабочка «отращивает» утраченные крылья). При этом, если биологи смогут выяснить, как этой «бабочке» удаётся так изобретательно восстанавливать крыло, то, возможно, врачи смогут заставить наш организм вырастить утраченную конечность. Этот подход, в частности, позволил создать нейронный клеточный автомат, для которого было определено поведение каждой клетки, позволяющее из одной клетки сгенерировать ящерицу.
«То, что они таким образом творят, это довольно неплохой аналог того, что происходит в организмах при их развитии из одной клетки, и чем занимается эволюционная биология развития (evo-devo). Если, как я в своё время, начитаться биологических результатов про гомеобоксные гены, то станет понятно, что там и зачем» (Максим Буздалов, тоже наш выпускник, специалист по эволюционным вычислениям, чемпион мира по программированию 2009 года по версии ICPC).
В таких системах вместо бинарных состояний, как это имеет место в конечных автоматах, используются непрерывные значения, что придаёт моделям большую жизнеподобность. Нейросети обучаются находить такие правила с помощью градиентных методов или генетических алгоритмов. Эта технология открывает новые пути для автоматизированного проектирования распределённых систем, моделирования биологических процессов и даже новых моделей вычислений, где традиционного центрального управления нет.
О применении генетических алгоритмов в клеточных автоматах мы писали давно и подробно: Тихомиров А.В., Шалыто А.А. Применение генетического подхода для генерации клеточных автоматов // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2011. № 2 (72), с. 62-66; Тихомиров А.В., Шалыто А.А. Применение адаптивного генетического алгоритма для генерации клеточных автоматов // Научно-технический вестник университета ИТМО. 2012. № 1 (77), с. 100-105; Тихомиров А.В., Шалыто А.А. Применение направленной мутации для генерации клеточных автоматов // Научно-технический вестник информационных технологий, механики и оптики. 2014. № 2 (90), с. 93-98.
Наиболее известным и ставшим классическим клеточным автоматом является автомат, реализующий игру «Жизнь», которая была описана Джоном Конвеем в 1970 году. (Гарднер М. Математические досуги. М.: Мир, 1972.). Вот две популярные статьи по этой тематике: Наумов Л.А., Шалыто А.А. Клеточные автоматы. Реализация и эксперименты // Мир ПК. 2003. № 10, с. 64-71 и Наумов Л., Шалыто А. Цветные клеточные автоматы, или Клонирование Мона Лизы // Мир ПК. 2004. № 5, с. 64-71. А вот прекрасный конспект по клеточным автоматам.
Другие автоматы типа «Жизнь» описаны здесь: Лобанов А.И. Модели клеточных автоматов // Компьютерные исследования и моделирование. 2010. Том 2. Вып. 3, с. 273-293.
В игре «Жизнь» каждая ячейка клеточного автомата является конечным автоматом. В нейронных клеточных автоматах ячейкой является нейрон, состояние которого может быть не только бинарным, но и принимать более сложные или даже непрерывные значения, отражающие аналоговый характер сигналов в биологических нейронных сетях. При этом, если в клеточных автоматах смена состояний ячеек происходит синхронно, то здесь обеспечивается асинхронное их обновление, что делает процесс ближе к реальным биологическим системам, в которых всё меняется не синхронно, а постепенно и хаотично.
Такая замена клеток приводит в некотором смысле к инверсии игры «Жизнь», в которой для клетки задается простое поведение, а результат возникает случайно. В нейронных клеточных автоматах всё наоборот: сначала формулируется цель, например фигура или рисунок, а алгоритм сам подбирает правила так, чтобы состояния клеток формировали требуемый образ.
В 2021 году тем же авторским коллективом, что и указан выше, была опубликована статья про самоорганизующиеся текстуры: Niklasson E., Mordvintsev A., Randazzo E., Levin M. Self-organising textures // Distill. 2021. Vol. 6. Issue 2. Pages e00027. 003.
Отмечу, что клеточные автоматы для текстур «рядом с Мордвинцевым» применялись давно: Тихомиров А. Адаптивная модификация текстурной раскладки для карт освещенности / Бакалаврская работа. ИТМО. 2009, 50 с.
Изложение развития того, что было описано в статье 2021 года, Александр привёл в лекции «Нейроклеточные автоматы с нуля». В ней он рассказал подробности не только программной, но и аппаратной реализации нейронных клеточных автоматов. В конце лекции изложено содержание статьи: Mordvintsev A., Randazzo E., Niklasson E. Differentiable Programming of Reaction-Diffusion Patterns / The 2021 Conference on Artificial Life. 2021. Paper №: isal-a 00429. 28, p. 6. В этой ссылке указан адрес полного текста статьи.
На своей странице в Интернете Александр пишет: «Здравствуйте! Я магистр, программист, исследователь и художник. Визуализирую вещи, чтобы понять, как они работают. Моё самое известное творение – DeepDream, программа, которую я разработал, исследуя глубокие нейронные сети. Любопытство к сложным системам привело меня к изучению того, как живые организмы самоорганизуются, что привело к модели нейронных клеточных автоматов. В настоящее время я исследую основы вычислений в технологиях и жизни, стремясь преодолеть разрыв между искусственными и биологическими системами». Используя нейронные клеточные автоматы, можно показать, как локальные взаимодействия между клетками могут перерасти в красивые, глобально когерентные паттерны. На странице приведены его четыре визуализированных проекта и две статьи, первая из которых посвящена выполнению простого 3D-рендеринга сцен с помощью алгоритма лучевого вещания в JAX, а второй – использованию дифференциальной оптимизации для обучения конечных автоматов, предназначенных для решения простых задач по обработке строк.
Другие проекты Александра:
- Cellular Automata VGA Circuit – дизайн ASIC для генерации сигналов VGA, чтобы отображать прокручивающиеся узоры клеточных автоматов, с сопутствующим веб-симулятором уровня вентилей.
- SwissGL library – прототип минимальной, но выразительной библиотеки программирования GPU, построенной на WebGL2.
- Particle Lenia – система искусственной жизни, которая создаёт сложные динамические узоры из простых правил взаимодействия частиц.
- Hexells – художественный проект, в котором цифровые клетки учатся общаться с соседями для создания уникальных текстур.
«Новое – это старое», – часто говорит Джеффри Хинтон. Эти слова подтверждают и указанные выше работы Мордвинцева по нейронным клеточным автоматам. Так, например, термин «клеточный нейронный автомат» известен уже давно: Chua L.O., Yang L. Cellular Neural Networks: Theory // IEEE Trans, on Circuits and Systems, V. 35, N. 10, 1988, pp.1257-1272 и Chua L.O., Yang L. Cellular Neural Networks: Applications // IEEE Trans, on Circuits and Systems, V. 35, N. 10, 1988, pp.1273-1290. Эти и другие работы по рассматриваемой тематике приведены здесь. Известна также работа на русском языке, в которой в названии упоминается любимый термин Мордвинцева – «нейронный клеточный автомат»: Копылов В.Д., Дунаева О.А., Мячин М.Л. Импульсный нейрон и нейронный клеточный автомат асимптотически эквивалентны // Моделирование и анализ информационных систем. 2014. № 3, с. 62-80.
Отмечу также, что ещё в 2007 году в курсовой работе Евгения Первушина (однокурсника Мордвинцева) было предложено комбинировать нейронные сети и конечные автоматы. Эта работа называется так: «Применение конечных автоматов для улучшения характеристик нейроподобных сетей». Отмечу, что Первушин до этого (в 2003 году) в курсовой работе применял автоматы для моделирования банкомата. Руководил работой Первушина 2007 года ещё один их однокурсник Илья Аничкин, который в 2005 году опубликовал статью: Аничкин И.М. Применение нейронной сети для управления мотоциклом // Вестник информационных технологий, механики и оптики. // Вестник информационных технологий, механики и оптики. 2005. Вып. 23, с. 162-170.
Время, место работы и многолетние исследования Мордвинцева в этой области привели к тому, что его работы, в отличие от его предшественников, вызывают живой интерес, о чём, в частности, свидетельствует недавняя статья о нём (Musser G. Self-Assembly Gets Automated in Reverse of «Game of Life» (Самосборка становится автоматизированной в реверсе игре «Жизнь») // Quanta Magazine. 10.09.2025.
Александр не варится в собственном соку, а входит в команду Google, которая занимается такими важными научными проблемами как происхождение жизни и искусственная жизнь, исследуя вопросы о том, что такое жизнь и как она возникает из определённого набора «преджизненных» динамических условий: Arcas B., Alakuijala J., Evans J., Laurie B., Mordvintsev A., Niklasson E., Randazzo E., Versari L. Computational Life: How Well-formed, Self-replicating Programs Emerge from Simple Interaction (Вычислительная жизнь: как из простого взаимодействия возникают хорошо структурированные самовоспроизводящиеся программы) 27.01.2024.
Перечень публикаций Мордвинцева приведён здесь. На 21.09.2025 года его индекс Хирша пока небольшой – 19, но у него всё впереди, так как ему в этом году исполняется всего лишь 40, с чем его я и поздравляю.