Участник:Gpevnev — различия между версиями
Gpevnev (обсуждение | вклад) |
Gpevnev (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
=== Базовая архитектура Seq2Seq === | === Базовая архитектура Seq2Seq === | ||
− | |||
Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре ''Seq2Seq''. | Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре ''Seq2Seq''. | ||
Строка 31: | Строка 30: | ||
+ | [[File:Seq2SeqBasic.png|350px|thumb|left|Пример работы базовой Seq2Seq сети]] | ||
Рассмотрим пример работы Seq2Seq сети: | Рассмотрим пример работы Seq2Seq сети: | ||
+ | ''Encoder'' {{---}} зеленые блоки | ||
+ | |||
+ | ''Decoder'' {{---}} фиолетовые блоки | ||
<math>x_i</math> {{---}} слова в предложении на языке ''A'' | <math>x_i</math> {{---}} слова в предложении на языке ''A'' | ||
Строка 41: | Строка 44: | ||
<math>y_i</math> {{---}} слова в предложении на языке ''B'' | <math>y_i</math> {{---}} слова в предложении на языке ''B'' | ||
+ | |||
+ | Нужно также заметить, что <math>h_4</math> в данном примере подается не на вход декодеру, а является его изначальным скрытым состоянием. | ||
+ | |||
+ | Из-за того, что при обраоботке первого слова еше нет предыдущено на вход декодеру необходимо подавать специальный вектор, означаюший начало предложения. | ||
Версия 15:35, 21 марта 2020
Механизм внимания в рекуррентных нейронных сетях (англ. attention mechanism, attention model) — дополнительный слой используемый в рекуррентных нейронных сетях для "обращения внимания" последующих слоев сети на скрытое состояние нейронной сети в момент времени .
Изначально механизм внимания был представлен в статье Machine Translation by Jointly Learning to Align and Translate и предполагал применение именно в Seq2Seq сетях, и лишь позже был использован применительно к изображениям Attend and Tell: Neural Image Caption Generation with Visual Attention.
Содержание
Обобщенное описание
Рекуррентные нейронные сети используются при обработке данных, для которых важна их последовательность. В классическом случае применения РНН как результат используется только последнее скрытое состояние , где - длинна последовательности входных данных. Использование механизма внимания позволяет использовать информацию полученную не только из последнего скрытого состояниния, но и из скрытого расстояния для любого .
Обычно слой использующийся для механизма внимания представляет собой обычную, чаще всего однослойную нейронную сеть на вход которой подаются
, а также вектор в котором содержится некий контекст зависящий от конкретно задачи (пример для задачи машинного перевода использующего Seq2Seq арихитектуру есть ниже).Выходом данного слоя будет являтся вектор
- оценки на основании которых на скрытое состояние будет "обращено внимание".Далее для нормализации значений
используется . ТогдаДалее считается
(англ. context vector)Резултатом работы слоя внимания является
который содержит в себе информацию обо всех скрытых состоянях пропорционально оценке .Пример использования для архитектуры Seq2Seq
Из-за интуитивной понятности механизма внимания для проблемы машинного перевода, а также поскольку в оригинальной статье рассматривается механизм внимания применительно именно к Seq2Seq сетям. Пример добавления механизма внимания в Seq2Seq сеть поможет лучше понять его предназначение.
Базовая архитектура Seq2Seq
Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре Seq2Seq.
Seq2Seq состоит из двух РНН - Encoder и Decoder.
Encoder — принимает предложение на языке A и сжимает его в вектор скрытого состояния.
Decoder — выдает слово на языке B, принимает последнее скрытое состояние из энкодера и предыдущее предыдущее предсказаное слово.
Рассмотрим пример работы Seq2Seq сети:
Encoder — зеленые блоки
Decoder — фиолетовые блоки
— слова в предложении на языке A
— скрытое состояние энкодера
— скрытое состояние декодера
— слова в предложении на языке B
Нужно также заметить, что
в данном примере подается не на вход декодеру, а является его изначальным скрытым состоянием.Из-за того, что при обраоботке первого слова еше нет предыдущено на вход декодеру необходимо подавать специальный вектор, означаюший начало предложения.
Применение механизма внимания для Seq2Seq
При добавлении механизма в данную архитектуру между РНН Encoder и Decoder слоя механизма внимания получтится следуюшая схема: