Выбирай : Покупай : Используй
в фокусе
0

Искусственная эволюция учит роботов думать

Компьютерное моделирование эволюционных процессов дает возможность не только проверить основные положения эволюционной теории, но и создать развивающиеся и обучаемые компьютерные программы, которые могут решать задачи, непосильные для традиционного программирования. Примерами успешного изучения и использования искусственной эволюции могут служить проекты "Авида" и NEAT.

По Дарвину для эволюции необходимо наличие триады "наследственность, изменчивость, отбор". Эволюционные единицы - организмы, гены - конкурируют друг с другом за ресурс (отбор), победители оставляют более приспособленное потомство (наследственность), которое может отличаться от родителей в ту или иную сторону (изменчивость), предоставляя материал для последующего отбора. Есть, однако, и более тонкие требования, пренебрежение которыми может почти остановить эволюционное развитие. Например, мутации должны быть достаточно малы, чтобы модифицировать, а не кардинально изменять фенотип. Это увеличивает вероятность того, что мутация окажется полезной или хотя бы нейтральной.

"Авида" (Avida) - программа, предназначенная для изучения эволюционных процессов на примере искусственной жизни. В этой программе создается виртуальное пространство, заселенное простыми электронными организмами - авидянами (avidians), которые способны размножаться, случайно мутировать, конкурировать друг с другом за жизненное пространство и, как следствие, эволюционировать.


Увеличить
Рабочее окно программы AVIDA-ED. В центре карта популяции авидян, цветами обозначена относительная приспособленность особей, основанная на умении производить логические операции и быстро размножаться. В правом нижнем углу - график зависимости средней приспособленности популяции от времени.

Может показаться странным, что ученые всерьез рассматривают компьютерные программы как аналоги живых существ. Однако, если присмотреться внимательнее, то окажется, что геном живого существа в определенном смысле мало отличается от компьютерной программы: и то, и другое - это набор инструкций, описывающий поведение своего носителя, живого или электронного.

"Авида" и авидяне

Геном каждого авидянина представляет собой циклический набор из нескольких десятков инструкций, последовательно выполняемый простым виртуальным процессором из двух 32-битных стеков и трех регистров. Весь жизненный цикл каждого авидянина зашифрован в его геноме. Из 26 типов инструкций лишь небольшая часть служит производству себе подобных, большинство же предназначено для логических операций над 32-битными строками, которые система подает на вход каждому авидянину. За выполнение логических операций над этими строками авидяне получают преимущество в скорости размножения. Все логические операции базируются на инструкции И-НЕ (NOT AND), последовательным применением которой можно получить любую другую логическую функцию. Каждый авидянин может за свою жизнь получить награду за одну логическую операцию каждого типа. Чем сложнее операция - тем больше за нее награда.

В каждой популяции первое поколение авидян умеет только размножаться. Через некоторое время за счет случайных ошибок при копировании - мутаций – появляются организмы, выполняющие простейшие логические операции. Эти организмы получают преимущество в скорости размножения и быстро вытесняют остальных из жизненного пространства. Дальнейшая эволюция идет подобным образом, скачкообразно - один из авидян обнаруживает новую логическую операцию, и его получившее преимущество потомство завоевывает мир. Важный результат, полученный создателями "Авиды" состоит в том, что авидяне могут научится сложным логическим операциям только если они получают награду за выполнение более простых. В экспериментах, где выполнение простых операций не награждалось, эволюция никогда не приводила к появлению организмов, способных выполнять сложные операции. То же самое наблюдается в биологической эволюции: любая сложная адаптация, которая не может возникнуть в результате единичной мутации, появляется в результате развития более простых, но тем не менее полезных приспособлений.


Увеличить
Циклический геном и визуализация жизненного цикла одного из авидян. Показана стадия производства новой особи после выполнения всех найденных логических операций.

Классическим примером сложной адаптации в биологической эволюции является глаз. Глаз позвоночного животного - это сложный орган, состоящий из стекловидного тела, хрусталика, светочувствительной сетчатки и отходящих от нее нервов. Каждая из этих частей критически важна для выполнения функции всего органа, однако глаз не мог возникнуть в результате единичной мутации. За его возникновением стоит длинный ряд эволюционных изменений, от простейшего светочувствительного пятна на поверхности тела через наполненное преломляющей жидкостью углубление к полноценному глазному яблоку современных позвоночных. Каждое изменение в этой цепи было полезнее предыдущего и стало возможным только благодаря естественному отбору. Если бы любой упрощенный вариант полноценного глаза был совершенно бесполезен, этот орган никогда бы не смог возникнуть.

Эволюционная теория обладает одним большим недостатком - ее весьма сложно проверить экспериментально. Любой эволюционный эксперимент должен занять тысячи поколений, что даже для быстро размножающихся бактерий эквивалентно годам, а то и десятилетиям. Математическое моделирование позволяет наглядно продемонстрировать верность основных положений теории эволюции, а также проверить допустимость многих теоретических предположений, например особенностей возникновения сложных адаптаций как было сделано в Avida, или механизма "Фишеровского убегания", ответственного за сверхбыстрое - по эволюционным меркам - развитие новых признаков под воздействием полового отбора. Наглядно демонстрируются также эволюционные последствия полового и бесполого размножения, такие как "храповик Мюллера" - принцип, по которому в геноме популяции бесполо размножающихся особей неизбежно накапливаются вредные мутации.

Как роботы учатся думать?

