Изменения

Перейти к: навигация, поиск

Участник:Gpevnev

3974 байта добавлено, 13:18, 21 марта 2020
Новая страница: «'''Механизм внимания в рекуррентных нейронных сетях''' (англ. ''attention mechanism'', ''attention model'') {{---}}…»
'''Механизм внимания в рекуррентных нейронных сетях''' (англ. ''attention mechanism'', ''attention model'') {{---}} дополнительный слой используемый в [[:Рекуррентные_нейронные_сети|рекуррентных нейронных сетях]] для "обращения внимания" последующих слоев сети на скрытое состояние нейронной сети <math>h_t</math> в момент времени <math>t</math>.

== Обобщенное описание ==
[[:Рекуррентные_нейронные_сети|Рекуррентные нейронные сети]] используются при обработке данных, для которых важна их последовательность. В классическом случае применения [[:Рекуррентные_нейронные_сети|РНН]] как результат используется только последнее скрытое состояние <math>h_m</math>, где <math>m</math> - длинна последовательности входных данных. Использование механизма внимания позволяет использовать информацию полученную не только из последнего скрытого состояниния, но и из скрытого расстояния <math>h_t</math> для любого <math>t</math>.

Обычно слой использующийся для механизма внимания представляет собой обычную, чаще всего однослойную нейронную сеть на вход которой подаются <math>h_t, t = 1 \ldots m</math>, а также вектор <math>d</math> в котором содержится некий контекст зависящий от конкретно задачи (пример <math>d</math> для задачи машинного перевода использующего ''Seq2Seq'' арихитектуру есть ниже).

Выходом данного слоя будет являтся последовательность <math>s_i, i = 1 \ldots m</math> - оценки на основании которых на скрытое состояние <math>h_i</math> будет "обращено внимание".

Далее для нормализации значений <math>s</math> используется <math>softmax</math>. Тогда <math>e = softmax(s)</math>

Далее считается <math>СV</math> (англ. ''context vector'') <math>СV = \sum_1^m e_i h_i</math>

Резултатом работы слоя внимания является <math>CV</math> который содержит в себе информацию обо всех скрытых состоянях <math>h_i</math> пропорционально оценке <math>e_i</math>.

== Пример использования для архитектуры Seq2Seq ==
Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре ''Seq2Seq''.

''Seq2Seq'' состоит из двух [[:Рекуррентные_нейронные_сети|РНН]] - ''Encoder'' и ''Decoder''.

''Encoder'' {{---}} принимает предложение на языке ''A'' и сжимает его в вектор скрытого состояния.
''Decoder'' {{---}} выдает слово на языке ''B'', принимает последнее скрытое состояние из энкодера и предыдущее предыдущее предсказаное слово.

''TODO:'' картинку про базовый Seq2Seq сюда.
Анонимный участник

Навигация