- BrainTools - https://www.braintools.ru -
Серия статей о том, как устроены живые системы с точки зрения [1] вычислений, управления и проектирования.
Это моя первая пробная статья. По образованию и опыту [2] я инженер. Занимался всем: от электроники на VHDL, реверс-инжиниринга, до этих ваших хайповых блокчейнов и AI. Последние 7-8 лет всё больше погружаюсь в биологию, машинное обучение [3] и моделирование биологических систем. Случайно окончил магистратуру МФТИ по прикладному анализу данных в медицине.
Статья НЕ написана с помощью ИИ, оригинальное авторское скудоумие по многим вопросам полностью сохранено. ИИ применялся только как корректор и исправлятор безграмотности, и немножечко помогал формулировать некоторые мысли. Текст осмыслен автором, логика [4] повествования осмыслена. Поэтому прошу не судить строго, а профессиональных биоинформатиков – делать скидку на некоторые допущения и упрощения.
Статья написана преимущественно для специалистов в сфере ИТ, инженеров и, возможно, для ИИшников.
Провозившись с кучей информации на тему устройства белков, цитологии, внутренних механизмов и устройства клеток, я осознал, что в вузах с самого начала погружают в кучу деталей реализации, а общий смысл приходится додумывать самостоятельно. Я потратил очень много времени, чтобы понять какие-то базовые принципы устройства и работы живых систем, и теперь хочу поделиться ими с вами. Может, вдруг у кого-то появится интерес [5] к этой теме, как он когда-то появился у меня.
Я бы хотел развивать направление «инженерной биологии» и принести в эту сферу процессы и подходы, которые уже много лет применяются в ИТ. Потому что сейчас много разрозненных данных, многое не структурировано. И разработки занимают даже не годы, а десятилетия.
В то же время сейчас появились замечательные биологические foundation модели (Evo 2 [6], ESM 3 [7], Alpha Fold 3, [8] и другие), которые могут кардинально ускорить процессы разработки как каких-то лекарств, так и просто наглядно показать заинтересованным, как живые системы устроены «под капотом».
В серии статей я бы хотел пройти с вами путь от идеи до реализации какой-то простой биологической системы. Сначала ввести в курс дела, показать, как гениально и сложно устроены клетки, на примере клеточных автоматов. Затем более подробно погрузиться в устройство белков с позиции вычислений, реакций [9], взаимодействий. Рассмотреть живое как набор регуляторных паттернов. Чтобы показать, что в биотех в целом реально вкатиться. И что это очень интересная сфера.
В этой статье я бы хотел начать с базы и аналогий: что такое вообще клетка и как она превращается в организм.
Итак, начнём.
Вы наверняка знаете, всё живое состоит из элементарных элементов – клеток. В парадигме электронщиков можно представить клетку как живой и крайне продвинутый микроконтроллер, да ещё и способный самовоспроизводиться.
Он, упрощённо, принимает какие-то входящие сигналы, преимущественно реализованные через биоэлектрические механизмы [10]. То есть API клеток практически полностью построен на биоэлектричестве.
Клетка, принимая сигналы, производит десятки, сотни или даже тысячи вычислений. Меняет своё внутреннее состояние, активируя и деактивируя участки ДНК, ответственные за определённые регуляции. После изменения внутреннего состояния выполняет какую-то механическую работу (внутреннюю и/или внешнюю). И отправляет какие-то сигналы наружу, другим клеткам. Те, в свою очередь, их принимают и делают то же самое.
Получается очень сложная и продвинутая распределённая вычислительная система. Ключевое слово тут именно «распределённая».
Под распределённой я здесь понимаю то, что каждая клетка, по сути, выполняет свою строго заданную локальную программу, записанную в ДНК, общается с внешним миром, отправляя и принимая сигналы. Но все вместе клетки выполняют какую-то сложную функцию как эмерджентное состояние системы.
Потерпите, сейчас будет понятно.
Все привыкли считать, что в ДНК записана некоторая программа, которая выполняется и работает. По факту это, конечно, близко к правде, но с большим допущением. На самом деле ДНК – это скорее библиотека скомпилированного кода (/var/lib/). И в каждой клетке этот код практически одинаковый (за исключением мутаций). Есть ещё огромные некодирующие участки ДНК, многие из которых выполняют регуляторные функции. Для простоты их можно представить как различные настройки и служебные данные системы (/etc/), хотя аналогия, конечно, условная.
А вся логика работы происходит именно на уровне внутреннего состояния клетки. То есть какие-то участки ДНК активны, какие-то выключены, какие-то более активны, какие-то менее. Именно поэтому нервная клетка [11], клетка печени и клетка кожи, имея практически одинаковую ДНК, работают совершенно по-разному.
Это на самом деле очень сильно напоминает работу нейросетей. То есть ДНК – это веса сети, а внутреннее состояние клетки – её текущий контекст и активации. Конечно, это лишь инженерная аналогия, а не полное соответствие, но она позволяет довольно интуитивно представить происходящие процессы. Да и вычисления тоже зачастую производятся способами, схожими с теми, что используются в нейросетях.
Причём интересный факт. Нейросети, как вы знаете, обучаются через градиентный спуск или его продвинутые варианты. А в природе используется генетический алгоритм. Но градиентный спуск может подобрать не любую функцию, особенно в шумном ландшафте. А генетический алгоритм может подобрать любую, но он просто очень медленный. Однако у природы вариантов и времени было несколько миллиардов лет, чем она успешно и воспользовалась.
Кто прочитал до этого места – поражаюсь вашему терпению. Но наверняка у вас возник вопрос: это, конечно, всё замечательно, но как одна клетка, пользуясь какими-то локальными правилами, может построить и поддерживать целый организм?
Очень здравое замечание, давайте разбираться на примере клеточных автоматов – упрощённой песочницы, показывающей не кучу деталей и механизмов, а общий принцип работы для инженеров.
Для начала сформулируем постановку задачи.
Нам надо вырастить организм, используя клетки, в которых одинаковая ДНК (код/веса – называйте как хотите).
При достижении целевой формы рост должен остановиться.
Мы не должны придумывать правила самостоятельно.
Правила должны придуматься сами.
И тут нам на помощь как раз может прийти наш любимый ИИ и алгоритмы обучения. План такой.
Берём клетку, кодируем её внутреннее состояние как вектор (просто набор чисел). Первые четыре числа отдаём под цвет и прозрачность.
Далее делаем скрытый слой, который условно и будет нашей ДНК.
Организм, состоящий из клеток, за один прогон клеточного автомата стремится достичь целевой формы. Каждая клетка смотрит, что у неё происходит вокруг (имитируем приём сигналов извне), прогоняет это через свои скрытые слои и меняет своё состояние.
Потом, при следующем проходе клеточного автомата, уже другая клетка смотрит на соседей, выполняет те же локальные операции и обновляет своё состояние. И так до тех пор, пока мы не достигнем цели.
Чистой воды распределённая система.
Магия заключается в том, что скрытые параметры после обучения начинают вести себя как регуляторы и синхронизаторы. Там начинают протекать информационные потоки, волны и много чего ещё интересного.
Именно такой алгоритм сделал Александр Мордвинцев [12] и показал принципиальную возможность построения сложной системы по локальным правилам. На анимации вы можете видеть, как из одной клетки с абсолютно одинаковыми внутренними слоями вырастает полноценная ящерка.
Грубо говоря, именно так можно представить процесс, которым эволюция [13] подбирает работающие решения. Повторюсь, что это сильное упрощение для инженеров, показывающее общий принцип обучения. И да, в симуляции используется не генетический алгоритм, а градиентный спуск. Иначе мы бы обучали модель очень долго.
В чем отличие эволюционного и градиентного алгоритмов отлично объясняется в видео [14].
Потом, при следующем проходе клеточного автомата, уже другая клетка смотрит на соседей, выполняет те же локальные операции и обновляет своё состояние. И так до тех пор, пока мы не достигнем цели.
Подробнее со статьёй можно ознакомиться по ссылке [15]. Ноутбук, конечно, морально и версионно устарел, но с агентами починить его и побаловаться не составит труда.
После того как модель научилась выращивать организм, исследователи задались следующим вопросом, а сможет ли она его восстановить после повреждений? Ожидаемо, нет.
Тогда организм во время обучения начали случайным образом «ломать», а затем отбирать модели, которые лучше остальных справлялись с регенерацией.
В результате обучения регенерации удалось получить результат. Модель перестала просто выращивать организм и научилась восстанавливать его после повреждений. Причём никакого «центра управления» по-прежнему нет: каждая клетка действует только на основе локальной информации, а сложное поведение [16] возникает как коллективный эффект.
Если тема показалась интересной и хочется копнуть глубже, то рекомендую посмотреть работы, посвящённые анализу скрытых слоёв клеточных автоматов. Исследователи обнаружили, что после обучения скрытые состояния начинают выполнять вполне осмысленные функции: появляются информационные потоки, пространственная память [17], синхронизация и другие механизмы самоорганизации.
То есть внутри модели не просто возникают случайные числа – формируется внутренняя регуляторная система, которая и позволяет организму расти, поддерживать форму и восстанавливаться после повреждений.
Visualising the Attractor Landscape of Neural Cellular Automata (2026) [18]
Investigating dynamics of Neural Cellular Automata applied to image data in diverse complex systems [19]
Самое удивительное, что никакой клетки-директора не существует. Нет центрального процессора, который управляет организмом. Вся сложность возникает из взаимодействия огромного количества одинаковых вычислительных узлов.
На этом, пожалуй, остановимся. Если тема окажется интересной, то в следующих статьях попробуем разобраться, как устроены белки, почему они складываются именно так, а не иначе, как выполняют вычисления и механическую работу, и постепенно дойдём до проектирования собственных простых биологических систем.
Биологов заранее прошу сильно не ругаться и не искать в статье академическую точность. Цель этого цикла – не заменить учебник, а дать интуитивное понимание того, как можно смотреть на живые системы. Где-то я сознательно упрощаю и использую аналогии, чтобы сначала объяснить общий принцип, а уже потом разбираться в деталях.
Спасибо всем, кто дочитал до конца. Надеюсь, мне удалось заинтересовать вас этой областью. Буду рад комментариям, замечаниям и конструктивной критике. Если идея серии окажется востребованной – обязательно продолжим.
Автор: gmuzykantov
Источник [20]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/32844
URLs in this post:
[1] зрения: http://www.braintools.ru/article/6238
[2] опыту: http://www.braintools.ru/article/6952
[3] обучение: http://www.braintools.ru/article/5125
[4] логика: http://www.braintools.ru/article/7640
[5] интерес: http://www.braintools.ru/article/4220
[6] Evo 2: https://arcinstitute.org/tools/evo
[7] ESM 3: https://www.evolutionaryscale.ai/blog/esm3-release
[8] Alpha Fold 3,: https://github.com/google-deepmind/alphafold3
[9] реакций: http://www.braintools.ru/article/1549
[10] биоэлектрические механизмы: https://pubmed.ncbi.nlm.nih.gov/33826908/
[11] нервная клетка: http://www.braintools.ru/article/9161
[12] Александр Мордвинцев: https://news.itmo.ru/ru/news/8881/
[13] эволюция: http://www.braintools.ru/article/7702
[14] отлично объясняется в видео: https://vkvideo.ru/video521033202_456239024
[15] ссылке: https://distill.pub/2020/growing-ca/
[16] поведение: http://www.braintools.ru/article/9372
[17] память: http://www.braintools.ru/article/4140
[18] Visualising the Attractor Landscape of Neural Cellular Automata (2026): https://arxiv.org/html/2604.10639v1
[19] Investigating dynamics of Neural Cellular Automata applied to image data in diverse complex systems : https://openreview.net/pdf?id=OEPtIlPOaq
[20] Источник: https://habr.com/ru/articles/1057224/?utm_campaign=1057224&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.