Изменения

Перейти к: навигация, поиск

Трансформер

10 байт добавлено, 00:12, 15 июня 2022
Позиционное кодирование
Так как в архитектуре трансформер обработка последовательности заменяется на обработку множества мы теряем информацию о порядке элементов последовательности. Чтобы отобразить информацию о позиции элемента в исходной последовательности мы используем позиционное кодирование.
Позиционное кодирование (англ. ''positional encoding'') {{---}} позволяет модели получить информацию о порядке элементов в последовательности путем прибавления специальных меток к вектору входных элементов. Позиции элементов <math>i</math> кодируются векторами <math>p_i</math>, <math>i = 1, 2, ..., n</math>, так, что чем больше <math>|i - j|</math>, тем больше <math>||p_i - p_j||</math>, и <math>n</math> не ограничено. Пример такого кодирования:
<math>
p_{(i, s)} =
\begin{cases}
\sin \left(i \cdot 10000^{\frac{-s2k}{d_{model}}}\right) & \quad \text{если } s \text{ четное}=2k\\ \cos \left(i \cdot 10000^{\frac{-s + 12k}{d_{model}}}\right) & \quad \text{если } s \text{ нечетное}=2k+1
\end{cases}
</math>
23
правки

Навигация