\( \require{color} \definecolor{alert}{RGB}{255,0,0} \definecolor{blues}{RGB}{0,0,255} \renewcommand{\vec}[1]{\mbox{$\bf #1$}} \DeclareMathOperator*{\argmin}{arg\,min} \newcommand{\chg}[2]{\text{ch}_{{\cal G}^#1}(#2)} \newcommand{\pag}[2]{\text{pa}_{{\cal G}^#1}(#2)} \)

Разбор статьи

Human-level control through deep reinforcement learning

КАРТИНКА

Обучение с подкреплением (ОП)

ИИ = ОП

  • ОП это универсальный подход к ИИ
    • ОП работает для способного к действию агента
    • Каждое действие меняет его будущее состояние
    • Успех измеряется скалярной величиной награды
  • Если кратко, то ОП это
    • выбор действия максимизируешего награду
Необходимо найти агента способного решать задачи на уровне человека.

Агент и среда

КАРТИНКА
  • На каждом шаге $t$ агент:
    • получает состояние $s_t$
    • получает скалярное значение награды $r_t$
    • выполняет действие $a_t$
  • Среда:
    • получает действие $a_t$
    • генерирует состояние $s_t$
    • генерирует скалярное значение награды $r_t$

Стратегии и функции полезности

  • Стратегия $\pi$ определяет выбор действия $a$ для данного состояния среды $s$:
    $$a = \pi(s)$$
  • Функция полезности $Q^\pi(s,a)$ - полная ожидаемая награда при выборе действия $a$ в состоянии $s$ при использовании политики $\pi$ :
    $$Q^\pi(s,a) = \mathbb{E}\displaystyle[r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+2} + \dots | s,a \displaystyle]$$
    “Насколько хорошо действие $a$ в состоянии $s$?”

Примеры возможного использования ОП

  • Управление локомоцией
  • Взаимодействие с пользователем
  • Решение задач логистики и распределения ресурсов
  • Игра в игры
  • Обучение последовательным алгоритмам

Подходы к ОП

  • ОП на основе стратегии
    • Прямой поиск оптимальной стратегии $\pi^*$
    • Стратегии максимизирующей будующую награду
  • ОП на основе полезности
    • Оценка оптимальной функции полезности $Q^*(s,a)$
    • Максимальное достижимое значение из всех возможных стратегий
  • ОП на основе модели
    • Построение модели переходов среды
    • Планирование на основе модели (предсказание)

Глубокое обучение с подкреплением

  • Как применить обучение с подкреплением с глубоким обучением
  • Использование глубокой сети для представления функции полезности \ стратегии \ модели
  • Оптимизация функции полезности \ стратегии \ модели
  • Использование стохастического градиентного спуска

Уравнение Беллмана

  • Функция полезности может быть рекурсивно развернута:

    $$\begin{align} Q^\pi(s,a) &= \mathbb{E}[r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+2} + \dots | s,a ]\\ &= \mathbb{E}_{s’}[r + \gamma Q^\pi(s’,a’) | s,a ] \end{align} $$

  • Оптимальная функция полезности $Q^*(s,a)$ может быть рекурсивно развернута:

    $$ Q^*(s,a) = \mathbb{E}_{s’}[r + \gamma Q^\pi(s’,a’) | s,a ]$$

Уравнение Беллмана

Решается итеративным расчетом функции полезности:

$$\begin{align} &Q_{t+1}(s_{t},a_{t}) = \underbrace{Q_t(s_t,a_t)}_{\rm old~value} + \underbrace{\alpha_t(s_t,a_t)}_{\rm learning~rate} \cdot \\ &\left( \overbrace{\underbrace{R_{t+1}}_{\rm reward} + \underbrace{\gamma}_{\rm discount~factor} \underbrace{\max_{a}Q_t(s_{t+1}, a)}_{\rm estimate~of~optimal~future~value}}^{\rm learned~value} - \underbrace{Q_t(s_t,a_t)}_{\rm old~value} \right) \end{align}$$

Глубокое Q-обучение

  • Представим функцию полезности глубокой Q-сетью (Q-network) с весами $w$: $$Q(s,a,w)\approx Q^{\pi}(s,a)$$
  • Определим целевую функцию как среднеквадратичную ошибку в значениях Q $$\mathcal{L}(w) = \mathbb{E}[(\underbrace{r + \gamma \max_{a’} Q(s’,a’,w)}_{\rm old~value} - Q(s,q,w))^2]$$

Глубокое Q-обучение

  • Получим следующий градиент
    $$\frac{\partial \mathcal{L}}{\partial w} = \mathbb{E}[(r + \gamma \max_{a’} Q(s’,a’,w) - Q(s,a,w))\frac{\partial Q(s,a,w)}{\partial w}]$$
  • И оптимизируем целевую функцию методом стохастического градиентного спуска используя $\frac{\partial \mathcal{L}}{\partial w}$

Стабильное Глубокое ОП (1): повторение опыта

Для избавления от корреляций строим набор данных на основе собственного опыта агента
  • Совершить действие $a_t$ согласно $\epsilon$-жадной стратегии
  • Сохранить переход $(s_t, a_t, r_{t+1}, s_{t+1})$ в памяти для опыта $\mathcal{D}$
  • Выбрать случайную мини-выборку переходов $(s,a,r,s’)$ из $\mathcal D$
  • Уменьшаем СКО между Q-сетью и целевыми Q-значениями, как например
    $$\mathcal{L} = \mathbb{E}_{\color{alert}{s,a,r,s’ \sim \mathbb{D}}}[({\color{blue}{r + \gamma \max_{a’} Q(s’,a’,w)}} - Q(s,a,w))^2]$$

Стабильное Глубокое ОП (2): замороженная целевая Q-сеть

Для избавления от осцилляций фиксируем параметры в целевой Q-сети
  • Вычисляем новые значения целевой Q-сети относительно фиксированных $w^-$ $$r + \gamma \max_{a’} Q(s’,a’,{\color{alert}{w^-}})$$
  • Уменьшаем СКО между Q-сетью и целевыми Q-значениями $$\mathcal{L} = \mathbb{E}_{s,a,r,s’ \sim \mathbb{D}}[({\color{blue}{r + \gamma \max_{a’} Q(s’,a’,{\color{alert}{w^-}})}} - Q(s,a,{\color{alert}{w}}))^2]$$
  • Время от времени обновляем зафиксированные параметры $w^- \leftarrow w$

Стабильное Глубокое ОП (3): ограничение амплитуды награды

  • DQN ограничивает значения награды интервалом [-1,+1]
  • Значения Q ограничены
  • Обеспеспечивает хорошую обусловленность градиентов
  • Не позволяет различить малые и большие значения награды

Обучение с подкреплением на Atari

david

DQN на Atari

  • Полный цикл обучения значений $Q(s,a)$ из набора пикселов $s$
  • Входное состояние $s$ набор пикселов из 4х последних кадров
  • Выход $Q(s,a)$ определяет 18 состояния джойстика и кнопок
  • Награда задается изменением значения набранных очков

DQN на Atari

david

Результаты DQN на Atari

david

Что попробовать

  • Претренировать свёрточную часть на всех трёх играх сразу (возмножно увеличив ширину и/или количество уровней), чтобы потом её уже зафиксировать и не трогать при настройке полносвязной сети.
  • Добавить дифференциальную информацию посредством дополнительного запоминания предыдущих кадров и вычисления того,что изменилось.

Что попробовать

  • Разбить предпоследний скрытый слой напополам и пустить связи от одной части к другой, чтобы как-то учесть состояние на предыдущем шаге. Возможно сделать связи рекурентными.
  • Применение эволюционных алгоритмов