Участник: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 слоя механизма внимания получтится следуюшая схема: