Predicting High Uncertainty Events to Train Working Memory ( выжимка )
Artyom Sorokin | Dec 2021
Theory
Memory's Objective
Мы бы хотели чтобы наша память максимизировала следующую сумму:
Для простоты буду писать так:
Memory's Objective
Проблема: учить память предсказывать будущее ft на шаге t может быть уже поздно:
Цель обучения памяти:

информация с шага t−k уже потеряна на шаге t
Memory's Objective
Чтобы выучится не выкидывать старую информацию придется на каждом шаге оптимизировать память относительно всех будущих шагов:
O(T2) по времени
Идея MemUP:
вместо того, чтобы оптимизировать вторую сумму полностью, выберем шаги когда обучение памяти может дать наибольший вклад в предсказание будущего!
все еще нужно обрабатвать всю последовательность длинны T
Если поменять порядок сумм то получится 1 в 1 как учатся трансформер в RL
Finding Important Moments
насколько память может быть важна для предсказания ft
Найдем моменты в будущем, когда выучивание памяти потенциально может принести максимальную пользу
Вообразим, что у нас есть идеальная память mθ∗, тогда:
мелкая игнорим
оцениваем детектором
Общая схема обучения:
- Учим детектор dψ предсказывать ft на каждом шаге на основе ct. Важно уметь давать оценку неопределенности предсказаний детектора H^ψ(ft∣сt).
- Учим память gθ для каждого шага t предсказывать будущие события Ut, где память может быть наиболее важна:
Ut это набор шагов из эпизода для, которых детектор дал наибольшую оценку H^ψ(fi∣сi); ∣U∣≪T.
При обучении памяти мы используем информацию из будущего, которой не будем владеть во время её применения, поэтому нужна отдельная сетка для обьединения шагов k и t: предиктор
Optimization
Учим детектор
Нужно чтобы детектор dψ умел оценивать энтропию H(ft∣ct,mt):
Чтобы оценить −logp(ft∣ct), достаточно использовать Cross-Entropy Loss:
Мы не можем повлиять на H(ft∣ct), поэтому минимизируя CE loss мы минимизируем DKL между нашей моделькой и настроящим распределением.
если не сработает, будем искать более честную оценку энтропии
Наша оценка энтропии для бедных:
оценка энтропии по одному сэмплу или удивление
(1)
Учим память+предиктор
Память gθ и предиктор qϕ должны максимизировать взаимную информацию :
Barber, Agakov (2004) доказали Lower Bound для взаимной информации
(перепишем для нашего случая):
вспоминаем ур.1 между CE и KL только для распределения p(fk∣mtθ,ck):
Т.к.
, значит
получается:
(2)
Учим память+предиктор
Память gθ и предиктор qϕ должны максимизировать взаимную информацию :
Barber, Agakov (2004) доказали Lower Bound для взаимной информации
(перепишем для нашего случая):
от нас не зависит, игнор
NLL loss, минимизируем её и разом обновляем θ и ϕ
Итог: dψ, gθ, qϕ учим предсказывать будущее ft при помощи NLL loss
Учим память+предиктор
На всякий случай для проверки, можно прочитать следующие 2 статьи из которых взято доказательство для функции memory+predictor:
MemUP Выжимка
By supergriver
MemUP Выжимка
- 494