Нихиль Будума - Основы глубокого обучения
- Название:Основы глубокого обучения
- Автор:
- Жанр:
- Издательство:Манн, Иванов и Фербер
- Год:2020
- Город:Москва
- ISBN:9785001464723
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Нихиль Будума - Основы глубокого обучения краткое содержание
Основы глубокого обучения - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:

Рис. 8.3. Нечеткий ключ с похожими результатами, образующими почти единообразный и бесполезный вектор внимания. Увеличение его мощности позволяет сконцентрироваться на наиболее вероятной ячейке
Чтобы начать двигаться по памяти, нужно найти способ взять текущее вентильное взвешивание и сместить фокус с одной ячейки на другую. Это можно сделать, выполнив свертку вентильного взвешивания сдвиговым взвешиванием s t , которое тоже выдается контроллером. Это нормализованный функцией мягкого максимума вектор внимания размера ( n + 1), где n — четное целое число, указывающее на количество возможных сдвигов вокруг данной ячейки при вентильном взвешивании. Например, при размере 3 можно сказать, что возможны два сдвига: один вперед, один назад. На рис. 8.4 показано, как сдвиговое взвешивание способно перемещать ячейку концентрации при вентильном взвешивании. Смещение происходит при свертке вентильного взвешивания сдвиговым — примерно так же, как мы сворачивали изображения при помощи карт признаков в главе 5. Единственное исключение — случай, когда сдвиговое взвешивание выходит за рамки вентильного. Вместо дополнения, которое мы применяли ранее, воспользуемся поворотным сверточным оператором: вышедшие за пределы веса применяются к значениям на другом конце вентильного взвешивания, как показано в средней панели рис. 8.4. Эту операцию поэлементно можно выразить так:

Рис. 8.4. Слева: сдвиговое взвешивание, направленное направо, смещает вентильное взвешивание на одну ячейку вправо. В центре: поворотная свертка на сдвиговом взвешивании, нацеленном влево, сдвигает вентильное взвешивание влево. Справа: нерезкое сдвиговое взвешивание к центру оставляет вентильное на месте, но рассеивает его
При введении операции сдвига веса наших головок могут свободно перемещаться по памяти вперед и назад. Но возникает проблема, если в какой-то момент сдвиговое взвешивание окажется недостаточно резким.
По природе операции свертки нерезкое сдвиговое взвешивание (правая панель рис. 8.4) рассеивает исходные вентильные по окрестностям, что снижает его концентрацию. Для борьбы с этим эффектом размывания мы выполняем еще одну операцию над сдвиговыми взвешиваниями: заострение. Контроллер выдает последний скаляр γ t ≥ 1, который заостряет сдвиговое взвешивание:

Процесс, начинающийся с интерполяции и заканчивающийся вектором весов после заострения, — второй механизм адресации в NTM, механизм на основе ячейки . Сочетая оба эти механизма, NTM может использовать память, чтобы учиться выполнять разные задачи. Одна из них, которая к тому же позволит нам лучше рассмотреть NTM в действии, — задача копирования, представленная на рис. 8.5. В ней мы задаем последовательность случайных двоичных векторов, которые оканчиваются специальным символом, и требуем перенести входную последовательность в выходную.

Рис. 8.5. Визуализация NTM, обученной на задаче копирования. Слева: сверху вниз показаны входные данные модели, векторы записи и взвешивания по всем ячейкам памяти во времени. Справа: сверху вниз показаны вывод модели, векторы считывания и взвешивания считывания по всем ячейкам памяти с течением времени [99]
Визуализация показывает, как во время ввода NTM начинает записывать входные данные шаг за шагом в последовательные ячейки памяти. Во время вывода NTM возвращается к первому вектору и проходит по следующим ячейкам, читая и выводя записанную ранее входную последовательность. В первой работе по NTM приводится несколько других визуализаций, обученных на других задачах. Эти визуализации показывают, что архитектура способна пользоваться механизмами адресации для адаптации и обучения решению разных задач.
Ограничимся текущим пониманием NTM и пропустим этап реализации. Остаток главы посвятим анализу недостатков NTM и тому, как их помогла устранить инновационная архитектура: дифференцируемый нейронный компьютер (differentiable neural computer, DNC). В конце опробуем реализацию этой архитектуры для простых задач понимания чтения, вроде уже рассмотренной выше.
Дифференцируемый нейронный компьютер
При всех своих достоинствах NTM обладают рядом ограничений, связанных с механизмами их памяти. Первое таково: NTM не способны гарантировать, что записанные данные не будут путаться или перекрываться. Дело в самой природе «дифференцируемой» операции записи: мы фиксируем новые данные по всей памяти, и лишь отчасти этот процесс регулируется вниманием. Обычно механизмы внимания учатся концентрировать веса строго в одной ячейке и NTM стремится к самому свободному от вмешательства поведению, но это не гарантировано. И даже в этом случае, когда в ячейку памяти что-то записано, снова использовать ее уже не получится, даже если данные утратят важность.
Невозможность освобождать и повторно использовать ячейки — второе ограничение архитектуры NTM. В результате новые данные записываются в новые ячейки, которые, скорее всего, как и в вышеприведенной задаче копирования, окажутся смежными. Это единственный способ хранения в NTM временной информации о данных: в порядке поступления. Если головка записи перепрыгнет в другое место памяти при записи последовательных данных, головка чтения не сможет восстановить временную связь между информацией, записанной до и после скачка. Таково третье ограничение NTM.
В октябре 2016 года Алекс Грейвз и коллеги по DeepMind опубликовали статью под названием «Гибридные вычисления с помощью нейронной сети с динамической внешней памятью» [100], где представили новую нейронную архитектуру с дополненной памятью — дифференцируемый нейронный компьютер (DNC). Это улучшение NTM, призванное устранить ограничения, которые мы упоминали выше. Как и NTM, DNC включает контроллер, взаимодействующий с внешней памятью. Память состоит из N слов размера W , составляющих матрицу N × W , которую мы назовем M . Контроллер принимает вектор входных данных размером X и R векторов размером W , прочитанных из памяти на предыдущем шаге, где R — число головок считывания. Затем он пропускает их через нейтральную сеть и выдает два вида данных.
Читать дальшеИнтервал:
Закладка: