Глубинное обучение с подкреплением пока не работает |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-03-06 01:26 Философия ИИ, системы технического зрения, ошибки нейронных сетей, алгоритмы машинного обучения, реализация нейронной сети На семинаре мы обсудим статью "Deep Reinforcement Learning Doesn't Work Yet", автор которой решил исправить проблему недостатка работ, рассказывающих о негативных сторонах глубинного обучения с подкреплением. Будут затронуты темы текущих минусов данного метода (н-р, неэффективность обучения), подводных камней, возникающих при его использовании (нестабильность результатов и многое другое), и целесообразности применения в различных задачах. Глубинное обучение с подкреплением пока не работает Об авторе. Алекс Ирпан — разработчик из группы Brain Robotics в Google, до этого работал в лаборатории Berkeley Artificial Intelligence Research (BAIR). Здесь в основном цитируются статьи из Беркли, Google Brain, DeepMind и OpenAI за последние несколько лет, потому что их работы наиболее заметны с моей точки зрения. Почти наверняка я что-то упустил из более старой литературы и от других организаций, так что прошу прощения — я всего лишь один человек, в конце концов. Введение Однажды в Facebook я заявил следующее. Когда кто-то спрашивает, может ли обучение с подкреплением (RL) решить их проблему, я сразу отвечаю, что не может. Думаю, что это верно как минимум в 70% случаев.Глубинное обучение с подкреплением сопровождается массой шумихи. И на то есть хорошие причины! Обучение с подкреплением (RL) — невероятно общая парадигма. В принципе, надёжная и высокопроизводительная система RL должна быть прекрасна во всём. Слияние этой парадигмы с эмпирической силой глубинного обучения очевидно само по себе. Глубинное RL — это то, что больше всего похоже на сильный ИИ, и это своего рода мечта, которая подпитывает миллиарды долларов финансирования. К сожалению, в реальности эта штука пока не работает. Но я верю, что она выстрелит. Если бы не верил, то не варился бы в этой теме. Но впереди куча проблем, многие из которых фундаментально сложны. Прекрасные демки обученных агентов скрывают всю кровь, пот и слёзы, что пролились в процессе их создания. Несколько раз я видел, как людей соблазняли последние результаты. Они впервые пробовали глубинное RL и всегда недооценивали трудности. Без сомнения, эта «модельная задача» не так проста, как кажется. И без сомнения, эта область несколько раз их ломала, прежде чем они научились устанавливать реалистичные ожидания в своих исследованиях. Тут нет чьей-то персональной ошибки. Здесь системная проблема. Легко нарисовать историю вокруг положительного результата. Попробуйте сделать это с отрицательным. Проблема в том, что исследователи чаще всего получают именно отрицательный результат. В некотором смысле такие результаты даже более важны, чем положительные. В этой статье я объясню, почему глубинное RL не работает. Приведу примеры, когда он всё-таки работает и как добиться более надёжной работы в будущем, на мой взгляд. Я делаю это не для того, чтобы люди перестали работать над глубинным RL, а потому что легче добиться прогресса, если все понимают наличие проблем. Легче достичь согласия, если реально говорить о проблемах, а не снова и снова натыкаться на те же грабли отдельно друг от друга. Хотелось бы видеть больше исследований на тему глубинного RL. Чтобы сюда приходили новые люди. И чтобы они знали, во что ввязываются. Прежде чем продолжить, позволю несколько замечаний.
Без дальнейших церемоний, вот некоторые из случаев, когда глубинное RL даёт сбой. Глубинное обучение с подкреплением может быть ужасно неэффективным Самый известный бенчмарк для глубинного обучения с подкреплением — игры Atari. Как показано в ставшей известной статье Deep Q-Networks (DQN), если объединить Q-Learning с нейронными сетями разумного размера и некоторыми трюками оптимизации, то можно достичь человеческих показателей в нескольких играх Atari или превзойти их. Учтите, что 18 млн фреймов на самом деле очень хороший результат, ведь предыдущий рекорд принадлежал системе Distributional DQN (Bellemare et al, 2017), которой требовалось 70 млн фреймов, чтобы достичь результата 100%, то есть примерно в четыре раза больше времени. Что касается Nature DQN (Mnih et al, 2015), он вообще никогда не достигает 100% медианного результата, даже после 200 миллионов фреймов. Когнитивное искажение «ошибка планирования» гласит, что завершение задачи обычно занимает больше времени, чем вы предполагали. В обучении с подкреплением есть собственная ошибка планирования — для обучения обычно требуется больше образцов, чем вы думали. Проблема не ограничивается играми Atari. Второй по популярности тест — бенчмарки MuJoCo, набор задач в физическом движке MuJoCo. В этих задачах на входе обычно даются положение и скорость каждого шарнира в симуляции некоего робота. Хотя здесь не нужно решать задачу зрения, системам RL требуется для обучения от до шагов, в зависимости от задачи. Это невероятно много для контроля в таком простом окружении. Статья DeepMind по паркуру (Heess et al, 2017), проиллюстрированная ниже, обучена с применением 64 воркеров на протяжении более 100 часов. В статье не уточняется, что такое «воркер», но я предполагаю, что это означает один процессор.
Но это потребовало 6400 часов процессорного времени, что немного разочаровывает. Не то чтобы я рассчитывал на меньшее время… просто печально, что в простых навыках глубинное RL по-прежнему на порядок уступает уровню обучения, который мог бы быть полезен на практике. Здесь есть очевидный контраргумент: а что если просто игнорировать эффективность обучения? Есть определённые окружения, позволяющие легко генерировать опыт. Например, игры. Но для любого окружения где такое невозможно, RL сталкивается с огромными проблемами. К сожалению, большинство окружений попадают именно в эту категорию. Если вас волнует только итоговая производительность, то многие проблемы лучше решаются другими методами При поиске решений любой проблемы обычно приходится искать компромисс в достижении разных целей. Вы можете сделать акцент на действительно хорошем решении именно этой конкретной проблемы, или вы можете сделать акцент на максимальном вкладе в общее исследование. Лучшие проблемы — те, где для получения хорошего решения требуется хороший вклад в исследования. Но в реальности трудно найти проблемы, которые отвечают этим критериям.
Для обучения с подкреплением обычно нужна функция вознаграждения Обучение с подкреплением предполагает существование функции вознаграждения. Обычно она или есть изначально, или настраивается вручную в автономном режиме и остаётся неизменной во время обучения. Я говорю «обычно», потому что бывают исключения, такие как имитационное обучение или обратное RL (когда функция вознаграждения восстанавливается постфактум), но в большинстве вариантов RL используют вознаграждение как оракул.
Сложность разработки функции вознаграждения Сделать функцию вознаграждения не так сложно. Трудности появляются, когда вы пытаетесь создать такую функцию, которая будет поощрять правильное поведение, и в то же время система сохранит обучаемость. К сожалению, вознаграждение с плавным ростом может быть предвзято (bias). Как уже говорилось, из-за этого проявляется неожиданное и нежелательное поведение. Хорошим примером являются гонки на лодках из статьи в блоге OpenAI. Предполагаемая цель — прийти к финишу. Можете представить вознаграждение как +1 за окончание гонки в заданное время, и вознаграждение 0 в ином случае. Функция вознаграждения даёт очки за пересечение чекпоинтов и за сбор бонусов, которые позволяют быстрее добраться до финиша. Как выяснилось, сбор бонусов даёт больше очков, чем завершение гонки.
Алгоритмы RL попадают в чёрную дыру, если им приходится более-менее догадываться об окружающем мире. Самая универсальная категория безмодельных RL — это почти как оптимизация «чёрного ящика». Таким системам только разрешают предположить, что они находятся в MDP (марковский процесс принятия решений) — и больше ничего. Агенту просто говорят, что вот за это ты получаешь +1, а за это — не получаешь, а всё остальное должен узнать самостоятельно. Как и при оптимизации «чёрного ящика», проблема в том, что хорошим считается любое поведение, которое даёт +1, даже если вознаграждение получено неправильным путём. Классический пример не из сферы RL — когда кто-то применил генетические алгоритмы для проектирования микросхем и получил схему, в которой для окончательного дизайна был необходим один неподключенный логический вентиль. Серые элементы необходимы для корректной работы схемы, в том числе элемент в левом верхнем углу, хотя он ни к чему не подключен. Из статьи “An Evolved Circuit, Intrinsic in Silicon, Entwined with Physics” Или более свежий пример — вот публикация в блоге Salesforce от 2017 года. Их целью было составление резюме для текста. Базовая модель обучалась с учителем, затем её оценивали автоматизированной метрикой под названием ROUGE. ROUGE — это недифференцируемое вознаграждение, но RL умеет работать с такими. Так что они попытались применить RL для оптимизации ROUGE напрямую. Это даёт высокий показатель ROUGE (ура!), но на самом деле не очень хорошие тексты. Вот пример. Баттона лишили его 100-й гонки за McLaren после того, как ERS не пустила его на старт. Так завершились неудачные выходные для британца. Баттона опередили в квалификации. Финишировал впереди Нико Росберга в Бахрейне. У Льюиса Хэмилтона. В 11 гонках.. Гонка. Чтобы лидировать 2000 кругов.. В... И. — Paulus et al, 2017 И хотя модель RL показала максимальный результат ROUGE… …они в итоге решили использовать другую модель для составления резюме. Ещё один забавный пример. Это из статьи Popov et al, 2017, также известной как «статья по складыванию конструктора Лего». Авторы применяют распределённую версию DDPG для обучения правилам захвата. Цель — ухватить красный кубик и насадить его на синий. Они заставили её работать, но столкнулись с интересным случаем сбоя. Начальное подъёмное движение вознаграждается исходя из высоты поднятия красного блока. Это определяется z-координатой нижней грани кубика. В одном из вариантов сбоя модель научилась переворачивать красный кубик нижней гранью вверх, а не поднимать его.
Для справки, здесь одна из функций вознаграждения из статьи по складыванию конструктора Лего. Не знаю, сколько времени ребята потратили на разработку этой функции, но по количеству членов и разных коэффициентов я бы сказал «много». В разговорах с другими исследователями RL я слышал несколько историй об оригинальном поведении моделей с неправильно установленными вознаграждениями.
Правда, всё это — истории из чужих уст, лично я не видел видеоролики с таким поведением. Но ни одна из этих историй не кажется мне невозможной. Я погорел на RL слишком много раз, чтобы верить в обратное. Знаю людей, которые любят рассказывать истории об оптимизаторах скрепок. Ладно, я понимаю, честно. Но по правде мне надоело слушать эти истории, потому что они всегда говорят о некоем сверхчеловеческом дезориентированном сильном ИИ как о реальной истории. Зачем выдумывать, если вокруг столько настоящих историй, которые происходят каждый день. Даже с хорошим вознаграждением бывает трудно избежать локального оптимума Предыдущие примеры RL часто называют «хаками вознаграждения». Как по мне, это умное, нестандартное решение, которое приносит большее вознаграждение, чем предполагаемое решение от проектировщика задачи. Вот самое правдоподобное объяснение, которое я могу придумать по поводу того, что произошло во время обучения.
Это очень смешно, но явно не то, что мы хотим от робота. Вот ещё один неудачный пример, на этот раз в окружении Reacher (видео) В этом прогоне случайные начальные веса, как правило, выдавали сильно положительные или сильно отрицательные значения для действий. Из-за этого большинство действий выполнялись с максимально или минимально возможным ускорением. В самом деле, сильно раскрутить модель очень легко: просто выдавайте высокую величину усилия на каждый шарнир. Когда робот раскрутился, уже сложно выйти из этого состояния каким-то понятным способом: чтобы остановить безудержное вращение, следует предпринять несколько шагов разведки. Конечно, такое возможно. Но в этом прогоне такое не произошло. В обоих случаях мы видим классическую проблему разведки?эксплуатации, которая с незапамятных времён преследует обучение с подкреплением. Ваши данные вытекают из текущих правил. Если текущие правила предусматривают широкую разведку, вы получите ненужные данные и ничему не обучитесь. Слишком сильно эксплуатируете — и «прошьёте» неоптимальное поведение. Есть несколько интуитивно приятных идей на этот счёт — внутренние побуждения и любопытство, разведка на основе подсчёта и т.д. Многие из этих подходов впервые предложили в 80-е годы или ранее, а некоторые позже пересмотрели для моделей глубокого обучения. Но насколько я знаю, ни один подход не работает стабильно во всех средах. Иногда помогает, иногда нет. Было бы неплохо, чтобы какой-то трюк разведки срабатывал везде, но я сомневаюсь, что в обозримом будущем найдут серебряную пулю такого калибра. Не потому что никто не пытается, а потому что разведка-эксплуатация очень, очень, очень, очень сложное дело. Цитата из статьи о многоруком бандите из Википедии: Впервые в истории эта проблема была изучена учёными стран-союзников Второй мировой войны. Она оказалась настолько трудноразрешимой, что, по словам Питера Уиттла, её предложили подбросить немцам, чтобы германские учёные тоже потратили на неё своё время.(Источник: Q-Learning for Bandit Problems, Duff 1995) Я представляю глубинное RL как беса, который специально неправильно понимает ваше вознаграждение и активно ищет самый ленивый способ достижения локального оптимума. Немного смешно, но это оказалось действительно продуктивным мышлением. Даже если глубинное RL работает, он может переобучиться до странного поведения Глубинное обучение популярно, потому что это единственная область машинного обучения, где социально приемлемо обучаться на тестовом наборе.(Источник) Положительная сторона обучения с подкреплением в том, что если хотите добиться хорошего результата в конкретной среде, то можете переобучаться как сумасшедший. Недостаток в том, что если нужно расширить модель на любую другую среду, вероятно, она будет плохо работать из-за сумасшедшей переобученности. Сети DQN справляются со многими играми Atari, потому что всё обучение каждой модели сосредоточено на единственной цели — добиться максимального результата в одной игре. Окончательную модель невозможно расширить на другие игры, потому что её так не обучали. Вы можете настроить обученную DQN для новой игры Atari (см. работу Progressive Neural Networks (Rusu et al, 2016)), но никакой гарантии, что такой перенос состоится, и обычно никто не ожидает этого. Это не тот дикий успех, который видят люди на предобученных признаках ImageNet. Чтобы предупредить некоторые очевидные комментарии: да, в принципе, обучение на широком диапазоне сред может решить некоторые проблемы. В отдельных случаях такое расширение действия модели происходит само собой. Примером может служить навигация, где можно пробовать случайные локации целей и использовать универсальные функции для обобщения. (см. Universal Value Function Approximators, Schaul et al, ICML 2015). Я считаю эту работу очень многообещающей, и позже приведу больше примеров из этой работы. Но думаю, что возможности обобщения глубинного RL пока не настолько велики, чтобы справиться с разнообразным набором задач. Восприятие стало намного лучше, но у глубинного RL ещё впереди тот момент, когда появится «ImageNet для управления». OpenAI Universe пыталась разжечь этот костёр, но из того, что я слышал, задача оказалась слишком сложной, так что они добились немногого. Пока нет такого момента для обобщения моделей, мы застряли с удивительно узкими по охвату моделями. В качестве примера (и в качестве повода посмеяться над моей собственной работой) посмотрим на статью Can Deep RL Solve Erdos-Selfridge-Spencer Games? (Raghu et al, 2017). Мы изучили комбинаторную игру для двух игроков, где есть решение в аналитическом виде для оптимальной игры. В одном из первых экспериментов мы зафиксировали поведение игрока 1, а затем обучили игрока 2 с помощью RL. При этом вы можете считать действия игрока 1 частью среды. Обучая игрока 2 против оптимального игрока 1, мы показали, что RL способен показать высокий результат. Но когда мы применили те же правила против неоптимального игрока 1, то эффективность игрока 2 упала, потому что она не распространялась на неоптимальных противников. Авторы статьи Lanctot et al, NIPS 2017 получили похожий результат. Здесь два агента играют в лазертаг. Агенты обучены с помощью мультиагентного обучения с подкреплением. Для проверки обобщения обучение запустили с пятью случайными исходными точками (сидами). Вот видеозапись агентов, которых обучили играть друг против друга.
Даже без учёта обобщения может статься, что финальные результаты нестабильны и их трудно воспроизвести Почти у каждого алгоритма машинного обучения есть гиперпараметры, которые влияют на поведение системы обучения. Часто их выбирают вручную или случайным поиском. Если вам так станет легче, то я какое-то время занимаюсь этим — и потратил около 6 последних недель, чтобы вывести с нуля градиенты модели, которые работают в 50% случаев над кучей задач RL. И у меня есть кластер GPU и несколько друзей, с которыми обедаю каждый день — и они работают в данной области последние несколько лет. Нестабильность случайных сидов похожа на канарейку в угольной шахте. Если простая случайность приводит к такой сильной разбежке между прогонами, то представьте, какая разница возникнет при реальном изменении кода. К счастью, нам не нужно проводить этот мысленный эксперимент, потому что он уже проведён и описан в статье “Deep Reinforcement Learning That Matters” (Henderson et al, AAAI 2018). Вот некоторые выводы:
Моя теория в том, что RL очень чувствителен как к инициализации, так и к динамике учебного процесса, потому что данные всегда собираются в интернете и единственный контролируемый параметр — только размер вознаграждения. Модели, которые случайным образом сталкиваются с хорошими примерами для обучения, работают намного лучше. Если модель не видит хороших примеров, то она может вообще ничему не научиться, поскольку всё больше убеждается, что любые отклонения безрезультатны. А как же все великолепные достижения глубинного RL? Конечно, глубинное обучение с подкреплением добилось некоторых отличных результатов. DQN уже не новинка, но в своё время это было абсолютно сумасшедшее открытие. Одна и та же модель учится непосредственно по пикселям, без настройки на каждую игру в отдельности. И AlphaGo, и AlphaZero тоже остаются очень впечатляющими достижениями. С учётом этих ограничений, когда применять глубинное RL? Это априори сложный вопрос. Проблема в том, что вы пытаетесь применить один подход RL для разных окружений. Вполне естественно, что он не будет всегда работать.
(Краткое отступление: машинное обучение недавно обыграло профессиональных игроков в безлимитный техасский холдем. Программа использует одновременно системы Libratus (Brown et al, IJCAI 2017) и DeepStack (Morav??k et al, 2017). Я говорил с несколькими людьми, которые думали, что здесь работает глубинное RL. Обе системы очень классные, но в них не применяется глубинное обучение с подкреплением. Там используется алгоритм контрфактуальной минимизации сожаления и грамотное итерационное решение подигр). Из этого списка можно вычленить общие свойства, которые облегчают обучение. Ни одно из этих свойств, перечисленных ниже, не требуется для обучения, но чем больше их присутствует — тем определённо лучше будет результат.
Пример: Neural Architecture Search Можно объединить несколько принципов и проанализировать успех Neural Architecture Search. Согласно первоначальной версии ICLR 2017, после 12800 образцов глубинное RL способно спроектировать лучшие в своём роде архитектуры нейросетей. По общему признанию, в каждом примере требовалось обучать нейросеть до сходимости, но это всё равно очень эффективно по количеству образцов. Как упоминалось выше, наградой является точность валидации. Это очень богатый сигнал вознаграждения — если изменение структуры нейросети повысит точность всего с 70% до 71%, RL всё равно выиграет от этого. Кроме того, есть свидетельства того, что гиперпараметры в глубинном обучении близки к линейно независимым. (Это было эмпирически показано в работе Hyperparameter Optimization: A Spectral Approach (Hazan et al, 2017) — моё резюме здесь, если интересно). NAS не настраивает конкретно гиперпараметры, но думаю, вполне разумно, что решения проектирования нейросети принимаются таким образом. Это хорошая новость для обучения, учитывая сильные корреляции между решением и производительностью. Наконец, здесь не только богатая награда, но здесь именно то, что нам важно при обучении моделей. Все вместе эти причины позволяют понять, почему NAS требуется «всего» около 12800 обученных сетей для определения лучшей нейросети по сравнению с миллионами примеров, необходимых в других средах. С разных сторон всё играет в пользу RL. В целом, подобные истории успеха по-прежнему исключение, а не правило. Многие кусочки паззла должны правильно сложиться, чтобы обучение с подкреплением работало убедительно, и даже в этом случае будет непросто. В общем, сейчас глубинное RL нельзя назвать технологией, которая работает прямо из коробки. Взгляд в будущее Есть старая поговорка — каждый исследователь со временем обучается, как ненавидеть свою область исследований. Прикол в том, что исследователи всё равно продолжают заниматься этим, потому что им слишком нравятся проблемы.
Использовать обучение с подкреплением просто как этап тонкой настройки. Первая статья по AlphaGo начиналась обучением с учителем с последующей тонкой настройкой RL. Это хороший вариант, потому что он ускоряет первоначальное обучение, используя более быстрый, но менее мощный способ. Такой способ работал и в другом контексте — см. Sequence Tutor (Jaques et al, ICML 2017). Можете рассматривать его как начало процесса RL с разумным, а не случайным априорным распределением вероятностей (prior), где созданием этого «приора» занимается другая система. Функции вознаграждения могут стать обучаемыми. Машинное обучение обещает, что на основе данных можно научиться строить вещи более качественные, чем спроектированные человеком. Если настолько сложно подобрать функцию вознаграждения, то почему бы не применить для этой задачи машинное обучение? Имитационное обучение и обратное RL — эти богатые области показали, что функции вознаграждения можно неявно определять подтверждениями или рейтингами от человека. Самые известные научные работы по обратному RL и имитационному обучению — Algorithms for Inverse Reinforcement Learning (Ng and Russell, ICML 2000), Apprenticeship Learning via Inverse Reinforcement Learning (Abbeel and Ng, ICML 2004) и DAgger (Ross, Gordon, and Bagnell, AISTATS 2011). Из последних работ, которые расширяют эти идеи на область глубинного обучения — Guided Cost Learning (Finn et al, ICML 2016), Time-Constrastive Networks (Sermanet et al, 2017) и Learning From Human Preferences (Christiano et al, NIPS 2017). В частности, последняя из перечисленных статей показывает, что вознаграждение, выведенное из проставленных людьми рейтингов на самом деле оказалось лучше (better-shaped) для обучения, чем оригинальное жёстко закодированное вознаграждение — и это добротный практический результат. Из долгосрочных работ, где не используется глубинное обучение, мне понравились статьи Inverse Reward Design (Hadfield-Menell et al, NIPS 2017) и Learning Robot Objectives from Physical Human Interaction (Bajcsy et al, CoRL 2017). Перенос обучения. Перенос обучения обещает, что вы можете использовать знания из предыдущих задач, чтобы ускорить обучение новым задачам. Совершенно уверен, что за этим будущее, когда обучение станет достаточно надёжным, чтобы решать разрозненные задачи. Трудно перенести обучение, если вы вообще не можете обучаться, а при наличии задач А и Б тяжело предсказать, произойдёт ли перенос обучения с задачи А на задачу Б. По моему опыту, здесь либо очень очевидный ответ, либо совершенно непонятный. И даже в самых очевидных случаях требуется нетривиальный подход. Последние работы в этой области — Universal Value Function Approximators (Schaul et al, ICML 2015), Distral (Whye Teh et al, NIPS 2017) и Overcoming Catastrophic Forgetting (Kirkpatrick et al, PNAS 2017). Из более старых работ см. Horde (Sutton et al, AAMAS 2011). Например, робототехника показывает хороший прогресс в переносе обучения из симуляторов в реальный мир (из симуляции задачи на настоящую задачу). См. Domain Randomization (Tobin et al, IROS 2017), Sim-to-Real Robot Learning with Progressive Nets (Rusu et al, CoRL 2017) и GraspGAN (Bousmalis et al, 2017). (Дисклеймер: я работал над GraspGAN). Хорошие приоры могут сильно сократить время обучения. Это тесно связано с некоторыми из предыдущих пунктов. С одной стороны, перенос обучения заключается в использовании прошлого опыта для создания хороших априорных распределений вероятностей (priors) для других задач. Алгоритмы RL спроектированы для работы на любом марковском процессе принятия решений — и вот здесь возникает проблема с обобщением. Если мы считаем, что наши решения хорошо работают только в узком секторе окружений, то мы должны быть в состоянии использовать общую структуру для эффективного решения этих окружений. Пьетр Эббил в своих выступлениях любит отмечать, что глубинному RL нужно задавать только такие задачи, какие мы решаем в реальном мире. Согласен, что это во многом имеет смысл. Должен существовать некий приор реального мира (real-world prior), который позволяет нам быстро обучаться новым реальным задачам за счёт более медленного обучения нереалистичным задачам, и это совершенно приемлемый компромисс. Трудность в том, что такой приор реального мира очень сложно спроектировать. Однако думаю, есть хороший шанс, что это всё-таки возможно. Лично я в восторге от недавней работы по мета-обучению, потому что она даёт способ генерировать из данных разумные приоры. Например, если я хочу применить RL для навигации по складу, то было бы любопытно сначала использовать мета-обучение для обучения хорошей навигации в целом, а затем тонко настроить этот приор для конкретного склада, где будет двигаться робот. Это очень похоже на будущее, и вопрос в том, доберется туда мета-обучение или нет. Сводку последних работ по обучению навыкам учиться (learning-to-learn) см. в этой публикации от BAIR (Berkeley AI Research). Более сложные окружения парадоксально могут оказаться проще. Один из главных выводов статьи DeepMind по паркур-боту заключается в том, что если вы очень усложняете задачу, добавляя несколько вариаций задач, то в реальности упрощаете обучение, потому что правила не могут переобучиться в одной обстановке, не потеряв в производительности по всем остальным параметрам. Нечто подобное мы видели в статьях по рандомизации области (domain randomization) и даже в ImageNet: модели, обученные в ImageNet могут расширяться на другие среды намного лучше, чем те, которые обучались на CIFAR-100. Как я уже говорил, возможно, нам нужно только создать некий «ImageNet для управления», чтобы перейти к гораздо более универсальному RL. Есть много вариантов. OpenAI Gym наиболее популярная среда, но есть ещё Arcade Learning Environment, Roboschool, DeepMind Lab, DeepMind Control Suite и ELF. Наконец, хотя это обидно с академической точки зрения, но эмпирические проблемы глубинного RL могут не иметь значения с практической точки зрения. В качестве гипотетического примера представим, что финансовая компания использует глубинное RL. Они обучают торгового агента на прошлых данных фондового рынка США, используя три случайных сида. В реальном А/B-тестировании первый сид приносит на 2% меньше дохода, второй работает со средней прибыльностью, а третий приносит на 2% больше. В этом гипотетическом варианте воспроизводимость не имеет значения — вы просто разворачиваете модель, у которой доходность на 2% выше, и радуетесь. Аналогичным образом не имеет значения, что торговый агент может хорошо работать только в США: если он плохо расширяется на мировой рынок — просто не применяйте его там. Существует большая разница между экстраординарной системой и воспроизводимой экстраординарной системой. Возможно, стоит сосредоточиться на первой. Где мы сейчас Во многих отношениях меня раздражает текущее состояние глубинного RL. И всё же оно привлекает такой сильный интерес у исследователей, какого я не видел ни в какой другой области. Мои ощущения лучше всего выражаются фразой, которую Эндрю Ын упомянул в своём выступлении Nuts and Bolts of Applying Deep Learning: сильный пессимизм в краткосрочной перспективе, уравновешенный ещё более сильным долгосрочным оптимизмом. Сейчас глубинное RL немного хаотичное, но я по-прежнему верю в будущее. Однако если меня опять кто-нибудь спросит, может ли обучение с подкреплением (RL) решить их проблему, я по-прежнему сразу отвечу, что нет — не сможет. Но я попрошу повторить этот вопрос через несколько лет. К тому времени, возможно, всё получится. Источник: habr.com Комментарии: |
|