Внутри ИИ

Чего ожидать от обучения с подкреплением?

А что выходит за рамки имитационного обучения?

Джеффри Хинтон однажды привел пример: «Трофей не поместился бы в чемодан, потому что он был слишком [большим / маленьким]», где явно зависит от нашего собственного предшествующего знания мира о том, что «он» имеет в виду. Мы в значительной степени уверены, что чемодан обычно больше трофея, поэтому имеется в виду либо «слишком большой трофей», либо «слишком маленький чемодан».

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

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

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

из __future__ import ultimate_ai_solution

Имитационное обучение

Еще в 2016 году NVIDIA достигла наземных инноваций: вместо явной декомпозиции цели беспилотного автомобиля (например, определение разметки полосы движения, планирование пути и т. Д.) Во внутреннем представлении, созданном вручную, их система абстрагируется и оптимизирует всю необходимую обработку. шаги, включая внутреннее представление автоматически. В подходе NVIDIA реакция автомобиля на определенную обратную связь с его датчиками (например, угол поворота, скорость, изображение спереди и т. Д.), Которая, конечно, могла быть предварительно обработана передовыми методами глубокого обучения, не была явно запрограммирована, или они следовали концепция имитационного обучения.

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

Никогда! Мы, люди, однажды научились водить машину с помощью неизвестной обучающей функции, которую невозможно было извлечь. Тем не менее, результаты изученной функции вождения могут быть записаны (например, угол поворота, скорость и т. Д.), Чтобы нейронная сеть могла научиться сопоставлять последовательность изображений, обращенных вперед, к именно этим желаемым действиям. Это клонирование поведения выполняется системой NVIDIA DAVE-2 и называется имитационным обучением, которое по определению имитирует поведение уже функционирующей системы путем сквозного обучения самому конечному действию, а не частям того, что было бы последним действием. .

Тем не менее, имитационное обучение страдает различными проблемами, которые на практике могут быть фактически устранены обходными путями, чтобы стать функциональным, тем не менее, оно все еще остается в пределах своих возможных возможностей:

  1. Несовпадение распределения. Первоначальная попытка имитационного обучения может заключаться в том, чтобы собрать кучу часов игры человека с водителем, затем обучить систему и надеяться на лучшее. Это могло бы работать нормально при условии, что нейронная сеть не делает ошибок.
    Давайте для краткости представим, что произойдет в этом случае, если автомобиль, например, сбивается с пути?
    Он будет вести себя случайным образом, потому что мы не запрограммировали никаких корректирующих действий и даже не собирали эти данные. Наш собственный приор знает не только, как справляться с этими редкими ситуациями, но также и то, что существуют и более серьезные несчастные случаи, которых следует явно избегать! Таким образом, мы никогда не пытались врезаться в дерево, и мы никогда не сможем собрать эти данные.
    Вкратце: распределение собранных данных - это не только крошечное подмножество всех возможных ситуаций, когда они могут появиться. , но также в случае, если мы сможем собирать данные из всего дистрибутива, он будет страдать от слишком большого количества данных!
    Более последовательный подход будет заключаться в сборе данных, сеть на самом деле необходима для лучшего исследования (например, фокусируясь на новых состояниях или на тех, кто способен максимально использовать полученную информацию).
    С практической точки зрения, возможный обходной путь состоял бы в том, чтобы разместить перед автомобилем три камеры с поворотом примерно на 30 °, как это практиковала NVIDIA, в то время как левый утверждает, что все время держится направо, а правый настаивает на том, чтобы держаться налево.
    С помощью этого трюка можно было бы на самом деле осуществить эти корректирующие действия, однако это всего лишь удачное падение в океан.
  2. Человеческое поведение, подверженное ошибкам. Интуитивно понятно, что наша система должна быть лучше, чем наше собственное поведение при вождении, например, больше топлива, времени и эффективности истирания. Также может быть желательной особенно оптимизация с учетом определенных человеческих предпочтений, таких как комфорт вождения по сравнению с экономией времени. В общем, это не означает, что мы неспособны тщательно управлять автомобилем, это скорее касается микрооптимизации. Как подчеркивают Ли и Тодоров, даже естественные задачи, такие как движение руки, могут привести к огромной вариативности движений по каждой тропе.
    Будет гораздо более многообещающим, если мы сможем построить систему, которая не только способна копировать человеческие силы, но также создавать новые, особенно в тех областях, где у них больше вычислительной мощности.
  3. Отсутствие сопротивления дежавю: дважды наблюдать одно и то же не означает находиться в одной и той же ситуации.
    Имитационное обучение просто оптимизирует настоящее без предшествующих данных, то есть выполняет марковское свойство и без всякого предвидения: он живет и действует в настоящем. Прежнее можно было бы облегчить, используя данные последовательности в LSTM, например, наоборот, последнее не могло быть реализовано, хотя это могло быть разумным: предварительное вычисление возможных будущих результатов не только укрепило бы некоторый вид творчества, имея в виду множество решений. вместо самого популярного, но это также смягчило бы проблемы, когда присутствуют две допустимые траектории решения (например, движение влево или вправо от дерева), но среднее из них приведет к трагедии.

