intro to deep reinforcement learning

36
Deep Reinforcement Learning Как научить нейросеть играть в игры вместо нас Марат Зайнутдинов @tsundokum

Upload: spbdatascience

Post on 08-Aug-2015

64 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Intro to Deep Reinforcement Learning

Deep Reinforcement Learning

Как научить нейросеть играть в игры вместо нас

Марат Зайнутдинов @tsundokum

Page 2: Intro to Deep Reinforcement Learning

Моя попытка вопроизвести DQN

https://github.com/tsundokum/DQN

[6]

Page 3: Intro to Deep Reinforcement Learning

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

Page 4: Intro to Deep Reinforcement Learning

[6]

Page 5: Intro to Deep Reinforcement Learning

Задача

● Универсальный алгоритм, способный научиться делать что угодно на основе данных о среде и подкреплении (ИИ)○ Алгоритм, способный играть в видеоигры,

получая на входе видеоизображение и информацию об изменении очков. Цель алгоритма — набрать максимальное количество очков.

Page 6: Intro to Deep Reinforcement Learning

[5] [2]

Page 7: Intro to Deep Reinforcement Learning

Что мы умеем

● X → Y○ закономерность нелинейная○ X высокой размерность (например, картинка)

● Дифференцируемая ошибка (относительно параметров алгоритма)

● Быстро обрабатывать много данных

Page 8: Intro to Deep Reinforcement Learning

[3]

Page 9: Intro to Deep Reinforcement Learning

[3]

Page 10: Intro to Deep Reinforcement Learning

Мы можем научить НС играть?

Page 11: Intro to Deep Reinforcement Learning

Мы можем научить НС играть?

У вас нет и не будет модели!

Page 12: Intro to Deep Reinforcement Learning

Динамическое программирование

0 1 5 0

0 1 1 7

10 9 7 0

1 6 9 0

Page 13: Intro to Deep Reinforcement Learning

Динамическое программирование

0 1 5 5 0 0

0 1 17 7

10 9 7 0

1 6 9 0

Page 14: Intro to Deep Reinforcement Learning

Динамическое программирование

01 6 5 5 0 0

0 1 17 7

10 9 7 0

1 6 9 0

Page 15: Intro to Deep Reinforcement Learning

Динамическое программирование

01 6 5 5 0 0

0 11 6 7 7

10 9 7 0

1 6 9 0

Page 16: Intro to Deep Reinforcement Learning

Динамическое программирование

01 6 5 5 0 0

0 11 6 7 7

10 9 70 7

1 6 9 0

Page 17: Intro to Deep Reinforcement Learning

Динамическое программирование

0 6 1 6 5 5 0 00

1 7 1 6 7 710 9

7 13 0 71 6 9

0 7

Page 18: Intro to Deep Reinforcement Learning

Динамическое программирование

0 6 1 6 5 5 0 00 6 1 7 1 6 7 710

9 18 7 13 0 71 6

9 16 0 7

Page 19: Intro to Deep Reinforcement Learning

Динамическое программирование

0 6 1 6 5 5 0 00 6 1 7 1 6 7 710

16 9 18 7 13 0 71

6 22 9 16 0 7

Page 20: Intro to Deep Reinforcement Learning

Динамическое программирование

0 6 1 6 5 5 0 00 6 1 7 1 6 7 710

16 9 18 7 13 0 7

1 17 6 22 9 16 0 7

Page 21: Intro to Deep Reinforcement Learning

Action-Value function (Bellman Eq)

Q(s, a) = Es’[r + ɣ maxa’Q(s’, a’) | s,a]

s — текущее состояниеa — действие на текущее состояниеs’ — состояние, последовавшее s после совершения действия ar — подкрепление на действие a

Page 22: Intro to Deep Reinforcement Learning

Action-Value function (Bellman Eq)

Q(s, a) = Es’[r + ɣ maxa’Q(s’, a’) | s,a]

Q(s, a; θ) ≅ Q(s, a)

Page 23: Intro to Deep Reinforcement Learning

Q(s, a; θ)[6]

Page 24: Intro to Deep Reinforcement Learning

Функция ошибки

Li(θi)=Es,a,s’,r[(r+ɣmaxa’Q(s’,a’,θ-i) - Q(s,a,θi))

2]

Page 25: Intro to Deep Reinforcement Learning

Функция ошибки

Li(θi)=Es,a,s’,r[(r+ɣmaxa’Q(s’,a’,θ-i) - Q(s,a,θi))

2]

critic

Page 26: Intro to Deep Reinforcement Learning

Функция ошибки

Li(θi)=Es,a,s’,r[(r+ɣmaxa’Q(s’,a’,θ-i) - Q(s,a,θi))

2]

critic actor

Page 28: Intro to Deep Reinforcement Learning

Мы можем научить НС играть?

Page 29: Intro to Deep Reinforcement Learning

Мы можем научить НС играть?

Ваша сетка слишком сильно раскачивается!

Page 30: Intro to Deep Reinforcement Learning

Стабильность

● База переходов U(D)● Запаздывающее обновление сети

Page 31: Intro to Deep Reinforcement Learning

База переходов U(D)

Каждый раз сохраняем (s, a, s’, r)Держим в уме 1 млн переходовДанные для батча выбираются из U(D)

Page 32: Intro to Deep Reinforcement Learning

Запаздывающее обновление сети

Li(θi)=Es,a,s’,r[(r+ɣmaxa’Q(s’,a’,θ-i) - Q(s,a,θi))

2]

critic actor

Каждый новые C (=50k) переходов критик обновляется critic := actor

Page 33: Intro to Deep Reinforcement Learning

Другие тонкости

● ε-greedy выбор действия (с ε=1→0.1 за 1млн кадров)● Видео сжимается с 210x160 до 84x84● Состояние запоминается в виде 4х кадров● Сглаживание картинок (особенность Atari)● Все подкрепления имеют значения {-1, 0, 1}● Разница между критиком и актором обрезается до

[-1, 1]

Page 34: Intro to Deep Reinforcement Learning

Пример обучения в реальном времени

REINFORCE.js

Page 35: Intro to Deep Reinforcement Learning

Рекомендуемые ресурсы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 learning7. Andrej Karpathy. REINFORCE.js

Page 36: Intro to Deep Reinforcement Learning

Спасибо за внимание!