🤔 Какие есть attention не в трансформерах?



Механизмы внимания (attention mechanisms) используются не только в трансформерах, но и в других архитектурах нейронных сетей, таких как рекуррентные нейронные сети (RNN) и сверточные нейронные сети (CNN).



🚩Типы Attention



🟠Soft Attention (Мягкое внимание):

Мягкое внимание часто используется в сочетании с RNN, особенно в задачах последовательного моделирования, таких как машинный перевод или генерация текста. В мягком внимании для каждого выходного элемента вычисляется взвешенная сумма всех входных элементов, где веса определяются функцией внимания (например, dot-product или scaled dot-product).

import torch

import torch.nn.functional as F



def soft_attention(query, keys, values):

scores = torch.matmul(query, keys.transpose(-2, -1))

attention_weights = F.softmax(scores, dim=-1)

context_vector = torch.matmul(attention_weights, values)

return context_vector, attention_weights




🟠Hard Attention (Жесткое внимание):

Жесткое внимание выбирает один входной элемент для каждого выходного элемента, что делает процесс детерминированным. В жестком внимании применяется метод выборки, такой как алгоритмы на основе Монте-Карло, чтобы выбрать один входной элемент. Используется в задачах с последовательными данными, где важно выбрать конкретный элемент последовательности.



🟠Self-Attention в RNN и CNN:

RNN: Self-attention используется для учета связи каждого элемента последовательности с другими элементами, даже если они удалены друг от друга. В CNN self-attention помогает моделировать долгосрочные зависимости в изображениях.

def self_attention(x):

query = x

keys = x

values = x

context_vector, attention_weights = soft_attention(query, keys, values)

return context_vector, attention_weights




🟠 Attention в сверточных нейронных сетях (CNN):

Spatial Attention (Пространственное внимание): Используется для выделения важных областей на изображении. Channel Attention (Канальное внимание): Помогает выделить важные каналы (особенности) в изображении.



🚩Применение Attention вне трансформеров



🟠Машинный перевод:

В seq2seq моделях с RNN soft attention позволяет модели фокусироваться на разных частях входного предложения при генерации каждого слова выходного предложения.

🟠Обработка изображений:

Spatial и channel attention применяются для выделения значимых областей и признаков на изображениях, что улучшает точность классификации и обнаружения объектов.

🟠Анализ временных рядов:

Self-attention в RNN позволяет учитывать зависимость между элементами временного ряда, что улучшает качество предсказаний.



Ставь 👍 и забирай 📚 Базу знаний