Может ли обучение с подкреплением решить эти три проблемы?

Да, все, кроме марковского свойства, которое на практике не могло быть реализовано.

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

Цель обучения с подкреплением

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

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

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

Обратите внимание, что по мере того, как мы станем лучше, нам придется продолжать не только предпринимать те действия, которые были многообещающими в прошлых итерациях, но также рассматривать новые необычные действия. Это называется компромиссом между эксплуатацией и исследованием, при котором в таких алгоритмах, как ε-greedy, небольшой процент отводится случайным действиям. Это момент, когда большинство людей останавливаются, заявляя: «Это хорошо работает, так зачем что-то менять?». Всегда есть лучшее решение, просто нужно время, деньги и усилия, чтобы изучить его ...

Определения

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

В основном участвуют всего две стороны: среда и агент. Среда предоставляет агенту подходящее наблюдение за текущим состоянием (например, изображение, видео, сенсорные данные и т. Д.), Которые обрабатываются агентом через политика (например, сверточная нейронная сеть), выводящая наиболее вероятное действие в этом текущем состоянии, которое затем может быть выполнено агентом в своей среде. Теперь Environment отвечает сигналом вознаграждение, оценивая качество этого шага. Это может быть положительный сигнал для поощрения определенного поведения или отрицательный для наказания за плохие решения. Конечно, весь процесс повторяется до тех пор, пока либо эпизод не завершится достижением цели, либо мы не достигнем верхнего предела. Некоторые алгоритмы зависят от данных, собранных на протяжении всего эпизода, например Градиент политики, другим просто требуется пакет {состояние, действие, вознаграждение , следующее состояние}, которое необходимо изучить.

А каковы критерии оптимизации?

Это просто максимизация суммы всех ожидаемых будущих наград в конкретном эпизоде.

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

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

Q-Learning

Q-Learning - один из самых известных конкретных алгоритмов обучения с подкреплением. Он был назван в честь Q-функции, которая оценивает сумму всей будущей награды, выполняя определенное действие в данном состоянии. Обратите внимание, что это не просто дает возможность узнать о нарушении политики, означающем любое {состояние, действие, вознаграждение, следующее state} - достаточно вместо одного целого эпизода, содержащего несколько таких пакетов, кроме того, он также снижает дисперсию: благодаря вычислению Q-функции алгоритм не полагается только на информацию одного эпизода. Вместо этого он предпочитает, чтобы те шаги, которые превратились в похожих ситуациях, а не в нескольких эпизодах, были хорошими. Один эпизод сам по себе всегда каким-то образом необычен и ошибочен, но в совокупности подчеркивается их основная общая закономерность.

И как на самом деле тренировать эту Q-функцию?

Q-функция, выводящая все будущие награды, может быть представлена ​​либо огромной таблицей с состояниями в виде строк и действиями в виде столбцов, либо нейронной сетью.

