# Как работает Attention Model: детальный разбор архитектуры от Эндрю Ына

Источник: https://www.youtube.com/watch?v=quoGRI-1l0A
Канал: DeepLearning.AI
Опубликовано: 05.02.2018

---

В современном машинном обучении механизм внимания (Attention Model) стал фундаментальным прорывом, позволившим нейросетям обрабатывать длинные последовательности данных с точностью, сопоставимой с человеческой. Эндрю Ын (Andrew Ng) в рамках курса DeepLearning.AI детально разбирает математическую и архитектурную реализацию этого механизма, объясняя, как именно алгоритм учится фокусироваться на релевантных частях входных данных.

## 🏗️ Архитектура двунаправленной сети и формирование признаков
[[JUMP:00:00]]

В основе модели внимания лежит использование двунаправленной рекуррентной нейронной сети (Bi-directional RNN) [0:13]. Хотя теоретически это может быть простая RNN, на практике Эндрю Ын рекомендует использовать блоки GRU (Gated Recurrent Unit) или LSTM (Long Short-Term Memory) для более эффективного вычисления признаков каждого слова [0:27].

Процесс обработки входного предложения строится следующим образом:

*   Для каждого временного шага $t'$ (где $t'$ индексирует слова во входном предложении, например, на французском) вычисляются активации прямого и обратного проходов.
*   Активация прямого прохода $\vec{a}^{<t'>}$ и обратного прохода $\overleftarrow{a}^{<t'>}$ объединяются в единый вектор признаков $a^{<t'>}$ [1:33].
*   Этот вектор $a^{<t'>}$ содержит информацию не только о конкретном слове в позиции $t'$, но и о контексте вокруг него во всем предложении [1:46].

Такая структура позволяет модели иметь «объемное» представление о каждом элементе входной последовательности перед тем, как приступить к генерации перевода.

## 🎯 Механизм вычисления контекстного вектора
[[JUMP:02:00]]

Традиционные модели кодер-декодер пытались сжать всё предложение в один вектор фиксированной длины. По мнению Эндрю Ына, механизм внимания решает проблему «забывания», создавая для каждого генерируемого слова свой уникальный контекстный вектор $C$ [2:12].

Основные математические принципы формирования контекста:

1.  **Веса внимания ($\alpha$):** Параметры $\alpha^{<t, t'>}$ определяют, какую долю внимания должно уделять генерируемое слово $y^{<t>}$ входному слову в позиции $t'$ [2:44].
2.  **Условие нормализации:** Все веса внимания для конкретного выходного слова должны быть неотрицательными и в сумме давать единицу [3:26].
3.  **Взвешенная сумма:** Контекстный вектор $C^{<t>}$ рассчитывается как сумма всех активаций входного слоя $a^{<t'>}$, умноженных на соответствующие веса $\alpha^{<t, t'>}$ [3:38].

Эндрю Ын подчеркивает, что веса $\alpha$ — это не константы, а динамически вычисляемые значения, которые позволяют декодеру «смотреть» на разные части исходного текста в процессе генерации каждого нового слова [4:26].

## 🧠 Как нейросеть «учится» обращать внимание
[[JUMP:05:53]]

Ключевой вопрос реализации заключается в том, как именно вычислить значения $\alpha$. Эндрю Ын объясняет, что для этого используется небольшая вспомогательная нейронная сеть, встроенная в общую архитектуру [6:51].

Алгоритм расчета выглядит так:

*   Сначала вычисляется промежуточное значение $e^{<t, t'>}$ [6:08].
*   Входом для этой мини-сети служат два значения: скрытое состояние декодера с предыдущего шага $s^{<t-1>}$ и активация входного слоя $a^{<t'>}$ [7:04].
*   Поскольку модель еще не знает текущего состояния $s^{<t>}$ (оно зависит от контекста), она опирается на информацию о том, что было сгенерировано ранее [7:29].
*   Для получения итоговых весов $\alpha$ применяется функция **Softmax**, что гарантирует выполнение условия суммы весов, равной единице [6:21].

По словам Эндрю Ына, преимущество такого подхода в том, что функция расчета внимания не задается жестко вручную. Благодаря методу обратного распространения ошибки (back propagation) и градиентному спуску, сеть сама понимает, какие зависимости между словами наиболее важны для точного перевода [8:11].

## ⚖️ Ограничения и альтернативные сферы применения
[[JUMP:08:53]]

Несмотря на высокую эффективность, модель внимания имеет свою цену. Главным недостатком алгоритма Эндрю Ын называет **квадратичную вычислительную сложность** [8:53].

Если длина входного предложения составляет $T_x$, а выходного — $T_y$, то общее количество параметров внимания будет равно произведению $T_x \times T_y$ [9:07]. В задачах машинного перевода, где предложения редко бывают экстремально длинными, эта стоимость обычно приемлема. Однако для очень длинных текстов могут потребоваться дополнительные оптимизации [9:20].

Помимо перевода, механизм внимания успешно применяется и в других областях:

*   **Image Captioning (Описание изображений):** Нейросеть может смотреть на определенные части картинки, последовательно генерируя слова описания [9:47]. Эндрю Ын ссылается на работу Кевина Сю и соавторов (2015), где этот подход был успешно реализован [10:15].
*   **Нормализация дат:** Преобразование различных форматов дат (например, «день высадки на Луну Аполлона» или «день рождения Шекспира») в стандартный формат (YYYY-MM-DD) [10:56].
*   **Визуализация:** С помощью карт внимания можно увидеть, на каких именно словах оригинала фокусировалась модель при генерации конкретного слова перевода [11:23].

В завершение лекции Эндрю Ын называет механизм внимания «одной из самых мощных идей в глубоком обучении» [12:05], подчеркивая, что его внедрение позволило значительно повысить качество работы всех последовательных моделей.