С точки зрения практического применения искусственной эволюции одним из перспективных направлений является создание программ искусственного интеллекта, в том числе управляющих систем для движущихся роботов. При обычном подходе такие системы требуют сложного проектирования и долгой отладки, так почему бы не поручить эту задачу процессу искусственной эволюции? Если создать достаточно точную компьютерную модель робота, то полученная с ее помощью управляющая система сможет контролировать движения и реального робота. Подобный эксперимент был проведен авторами "Авиды" и оказался успешным: после трансляции генома в инструкции для робота "Румба" тот научился следовать за горящими лампочками.


Домашний робот "Румба", для которого разрабатывали геном в "Авиде"

Итак, искусственная эволюция может решать не только теоретические, но и прикладные задачи. Среди прочих этим занимаются Кен Стенли (Ken Stanley) и Джефф Клун (Jeff Clune), авторы проектов NEAT (NeuroEvolution of Augmenting Topologies) и HyperNEAT. NEAT/HyperNEAT - это системы обучения нейронных сетей, основанные на эволюционных алгоритмах. Они в полной мере используют принцип "от простого к сложному", эффективность которого мы рассмотрели, когда говорили об "Авиде". В NEAT первое поколение нейронных сетей всегда имеет наиболее простую из всех возможных топологий и начинает усложнятся, лишь когда простой структуры оказывается недостаточно для решения задачи. На данный момент HyperNEAT является самым эффективным алгоритмом обучения нейронных сетей, способным за несколько десятков поколений создать работающую сеть из тысяч нейронов, которая может решать сложные задачи вроде игры в шашки или управления движущимся и ориентирующимся в пространстве роботом. Также один из секретов HyperNEAT состоит в использовании "эмбриологического" способа развития: координаты нейронов и связи между ними определяются не напрямую, а с помощью производящих функций, которые и являются аналогом генома. Занимательно то, что NEAT заимствует у живой природы сразу два принципа: эволюционное развитие и принятие решений с помощью нейронных сетей. Эта комбинация оказалась неожиданно эффективной; до NEAT для нейронных сетей применялись принципы "ручного" обучения, а эволюционные программисты пытались работать с прямым машинным кодом.

Автоматическая генерация игрового контента

Одним из практических применений возможностей NEAT является Galactic Arms Race - многопользовательская онлайн-игра и научный эксперимент одновременно.

Игровой процесс вполне обычен: игрок управляет кораблем и сражается с пиратами, пришельцами и другими врагами народа, чтобы перейти на более высокие уровни, развить свои умения и самое главное - обнаружить более мощное оружие и оснастить им свой корабль. Новое оружие появляется в результате эволюции на базе того, из которого игроки стреляли чаще всего, и каждый раз проходит уникальный путь развития. Для этого используется специальная версия NEAT - cgNEAT. В результате создается уникальный игровой контент: игра постоянно меняется, создавая новые варианты оружия, которое понравилось игрокам, превосходящие те, что были раньше.

Цель эксперимента заключается в том, чтобы исследовать возможности технологии интеллектуальной автоматической генерации контента. Смысл автоматической генерации контента в том, чтобы уменьшить нагрузку на разработчиков и вместе с тем сделать игру интереснее для пользователей, дать им чувство новизны и стимул к исследованию игрового мира. Если проект докажет свою жизнеспособность, это может иметь далеко идущие последствия для игровой индустрии.

Предупреждение об авариях

Другое возможное применение NEAT - разработка автоматической системы предупреждения об аварийно-опасных ситуациях. В современном мире одно из самых опасных повседневных занятий - это вождение автомобиля; при этом большинство аварий происходит из-за невнимательности водителей. Снизить число ДТП могло бы устройство, предупреждающее зазевавшегося водителя об опасности, основываясь на данных лазерных дальномеров или видеосигнале следящей за дорогой камеры.

Программу для такого устройства можно создать несколькими способами. Например, привлечь эксперта для формального описания всех возможных опасных ситуаций. У этого подхода есть существенные недостатки. Разработанные алгоритмы могут оказаться неустойчивыми к помехам во входных данных. Более того, статичная картина ситуации на дороге недостаточна для предсказания аварии, а значит система должна помнить историю событий. Но какова должна быть длина этой памяти и какие именно события нужно помнить, оценить очень сложно.

Для решения этой задачи ученые снова обратились к эволюционирующим нейронным сетям. Первая версия предупреждающей системы эволюционировала в виртуальном мире симулятора дорожного движения и быстро научилась предсказывать аварии за несколько секунд до столкновения. Сложность задач в процессе обучения нарастала постепенно: сначала систему научили предсказывать выезд машины на обочину, потом столкновения с неподвижными препятствиями на дороге, и в конце концов - столкновения с другими участниками движения.


Использовавшийся для испытаний робот на колесах (AI GAIA) с установленными лазерными дальномерами SICK LMS-200 и видеокамерой

Аналогичная система, приспособленная для работы с колесным роботом на искусственной трассе, доказала свою адекватность в интерпретации данных, взятых из реального мира.


Увеличить
Пример одного столкновения. Система опиралась на интерпретацию данных с видеозахвата, кадры из которого представлены на изображении. Степень тревоги системы предупреждения показан красными полосками вверху изображения. Несмотря на нечеткость и зашумленность картинки, полученная нейронная сеть научилась надежно предсказывать столкновения.

Нам же остается с нетерпением ждать создания подобных устройств для настоящих автомобилей.

Олег Егоров / CNews

Страница: [ 1 ] [ 2 ]
Комментарии