Uploaded by Robo Advisor

2020 DX RL v1

advertisement
Введение в обучение с
подкреплением в 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
Download