Если небольшая нейронная сеть использовалась в качестве функции оценки для модели Attention, против какой метки / значения она обучалась?

String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true

Убедитесь, что вы понимаете, почему. Это потому, что сравнение == сравнивает только ссылки; equals() метод сопоставляет содержимое по символу.

Когда вы вызываете new для a и b, каждый получает новую ссылку, указывающую на "foo" в таблице строк. Ссылки разные, но контент один и тот же.

-1
задан Aung Khant 10 March 2019 в 00:25
поделиться

1 ответ

Нейронная сеть, которая используется для внимания, - это не то, что тренируется отдельно. Чтобы интерпретировать в более простых словах, tanh(W[s;h]) (то, что бумага упоминает как нейронная сеть) является слоем прямой связи, который обучается вместе с кодером и декодером вместе.

Любой механизм внимания предлагает схему взвешивания для выбора и объединения подходящих состояний кодера для конкретного этапа декодирования. Предположим, что выходной сигнал кодировщика равен 1 , a 2 , .., a n . Для декодера на каждом шаге взвешенная комбинация состояний кодера дается в качестве входных данных. Оценка внимания дает соответствующие веса α 1 , α 2 , .., α n на каждом шаге декодера. Следовательно, скажем, чтобы получить выходной сигнал декодера d 1 , вход будет представлять собой 1 * α 1 + a 2 * α [ 1115] 2 + .. + a n * α n .

Веса α 1 , .. получены с помощью softmax на выходах слоя / сети внимания, в вашем случае - tanh. В этом случае веса tanh изучаются, т. Е. Обновление tanh в обратном направлении и градиенте выполняется вместе со всей сетью кодера-декодера.

0
ответ дан scarecrow 10 March 2019 в 00:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: