
В клеточных автоматах простые правила создают сложные структуры. Теперь исследователи могут начать с этих структур и методом обратного проектирования восстановить правила.
Александр Мордвинцев показал мне на экране два скопления пикселей. Они пульсировали, росли и распускались, превращаясь в бабочек-монархов. По мере роста две бабочки столкнулись друг с другом, и одна пострадала сильнее — её крыло отмерло. Но как раз в тот момент, когда казалось, что ей конец, изувеченная бабочка внезапно отрастила новое крыло, подобно саламандре, отращивающей потерянную ногу.
Мордвинцев, научный сотрудник Google в Цюрихе, не разводил своих виртуальных бабочек специально для регенерации утраченных частей тела; это произошло спонтанно. По его словам, это был первый намёк на то, что он нашёл нечто важное. Его проект основан на многолетней традиции создания клеточных автоматов: миниатюрных, похожих на шахматную доску вычислительных миров, управляемых простыми правилами. Самая известная из них — Game of Life (игра «Жизнь»), популяризированная в 1970 году, — увлекла поколения информатиков, биологов и физиков, видящих в ней метафору того, как несколько базовых законов могут породить огромное разнообразие форм в природе.
В 2020 году Мордвинцев перенёс эту идею в сферу глубокого обучения, создав нейронные клеточные автоматы (NCA). Вместо того чтобы начинать с правил и смотреть, к чему они приведут, его подход начинался с желаемого шаблона и выяснял, какие простые правила его создадут. «Я хотел обратить этот процесс: показать, что вот моя цель», — сказал он. Благодаря этой инверсии он приблизился к реализации «инженерии сложности», предложенной физиком и исследователем клеточных автоматов Стивеном Вольфрамом в 1986 году. А именно программирование строительных блоков системы таким образом, чтобы они самостоятельно собирались в любую желаемую форму. «Представьте, что вы хотите построить собор, но вы не проектируете собор», — сказал Мордвинцев. «Вы проектируете кирпич. Какой формы должен быть ваш кирпич, чтобы, много таких кирпичей могли собраться в собор, если вы встряхнёте их вместе?» [1]
Подобный кирпич звучит почти волшебно, но биология изобилует примерами именно такого рода. Стая скворцов или колония муравьев действуют как единое целое. И учёные выдвинули простые правила, которые объясняют коллективное поведение. Аналогично, клетки вашего тела взаимодействуют друг с другом, формируя единый организм. NCA — модель этого процесса, за исключением того, что они начинают с коллективного поведения и автоматически приходят к правилам.

