Изменения

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

Механизм внимания

42 байта добавлено, 12:57, 22 марта 2020
Нет описания правки
После успеха этой методики в машинном переводе последовали ее внедрения в других задачах [[:Обработка_естественного_языка|обработки естественного языка]] и применения к [[:Сверточные_нейронные_сети|CNN]] для генерации описания изображения<ref>https://arxiv.org/abs/1502.03044</ref> и GAN <ref>SAGAN</ref>.
== Обобщенное описание Обобщенный механизм внимания==
[[File:AttentionGeneral.png|350px|thumb|Обобщенное описание механизма внимания]]
[[:Рекуррентные_нейронные_сети|RNN]] используются при обработке данных, для которых важна их последовательность. В классическом случае применения [[:Рекуррентные_нейронные_сети|RNN]] результатом является только последнее скрытое состояние <math>h_m</math>, где <math>m</math> {{---}} длина последовательности входных данных. Использование механизма внимания позволяет использовать информацию полученную не только из последнего скрытого состояниния, но и любого скрытого состояния <math>h_t</math> для любого <math>t</math>.
Результатом работы слоя внимания является <math>c</math> который, содержит в себе информацию обо всех скрытых состоянях <math>h_i</math> пропорционально оценке <math>e_i</math>.
===Пример использования для задачи машинного перевода в ''Seq2seq'' сетях===
Пример добавления механизма внимания в ''Seq2seq'' сеть поможет лучше понять его предназначение.
Изначально в оригинальной статье<ref>[https://arxiv.org/abs/1409.0473 Neural Machine Translation by Jointly Learning to Align and Translate]</ref>, представляющей механизм внимания, он применяется в контексте именно Seq2seq сети в задаче машинного перевода.
Успех этого использования этого подхода в задаче машинного перевода обусловлен лучшим выводом закономерностей между словами находящимися на большом расстоянии друг от друга. Несмотря на то, что ''LSTM'' и ''GRU'' блоки используются именно для улучшения передачи информации с предыдущих итераций ''RNN'' их основная проблема заключается в том, что влияние предыдущих состояний на текущее уменьшается экспоненциально от расстояния между словами, в то же время механизм внимания улучшает этот показатель до линейного.
==== Базовая архитектура ''Seq2seq'' ====
[[File:Seq2SeqBasic.png|450px|thumb|Пример работы базовой ''Seq2seq'' сети]]
Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре ''Seq2seq''.
Перевод считается завершенным при <math>y_i</math>, равном специальному токену '''end'''.
==== Применение механизма внимания для ''Seq2seq'' ====[[File:Seq2SeqAttention.png|450px|thumb|Пример работы ''Seq2seq'' сети с механизмом внимания]]
При добавлении механизма в данную архитектуру между [[:Рекуррентные_нейронные_сети|RNN]] ''Энкодер'' и ''Декодер'' слоя механизма внимания получится следуюшая схема:
 
[[File:Seq2SeqAttention.png|450px|thumb|Пример работы ''Seq2seq'' сети с механизмом внимания]]
Здесь <math>x_i, h_i, d_i, y_i</math> имееют те же назначения, что и в варианте без механизма внимания.
Таким образом при помощи механизма внимания достигается "фокусирование" декодера на определенных скрытых состояниях. В случаях машинного перевода эта возможность помогает декодеру предсказывать на какие скрытые сосояния при исходных определенных словах на языке ''A'' необходимо обратить больше внимания при переводе данного слова на язык ''B''.
 
==Self-Attention==
 
TODO
==См. также==
162
правки

Навигация