Введение в обучение с подкреплением в SAP Data Intelligence Sergey Abdurakipov, PhD Month 02, 2020 INTERNAL Partner logo Agenda Истории успеха Reinforcement Learning ▪ Игры Go, Warcraft, StarCraft. Роботизация. Прогнозирование рынка Основы Reinforcement Learning ▪ Центральная гипотеза о вознаграждении. Процесс обучения с подкреплением. Компромисс между разведкой и эксплуатацией знаний. Метод Q-learning ▪ Построение Q-таблицы. Пример. Алгоритм Q-learning. Deep Q-learning. Упражнение «Обучение торгового робота» в SAP Data Intelligence на Python © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 2 Истории успеха Reinforcement Learning Игры Go, Warcraft, StarCraft Прорыв в области искусственного интеллекта Alpha Go, Alpha Star 2081681993819799846994786333448627702865224538845305484256394568209274196127 3801537852564845169851964390725991601562812854608988831442712971531931755773 6620397247064840935 © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 3 Истории успеха Reinforcement Learning Роботизация OpenAI натренировали руку робота, похожую на человека, манипулировать физическими объектами с беспрецедентной ловкостью (2018 г.) © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 4 Истории успеха Reinforcement Learning Прогнозирование рынка Reinforcement Learning показывает высокую результативность при построение торговых роботов, позволяющих совершать сделки на фондовом рынке в режиме реального времени © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 5 Центральная идея Reinforcement Learning • Центральная идея Reinforcement Learning заключается в том, что агент учится у среды, взаимодействуя с ней и получая награды за выполнение действий • Обучение на основе взаимодействия с окружающей средой происходит из нашего естественного опыта • Ребенок получает либо позитивный, либо негативный опыт от огня © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 6 Процесс обучения с подкреплением Представим себе агента, который учится играть в Super Mario Процесс обучения подкреплению (RL) может быть смоделирован как цикл: © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 7 Центральная гипотеза о вознаграждении • Почему цель агента - максимизировать ожидаемое совокупное вознаграждение? – Это следует из гипотезы о вознаграждении • Все цели могут быть описаны путем максимизации ожидаемого совокупного вознаграждения • Совокупное вознаграждение на каждом временном шаге t может быть записано как: Ожидаемая награда за время игры (эпизод) © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 8 Центральная гипотеза о вознаграждении • Каждая награда обычно дисконтируется гаммой к показателю временного шага • С увеличением временного шага кошка становится ближе к нам, поэтому будущая награда становится все менее вероятной © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 9 Дискретные и непрерывные задачи Дискретная задача (Super Mario) Эпизод – дискретный набор состояний, действий и вознаграждений © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL Непрерывная задача (автоматическая торговля на бирже) Для этой задачи нет начальной точки и финального состояния. Агент продолжает бежать, пока мы не решим его остановить 10 Компромисс между «разведкой» и «применением» • Exploration/Exploitation trade off • Тип действия «Разведка находит больше информации об окружающей среде • Тип действия «Применение» использует известную информацию, чтобы максимизировать вознаграждение (reward) • Мы должны определить правило, которое помогает справиться с этим компромиссом «разведки и эксплуатации знаний» © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 11 Сценарий игры. Рыцарь и принцесса в замке Создаем алгоритм, позволяющий агенту ходить только по зеленым клеткам и достигать цели ! Рыцарь -1, step -100, dead -100, dead -100, dead -100, dead +100, win! Принцесса в замке © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL Что делать, когда два равноценных шага в две соседние зеленые клетки? Проблема зацикливания агента 12 Метод Q-learning. Заполнение Q-таблицы • Давайте создадим Q-таблицу, в которой мы рассчитаем максимальное ожидаемое будущее вознаграждение для каждого действия в каждом состоянии • В столбцах будут четыре действия (влево, вправо, вверх, вниз) • Строки будут состояниями • Значение каждой ячейки будет максимальным ожидаемым будущим вознаграждением за данное состояние и действие © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 13 Как рассчитываются значения Q-таблицы? Q-функция • Q-таблица заполняется согласно Action-Value function (или «Qфункция»), которая принимает два входа: «состояние» и «действие» • Она возвращает ожидаемое будущее вознаграждение за это действие в этом состоянии © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 14 Как находится Q-функция? Уравнение Беллмана Когда мы исследуем среду, мы итеративно обновляем Q-функцию Q (s, a), используя уравнение Беллмана, получая все лучшее и лучшее приближение = Знаем наилучшее действие в данном состоянии! © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 15 Q-learning алгоритм Шаг 1: Инициализация Q-таблицы • Мы строим Q-таблицу с m столбцами и n строками, m = количество действий и n = количество состояний • Мы инициализируем значения в 0 © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 16 Q-learning алгоритм Шаг 2: Выбор действия Epsilon rate = 1 • Выбираем действие a в текущем состоянии s среды на основе текущих оценок Q-таблицы Epsilon rate Epsilon rate = 0 © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL • Какое действие мы можем предпринять в начале, если каждое значение Q равно нулю? • Сначала больше исследуем среду, далее больше эксплуатируем знания о среде 17 Q-learning алгоритм Шаг 4 и 5: Оценка • Выполните действие a и наблюдайте за результирующим состоянием s’ и вознаграждением r. Обновляем функцию Q (s, a) • Мы выполняем действие a, которое мы выбрали на шаге 3. Затем выполнение этого действия возвращает нам новое состояние s’ и вознаграждение r • Затем, чтобы обновить Q (s, a), мы используем уравнение Беллмана: Новое значение Q Текущее значение Q © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL Вознаграждение за s, a Наибольшее значение Q между всеми возможными действиями из нового состояния s’ 18 Q-learning. Пример Игра: • Мышь съест один сыр = +1 • Два сыра = +2 • Большая куча сыра = +10 (конец эпизода) • Если вы едите крысиный яд = -10 (конец эпизода) Инициализируем Q-table Действия, a Состояния, s © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 19 Q-learning. Пример • Выбираем действие • На первом шаге мы выбираем между вариантами пойти направо и вниз • Мы выбираем вправо случайно, потому что еще ничего не знаем о среде (exploration) © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 20 Материалы упражнения Упражнение 1. Торговый робот на рынке акций Покупаем 1 акцию по текущей цене и наращиваем позицию Правила игры: Робот наблюдает за рынком акции каждый день Агент имеет 3 варианта действий: Ничего Продаем все позиции © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL • Либо пережидаем, ждем обновления цены • Либо покупаем одну акцию и наращиваем позицию • Либо продаем все имеющиеся позиции по акциям по текущей цене 22 Компания Boeing Boeing 777 • Данные с 2014 по настоящее время с дискретностью 1 день • Информация о цене открытия, закрытия, мин и макс • Период для тренировки 2014-2019 г. • Период тестирования модели 2019 и далее. Цена, $ Год © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 23 Упражнение. Торговый робот Шаг 1. Строим модель среды • Если агент решает купить акцию, его позиция (position_value) увеличивается • Если агент решает продать, его прибыль рассчитывается как разница между текущей ценой, по которой он решил продать, и ценой покупки акций в positions • Чтобы гарантировать, что торговый бот не научился продавать, не имея позиций, он штрафуется с наградой -1 120$ Sum [120-101$, 120-100$, 120-110$] = Sum(19$+20$+10$) = +49$ 110$ [ …] 105$ 101$ 100$ [101$, 100$, 110$] +1 Reward! Если продаем на Sum < 0 или продаем пустые позиции Positions = [101$] [101$, 100$] © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL -1 Reward! 24 Упражнение. Торговый робот Шаг 2. Создание среды Environment в Python © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL • Создание класса в Python • Инициализация переменных • Data, history, profits, positions, position_value etc. • Инициализация функция сброса состояния и обнуления параметров 25 Упражнение. Торговый робот Шаг 2. Создание среды Environment в Python Определяем шаг в среде Если покупаем Увеличиваем позицию Если продаем Штраф за продажу пустых позиций Если продаем Считаем профит От всех предыдущих покупок © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 26 Упражнение. Торговый робот Шаг 2. Создание среды Environment в Python Делаем шаг по времени Сумма позиции, если продать по следующей цене Получаем вознаграждение, если продаем на положительную сумму Штрафуем, когда продаем в минус или пустые позиции Возвращаем историю цены, position_value, награду и флаг done © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 27 Упражнение. Торговый робот Шаг 2. Тестирование среды Инициализируем среду Осуществляем 3 случайных действия и смотрим на результат Обновление цены на следующем шаге Купленные акции Текущая цена Не трогаем Покупаем Не трогаем Величина позиции; история изменения цены; купленные акции; текущая цена; профиты; реворд; done © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 28 Модель нейронной сети для оценки Q-функции Полносвязная нейросеть © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 29 Упражнение. Торговый робот Шаг 3. Создаем модель нейронной сети для оценки Q - функции История наблюдений цены Класс нейронной сети Продать “2” Не трогать “0” Купить “1” © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 30 Начинаем с исследования (Exploration vs Exploitation) Epsilon rate = 1 Epsilon rate = 1 Epsilon min = 0.1 Epsilon rate Epsilon decrease = 0.001 Epsilon rate = 0 © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL Start reduce epsilon = 200 steps 31 Упражнение. Торговый робот Шаг 4. Процедура обучения с подкреплением Начальные параметры: Двигаемся по эпохам Инициализация среды, включающую наблюдения и вознаграждения Сначала режим исследователя eps = 1 Argmax определяет номер действия 0,1,2, которое имеет максимальное значение текущей Q-функции Агент совершает действие в среде и получает новые состояния и вознаграждения Done - True - когда эпизод закончен, мы пробежали весь train set © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 32 Метод обратного распространения ошибки Оптимум функции потерь MSE = (Bellman Q – predicted Q)2 Target = Bellman Q = © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 33 Упражнение. Торговый робот Шаг 4. Процедура обучения с подкреплением 1. Буфер, записывающий memory_size=200 поcледних действий и соответствующие состояния (старые prev_obs и новые obs) и вознаграждения за эти действия 2. Обучение / обновление Q-таблицы, которая аппроксимируется нейросетью 3. Target - это Q-таблица, вычисленная согласно уравнению Белмана 4. Делаем шаг обратного распространения ошибки, используя градиентный спуск по бэтчам для обновления весов модели © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 34 Упражнение. Торговый робот Шаг 5. Статистика обучения с подкреплением Видно, что с каждой новой эпохой, когда мы проходим весь датасет, мы учимся лучше торговать, получая больше вознаграждений Статистика по действиям Reward Эпохи Не трогать “0” © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL Купить “1” Продать “2” 35 Упражнение. Торговый робот Шаг 6. Расчет возможного профита Инициализируем среду тестовой выборкой Двигаемся по ежедневным наблюдениям Определяем оптимальное действие, максимизирующее Qфункцию Получаем новое состояние и reward Рассчитываем профит © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 36 Упражнение. Торговый робот Шаг 6. Расчет возможного профита Profit = +238$ Цена, $ Год © 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ INTERNAL 37 Thank you. Contact information: F name L name Title Address Phone number Partner logo