Возможности, которые это открывает, потенциально безграничны. Если биологи поймут, как бабочка Мордвинцева так гениально регенерирует крыло, возможно, врачи смогут заставить наш организм отращивать утраченные конечности. Для инженеров, которые часто черпают вдохновение в биологии, эти NCA представляют собой потенциальную новую модель для создания полностью распределённых компьютеров, выполняющих задачу без централизованной координации. В некотором смысле, NCA по своей природе могут лучше справляться с решением проблем, чем нейронные сети.
Мечты о жизни
Мордвинцев родился в 1985 году и вырос в российском городе Миассе, на восточных склонах Уральских гор. Он самостоятельно освоил программирование на советском клоне IBM PC, создавая симуляции динамики планет, диффузии газов и муравьиных колоний. «Идея о том, что можно создать крошечную вселенную внутри компьютера, запустить её и получить эту симулированную реальность, в которой ты полностью контролируешь ситуацию, всегда меня завораживала», — сказал он.
В 2014 году он устроился на работу в лабораторию Google в Цюрихе — как раз в тот момент, когда технология распознавания изображений на основе многослойных, или «глубоких», нейронных сетей начала захватывать технологическую индустрию. Несмотря на всю свою мощь, эти системы были и, возможно, до сих пор остаются во многом непонятными. [2] «Я понял, что мне нужно разобраться, как это работает», — сказал он.
Он придумал «глубокое сновидение» — процесс, в котором нейронная сеть распознает закономерности в изображении и намеренно преувеличивает их. Некоторое время получившаяся в результате фантасмагория — обычные фотографии, превращённые в психоделическое путешествие из собачьих морд, рыбьей чешуи и перьев попугаев — заполняла Интернет. Мордвинцев мгновенно стал знаменитостью в мире программного обеспечения.
Среди многочисленных учёных, обратившихся к нему, был Майкл Левин из Университета Тафтса, ведущий специалист в области биологии развития. Если нейронные сети непостижимы, то же самое можно сказать и о биологических организмах. Левина интересовало, может ли что-то вроде глубоких сновидений помочь понять и их. Письмо Левина вновь пробудило в Мордвинцеве интерес к моделированию природы, особенно клеточных автоматов.
Из одной клетки этот нейронный клеточный автомат трансформируется в ящерицу.
Ключевое нововведение, разработанное Мордвинцевым, Левиным и двумя другими исследователями Google, Этторе Рандаццо и Эйвиндом Никла��соном, заключалось в использовании нейронной сети для определения физики клеточного автомата. В игре Game of Life (или просто Life) каждая клетка в решётке либо жива, либо мертва, и на каждом такте симуляционных часов она либо размножается, либо умирает, либо остаётся неизменной. Правила поведения каждой клетки представлены в виде списка условий: например, «если у клетки более трёх соседей, она умирает». В системе Мордвинцева эту функцию берёт на себя нейронная сеть. Основываясь на текущем состоянии клетки и её соседей, сеть сообщает, что произойдёт с этой клеткой. Аналогичная сеть используется для классификации изображений, но здесь она классифицирует состояние клеток. Более того, не нужно самостоятельно задавать правила; нейронная сеть может изучить их в процессе обучения.
Для начала обучения в автомат закладывается одна «живая» клетка. Затем сеть многократно обновляет состояние клеток — от десятков до тысяч раз. Полученный шаблон сравнивается с желаемым. В первый раз результат будет совершенно не похож на задуманное. Поэтому вы корректируете параметры нейронной сети, запускаете сеть повторно, чтобы проверить, улучшились ли результаты, вносите дополнительные корректировки и повторяете процесс. Если существуют правила, способные генерировать желаемый шаблон, эта процедура в конечном итоге должна их найти.
Корректировки можно вносить с помощью двух возможных методов. Первый — обратное распространение ошибки — лежит в основе большинства современных приёмов глубокого обучения. Второй, более старый, — генетические алгоритмы — имитирует дарвиновскую эволюцию. Обратное распространение ошибки намного быстрее, но оно работает не во всех ситуациях, и Мордвинцеву пришлось адаптировать традиционную структуру клеточных автоматов. Состояния клеток в игре Life бинарны — мертвы или живы — и переходы из одного состояния в другое представляют собой резкие скачки. В то же время обратное распространение ошибки требует, чтобы все переходы были плавными. Поэтому он принял подход, разработанный, среди прочих, Бертом Чаном в токийской лаборатории Google в середине 2010-х годов. Мордвинцев сделал состояния клеток непрерывными значениями, любыми от 0 до 1, поэтому они никогда не бывают строго мёртвыми или живыми, а всегда находятся где-то между ними.
Мордвинцев также обнаружил, что ему необходимо наделить каждую клетку «скрытыми» переменными. Они не указывают, жива клетка или мертва, но тем не менее направляют её развитие. «Если этого не сделать, ничего не получится», — сказал он. Кроме того, он отметил, что если все клетки обновляются одновременно, как в Life, то результирующие шаблоны лишены натуральности, к которой он стремился. «Это выглядело очень неестественно», — сказал он. Поэтому он начал обновлять их через случайные промежутки времени.
В конце концов, он сделал свою нейронную сеть довольно мощной — 8000 параметров. На первый взгляд, это кажется излишним. В 2020 году Джейкоб Спрингер, ныне аспирант Университета Карнеги-Меллона, и Гаррет Кеньон из Национальной лаборатории Лос-Аламоса провели компьютерное моделирование. Согласно ему прямой перевод игры Life в нейронную сеть потребовал бы всего 25 параметров. Но специалистам по глубокому обучению часто приходится значительно увеличивать размер своих сетей, потому что научиться выполнять задачу сложнее, чем фактически её выполнить.
Более того, дополнительные параметры означают дополнительные возможности. Хотя игра Life способна порождать невероятно богатое разнообразие поведения, существа Мордвинцева достигли совершенно иного уровня.
Регенерация узоров
В статье 2020 года, представившей миру NCA, был описан апплет, генерирующий изображение зелёной ящерицы. Если провести мышью по телу ящерицы, на нем оставался след из стёртых пикселей, но рисунок животного вскоре восстанавливался. Способность NCA не только создавать узоры, но и восстанавливать их при повреждении, очаровала биологов. «У NCA есть удивительный потенциал для регенерации», — сказал Рикард Соле из Института эволюционной биологии в Барселоне, который не принимал участия в работе.
Изображения бабочек и ящериц не являются реалистичными симуляциями животных: у них нет сердец, нервов или мышц. Это просто красочные узоры из клеток, имеющие форму животного. Но Левин и другие утверждают, что они отражают ключевые аспекты морфогенеза — процесса, посредством которого биологические клетки формируются в ткани и тела. Каждая клетка в клеточном автомате реагирует только на своих соседей; она не встаёт на место под руководством генерального плана. В целом то же самое верно и для живых клеток. И если клетки могут самоорганизовываться, то логично предположить, что они могут и самореорганизовываться.
Отрубите хвост ящерице NCA, и её форма восстановится.
Иногда, как обнаружил Мордвинцев, регенерация происходила бесплатно. Если правила превращали отдельные пиксели в ящерицу, они также превращали ящерицу с большой сквозной раной обратно в целое животное. В других случаях он специально обучал нейронную сеть регенерации. Он намеренно повреждал шаблон и корректировал правила до тех пор, пока система не могла восстановиться. Избыточность была одним из способов достижения устойчивости. Например, если система была обучена защищать глаз животного от повреждения, она могла создавать резервные копии. «Она не могла сделать глаза стабильными, поэтому они начали размножаться — например, у вас появлялось три глаза», — сказал он.
Себастьян Ризи, специалист по информатике из Копенгагенского технологического университета, пытался понять, что именно наделяет NCA их регенеративными способностями. По его словам, одним из факторов является непредсказуемость, заложенная Мордвинцевым в автомат посредством таких особенностей, как случайные интервалы обновления. Эта непредсказуемость заставляет систему разрабатывать механизмы для преодоления любых жизненных трудностей, поэтому она спокойно переносит потерю части тела. Аналогичный принцип применим и к природным видам. «Биологические системы настолько устойчивы, потому что субстрат, на котором они работают, очень шумный», — сказал Ризи. [3]
В прошлом году Ризи, Левин и Бен Хартл, физик из Университета Тафтса и Венского технологического университета, использовали NCA для исследования того, как шум приводит к устойчивости. Они добавили одну особенность к обычной архитектуре NCA: память. Эта система могла воспроизводить желаемый шаблон либо путём корректировки параметров сети, либо путём попиксельного хранения в своей памяти. Исследователи обучали её в различных условиях, чтобы определить, какой метод она выберет.
Если бы системе нужно было всего лишь воспроизвести шаблон, был бы выбран метод запоминания; возиться с нейронной сетью было бы излишним. Но когда исследователи добавили шум в процесс обучения, сеть вступила в игру, поскольку она смогла разработать способы противодействия шуму. А когда исследователи изменили целевой шаблон, сеть смогла изучить его гораздо быстрее, потому что она развила переносимые навыки, такие как рисование линий, в то время как при подходе, основанном на запоминании, приходилось начинать с нуля. Короче говоря, системы, устойчивые к шуму, в целом более гибкие.
Даже при повреждении текстуры, созданные NCA, обладают способностью к самовосстановлению.
Исследователи утверждали, что их модель является моделью естественной эволюции. Геном не определяет форму организма напрямую; вместо этого он определяет механизм, который её формирует. Это позволяет видам быстрее адаптироваться к новым условиям, поскольку они могут использовать уже имеющиеся возможности. «Это значительно ускоряет эволюционный процесс», — сказал Хартл.
Кен Стэнли, исследователь искусственного интеллекта из компании Lila Sciences, изучавший вычислительную и естественную эволюцию, предупредил, что, несмотря на всю свою мощь, NCA всё ещё несовершенны для биологии. В отличие от машинного обучения, естественная эволюция не стремится к конкретной цели. «В реальности не существует идеальной формы рыбы или чего-то подобного, что каким-то образом было показано эволюции, а затем она выяснила, как закодировать рыбу», — отметил он. Поэтому уроки, полученные с помощью NCA, могут не переноситься на живую природу.
Автоматическое программирование
При регенерации утраченных частей тела NCA демонстрируют своего рода способность к решению проблем, и Мордвинцев утверждает, что они могут стать новой моделью для вычислений в целом. Автоматы могут формировать визуальные шаблоны, но их клеточные состояния в конечном итоге представляют собой лишь числовые значения, обрабатываемые в соответствии с алгоритмом. При правильных условиях клеточный автомат является таким же универсальным, как и любой другой тип компьютера.
Стандартная модель компьютера (она известна как архитектура фон Неймана), разработанная Джоном фон Нейманом в 1940-х годах, представляет собой центральный процессор, объединённый с памятью; он выполняет последовательность инструкций одну за другой. Нейронные сети — это вторая архитектура, которая распределяет вычисления и хранение памяти между тысячами и миллиардами взаимосвязанных блоков, работающих параллельно. Клеточные автоматы похожи на них, но имеют ещё более радикально распределённую структуру. Каждая клетка связана только со своими соседями, лишена дальних связей, которые присутствуют как в архитектуре фон Неймана, так и в архитектуре нейронных сетей. (Нейронные клеточные автоматы Мордвинцева включают в каждую клетку небольшую нейронную сеть, но клетки по-прежнему взаимодействуют только со своими соседями.)
Дальние соединения потребляют много энергии, поэтому, если бы клеточный автомат мог выполнять универсальные вычисления, это позволило бы экономить энергию. «Компьютер, похожий на NCA, был бы гораздо более эффективным», — сказал Блез Агуэра-и-Аркас, главный технический директор подразделения «Technology and Society» в Google.
Но как написать код для такой системы? «Нужно придумать соответствующие абстракции, что и делают языки программирования для вычислений в стиле фон Неймана», — сказала Мелани Митчелл из Института Санта-Фе. «Но мы не знаем, как это сделать для этих массово распределённых параллельных вычислений».
Нейронная сеть не программируется per se. Сеть приобретает свои функции в процессе обучения. В 1990-х годах Митчелл, Джим Кратчфилд из Калифорнийского университета в Дэвисе и Питер Храбер из Института Санта-Фе показали, как клеточные автоматы могут делать то же самое. Используя генетический алгоритм, они обучили автоматы выполнять определённую вычислительную операцию — операцию большинства: если большинство клеток мертвы, остальные тоже должны умереть, а если большинство живы, все мёртвые клетки должны вернуться к жизни. Клетки должны были делать это, не имея возможности увидеть общую картину. Каждая клетка могла определить, сколько её соседей живы, а сколько мертвы, но не могла видеть дальше этого. Во время обучения система спонтанно разработала новую вычислительную парадигму. Области мёртвых или живых клеток увеличивались или уменьшались, так что наибольшая по размеру область, в конечном итоге захватывала весь автомат. «Они придумали действительно интересный алгоритм, если его вообще можно назвать алгоритмом», — сказала Митчелл.
Она и её соавторы не стали развивать эти идеи дальше, но система Мордвинцева вдохнула новую жизнь в программирование клеточных автоматов. В 2020 году он и его коллеги создали NCA, который считывал рукописные цифры — классический пример машинного обучения. Если нарисовать цифру внутри автомата, клетки постепенно меняют цвет, пока все они не станут одного цвета, идентифицируя цифру. В этом году Габриэль Бена из Имперского колледжа Лондона и его соавторы, опираясь на неопубликованную работу инженера по разработке программ Питера Уиддена, создали алгоритмы для умножения матриц и других математических операций. «Визуально видно, что он научился выполнять фактическое умножение матриц», — сказал Бена.
Стефано Никеле, профессор Университетского колледжа Эстфолда в Норвегии и специалист по компьютерным архитектурам, со своими коллегами недавно адаптировал NCA для решения задач из Abstraction and Reasoning Corpus (корпус абстракции и рассуждений). Корпус является эталонным набором данных, предназначенным для измерения прогресса в области общего интеллекта. [4] Эти задачи выглядят как классический тест на IQ. Многие из них состоят из пар линейных рисунков, и нужно выяснить, как первый рисунок преобразуется во второй, а затем применить это правило к новому примеру. Например, первый рисунок может быть короткой диагональной линией, а второй — более длинной, поэтому правило состоит в том, чтобы продолжить линию.
Нейронные сети обычно показывают ужасные результаты, потому что они склонны запоминать расположение пикселей, а не извлекать правило. Клеточный автомат не может запоминать, потому что, не имея дальних связей, он не может воспринять всё изображение целиком. В приведённом выше примере он не видит, что одна линия длиннее другой. Единственный способ связать их — это увеличить длину первой линии до размера второй. Таким образом, он автоматически распознает правило, и это позволяет ему обрабатывать новые примеры. «Вы заставляете его не запоминать ответ, а изучать процесс разработки решения», — сказал Никеле.
Другие исследователи начинают использовать NCA для программирования роев роботов. Рои роботов были предложены писателями-фантастами, такими как Станислав Лем, в 1960-х годах и начали воплощаться в реальность в 90-х. Джош Бонгард, исследователь в области робототехники из Университета Вермонта, сказал, что NCA могут создавать роботов, которые работают настолько тесно друг с другом, что перестают быть просто роем и становятся единым организмом. «Представьте себе извивающийся шар насекомых, жуков или клеток, — сказал он. — Они ползают друг по другу и постоянно перестраиваются. Вот что такое многоклеточность на самом деле. И кажется — я имею в виду, что ещё рано говорить о чем-то новом, — но, похоже, это может быть хорошим направлением для робототехники».
С этой целью Хартл, Левин и Андреас Цёттль, физик из Венского университета, обучили виртуальных роботов — нить бусин в имитированном резервуаре — извиваться, как головастик. «Это сверхнадёжная архитектура, позволяющая им плавать», — сказал Хартл.
Для Мордвинцева взаимосвязь между биологией, компьютерами и робототехникой продолжает традицию, восходящую к ранним дням вычислительной техники в 1940-х годах, когда фон Нейман и другие пионеры свободно заимствовали идеи из живых организмов. «Для этих людей связь между самоорганизацией, жизнью и вычислениями была очевидной, — сказал он. — Эти вещи как-то разошлись, и теперь они воссоединяются».
Примечания
1) Именно по этому принципу работает сборка сложных молекул в живых организмах. Единственная сила, позволяющая молекулам взаимодействовать, — хаотическое тепловое (броуновское) движение. Молекулы непрерывно сталкиваются, и, если они могут образовать связь, они её образуют, приводя к возникновению новой молекулы. Сама возможность образования связи между молекулами определяется их свойствами и условиями среды.
К примеру, во время сборки белков транспортные РНК случайно сталкиваются с аминокислотами, и, если транспортная РНК столкнулась со «своей» аминокислотой, между ними образуется связь. Комплексы транспортных РНК и аминокислот случайно сталкиваются с рибосомой и прикреплённой к ней информационной РНК. Если три нуклеотида в транспортной РНК (антикодон) соответствуют трём нуклеотидам в особом месте информационной РНК (кодон), между ними образуется временная связь, а между аминокислотой и концом белковой цепи — постоянная связь. После этого связи между транспортной РНК и информационной РНК и между транспортной РНК и аминокислотой разрываются, и транспортная РНК вновь оказывается свободной. Далее цикл повторяется.
Когда белковая цепь наконец собрана, она сворачивается особым образом (процесс называется фолдинг), образуя уникальную трёхмерную структуру. Её форма целиком зависит от аминокислотной последовательности в белковой цепи и условий среды.
Как понятно из объяснения, процесс сборки молекул в живых организмах не является направленным даже в случае синтеза белков. Хотя их аминокислотная последовательность и записана в ДНК (и соответственно в информационной РНК), но процесс их сборки обеспечивается случайными столкновениями молекул. Более того, информация в ДНК и РНК определяет лишь аминокислотный состав белковой цепи (первичную структуру), в то время как трёхмерная структура белковой молекулы возникает при её сворачивании и напрямую нигде не записана. Если же мы возьмём иные типы молекул: углеводы, липиды и малые молекулы, — то они синтезируются энзимами (специальными белками) и в ДНК напрямую вообще не записаны.
Резюмируя, можно сказать, что в случае сложных биологических молекул форма и свойства элементарных блоков целиком определяют форму и свойства целой конструкции.
2) У слова «работа» много значений. Когда инженеры говорят, что не понимают, как работают нейронные сети, они не говорят про их низкоуровневую работу. Нейронные сети спроектированы инженерами, и, разумеется, они знают, как их творения устроены внутри. Инженеры понимают, как нейронные сети работают на низком уровне: как пиксели или слова влияют на весовые коэффициенты и прочие вещи. Они могут проследить, как начальный набор битов преобразуется в конечный. Но это никак не помогает им понять, как нейронные сети работают на высоком уровне: как и главное почему нейронная сеть приняла то или иное решение.
Очень полезна аналогия с человеческим мозгом. Мы примерно знаем как работает мозг на низком уровне: как синапсы передают нервные импульсы, как нейроны их обрабатывают и многое иное. Мы можем проследить нервный импульс от сетчатки человеческого глаза до нейронов зрительной коры. Но это никак не помогает нам понять, что такое сознание, или как человек принимает решения.
3) Речь, скорее всего, про мутации, которые неизбежно возникают при копировании наследственной информации.
4) В 2019 году Франсуа Шолле — создатель Keras, библиотеки глубокого обучения с открытым исходным кодом, которую используют более 2,5 миллионов разработчиков, — опубликовал влиятельную статью On the Measure of Intelligence (О мере интеллекта). В ней учёный представил эталонный набор данных Abstract and Reasoning Corpus для искусственного общего интеллекта (ARC-AGI).
Интеллект в ARC-AGI измеряется эффективностью освоения навыков в незнакомых задачах. Проще говоря, насколько быстро ИИ может освоить новые навыки.
Автор перевода @arielf
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
