Примечание редактора: обучение с подкреплением — это область машинного обучения, в которой особое внимание уделяется тому, как действовать в зависимости от среды, чтобы максимизировать предполагаемую выгоду. В последние годы масштабные исследования по обучению с подкреплением появлялись одно за другим, а результаты, представленные AlphaGo, не только произвели фурор в академическом мире, но и привлекли внимание СМИ. Так действительно ли обучение с подкреплением является новой надеждой для искусственного интеллекта? Во время Весеннего фестиваля инженер-программист Алекс Ирпан процитировал статьи из Беркли, Google Brain, DeepMind и OpenAI за последние несколько лет, в которых подробно описывались недостатки и ограничения обучения с подкреплением.
Однажды я разместил это предложение на Facebook:
Всякий раз, когда кто-то спрашивает меня, может ли обучение с подкреплением решить их проблему, я отвечаю «нет». И я нашел этот ответ правильным как минимум в 70% случаев.
Сегодня глубокое обучение с подкреплением (Deep RL) было окружено большим количеством шумихи в СМИ. С положительной стороны, обучение с подкреплением (RL) — это панацея, и оно работает настолько хорошо, что теоретически надежная, высокопроизводительная система RL должна быть в состоянии решить любую проблему. На этой основе мы совмещаем с ним идеи глубокого обучения, и такая попытка уместна. И в настоящее время Deep RL является одним из самых близких вещей к AGI, и он также подпитывает «мечту об искусственном интеллекте», которая привлекла миллиарды долларов инвестиций.
Но, к сожалению, в настоящее время Deep RL имеет много ограничений.
Я верю, что у Deep RL бесконечное будущее, иначе я бы не выбрал его в качестве собственного начинания. Но, честно говоря, с Deep RL еще много проблем, и многие проблемы трудно решить с корнем. На первый взгляд люди видят, что интеллектуальный агент с интеллектом прекрасно выполнил задачу, но кровь, пот и слезы за этим известны только нам.
Несколько раз я видел людей, которых привлекала недавняя работа по Deep RL, и они бросались в исследования, но неизменно недооценивали серьезные трудности обучения с подкреплением. «Игрушечная проблема» не так проста, как они думали, и начать обучение с подкреплением, вероятно, означает столкнуться со многими полными неудачами, пока эти люди не научатся устанавливать реалистичные исследовательские ожидания осенью.
Я надеюсь увидеть более глубокие исследования RL в будущем, и я надеюсь, что в этой области будет устойчивый приток новой крови, но я также надеюсь, что эти новички могут действительно знать, в какой мир они входят.
Вызывает тревогу эффективность выборки глубокого обучения с подкреплением
Игры Atari — один из самых известных тестов для глубокого обучения с подкреплением. Как показано в документе Deep Q-Networks, если Q-Learning сочетается с нейронными сетями разумного размера, а также с некоторыми приемами оптимизации, исследователи могут достичь человеческой или сверхчеловеческой производительности в нескольких играх Atari.
Игры Atari работают со скоростью 60 кадров в секунду, так что представьте, сколько кадров потребуется, чтобы довести ультрасовременный DQN до производительности человека?
Ответ зависит от игры. Мы можем начать с недавней статьи Deepmind:Rainbow: Combining Improvements in Deep Reinforcement Learning. В этом документе внесены некоторые постепенные улучшения в исходную структуру DQN, доказав, что их RainbowDQN работает лучше. В ходе эксперимента агент сыграл в 57 игр Atari и превзошел игроков-людей в 40 играх.
Верхняя цветная кривая — RainbowDQN.Ось Y на приведенном выше рисунке представляет собой среднюю оценку производительности человека-игрока.Исследователи наблюдали за производительностью DQN в 57 играх, рассчитывали оценку агента, а затем использовали производительность человека в качестве меры для построения кривой производительности агента. Видно, что вертикальная ось кривой RainbowDQN превышает 100% на 18 миллионах кадров, то есть превосходит человека. Это соответствует 83 часам игрового процесса, включая время обучения и время игры в реальном мире, но в большинстве случаев игроку-человеку может потребоваться всего несколько минут, чтобы начать играть в игру Atari.
Следует отметить, что по сравнению с 70 миллионами кадров Distribution DQN (оранжевая линия), 18 миллионов результатов Rainbow DQN можно считать большим прорывом. Вы должны знать, что всего три года назад журнал Nature опубликовал статью об обучении с подкреплением, в которой был представлен оригинальный DQN (желтая линия), и его производительность в эксперименте заключалась в том, что он не мог достичь 100% после 200 миллионов кадров.
Нобелевские лауреаты Канеман и Тверски однажды предложили концепцию: ошибка планирования. Это относится к людям, которые оптимистично настроены на то, чтобы что-то сделать, и поэтому недооценивают время, необходимое для выполнения задачи. Глубокое RL имеет свою собственную ошибку планирования — изучение политики часто требует гораздо большего количества образцов, чем предполагалось заранее.
Правда в том, что игры Atari — не единственная проблема. Еще одним популярным тестом в обучении с подкреплением является тест MuJoCo, набор задач в симуляторе физики MuJoCo. В этих задачах входными данными для системы обычно являются положение и скорость каждого сустава моделируемого робота. Но даже для такой простой задачи системе обычно требуется 105-107 шагов для обучения, а количество требуемого опыта просто ошеломляет.
Ниже приводится демонстрация паркур-робота DeepMind, исследователи в статьеEmergence of Locomotion Behaviours in Rich EnvironmentsВо введении говорилось, что в эксперименте использовались рабочие 64 и часы 100. Хотя они не объяснили, что такое рабочий, я думаю, что рабочий эквивалентен процессору.
Результаты DeepMind великолепны, и когда это видео впервые вышло, я долгое время был поражен тем, что обучение с подкреплением может заставить робота научиться бегать. Но после просмотра статьи 6400 часов процессорного времени все еще немного разочаровывают. Это не значит, что я думаю, что это занимает слишком много времени, но фактическая эффективность выборки Deep RL все же на порядки выше, чем ожидалось, что еще больше разочаровывает.
Вот вопрос: что произойдет, если мы пренебрежем эффективностью выборки? Если это просто для получения опыта, иногда нам нужно настроить всего несколько параметров, и игры являются типичным примером. Но если это не сработает, обучение с подкреплением окажется в затруднительном положении. К сожалению, большинство реальных задач относятся ко второй категории.
Если вас интересует только конечная производительность, другие методы работают лучше.
При поиске решений исследовательских проблем исследователям часто приходится делать «выбор». С одной стороны, их может заботить только эффект завершения задачи, то есть оптимизация метода с наилучшей производительностью, с другой стороны, они могут также ссылаться на результаты предшественников и оптимизировать метод с более высокой научной эффективностью. значение, но его конечный эффект Не обязательно лучший. Идеальная ситуация — учитывать наилучшую производительность и наибольший вклад, но невозможно иметь и то, и другое, и такие темы исследований встречаются редко.
Когда дело доходит до лучших конечных результатов, производительность Deep RL несколько разочаровывает, потому что на самом деле он уступает другим методам. Ниже представлено видео робота MuJoCo. Благодаря онлайн-управлению оптимизацией траектории система может выполнять расчеты онлайн практически в реальном времени без обучения в автономном режиме. Следует отметить, что это результат 2012 года.
Это видео впору сравнивать с паркурным видео. Самая большая разница между этими двумя статьями заключается в том, что в этой статье используется управление с прогнозированием моделей, которое может планировать модель мира, основанную на реальных фактах (физический симулятор), в то время как система обучения с подкреплением, которая не строит модель, не имеет этого процесса планирования, поэтому легче учиться. Другими словами, если планирование непосредственно на основе модели работает лучше, зачем нам учить политику RL?
Точно так же готовый поиск по дереву Монте-Карло может легко превзойти DQN в играх Atari. 2014 г., диссертация Мичиганского университета.Deep Learning for Real-Time Atari Game Play Using Offline Monte-Carlo Tree Search PlanningВключенный NIPS, он изучает влияние автономного поиска по дереву Монте-Карло в играх Atari в реальном времени. Как показано на рисунке ниже, исследователи сравнили оценку DQN с агентом UCT (UCT — стандартная версия современного MCTS) и обнаружили, что последний работает лучше.
Обратите внимание, что это снова несправедливое сравнение, так как DQN не может выполнять поиск, в то время как MCTS может выполнять поиск на основе наземной модели правды (симулятор Atari). Но этот уровень несправедливости иногда не имеет значения, если вы просто хотите получить хороший результат.
Обучение с подкреплением теоретически можно использовать для чего угодно, включая среды, где модель мира неизвестна. Однако эта общность имеет свою цену: ее трудно применить к какой-либо конкретной проблеме, облегчающей обучение. Это заставляет нас использовать большое количество образцов для обучения, хотя эти проблемы могут быть решены с помощью простого кодирования.
Следовательно, алгоритмы предметной области будут более эффективными, чем обучение с подкреплением, за исключением нескольких случаев. Если вы начали RL из-за любви к нему, это нормально, но будьте готовы, когда захотите сравнить свои результаты RL с другими подходами. Кроме того, если вы все еще запутались в вопросе робототехники, например, насколько велик разрыв между роботом, обученным Deep RL, и роботом, сделанным классической робототехникой, вы можете посмотреть на продукцию известных компаний-производителей бионических роботов — например Бостон Динамикс.
Двуногий робот Atlas не использует какие-либо методы обучения с подкреплением.Читая их статью, можно обнаружить, что он по-прежнему использует традиционные методы, такие как изменяющийся во времени LQR, решатели QP и выпуклая оптимизация. Таким образом, при правильном использовании классические методы лучше справляются с конкретными задачами.
Обучение с подкреплением часто требует вознаграждения
Важным допущением обучения с подкреплением является то, что существует вознаграждение, которое направляет агента в «правильном» направлении. Эта функция вознаграждения может быть установлена исследователями или отлажена вручную в автономном режиме, и обычно это фиксированное значение в процессе обучения. Я говорю «в целом», потому что иногда бывают исключения, такие как имитационное обучение и обратное RL, но большинство методов обучения с подкреплением рассматривают вознаграждения как «пророчества».
Что еще более важно, для того, чтобы агент поступал правильно, функция вознаграждения системы должна отражать именно то, что хочет исследователь. Обратите внимание, что это точно. Обучение с подкреплением имеет раздражающую тенденцию устанавливать награды, которые превышают ваши цели, что позволяет агенту легко воспользоваться этим и получить неожиданные результаты. Вот почему игра Atari является идеальным эталоном, потому что игра не только предоставляет большую выборку, но и цель каждой игры — максимизировать счет, поэтому нам не нужно беспокоиться о том, как определить вознаграждение.
Точно так же, поскольку MuJoCo работает в симуляции, мы хорошо знаем все состояния цели, а функцию вознаграждения легко разработать, что является основной причиной ее популярности.
На картинке выше — задача Ричера, нам нужно управлять этой рукой, соединенной с центральной точкой (синяя точка), так, чтобы конец руки (оранжевая точка) совпадал с красной мишенью. Поскольку все позиции известны, мы можем определить вознаграждение как совокупность конца руки до цели плюс небольшая стоимость контроля. Теоретически, если датчик достаточно чувствителен, мы можем поставить эту задачу в реальную среду. Но когда дело доходит до того, что мы хотим, чтобы система делала, решая эту проблему, трудно придумать вознаграждение за задачу.
Конечно, сама по себе функция поощрения не представляет большой проблемы, но позже она может вызвать некоторые побочные эффекты.
Дизайн функции вознаграждения сложен
Настроить функцию вознаграждения не так уж и сложно, но когда вы пытаетесь разработать функцию вознаграждения, которая поощряет желаемое действие, но в то же время поддерживает обучение агента, возникают трудности.
В среде HalfCheetah у нас есть двуногий робот, который ограничен вертикальной плоскостью, что означает, что он может двигаться только вперед или назад.
Цель робота — научиться бегущей походке, а награда — скорость. Это формальное вознаграждение, и чем ближе робот подходит к цели вознаграждения, тем большее вознаграждение дает система. Это резко контрастирует с редкими наградами, которые вознаграждаются только в целевом состоянии и не вознаграждаются больше нигде. Такие формализованные поощрения часто легче облегчить обучение, потому что они обеспечивают положительную обратную связь, даже если политика не находит полного решения проблемы.
К сожалению, формализованные вознаграждения также могут повлиять на результаты обучения. Как упоминалось ранее, это может привести к неожиданному поведению робота. Типичным примером является сообщение в блоге OpenAI.Faulty Reward Functions in the Wild, как показано на изображении ниже, цель этой гребной игры — завершить гонку. Как вы можете себе представить, редкое вознаграждение даст +1 вознаграждение за заданное количество времени и 0 в противном случае. Исследователи установили в этой игре две награды: одну за прохождение игры, а другую за сбор очков в окружающей среде. В конце концов, агент OpenAI нашел «ферму», которая неоднократно набирала очки, хотя и не смогла завершить игру, но набрала больше очков.
Честно говоря, когда эта статья была впервые опубликована, я немного разозлился, потому что это была не проблема обучения с подкреплением, а проблема установки вознаграждения. Если исследователи давали странные награды, результаты обучения с подкреплением также должны быть странными. Но при написании этой статьи я нашел такой убедительный случай ошибки еще и полезным, потому что каждый раз, когда он упоминался, это видео можно было использовать в качестве демонстрации. Итак, исходя из этой предпосылки, я неохотно признаю, что это «хороший» блог.
Алгоритмы обучения с подкреплением фокусируются на континууме, который предполагает, что они знают больше или меньше о своей текущей среде. Наиболее распространенное безмодельное обучение с подкреплением похоже на метод оптимизации черного ящика, оно только допускает существование предположений в MDP, то есть агенту просто говорят сделать это, чтобы получить вознаграждение +1, а в остальном, он должен медленно шарить. Точно так же обучение с подкреплением без моделей страдает от той же проблемы, что и методы оптимизации черного ящика, а именно: агент рассматривает все вознаграждения +1 как положительные, даже если это +1 может быть неверным путем.
Типичным примером обучения без подкрепления является случай, когда кто-то применяет генетический алгоритм к проектированию схемы и получает принципиальную схему. В этой схеме окончательный вариант требует несвязанного логического элемента.
Серая единица на рисунке должна получить правильную команду действия, включая независимую серую единицу в верхнем левом углу.Другие связанные исследования можно увидеть в блоге Salesforce за 2017 год, их исследования направлены на автоматическое создание текстовых резюме. Они обучили базовую модель с контролируемым обучением, а затем оценили ее с помощью автоматизированной метрики под названием ROUGE. ROUGE недифференцируема, но обучение с подкреплением может обрабатывать недифференцируемые вознаграждения, поэтому они также пытаются оптимизировать ROUGE непосредственно с помощью обучения с подкреплением. Хотя экспериментальный эффект хороший, статья не дает подробного описания, вот пример:
Button denied 100th race start for McLaren after ERS failure. Button then spent much of the Bahrain Grand Prix on Twitter delivering his verdict on the action as it unfolded. Lewis Hamilton has out-qualified and finished ahead of Mercedes team-mate Nico Rosberg at every race this season. Bernie Ecclestone confirms F1 will make its bow in Azerbaijan next season.
Несмотря на то, что модель обучения с подкреплением получила наивысший балл, в итоге они использовали другую модель...
Еще одним интересным примером является статья Попова и др. «Укладка Lego» 2017 года. Исследователи использовали распределенную DDPG для изучения стратегии мастерского обучения, и в их экспериментах целью робота было взять красный кирпичик Lego и положить его поверх синего.
Их исследования в целом были успешными, но были и неудачи. За начальное подъемное действие вознаграждением, установленным исследователями, является высота красного строительного блока, которая является значением нижней поверхности красного строительного блока по оси Z. В процессе обучения робот обнаружил, что просто поворачивая строительный блок, перевернутый выпуклой стороной вниз, также может получить достойную награду.
Решение этой проблемы состоит в том, чтобы урезать вознаграждение и возвращать его только после того, как робот сложил блоки. Конечно, иногда это работает, потому что скудное вознаграждение также может способствовать обучению. Но в целом такой подход не рекомендуется, потому что отсутствие положительного вознаграждения может сделать процесс обучения менее стабильным и, следовательно, трудным для обучения. Другим решением является более тщательная установка вознаграждения, добавление новых условий вознаграждения или корректировка существующих коэффициентов вознаграждения до тех пор, пока робот не перестанет использовать ярлыки. Но этот подход по сути является игрой человеческого мозга и обучения с подкреплением, безжалостной битвой, и хотя иногда «латать» необходимо, я никогда не чувствовал, что смогу чему-то научиться из него.
Если вы не верите, вы можете взглянуть на функцию вознаграждения «Lego Stacking» в качестве справки:
Я не знаю, сколько времени они потратили на разработку этой награды, но, судя по количеству условий и количеству различных коэффициентов, я предполагаю, что значение будет «высоким».
Я также слышал много анекдотов о неподходящих настройках вознаграждения в беседах с исследователями в других областях обучения с подкреплением:
-
Кто-то обучает робота ориентироваться в помещении. Если агент выходит из «комнаты», эпизод заканчивается, и система решает, что робот «самоубийствует» без какой-либо отрицательной награды. В конце обучения робот практически каждый раз выбирает "не жить", так как положительное вознаграждение получить слишком сложно, а отрицательное - чрезвычайно обильно, для него предпочтительнее быстрое прекращение 0 вознаграждения. метод.
-
Кто-то тренирует симулированную роботизированную руку дотягиваться до точки на столе. Ключ к проблеме с этим экспериментом заключается в том, определен ли стол, является ли он мобильным столом или столом, который где-то закреплен. После длительного обучения агент лучше всего усвоил тактику: разбить стол, заставить стол опрокинуться и позволить целевой точке автоматически перекатиться к концу руки.
-
Кто-то обучает робота забивать гвозди молотком. Вначале они определяли вознаграждение как расстояние, на которое гвоздь вошел в отверстие, поэтому робот полностью игнорировал молоток и продолжал бить гвоздь своими конечностями. Позже добавили некоторые условия поощрения, такие как поощрение робота поднять молоток, после переобучения робот научился поднимать молоток, но тут же отбрасывал его и продолжал стучать и стучать конечностями.
Нельзя отрицать, что это слухи, и нет готового видео или документа, подтверждающего их, но, исходя из моего многолетнего опыта «переманивания» обучения с подкреплением, все они разумны. Я также знаю людей, которые любят говорить о таких историях, как «Максимизация скрепок», и я действительно понимаю их опасения, но идея придумать историю «Уничтожить человечество» с таким гипотетическим сюрреалистическим ОИИ раздражает. Особенно, когда вышеперечисленные глупые случаи всплывают к нам снова и снова.
Даже самые разумные вознаграждения не могут избежать локальных оптимумов.
Эти предыдущие примеры обучения с подкреплением называются «взломом вознаграждения», что на самом деле является умным готовым решением, когда агент в конечном итоге получает вознаграждение больше, чем ожидали исследователи. Конечно, взлом вознаграждения — это лишь несколько исключений, и более распространенная проблема обучения с подкреплением заключается в том, что система получает локальное оптимальное решение из-за ошибки в процессе «наблюдение — действие».
На следующем рисунке показана типичная реализация функции нормализованного преимущества в среде HalfCheetah:
С точки зрения наблюдателя робот выглядит немного глупо. Но мы можем назвать это «глупостью» только потому, что мы стоим с точки зрения Бога и обладаем большим предварительным знанием. Мы все знаем, что бегать ногами более разумно, но обучение с подкреплением не знает, что оно видит вектор состояния, вектор действия, которое оно собирается предпринять, и вознаграждение, которое оно получило ранее.
В процессе обучения агент думает так:
-
В процессе случайной разведки лучше, чтобы форвардная стратегия не стояла на месте;
-
Вы можете продолжать это поведение вечно, так что продолжайте двигаться вперед;
-
После того, как стратегия реализована, если вы приложите больше силы сразу, вы сделаете сальто назад, что даст вам более высокий балл;
-
Сделав достаточное количество сальто назад, я понял, что набирать очки — хорошая идея, поэтому я включил сальто назад в свою существующую стратегию;
-
Если стратегия продолжит идти в обратном направлении, какая из них будет проще? Это самокоррекция и бег «стандартным способом» или это обучение использованию спины для продвижения вперед лежа на спине? Выберите последнее.
Ход мысли здесь интересный, но отнюдь не такой, как ожидали исследователи.
Еще один случай неудачи произошел с Ричером, о котором мы упоминали ранее.
В этой задаче начальные случайные веса будут иметь тенденцию давать очень положительные или очень отрицательные результаты действий, то есть большинство действий будут давать максимальное или минимальное ускорение. Есть проблема, то есть манипулятор звеньев будет вращаться с большой скоростью, если он не будет осторожным.Пока максимальное усилие прикладывается к каждому суставу, он вообще не остановится. В этом случае, как только робот начнет обучение, это незначительное состояние заставит его отклониться от текущей политики — чтобы этого не произошло, вы должны провести некоторое исследование, чтобы остановить постоянное вращение. Хотя это теоретически возможно, робот в GIF-файлах не может этого сделать.
Это классическая дилемма исследования-эксплуатации, которая является распространенной проблемой, которая мешает обучению с подкреплением: ваши данные поступают из вашей текущей политики, но если текущая политика исследует слишком много, вы получаете много бесполезных данных и нет возможности извлечь полезную информацию. от него. А если перестараться (эксплуатировать), лучшего хода не найти.
В отрасли есть несколько интуитивно понятных и простых идей для решения этой проблемы: внутренняя мотивация, исследование, основанное на любопытстве, и исследование, основанное на счете. Многие из этих методов были предложены до 1980-х годов, а некоторые из них даже были пересмотрены с моделями глубокого обучения, но они работают не во всех условиях. Я с нетерпением жду появления более общей и надежной методики исследования и верю, что в ближайшие несколько лет в отрасли будут даны лучшие ответы.
Раньше я думал об обучении с подкреплением как о вредоносном объекте, который преднамеренно искажает ваше вознаграждение, а затем активно ищет самые ленивые локальные оптимумы. Как бы нелепо это ни звучало, на самом деле это довольно подходящее описание.
Когда Deep RL работает, он может просто подстраиваться под странные шаблоны в среде.
Обучение с подкреплением популярно, потому что это единственная сеть машинного обучения, которую можно обучить только на тестовом наборе.
Одна из приятных особенностей обучения с подкреплением заключается в том, что если вы хотите работать лучше в окружающей среде, вы можете перетренироваться как сумасшедший. Но недостатком этого является то, что эта система работает только в определенных задачах, если вы хотите расшириться на другие среды, извините, вы не можете этого сделать.
DQN может решить множество игровых проблем Atari, но ее подход заключается в том, чтобы свести все обучение к одной цели — получить очень хорошие результаты в одной игре, поэтому ее окончательная модель не подходит для других игр. Вы можете точно настроить параметры, чтобы адаптировать уже обученную модель к новым играм (бумага:Progressive Neural Networks), но вы не можете гарантировать, что он сконвертируется, и люди обычно этого не ожидают. Потому что это не очень эффективно для предварительно обученных изображений ImageNet.
Конечно, некоторые люди подумают об этом по-другому. Действительно, в принципе модель должна быть в состоянии избежать этих проблем, если она обучена в широко распределенной среде, например, в навигации, вы можете случайным образом выбирать целевые местоположения и обобщать, используя функцию общего значения (Universal Value Function Approximators). Я думаю, что эта работа очень многообещающая, и позже я приведу больше примеров этого, однако я все еще не думаю, что Deep RL достаточно хорошо обобщает, чтобы справляться с несколькими задачами. Хотя его «восприятие» острее, оно еще не находится на уровне «для управления ImageNet», которому OpenAI Universe пытается бросить вызов, но у него сейчас много ограничений.
До появления сильно обобщенного Deep RL мы все еще имели дело со стратегиями обучения с очень узкой адаптацией. В этом отношении подходящим примером является статья «Может ли Deep RL решить игры Erdos-Selfridge-Spencer?», в соавторстве с которой я являюсь. Мы рассматриваем игрушку для двух игроков, в которой есть только закрытое решение для достижения наилучших результатов. В первом эксперименте мы оставили игрока 1 без изменений и обучили игрока 2 алгоритму обучения с подкреплением, который фактически включал игрока 1 как часть среды. Путем противостояния между игроком 2 и игроком 1 мы, наконец, получаем лучшую производительность игрока 2. Но когда мы обучаем Игрока 1 в обратном порядке, мы обнаруживаем, что он работает все хуже и хуже, потому что он играет только против лучшего игрока 2, а не против других неоптимальных ситуаций.
Принятая NIPS 2017 статья Марка Ланктота и др.A Unified Game-Theoretic Approach to Multiagent Reinforcement LearningАналогичные результаты также были показаны. На картинке ниже два агента играют в лазертаг (игра с лазерным оружием), а их метод обучения — мультиагентное обучение с подкреплением. Чтобы проверить универсальность системы, исследователи сыграли в игру со случайно сгенерированными агентами 5. Вот результаты исправления одного игрока и обучения другого игрока с помощью обучения с подкреплением:
Видно, что Игрок 1 и Игрок 2 приближаются друг к другу и стреляют друг в друга. После этого исследователи поместили Игрока 1 из этого эксперимента в другой эксперимент против Игрока 2. После обучения игроки, которые теоретически должны изучить все стратегии противника, становятся такими:
Похоже, это особенность многоагентного обучения с подкреплением: когда агенты обучаются друг с другом, они развиваются совместно; агент хорошо справляется с противоборством, но его производительность ухудшается, когда он обучается с невидимым противником. В двух вышеприведенных анимациях используется один и тот же алгоритм обучения и одни и те же гиперпараметры.Единственная разница между ними заключается в том, что в первом используется случайное начальное число, а его поведение расхождения полностью выводится из случайности при начальных условиях.
Тем не менее, в этом типе конкурентной игровой среды есть некоторые, казалось бы, противоречивые результаты. Этот блог от OpenAICompetitive Self-PlayПредставлен их исследовательский прогресс в этой области, и самостоятельная игра также является важной частью AlphaGo и AlphaZero. Я предполагаю, что если агенты учатся с одинаковой скоростью, они могут играть друг против друга и ускорять свою эволюцию, но если кто-то учится быстрее, он злоупотребляет отставанием. Это кажется легко решить, но когда вы меняете симметричную игру на общее многоагентное противостояние, вы знаете, как сложно обеспечить одинаковую скорость обучения.
Deep RL нестабилен, и результаты трудно воспроизвести.
Гиперпараметры влияют на поведение обучающейся системы и присутствуют почти во всех алгоритмах машинного обучения, обычно устанавливаемых вручную или настраиваемых путем случайного поиска. Контролируемое обучение стабильно: фиксированный набор данных, цель в реальном времени. Если вы немного измените гиперпараметры, это не сильно повлияет на производительность всей системы. Есть хорошие и плохие гиперпараметры, но благодаря опыту, накопленному исследователями за многие годы, теперь мы можем легко найти некоторые подсказки об уровне гиперпараметров во время обучения. Основываясь на этих подсказках, мы можем узнать, сбились ли мы с пути и стоит ли продолжать обучение или вернуться и изменить дизайн.
Тем не менее, Deep RL в настоящее время все еще очень нестабилен, что также стало узким местом, ограничивающим исследования.
Когда я впервые попал в Google Brain, первое, что я сделал, — это воспроизвел их алгоритм на основе документа по алгоритму NAF. Я думаю, что могу использовать Theano в совершенстве (удобно конвертировать в TensorFlow), а также у меня большой опыт Deep RL. Первая работа статьи также находится в Google Brain. Я могу обратиться к нему за советом в любое время. в благоприятное время и место должно быть выполнено за 2-3 недели.
Но оказалось, что мне потребовалось 6 недель, чтобы воспроизвести их результаты. Причиной сбоя в основном является какая-то программная ошибка, но суть в том, почему это занимает так много времени?
Для этой задачи мы можем начать с самой простой задачи в OpenAI Gym: Pendulum. Маятник имеет маятник, закрепленный в точке, которая качается, когда к маятнику прикладывается сила. Его входное состояние трехмерно (положение и скорость маятника), его пространство действия одномерно (сила, приложенная к маятнику), и наша цель — идеально сбалансировать маятник. Способ его реализации очень прост, так как мы хотим сделать маятник близким к вертикали (перевернутым), то можно установить вознаграждение за угол между маятником и вертикальным направлением: чем меньше угол, тем выше вознаграждение. Это показывает, что функция вознаграждения вогнута.
Почти успешная стратегия, хотя она и не выполняет полную инверсию, но создает крутящий момент, необходимый для противодействия гравитации.
На картинке ниже график производительности, который я получил после исправления всех ошибок: каждая строка вычислялась 10 раз независимо, с использованием одних и тех же гиперпараметров, но с разными случайными начальными значениями.
Можно обнаружить, что только 7 из 10 актеров работают. На самом деле, процент отказов в 30% вполне нормальный.Давайте посмотрим на результаты исследования, посвященного максимизации вариационной информации.Их среда — HalfCheetah, а награда разреженная.Ось Y на рисунке — это награда за эпизод, а ось X — временной шаг Алгоритм TRPO.
Темная кривая представляет собой среднюю производительность 10 случайных семян, а заштрихованная область представляет 25%-75%. Прежде всего, я хочу заявить, что этот график является хорошим аргументом в пользу VIME, но это настолько хорошо работающий эксперимент, что вознаграждение всегда близко к 0,25% времени, что составляет 25%-й процент неудач, и Причина просто из-за случайного семени.
Таким образом, хотя контролируемое обучение является стабильным, в некоторых случаях оно имеет исключения. Если мой код обучения с учителем не работает в 30% случаев, то я могу быть уверен, что с кодом что-то не так. Но если это обучение с подкреплением, то я не знаю, баги из-за гиперпараметров или просто из-за того, что у меня дурное лицо.
Изображение выше взято из статьи «Почему машинное обучение такое сложное?» Основная мысль автора заключается в том, что машинное обучение добавляет много измерений к пространству случаев сбоев, и эти измерения еще больше обогащают виды сбоев. Глубокое RL добавляет новое измерение «случайности» в обучение с подкреплением, и единственный способ справиться с этим — вложить больше экспериментов в проблему, чтобы уменьшить зашумленные данные.
Как упоминалось ранее, у алгоритма Deep RL есть такие проблемы, как низкая эффективность выборки и нестабильные результаты обучения.Случайная размерность, несомненно, хуже, что значительно снизит скорость конечного результата. Возможно, нам нужно выполнить всего 1 миллион шагов, но после умножения 5 случайных начальных чисел и корректировки гиперпараметров простая проверка гипотезы потребует взрывного объема вычислений.
Андрей Карпаты как-то сказал это, когда еще работал в OpenAI:
дать вам утешение. Когда я работал над рядом задач обучения с подкреплением, мне потребовалось 50% времени, или почти 6 недель, чтобы восстановить градиент политики. В то время я занимался этим долгое время, у меня все еще был массив графических процессоров, и у меня была куча опытных экспертов и друзей с хорошими связями, с которыми я мог встречаться каждый день.
Я считаю, что вся теория дизайна, которую я узнал о CNN из обучения с учителем, кажется бесполезной в области обучения с подкреплением. О каком кредитном присвоении, контроле битрейта совершенно бесполезно, о каких ResNets, батчнормах, дипсетях говорить вообще не имеют права.
В обучении с учителем, если мы хотим чего-то достичь, даже если в конечном итоге делаем это плохо, мы можем обобщить что-то неслучайное. Но обучение с подкреплением не так: если дизайн функции неправильный или гиперпараметры не настроены должным образом, конечный результат может быть хуже, чем случайная генерация. И только потому, что это обучение с подкреплением, даже если все идеально, у нас все еще есть 30% отказов.
Короче говоря, ваша неудача связана не с тем, что вы выбрали нейронную сеть, а с тем, что вы выбрали глубокую RL-дорогу, из которой нет возврата.
Случайное семя похоже на канарейку, которую запустили в шахту, чтобы проверить, не ядовит ли газ, он все равно может вызвать такую большую разницу, так что если наш код перекошен, конечный результат можно себе представить... Конечно, хорошие новости в том, что мы не ломаем голову, чтобы представить, потому что кто-то догадался за нас...Deep Reinforcement Learning That Matters. Они пришли к выводу, что:
-
Умножение вознаграждений и констант может оказать значительное влияние на производительность;
-
5 случайных начальных значений (обычно используемых в статьях) может быть недостаточно, так как после тщательного скрининга можно получить непересекающиеся доверительные интервалы;
-
Даже если используются все те же гиперпараметры и алгоритмы, разные реализации будут иметь разную производительность при решении одной и той же задачи.
Я считаю, что обучение с подкреплением очень чувствительно к изменениям, которые происходят во время инициализации и обучения, потому что все данные собираются в режиме реального времени, и единственная метрика, которую мы можем отслеживать, вознаграждение, является скаляром. Стратегия, которая хорошо работает в случайном порядке, будет задействована быстрее, чем стратегия, которая в случайном порядке неприменима, и если хорошая стратегия не может вовремя дать хорошие примеры, обучение с подкреплением сделает вывод, что все ее характеристики плохие.
Лендинговое приложение Deep RL
Нельзя отрицать, что Deep RL сейчас выглядит довольно крутой областью, особенно когда дело доходит до журналистики. Представьте, что одна модель может обучаться только с необработанными изображениями, и нет необходимости индивидуально настраивать ее для каждой игры.Подумайте об AlphaGo и AlphaZero, вы все еще немного взволнованы?
Однако, помимо этих нескольких успешных случаев, нам трудно найти другие примеры применения Deep RL с практической ценностью.
Я также думал о том, как использовать технологию Deep RL в реальной жизни, жизни, производстве, и, наконец, обнаружил, что это слишком сложно реализовать. В конце концов мне удалось найти только два многообещающих проекта: один для снижения энергопотребления в центрах обработки данных, а другой для недавно предложенного проекта AutoML Vision. Оба являются проектами Google, но OpenAI уже предлагал что-то похожее на последний.
Audi также экспериментирует с обучением с подкреплением, насколько мне известно, и они продемонстрировали беспилотный автомобиль на NIPS, предположительно с использованием технологии Deep RL. Кроме того, есть модели реферирования текста, чат-боты и реклама на основе Deep RL, но раз ее задействуют в коммерческом использовании, даже если это действительно будет сделано, то теперь «разумно» выберут молчание.
Таким образом, Deep RL по-прежнему является узкой и относительно популярной областью исследований.Вы можете догадаться, какие бизнес-заговоры существуют в крупных компаниях, но как инсайдер отрасли я думаю, что это маловероятно.
Глядя в будущее
В академических кругах есть старая поговорка, что каждый исследователь должен научиться ненавидеть свою область. Фишка в том, что большинство исследователей делают это из страсти и интереса, и им это не надоедает.
Это, вероятно, мой самый большой опыт в исследовании обучения с подкреплением. Хотя это всего лишь мое личное мнение, я все же считаю, что мы должны распространить обучение с подкреплением на более богатые области, даже на проблемы, которые, кажется, не имеют места для применения. Мы должны изучить обучение с подкреплением более тщательно.
Вот некоторые из условий, которые, как я считаю, помогут Deep RL добиться дальнейшего развития:
-
Легко генерировать почти бесконечный опыт;
-
Свести задачу к более простой форме;
-
Внедрить самообучение в обучение с подкреплением;
-
Существует четкий способ определить, что является познаваемым, безотзывным вознаграждением;
-
Если вознаграждение должно быть сформировано, оно должно быть, по крайней мере, разнообразным.
Ниже приведены некоторые разумные предположения, которые я перечислил относительно будущих направлений исследований, и я надеюсь, что Deep RL преподнесет нам еще больше сюрпризов в будущем.
-
Достаточно локального оптимума.Мы всегда стремились к глобальной оптимальности, но не слишком ли высокомерна эта идея? В конце концов, эволюция человека движется только в нескольких направлениях. Может быть, в будущем достаточно будет найти локальный оптимум, вместо того, чтобы слепо гнаться за глобальным оптимумом;
-
Код не может решить проблемы, приходит аппаратное обеспечение.Я уверен, что некоторые люди думают, что достижения искусственного интеллекта связаны с прорывом аппаратных технологий, хотя я думаю, что аппаратные средства не могут решить все проблемы, я все же должен признать, что аппаратные средства играют в этом важную роль. Чем быстрее работает машина, тем меньше нам нужно беспокоиться об эффективности и тем легче ее исследовать;
-
Добавьте больше обучающих сигналов.Редкие награды трудно изучить, потому что у нас недостаточно известной информации, чтобы быть полезной;
-
Обучение на основе моделей может раскрыть эффективность выборки.В принципе, хорошая модель может решить ряд проблем, как и AlphaGo, возможно, стоит попробовать добавить модельный подход;
-
Используйте обучение с подкреплением, например, тонкую настройку параметров.Первая статья AlphaGo началась с обучения с учителем, а затем была проведена тонкая настройка RL. Это хороший подход, потому что он позволяет нам использовать более быстрый, но менее функциональный подход для ускорения начального обучения;
-
Награды можно изучить.Если дизайн вознаграждения так сложен, может быть, мы можем позволить системе научиться устанавливать вознаграждение самостоятельно.Теперь, когда имитационное обучение и обучение против подкрепления хорошо развиты, возможно, эта идея тоже сработает;
-
Помогите повысить эффективность с помощью трансферного обучения.Трансферное обучение означает, что мы можем использовать ранее накопленные знания о задачах для изучения новых знаний, что, безусловно, является тенденцией развития;
-
Хорошее предварительное знание может значительно сократить время обучения.Это аналогично предыдущему пункту. Существует мнение, что трансферное обучение заключается в использовании прошлого опыта, чтобы заложить хорошую основу для изучения других задач. Алгоритмы RL предназначены для работы с любым марковским процессом принятия решений, который, возможно, является корнем всех зол. Затем, если мы признаем, что наше решение будет хорошо работать только в небольшом подмножестве сред, мы сможем использовать совместное использование для решения всех проблем. Питер Аббил сказал в своем выступлении, что Deep RL нужно решать только задачи в реальном мире.Я согласен с этой точкой зрения, поэтому мы также можем построить реальный мир путем обмена, так что Deep RL нужно только решать реальные задачи. мировые задачи. RL может быстро осваивать реальные задачи за счет того, что хуже справляется с виртуальными задачами;
-
Сложность и легкость диалектического преобразования.Это точка зрения, выдвинутая BAIR (Berkeley AI Research).Они обнаружили из работы DeepMind, что если мы добавим в среду несколько агентов, чтобы усложнить задачу, их процесс обучения на самом деле значительно упростится. Вернемся к ImageNet: модель, обученная на ImageNet, обобщает лучше, чем модель, обученная на CIFAR-100. Так что, возможно, нам не нужна очень обобщенная система обучения с подкреплением, просто используйте ее как общую отправную точку.
Оригинальный адрес: www.alexirpan.com/2018/02/14/rl-hard.html