Говоря абстрактно, обучение может быть таким же простым, как показано на рисунке выше: добавьте к текущему вознаграждению за пакет данных Q-значение следующего состояния (при условии, что вы всегда будете предпринимать наилучшие действия в соответствии с Q-значением), и это по определению является текущим значением Q-Value. А теперь постарайтесь максимально увеличить эту награду.

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

Табличный пример Q-Learning: FrozenLake

В примере FrozenLake агент взаимодействует со своим окружением, получая состояние (от 1 до 16: текущая пластина) и отправляя желаемое действие (рассчитанное с помощью Q-функции), что приводит к определенной награде.

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

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

Более полезной, чем наш игрушечный пример, является игра под названием Breakout:

Четыре десятилетия назад Стив Джобс и Воз запрограммировали Breakout в Atari за четыре ночи, используя всего 42 TTL-чипа. Представляли ли они тогда, что теперь возможно с помощью обучения с подкреплением изучить продвинутую политику, способную самостоятельно наблюдать, как лучше всего играть? Искусственный интеллект, специально не запрограммированный для одной игры и явно не имеющий доступа к внутреннему представлению состояния? Это больше, чем просто знакомство с доступными действиями и поддержание мяча в живых, это стратегия игры: избегание как штрафов за попадание в оранжевые блоки (увеличенная скорость), так и начала игры (укороченная ракетка), кажется, вполне срабатывает. хорошо. По крайней мере, в более поздних итерациях…

RL на основе модели

И наконец, что не менее важно, все еще отсутствует высшая дисциплина, крем-де-ла-крем: мета-обучение. Алгоритм обучения на высшем уровне! О нет, только не крем. А пока мы будем придерживаться того, чтобы RL на основе моделей было таким же дальновидным, как мета-обучение, но более простым в использовании.

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

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

На следующем этапе уместным оказывается планирование через связанное дерево с учетом каждого достижимого состояния и соответствующего вознаграждения в пределах заранее определенного горизонта (например, 15 временных шагов) с помощью поиска по дереву Монте-Карло.

А сколько действий мы выполняем?

Только первый! Почему? Это потому, что выполнение первого действия этого связанного дерева, находящегося на пути траектории с высоким вознаграждением, довольно точно по сравнению с реальностью, тогда как весь путь был бы особенно подвержен ошибкам, поскольку изученная динамическая модель не является точной на 100%. В этом случае ошибки будут складываться на каждом временном шаге, а наша модель не сможет предсказать неожиданные изменения окружающей среды.

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

Конечно. Это об интуиции RL на основе моделей. Но почему это в некотором смысле призрачно?

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

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

Справедливо. Но есть ли какие-то практические применения, особенно по сравнению с Q-Learning?

Конечно! Фактически, это дает огромные преимущества в отношении эффективности выборки (т.е. необходимых эпизодов) в процессе планирования, как показано ниже.

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

Что мы уже успели осветить?

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

Я рада, что вы зашли так далеко, и призываю вас в качестве последнего замечания никогда не говорить

Алгоритмы самообучения - это будущее

еще раз, потому что сейчас, особенно после завершения великолепного Курса DeepRL в Калифорнийском университете в Беркли, вы можете сделать его темой сегодняшнего дня! Именно поэтому в прошлом месяце на meetup.ai Hamburg я выступал с докладом о точно таком же содержании.

Найдите примеры использования, в которых доступна не только четкая функция вознаграждения (маржа, CTR, количество аварий на милю, стабильность башни Jenga и т. д.), но также можно обеспечить безопасную среду, чтобы ошибки не возникали. Мне больно.

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

RL можно было бы использовать в качестве отправной точки и в меньшем смысле:
Самообучение в безопасной среде, например, взять наблюдаемые и, надеюсь, невидимые результаты (порядок товаров в интернет-магазине, взаимодействие с пользователем через веб-сайт, новая тактика в GO), а затем статически реализовать их в реальных условиях, что приведет к значительному увеличению возможностей системы.

Есть другие мысли? Не стесняйтесь оставлять записки. 😉