Изменения

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

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

167 байт добавлено, 15:24, 22 марта 2020
Нет описания правки
====Базовая архитектура ''Seq2seq''====
[[File:Seq2SeqBasic.png|450px350px|thumb|Пример работы базовой ''Seq2seq'' сети]]
Для понимания механизма внимания в ''Seq2seq'' сетях необходимо базовое понимание ''Seq2seq'' архитектуры до введения механизма внимания.
[[:Рекуррентные_нейронные_сети|RNN]] используются при обработке данных, для которых важна их последовательность. В классическом случае применения [[:Рекуррентные_нейронные_сети|RNN]] результатом является только последнее скрытое состояние <math>h_m</math>, где <math>m</math> {{---}} длина последовательности входных данных. Использование механизма внимания позволяет использовать информацию полученную не только из последнего скрытого состояния, но и любого скрытого состояния <math>h_t</math> для любого <math>t</math>.
=====Устройство слоя механизма внимания=====
[[File:AttentionGeneral.png|450px350px|thumb|Обобщенный механизм внимания в [[:Рекуррентные_нейронные_сети|RNN]]]]
Слой механизма внимания представляет собой обычную, чаще всего однослойную, нейронную сеть на вход которой подаются <math>h_t, t = 1 \ \ldots m</math>, а также вектор <math>d</math> в котором содержится некий контекст зависящий от конкретной задачи.
=====Применение механизма внимания к базовой ''Seq2seq'' архитектуре=====
[[File:Seq2SeqAttention.png|450px350px|thumb|Пример работы ''Seq2seq'' сети с механизмом внимания]]
При добавлении механизма в данную архитектуру между [[:Рекуррентные_нейронные_сети|RNN]] ''Энкодером'' и ''Декодером'' слоя механизма внимания получится следующая схема:
==Self-Attention==
[[File:TransformerSelfAttentionVisualization.png|450px250px|thumb|Пример работы ''Self-Attention'']]
'''Self-Attention''' {{---}} разновидность внимания, задачей которой является выявление закономерности только между входными данными. Был представлен как один из способов повышения производительности в задачах [[:Обработка_естественного_языка|обработки естественного языка]], где ранее использовались [[:Рекуррентные_нейронные_сети|RNN]] в виде архитектуры трансформеров<ref>https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf</ref>.
Также ''Self-Attention'' успешно применяется применяется в [[:Generative_Adversarial_Nets_(GAN)|GAN]] сетях в алгоритме SAGAN<ref>https://arxiv.org/abs/1805.08318</ref>.
Основным отличием ''Self-Attention'' от [[:Механизм_внимания#Обобщенный механизм внимания|обобщенного механизма внимания]] является, что он делает заключения о зависимостях исключительно между входными данными.
Рассмотрим предложение '''The animal didn't cross the street because it was too tired''' и результат работы алгоритма ''Self-attention'' для слова '''it'''. Полученный вектор соответствует взаимосвязи слова '''it''' со всеми остальными словам в предложении. Из визуализации вектора можно заметить, что механизм ''Self-attention'' обнаружил взаимосвязь между словами '''it''' и '''animal'''. Этот результат можно интуитивно объяснить с человеческой точки зрения, что и раскрывает главное преимущество данного подхожапозволяет алгоритмам машинного обучения, использующих данный подход, лучше решать задачу принимая во внимание контекстные взаимосвязи.
==См. также==
162
правки

Навигация