SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Deep Reinforcement
Learning
Как научить нейросеть играть в игры
вместо нас
Марат Зайнутдинов
@tsundokum
Моя попытка вопроизвести DQN
https://github.com/tsundokum/DQN
[6]
Human-level control through
deep reinforcement learning
Volodymyr Mnih, Koray Kavukcuoglu,
David Silver, Andrei A. Rusu, Joel
Veness, Marc G. Bellemare, Alex
Graves, Martin Riedmiller, Andreas
K. Fidjeland, Georg Ostrovski, Stig
Petersen, Charles Beattie, Amir Sadik,
Ioannis Antonoglou, Helen King,
Dharshan Kumaran, Daan Wierstra,
Shane Legg & Demis Hassabis
Nature
[6]
Задача
● Универсальный алгоритм, способный
научиться делать что угодно на основе
данных о среде и подкреплении (ИИ)
○ Алгоритм, способный играть в видеоигры,
получая на входе видеоизображение и
информацию об изменении очков. Цель
алгоритма — набрать максимальное количество
очков.
[5] [2]
Что мы умеем
● X → Y
○ закономерность нелинейная
○ X высокой размерность (например, картинка)
● Дифференцируемая ошибка
(относительно параметров алгоритма)
● Быстро обрабатывать много данных
[3]
[3]
Мы можем научить НС играть?
Мы можем научить НС играть?
У вас нет и не
будет модели!
Динамическое программирование
0 1 5 0
0 1 1 7
10 9 7 0
1 6 9 0
Динамическое программирование
0 1
5 5 0 0
0 1 1
7 7
10 9 7 0
1 6 9 0
Динамическое программирование
0
1 6 5 5 0 0
0 1 1
7 7
10 9 7 0
1 6 9 0
Динамическое программирование
0
1 6 5 5 0 0
0 1
1 6 7 7
10 9 7 0
1 6 9 0
Динамическое программирование
0
1 6 5 5 0 0
0 1
1 6 7 7
10 9 7
0 7
1 6 9 0
Динамическое программирование
0 6 1 6 5 5 0 0
0
1 7 1 6 7 7
10 9
7 13 0 7
1 6 9
0 7
Динамическое программирование
0 6 1 6 5 5 0 0
0 6 1 7 1 6 7 7
10
9 18 7 13 0 7
1 6
9 16 0 7
Динамическое программирование
0 6 1 6 5 5 0 0
0 6 1 7 1 6 7 7
10
16
9 18 7 13 0 7
1
6 22 9 16 0 7
Динамическое программирование
0 6 1 6 5 5 0 0
0 6 1 7 1 6 7 7
10
16
9 18 7 13 0 7
1 17 6 22 9 16 0 7
Action-Value function (Bellman Eq)
Q(s, a) = Es’
[r + ɣ maxa’
Q(s’, a’) | s,a]
s — текущее состояние
a — действие на текущее состояние
s’ — состояние, последовавшее s после совершения
действия a
r — подкрепление на действие a
Action-Value function (Bellman Eq)
Q(s, a) = Es’
[r + ɣ maxa’
Q(s’, a’) | s,a]
Q(s, a; θ) ≅ Q(s, a)
Q(s, a; θ) [6]
Функция ошибки
Li
(θi
)=Es,a,s’,r
[(r+ɣmaxa’
Q(s’,a’,θ-
i
) - Q(s,a,θi
))2
]
Функция ошибки
Li
(θi
)=Es,a,s’,r
[(r+ɣmaxa’
Q(s’,a’,θ-
i
) - Q(s,a,θi
))2
]
critic
Функция ошибки
Li
(θi
)=Es,a,s’,r
[(r+ɣmaxa’
Q(s’,a’,θ-
i
) - Q(s,a,θi
))2
]
critic actor
Q-learning
Watkins, C.J.C.H. (1989). Learning from
Delayed Rewards. PhD thesis, Cambridge
University, Cambridge, England.
Мы можем научить НС играть?
Мы можем научить НС играть?
Ваша сетка
слишком
сильно
раскачивается!
Стабильность
● База переходов U(D)
● Запаздывающее обновление сети
База переходов U(D)
Каждый раз сохраняем (s, a, s’, r)
Держим в уме 1 млн переходов
Данные для батча выбираются из U(D)
Запаздывающее обновление сети
Li
(θi
)=Es,a,s’,r
[(r+ɣmaxa’
Q(s’,a’,θ-
i
) - Q(s,a,θi
))2
]
critic actor
Каждый новые C (=50k) переходов критик
обновляется
critic := actor
Другие тонкости
● ε-greedy выбор действия (с ε=1→0.1 за 1млн кадров)
● Видео сжимается с 210x160 до 84x84
● Состояние запоминается в виде 4х кадров
● Сглаживание картинок (особенность Atari)
● Все подкрепления имеют значения {-1, 0, 1}
● Разница между критиком и актором обрезается до
[-1, 1]
Пример обучения в реальном времени
REINFORCE.js
Рекомендуемые ресурсы
1. Andrew Ng. Machine Learning (лучшее введение в нейросети)
2. Nando de Freitas. Deep Learning (лекции 15-16 про RL и DeepMind)
3. Sergey Levine. Deep Learning for Decision Making and Control (другой
подход к Deep RL)
4. Peter Norvig. Artificial Intelligence: A Modern Approach. 3ed.
5. David Silver. Deep Reinforcement Learning (презентация)
6. Mnih at al. Human-level control through deep reinforcement learning
7. Andrej Karpathy. REINFORCE.js
Спасибо за
внимание!

