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

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

Эволюционная теория обладает одним большим недостатком - ее весьма сложно проверить экспериментально. Любой эволюционный эксперимент должен занять тысячи поколений, что даже для быстро размножающихся бактерий эквивалентно годам, а то и десятилетиям. Математическое моделирование позволяет наглядно продемонстрировать верность основных положений теории эволюции, а также проверить допустимость многих теоретических предположений, например особенностей возникновения сложных адаптаций как было сделано в 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