162
правки
Изменения
Нет описания правки
== Обобщенное описание ==
[[File:AttentionGeneral.png|350px|thumb|Обобщенное описание механизма внимания]]
[[:Рекуррентные_нейронные_сети|Рекуррентные нейронные сети]] используются при обработке данных, для которых важна их последовательность. В классическом случае применения [[:Рекуррентные_нейронные_сети|РНН]] как результат используется результатом является только последнее скрытое состояние <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</math> (англ. ''score'') - оценки на основании которых на скрытое состояние <math>h_i</math> будет "обращено внимание".
Далее для нормализации значений <math>s</math> используется <math>softmax</math>. Тогда <math>e = softmax(s)</math>
<math>softmax</math> сдесь используется благадоря своим свойствам: *<math>\forall s:\ \sum_{i=1}^n softmax(s)_i = 1, </math>*<math>\forall s,\ i: \ softmax(s)_i >= 0 </math> Далее считается <math>СV</math> (англ. ''context vector'') <math>СV = \sum_1sum_{i=1}^m e_i h_i</math>
Резултатом работы слоя внимания является <math>CV</math> который содержит в себе информацию обо всех скрытых состоянях <math>h_i</math> пропорционально оценке <math>e_i</math>.
== Пример использования для архитектуры Seq2Seq ==
Из-за интуитивной понятности механизма внимания для проблемы машинного перевода, а также поскольку в оригинальной статье рассматривается механизм внимания применительно именно к Seq2Seq сетям. Пример добавления механизма внимания в Seq2Seq сеть поможет лучше понять его предназначение.
Несмотря, что нейронные сети рассматриваются как "черный ящик" и интерпретировать их внутренности в понятных человеку терминаз часто невозможно, все же механизм внимания интуитивно понятный людям смог улучшить результаты машинного перевода для алгоритма используемого в статье.
=== Базовая архитектура Seq2Seq ===
<math>h_i</math> {{---}} скрытое состояние энкодера.
''Зеленые блоки'' {{---}} блоки энкодера получающие на вход <math>x_i</math> и передаюшие передающие скрытое состояние <math>h_i</math> на следущую итерацию.
<math>d_i</math> {{---}} скрытое состояние декодера.