Contenu connexe

En vedette

En vedette (6)

Experiential Marketing and Deep Learning
Experiential Marketing and Deep LearningExperiential Marketing and Deep Learning
Experiential Marketing and Deep Learning
 
2015 06-16 круглый стол компетенции по большим данным
2015 06-16 круглый стол компетенции по большим данным2015 06-16 круглый стол компетенции по большим данным
2015 06-16 круглый стол компетенции по большим данным
 
Платформа «ДиалТех» - простой инструмент для создания и хостинга «умных» чат-...
Платформа «ДиалТех» - простой инструмент для создания и хостинга «умных» чат-...Платформа «ДиалТех» - простой инструмент для создания и хостинга «умных» чат-...
Платформа «ДиалТех» - простой инструмент для создания и хостинга «умных» чат-...
 
Presentation dl beyond-the_hype-v0.3
Presentation dl beyond-the_hype-v0.3Presentation dl beyond-the_hype-v0.3
Presentation dl beyond-the_hype-v0.3
 
Deep learning beyond_the_hype-franceia@lapaillasse
Deep learning beyond_the_hype-franceia@lapaillasseDeep learning beyond_the_hype-franceia@lapaillasse
Deep learning beyond_the_hype-franceia@lapaillasse
 
Deep neural networks
Deep neural networksDeep neural networks
Deep neural networks
 

Plus de SPb_Data_Science

Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов ДанныхЭффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
SPb_Data_Science
 
Benford’s law & fraud detection slides
Benford’s  law & fraud detection slidesBenford’s  law & fraud detection slides
Benford’s law & fraud detection slides
SPb_Data_Science
 

Plus de SPb_Data_Science (11)

Diabetic Retinopathy Detection
Diabetic Retinopathy DetectionDiabetic Retinopathy Detection
Diabetic Retinopathy Detection
 
Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов ДанныхЭффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных
 
Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine
 
Trending Topics in Recommender Systems
Trending Topics in Recommender SystemsTrending Topics in Recommender Systems
Trending Topics in Recommender Systems
 
Meetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ruMeetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ru
 
Benford’s law & fraud detection slides
Benford’s  law & fraud detection slidesBenford’s  law & fraud detection slides
Benford’s law & fraud detection slides
 
Classification metrics
Classification metrics Classification metrics
Classification metrics
 
Meetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization MachinesMeetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization Machines
 
Meetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic TradingMeetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic Trading
 
Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.
 
Meetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science BowlMeetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science Bowl
 

Intro to Deep Reinforcement Learning