Почему мы выбираем конкретную функцию активации для модели внимания для вычисления энергий, которая используется для нахождения вектора контекста? - PullRequest
0 голосов
/ 26 апреля 2020

Я строю модель внимания. Высокоуровневая архитектура этой модели:

Входной слой (Tx) -> (Pre) Двунаправленный LSTM -> Внимание -> (Post) LSTM -> Выход (Ty)

Цель моей модели внимания - генерировать контекстный вектор (Cy) для каждого выхода (Ty)

Входные данные для моей модели внимания: веса (a_forward и a_backward) и скрытые состояния из Опубликовать внимание LSTM.

Шаги:

  1. Объединить веса всех временных отметок (глобальное внимание) (a, a, .. a) и предыдущего скрытого состояния из (s_prev) (Post LSTM))

  2. Добавьте плотный слой, чтобы найти энергию (e)

  3. Используйте эту энергию, чтобы найти весовые коэффициенты альфа (альфа) использование слоя активации.

  4. Использование точечного продукта для построения контекстного вектора c.

Так что мой вопрос лежит в шаге 2 и шаге 3. Какую активацию я должен использовать для веса энергии и внимания и почему я должен их использовать? Люди используют «tanh» и «softmax» для step2 и step3 соответственно. Я хочу знать, почему они их используют.

Ниже приведен пример кода, который я пробовал,

 s_prev = RepeatVector(n=Tx)(s_prev)
 concat = Concatenate([a,s_prev])
 energies = Dense(n=10, activation = ?)(concat)
 alphas = Activation(?)(energies)
 context = Dot([alphas,a])

Знаки вопроса относятся к используемой функции активации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...