Участник:Gpevnev — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «'''Механизм внимания в рекуррентных нейронных сетях''' (англ. ''attention mechanism'', ''attention model'') {{---}}…»)
 
Строка 23: Строка 23:
  
 
''TODO:'' картинку про базовый Seq2Seq сюда.
 
''TODO:'' картинку про базовый Seq2Seq сюда.
 +
 +
 +
При добавлении механизма в данную архитектуру между [[:Рекуррентные_нейронные_сети|РНН]] ''Encoder'' и ''Decoder'' слоя механизма внимания процесс
 +
 +
==См. также==
 +
*[[:Сверточные_нейронные_сети|Сверточные нейронные сети]]
 +
*[[:Нейронные_сети,_перцептрон|Нейронные сети, перцептрон]]
 +
*[[:Рекуррентные_нейронные_сети|Рекуррентные нейронные сети]]
 +
 +
==Примечания==
 +
<references/>
 +
 +
[[Категория: Машинное обучение]]
 +
[[Категория: Нейронные сети]]
 +
[[Категория: Рекуррентные нейронные сети]]

Версия 13:27, 21 марта 2020

Механизм внимания в рекуррентных нейронных сетях (англ. attention mechanism, attention model) — дополнительный слой используемый в рекуррентных нейронных сетях для "обращения внимания" последующих слоев сети на скрытое состояние нейронной сети [math]h_t[/math] в момент времени [math]t[/math].

Обобщенное описание

Рекуррентные нейронные сети используются при обработке данных, для которых важна их последовательность. В классическом случае применения РНН как результат используется только последнее скрытое состояние [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_i, i = 1 \ldots m[/math] - оценки на основании которых на скрытое состояние [math]h_i[/math] будет "обращено внимание".

Далее для нормализации значений [math]s[/math] используется [math]softmax[/math]. Тогда [math]e = softmax(s)[/math]

Далее считается [math]СV[/math] (англ. context vector) [math]СV = \sum_1^m e_i h_i[/math]

Резултатом работы слоя внимания является [math]CV[/math] который содержит в себе информацию обо всех скрытых состоянях [math]h_i[/math] пропорционально оценке [math]e_i[/math].

Пример использования для архитектуры Seq2Seq

Данный пример рассматривает применение механизма внимания в задаче машинного перевода в применении к архитектуре Seq2Seq.

Seq2Seq состоит из двух РНН - Encoder и Decoder.

Encoder — принимает предложение на языке A и сжимает его в вектор скрытого состояния. Decoder — выдает слово на языке B, принимает последнее скрытое состояние из энкодера и предыдущее предыдущее предсказаное слово.

TODO: картинку про базовый Seq2Seq сюда.


При добавлении механизма в данную архитектуру между РНН Encoder и Decoder слоя механизма внимания процесс

См. также

Примечания