162
правки
Изменения
Нет описания правки
''Энкодер'' {{---}} принимает предложение на языке ''A'' и сжимает его в вектор скрытого состояния.
''Декодер'' {{---}} выдает слово на языке ''B'', принимает последнее скрытое состояние энкодера и предыдущее предыдущее предсказаное предсказанное слово.
====Применение механизма внимания для ''Seq2seq''====
[[File:AttentionGeneral.png|450px|thumb|Обобщенный механизм внимания в [[:Рекуррентные_нейронные_сети|RNN]]]]
Несмотря на то, что нейронные сети рассматриваются как "черный ящик" и интерпретировать их внутренности в понятных человеку терминах часто невозможно, все же механизм внимания интуитивно понятный людям смог улучшить результаты качество машинного перевода для базового ''Seq2seq'' алгоритма используемого в статье.
Успех этого использования этого подхода в задаче машинного перевода обусловлен лучшим выводом закономерностей между словами находящимися на большом расстоянии друг от друга. Несмотря на то, что ''LSTM'' и ''GRU'' блоки используются именно для улучшения передачи информации с предыдущих итераций ''RNN'' их основная проблема заключается в том, что влияние предыдущих состояний на текущее уменьшается экспоненциально от расстояния между словами, в то же время механизм внимания улучшает этот показатель до линейного<ref>https://towardsdatascience.com/transformers-141e32e69591<\ref>.
[[:Рекуррентные_нейронные_сети|RNN]] используются при обработке данных, для которых важна их последовательность. В классическом случае применения [[:Рекуррентные_нейронные_сети|RNN]] результатом является только последнее скрытое состояние <math>h_m</math>, где <math>m</math> {{---}} длина последовательности входных данных. Использование механизма внимания позволяет использовать информацию полученную не только из последнего скрытого состояния, но и любого скрытого состояния <math>h_t</math> для любого <math>t</math>.
Далее для нормализации значений <math>s</math> используется <math>softmax</math><ref>[https://ru.wikipedia.org/wiki/Softmax Wiki -- Функция softmax]</ref>. Тогда <math>e = softmax(s)</math>
<math>softmax</math> здесь используется благодоря благодаря своим свойствам:
*<math>\forall s\colon\ \sum_{i=1}^n softmax(s)_i = 1, </math>
<math>с = \sum_{i=1}^m e_i h_i</math>
Результатом работы слоя внимания является <math>c</math> который, содержит в себе информацию обо всех скрытых состоянях состояниях <math>h_i</math> пропорционально оценке <math>e_i</math>.
[[File:Seq2SeqAttention.png|450px|thumb|Пример работы ''Seq2seq'' сети с механизмом внимания]]
При добавлении механизма в данную архитектуру между [[:Рекуррентные_нейронные_сети|RNN]] ''Энкодер'' и ''Декодер'' слоя механизма внимания получится следуюшая следующая схема:
Здесь <math>x_i, h_i, d_i, y_i</math> имеют те же назначения, что и в варианте без механизма внимания.