Lenia — это семейство клеточных автоматов, созданное Бертом Ван-Чаком Чаном. [1] [2] [3] Она предназначена для непрерывного обобщения игры «Жизнь» Конвея с непрерывными состояниями , пространством и временем . Вследствие ее непрерывной области высокого разрешения, сложные автономные шаблоны («формы жизни» или « космические корабли »), созданные в Lenia, описываются как отличающиеся от тех, которые появляются в других клеточных автоматах, будучи «геометрическими, метамерными , нечеткими, устойчивыми, адаптивными и генерическими правилами». [1]
Леня выиграла конкурс виртуальных существ 2018 года на конференции по генетическим и эволюционным вычислениям в Киото [4] , была удостоена почетного упоминания на премии ALIFE Art Award на конференции ALIFE 2018 в Токио [5] и получила награду за выдающуюся публикацию 2019 года от Международного общества искусственной жизни (ISAL). [6]
Правила
Итеративные обновления
Пусть будет решеткой или сеткой, содержащей набор состояний . Как и многие клеточные автоматы, Lenia обновляется итеративно; каждое выходное состояние является чистой функцией предыдущего состояния, так что
где — начальное состояние, а — глобальное правило , представляющее собой применение локального правила к каждому сайту . Таким образом .
Если моделирование продвигается на каждый временной шаг, то временное разрешение .
Наборы состояний
Пусть с максимальным . Это набор состояний автомата, который характеризует возможные состояния, которые могут быть найдены на каждом участке. Большее значение соответствует более высокому разрешению состояний в моделировании. Многие клеточные автоматы используют минимально возможное разрешение состояний, т. е . Lenia допускает гораздо более высокое разрешение. Обратите внимание, что фактическое значение на каждом участке не находится в , а скорее является целым кратным ; поэтому для всех мы имеем . Например, при заданном , .
Районы
Математически окрестности, подобные тем, что есть в Игре Жизни, могут быть представлены с помощью набора векторов положения в . Для классического района Мура, используемого в Игре Жизни, например, ; т. е. квадрат размером 3 с центром на каждом участке.
В случае Лени район представляет собой шар радиуса с центром на участке, который может включать в себя и сам исходный участок.
Обратите внимание, что векторы соседства не являются абсолютным положением элементов, а скорее набором относительных положений (дельт) по отношению к любому заданному месту.
Местное правило
Существуют дискретные и непрерывные варианты Lenia. Пусть будет вектором в , представляющим положение данного сайта, и будет набором сайтов, соседних с . Оба варианта включают два этапа:
Использование ядра свертки для вычисления потенциального распределения .
Использование карты роста для вычисления окончательного распределения роста .
После вычисления оно масштабируется с учетом выбранного временного разрешения и добавляется к исходному значению состояния: Здесь функция отсечения определяется как .
Локальные правила для дискретного и непрерывного Лениа определяются следующим образом:
Генерация ядра
Существует много способов генерации ядра свертки . Конечное ядро представляет собой композицию оболочки ядра и скелета ядра .
Для оболочки ядра Чан приводит несколько функций, которые определены радиально . Функции оболочки ядра являются унимодальными и подчиняются ограничению (и обычно также). Примеры функций ядра включают:
После определения оболочки ядра скелет ядра используется для его расширения и вычисления фактических значений ядра путем преобразования оболочки в ряд концентрических колец. Высота каждого кольца контролируется вектором пика ядра , где — ранг вектора параметров. Затем скелет ядра определяется как
Окончательное ядро , таким образом,
такой, что нормализовано так, чтобы иметь сумму элементов и (для сохранения массы ). в дискретном случае и в непрерывном случае.
Карты роста
Отображение роста , которое аналогично функции активации , может быть любой функцией, которая является унимодальной, немонотонной и принимает параметры . Примеры включают
где — потенциальное значение, взятое из .
Игра жизни
Игру Жизни можно рассматривать как частный случай дискретной Лении с . В этом случае ядро будет прямоугольным, а функция и правило роста также будут прямоугольными, с .
Узоры
Изменяя сверточное ядро, картирование роста и начальное состояние, в Лении было обнаружено более 400 «видов» «жизни», демонстрирующих «самоорганизацию, самовосстановление, двустороннюю и радиальную симметрию, локомотивную динамику и иногда хаотическую природу». [7] Чан создал таксономию для этих моделей. [1]
Связанная работа
Другие работы отметили сильное сходство между правилами обновления клеточных автоматов и свертками. Действительно, эти работы были сосредоточены на воспроизведении клеточных автоматов с использованием упрощенных сверточных нейронных сетей . Мордвинцев и др. исследовали возникновение самовосстанавливающейся генерации шаблонов. [9] Гилпин обнаружил, что любой клеточный автомат может быть представлен как сверточная нейронная сеть, и обучил нейронные сети воспроизводить существующие клеточные автоматы [8]
В этом свете клеточные автоматы можно рассматривать как особый случай рекуррентных сверточных нейронных сетей. Правило обновления Lenia можно также рассматривать как однослойную свертку («потенциальное поле» ) с функцией активации («отображение роста» ). Однако Lenia использует гораздо большие, фиксированные ядра и не обучается с помощью градиентного спуска.