У меня всегда было поверхностное понимание внимания, я прочитал несколько статей, вводящих идеи и принципы, но я никогда не практиковал это. Я сегодня установил Флаг и вникаю в принципы и исходный код за один день! Если вы также находитесь в состоянии модели внимания первого уровня, вы могли бы также хорошенько взглянуть на нее.
содержание:
- смысл
- Принципиальный анализ (диаграмма + формула)
- Классификация моделей
- Преимущества и недостатки
- Анализ исходного кода ТФ
P.S. Отклоняйте многословные обсуждения, подходящие для студентов с базовыми знаниями, чтобы быстро углубиться во внимание, пожалуйста, оставьте сообщение для консультации, если вы не понимаете ~
1. Основная идея
Идею Attention легче понять, то есть присвоить разные веса информации на входе на этапе декодирования. В nlp это для каждого временного шага ввода последовательности, а в cv — для каждого пикселя.
2. Принципиальный анализ
Для трансляции Seq2seq модель на основе rnn выглядит так, как показано на рис. 1:
Более базовая модель, сочетающая внимание и rnn, выглядит следующим образом (также называемая мягким вниманием):
вда
Соответствующий вес, после расчета всех весов, softmax и взвешивание будут выполнены для получения
.
Видно, что этапы кодирования и декодирования по-прежнему rnn, но этап декодирования использует вывод внимания.как вход в rnn.
Итак, дело в весеКак это произошло? Существует три распространенных метода:
Идея состоит в том, чтобы судить о распределении веса входной последовательности в соответствии с текущим «состоянием» декодирования.
Если внимание раздето, чтобы видеть, то на самом деле это следующий механизм:
Входными данными являются запрос (Q), ключ (K), значение (V), а выходными данными является значение внимания. Если она соответствует предыдущей модели, запрос, ключ
, значение также
. Модель вычисляет вес, сопоставляя Q и K, а затем объединяет V, чтобы получить результат:
Дальнейшее понимание, этот механизм на самом деле выполняет адресацию (адресацию), то есть имитирует способ взаимодействия центрального процессора с хранилищем для чтения сохраненного контента, вы можете взглянутьКурс г-на Ли Хунъи.
3. Классификация моделей
3.1 Soft/Hard Attention
мягкое внимание: традиционное внимание, которое может быть встроено в модель для обучения и распространения градиента
Особое внимание: не вычисляйте все выходные данные, сэмплируйте выходные данные кодировщика в соответствии с вероятностью и используйте метод Монте-Карло для оценки градиента во время обратного распространения.
3.2 Global/Local Attention
глобальное внимание: традиционное внимание, вычисляет все выходные данные энкодера
локальное внимание: между мягким и жестким прогнозируется позиция и выбирается окно для расчета
3.3 Self Attention
Традиционное внимание вычисляет зависимость между Q и K, в то время как собственное внимание вычисляет зависимость между Q и K соответственно. Конкретные подробности будут даны в следующей статье~
4. Преимущества и недостатки
преимущество:
- Работает лучше в ситуациях, когда выходная последовательность «упорядочена» иначе, чем входная последовательность, например, перевод, понимание прочитанного
- Может кодировать более длинную информацию о последовательности, чем RNN
недостаток:
- Нечувствителен к порядку последовательности
- Обычно используется в сочетании с RNN, не может быть распараллелен.
5. Анализ исходного кода ТФ
Я обнаружил, что кто-то уже разобрал его очень четко.Даже если код TF обновлен, принцип должен быть аналогичным, поэтому скажем прямо:
Гу Сюсен: интерпретация исходного кода Tensorflow (1): модель AttentionSeq2Seqzhuanlan.zhihu.com
【Использованная литература】: