В этом эссе представлена ​​структура глубокого обучения для создания автономных агентов в игровом симуляторе.

Благодаря способности создавать высокоточные представления физики и визуальной среды современные игровые движки превратились в жизнеспособный инструмент для обучения многих видов воплощенного ИИ. Термин воплощенный ИИ используется здесь для различения типов алгоритмов машинного обучения. Воплощенный ИИ содержит визуальное представление в среде, будь то реальной или виртуальной, и оптимизирует что-то, зависящее от этого персонажа. Например, классификатор спама не представляет воплощенный ИИ, поскольку в его среде отсутствует какая-либо видимая идентичность. Однако можно сказать, что классификатор спама, используемый для анимации смайлика, представляет воплощенный ИИ, поскольку оптимизатор теперь имеет физическое представление в пространстве-времени.

Инструменты для создания такого воплощенного ИИ можно рассматривать как новый тип программного обеспечения, или то, что я называю здесь движком обучения. Хотя некоторые из них уже существуют, большинство инструментов глубокого обучения для создания воплощенных агентов все еще находятся в зачаточном состоянии и требуют значительного опыта для развертывания. В этом эссе я представляю структуру глубокого обучения под названием Neurostudio, которая использует язык визуальных сценариев Unreal Game Engine Blueprints для создания автономных обучающих агентов за несколько простых шагов, которые может освоить новичок.

Https://www.youtube.com/watch?v=rgQWJ5bkVkk

Зачем вообще использовать движок видеоигр для обучения воплощенного ИИ? Одним из непреходящих препятствий на пути внедрения методов искусственного интеллекта следующего поколения, таких как обучение с подкреплением, является отсутствие подходящей среды, в которой можно проводить обучение. В различных исследованиях отмечается сложность использования базовой реальности для обучения воплощенных агентов. Часто физические ограничения ИИ, такие как электронные приводы в случае робота, запрещают график тренировок большого объема, необходимый для того, чтобы такая техника, как глубокое обучение с подкреплением, давала хорошие результаты.

Одна из альтернатив - использовать симулятор для обучения агента. Отсюда агент может либо продолжать существовать в симуляторе (как в случае с NPC в видеоигре), либо их обучение может быть перенесено в реальность «из кирпича и раствора», как в случае с роботом. В любом случае есть несколько преимуществ использования симулятора для обучения воплощенного агента. Во-первых, когда дела идут катастрофически неправильно, результаты обычно менее обременительны, чем когда они катастрофически идут не так в физической реальности. Симуляция буйного робота - это совсем другое чудовище, чем 800-фунтовая какофония летающих рук и ног. Более того, во многих случаях можно пожелать, чтобы агент постоянно оставался в симуляторе, как в случае с персонажами видеоигр.

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

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

Https://www.youtube.com/watch?v=SmBxMDiOrvs

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

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

Люди также используют разновидность обучения с подкреплением для приобретения множества навыков, и у вас может возникнуть соблазн спросить, сколько переменных окружающей среды мы сами можем отслеживать, прежде чем сложность станет проблемой? С визуальной точки зрения ответов на удивление мало - от четырех до восьми в зависимости от того, движутся ли объекты или неподвижны. Это имеет смысл из того, что мы знаем об обучении с подкреплением и комбинаторном взрыве - при превышении восьми объектов пространственное разрешение внимания будет затруднено. Четыре динамических объекта можно комбинировать 24 различными способами, 8 объектов - 40 320 способами! Помимо этого, мы переходим к числам, которые практически бессмысленны с человеческой точки зрения - 12 объектов могут сочетаться 479 миллионами уникальных способов. Например, в любой момент времени, играя в видеоигру, мы обычно абстрагируемся от тысяч пикселей до 4 или 5 различных объектов, которые мы отслеживаем.

Как же тогда абстрагироваться от всех этих комбинаций пикселей, чтобы получить лишь горстку значимых функций? У людей эволюция сделала за нас всю тяжелую работу, и в биологии этот талант называется скрытым торможением. В этом процессе знакомые объекты теряют свою значимость, и со временем мы отключаемся от них. Завеса забвения действительно милосердна. В то время как компьютер мог бы отслеживать больше функций, чем человек, в зависимости от его вычислительной мощности, комбинаторный взрыв может обременить даже современные суперкомпьютеры. К счастью для компьютерных ученых, «нейронные сети» могут помочь решить такие сложные проблемы.

Глубокие нейронные сети чаще всего связаны с областью искусственного интеллекта, называемой «контролируемым обучением», которая требует, чтобы кто-то предоставил базу данных размеченных обучающих данных, из которых алгоритм будет изучать закономерности. В глубоких нейронных сетях замечательно то, что они могут брать зашумленные, нелинейные, неоднородные данные, такие как изображение кошки, и абстрагировать их до нескольких функций, которые необходимы для их категоризации. Вот как ваш классификатор спама работает в вашем почтовом ящике и как Netflix создает для вас рекомендации на основе фильмов, которые вам понравились или не понравились. Такие классификаторы все чаще используются в программном обеспечении и получили широкое распространение благодаря глубоким нейронным сетям. Нейронные сети более мощные, чем прежние статистические методы, такие как логистическая регрессия и байесовские классификаторы, потому что они превосходно обнаруживают закономерности, скрытые за слоями сложности. Классификаторы - мощные инструменты, но, в отличие от обучения с подкреплением, для обучения им обычно требуются какие-то помеченные данные.

В 2015 году исследователи из компании DeepMind натолкнулись на идею использования глубоких нейронных сетей для абстрагирования от пикселей экрана видеоигр Atari, чтобы можно было применять алгоритм обучения с подкреплением в играх. Как уже упоминалось, глубокие нейронные сети могут брать очень зашумленные и большие наборы данных и обнаруживать в них закономерности. Экран видеоигры Atari можно рассматривать как такой большой и зашумленный набор данных. Используя экран консоли Atari в качестве обучающего набора для нейронной сети, они снизили сложность всех комбинаций пикселей до небольшого количества функций, привязанных к различным ходам, которые может сделать игрок, обычно всего 4 или 5 (Владимир Мних , 2015). Неужели им просто повезло, что ни в одной из игр для победы не требовалось больше, чем несколько действий? Вовсе нет, скорее, потому что эти игры были разработаны для людей, у них было ограниченное пространство действия и окружающей среды. Другое дело - видеоигра Atari, предназначенная для космических пришельцев, способных учиться на 10 000 различных комбинаций действий. Однако в ситуациях, когда большинство игровых функций являются просто украшением и не имеют никакого значения для действий, которые следует предпринять, глубокая нейронная сеть может снизить сложность до чего-то управляемого с помощью алгоритма обучения с подкреплением.

То, что верно для Atari, верно и для таких настольных игр, как Go. Считалось, что это древнее китайское развлечение недоступно для компьютеров из-за присущей игре сложности. Как любили напоминать нам эксперты по го, в игре в го существует больше возможных комбинаций досок, чем количество кварков, когда-либо существовавших во вселенной с незапамятных времен. Но, как и в видеоиграх Atari, многие позиции на доске в игре го не подходят для игры на каком-либо конкретном этапе игры. Они похожи на тот пиксель в дальнем углу экрана, который не имеет значения, пока он не указывает на то, что враг направляется к вам. «Глубокое обучение с подкреплением», то есть сочетание глубоких нейронных сетей и обучения с подкреплением, оказалось столь же эффективным в освоении Go, как и в видеоиграх Attari. В 2017 году AlphaZero, алгоритм глубокого обучения с подкреплением для игры в го, разработанный DeepMind, победил нескольких ведущих мировых игроков в го, а также лучший искусственный интеллект в го.

Одно из ключевых заблуждений, в которое попадают люди, думая о такой игре, как го, - это предположение, что сложные игры требуют обучения сложным типам. Во фрактальной геометрии сбивающие с толку закономерности, кажущиеся бесконечными, могут быть получены с помощью простых формул. Эволюция, породившая бесчисленное множество форм жизни невероятной сложности, руководствуется столь же простым обучающим правилом - ошибкой. То же уравнение обучения, которое позволяет овладеть крестиками-ноликами, может обеспечить мастерство в такой игре, как го. В обеих играх обучение с подкреплением может выявить ключевые ассоциации, имеющие отношение к победе. Это не означает, что не существует более сложных способов решения проблемы обучения. DeepBlue, суперкомпьютер IBM, победивший Гэри Каспарова в шахматах в 1997 году, представлял собой гигантскую программу с тысячами написанных вручную сценариев, встроенных в нее шахматными экспертами и программистами. Но такие сложные программы, в конце концов, намного менее надежны и мощны, чем простой алгоритм, такой как Q-обучение. Во-первых, они связаны с предубеждением людей, которые их кодировали. Когда в DeepMind был разработан алгоритм глубокого обучения с подкреплением Atari, он открыл способ набирать очки в игре в понг, используя трюк, который ранее был неизвестен игрокам-людям. Если бы он был запрограммирован исключительно на основе человеческого опыта, он, вероятно, никогда не произвел бы таких «чужих» движений. Сила обучения с подкреплением в том, что, играя само по себе, оно может опробовать миллионы ходов, которые никому в истории игры и в голову не приходило.

Многие комментаторы-эксперты смотрели на AlphaZero, алгоритм обучения игре в шахматы с подкреплением, и видели более продвинутую версию DeepBlue, и поэтому не понимали, что они смотрели на совершенно другой тип ИИ, с совершенно иными последствиями. Поскольку обучение с подкреплением имитирует один из способов обучения людей, тот же алгоритм, который можно использовать для освоения го, можно использовать для приготовления омлета или складывания белья. Когда вы только начинаете учиться складывать белье, вы делаете ошибки, рукава не совпадают, складки нечеткие. Путем повторения, или, говоря языком информатики, итерации, вы медленно изучаете правильные движения, необходимые для достижения цели - идеально сложенной рубашки. Таким образом, многие виды человеческой деятельности можно «геймифицировать» и превратить в задачи обучения с подкреплением.

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

Механизм обучения Neurostudio основан на алгоритме глубокого обучения с подкреплением, который называется Deep Q Learning или просто DQN. Базовое понимание его кузена, табличного Q-обучения, будет полезно для понимания Deep Q Learning. По ссылке ниже вы можете найти введение в табличное Q-обучение, в котором агент решает простую задачу Match to Sample Puzzle: https://www.unrealengine.com/marketplace/artificial-intelligence-q-learning

Метод, с помощью которого работает Q-обучение, иногда называют обратной индукцией. Представьте себе туриста, который потерял тропу и пытается вернуться в лагерь. Сначала они случайным образом выбирают направление движения. Перебираясь через камень, они наблюдают, приближает ли это действие их к своей цели. С этой новой точки зрения они решают, как оценить свое предыдущее действие. Было ли лазание по скале хорошим или плохим решением? По сути, мы учимся догадке из догадки. Сначала делается предположение о будущем (учитывая мое новое состояние, насколько легко будет добраться до лагеря), а затем на основе этого первого предположения делается предположение о значениях их последнего действия (я получил выделение ближе к базовому лагерю на лазание по этой скале, поэтому мое последнее действие было удачным) Обычно мы знаем это как обучение методом проб и ошибок или ассоциативное обучение. В табличной математической форме обучения Q это принимает выражение

Q (состояние, действие) = Награда (состояние, действие) + Гамма * Макс [Q (следующее состояние, все действия)]

Где R (состояние, действие) - это любое вознаграждение, полученное за текущее действие, а гамма - это фиксированная ставка дисконтирования от 0 до 1, которая контролирует, насколько агент оценивает текущие вознаграждения по сравнению с будущими. Макс [Q (следующее состояние, все действия)], также называемый правилом обновления посыльного, делает текущее значение пары действий состояния зависимым от следующего наилучшего будущего действия, которое может быть предпринято из этой позиции. Это часть уравнения, «заглядывающая в будущее». Таким образом, награда, которая, по мнению каждого, произойдет в будущем, может быть привязана назад к шагам, которые ее привели.

Чтобы объединить Q-обучение с нейронной сетью, нейронная сеть сначала прогнозирует значения, соответствующие каждому действию, доступному агенту с учетом его текущего состояния. Изначально это просто случайный шум, создаваемый нейронной сетью. Однако после того, как агент получает вознаграждение, он может применить уравнение обучения Q и использовать результирующую ошибку между предсказанным значением пары действий состояния и новым значением пары действий состояния для формирования члена ошибки. Затем этот термин ошибки можно использовать для обучения нейронной сети. Думайте о нейронной сети как об инструменте для минимизации ошибки прогнозирования, а уравнение обучения Q - как об источнике этих ошибок прогнозирования.

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

Хотя я подробно остановился на объяснении работы DQN, для использования Neurostudio не обязательно понимать детали того, как происходит обучение. Скорее нужно только четко понимать, на каких элементах среды агенты учатся, какие действия агент может предпринять и какие награды он может получить. Точно так же, как не нужно разбираться в науке о мозге, чтобы научить собаку выполнять трюки, нужно понимать, какими способностями обладает собака, что она находит вознаграждением и когда доставлять эти награды, чтобы максимизировать обучение.

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

Хотя глубокое обучение с подкреплением позволяет агентам обучаться в сложных реальных средах, они часто делают это медленнее, чем агенты табличного обучения Q. Также может быть сложнее «настроить» поведение агента, учитывая большее количество параметров, влияющих на нейронную сеть.

С другой стороны, использование нейронных сетей позволяет агентам обобщать свои стратегии - то есть они будут применять изученную стратегию к широкому спектру состояний окружающей среды, которые напоминают то, в котором они были изначально обучены. Это позволяет им действовать разумно даже в совершенно новых условиях. Напротив, с табличным Q-обучением изученная стратегия будет вызываться только в точном состоянии среды, для которого агент имеет прошлую ассоциацию. Эта способность обобщать обучение для новых задач и в новых средах делает глубокое обучение с подкреплением одной из самых мощных доступных в настоящее время платформ машинного обучения и естественной отправной точкой для Learning Engine. Я ожидаю, что использование таких механизмов обучения расширит горизонты как реальных, так и виртуальных агентов и откроет новую эру воплощенного ИИ.