intro to deep reinforcement learning

Post on 08-Aug-2015

64 Views

Category:

Data & Analytics

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 17 7

10 9 7 0

1 6 9 0

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

01 6 5 5 0 0

0 1 17 7

10 9 7 0

1 6 9 0

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

01 6 5 5 0 0

0 11 6 7 7

10 9 7 0

1 6 9 0

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

01 6 5 5 0 0

0 11 6 7 7

10 9 70 7

1 6 9 0

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

0 6 1 6 5 5 0 00

1 7 1 6 7 710 9

7 13 0 71 6 9

0 7

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

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

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

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

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

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

Action-Value function (Bellman Eq)

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

s — текущее состояниеa — действие на текущее состояниеs’ — состояние, последовавшее s после совершения действия ar — подкрепление на действие 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

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

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

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

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

● База переходов 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 learning7. Andrej Karpathy. REINFORCE.js

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

top related