Нет горы, которую нельзя было бы покорить
0 отзыв
Attention Is All You Need
Сеть временных рядов RNN, LSTM, есть определенные проблемы: 1. Длина памяти ограничена, так как временной ряд памяти RNN относительно короткий, а LSTM предлагается позже, 2. Он не может быть распараллелен, то есть время t1 может только после вычисления времени t0 и сравнения вычислительной эффективности Низкая.
Предложенный Google Transformer теоретически не ограничен аппаратным обеспечением, имеет бесконечный объем памяти и может быть распараллелен.
Для чего используется слой Embedding?
Слой встраивания, введение слоя встраивания Вложение в китайском документе Keras неохотно объясняет слишком много, за исключением предложения «Слой встраивания преобразует положительные целые числа (индексы) в векторы фиксированного размера». Итак, почему мы используем слой встраивания Embedded?Есть две основные причины:
1. Вектор, закодированный методом One-hot, будет очень многомерным и разреженным. Предположим, мы сталкиваемся со словарем, содержащим 2000 слов в обработке естественного языка (NLP).При использовании горячего кодирования каждое слово будет представлено вектором, содержащим 2000 целых чисел, из которых 1999 чисел равны 0, если словарь больше, вычислительный эффективность этого метода будет значительно снижена.
2. В процессе обучения нейронной сети обновляется каждый вложенный вектор. Благодаря приведенной выше картинке мы узнаем, насколько много сходства между словами в многомерном пространстве, что позволяет нам визуально понять отношения между словами, не только словами, но и всем, что может быть преобразовано в векторы через слой встраивания. Контент может это сделать.
Упомянутые выше концепции могут быть немного неясными, поэтому давайте рассмотрим пример, чтобы увидеть, как слой внедрения Embedding обрабатывает следующие предложения. Концепция встраивания исходит из встраивания слов, если вам интересно узнать больше, вы можете запросить word2vec.
Изображение из: Обзор Visual Transformer
1. Введение
Название диссертации: Изображение стоит 16x16 слов: Трансформеры для распознавания изображений
Предыстория исследования
Преобразователь добился отличных результатов в области НЛП после своего предложения.Его полная структура внимания не только улучшает способность извлечения признаков, но также поддерживает характеристики параллельных вычислений.Он может быстро и хорошо выполнять практически все задачи в области НЛП.Большой толчок к обработке естественного языка.
Хотя Transformer очень силен, его применение в области компьютерного зрения все еще очень ограничено. До этого только DETR в детектировании объектов (ObjectDetection) широко использовал Transformer, а других полей было немного, а сеть с чистой Transformer-структурой — нет.
Следующая картинка — это картинка, которая должна появиться в газете в этом направлении:
Преимущества трансформаторов
1. Параллельные вычисления;
2. Глобальное видение;
3. Гибкая возможность штабелирования;
Результаты исследования и значение
ViT и ResNet Baseline достигают сопоставимых результатов
JFT: набор данных Google с закрытым исходным кодом, примерно в 30 раз больше, чем ImageNet.
ViT-H/14: модель ViT-Huge, входная последовательность 14x14
Историческое значение ViT: демонстрация возможности использования чистых структур Transformer в компьютерном зрении.
Изображение→Магистраль(CNN)→Трансформатор→Результат
Изображение→Трансформатор→Результат
2 Обзор модели бумажного алгоритма
Начало всего: внимание к себе
Что такое внимание? Возьмем, к примеру, машинный перевод.
Каждый вывод связан только с несколькими словами на входе, связь глубокая, вес тяжелый, связь неглубокая, а вес небольшой.
Attention Mechanism
Суть внимания: средневзвешенное значение
Расчет внимания: на самом деле это расчет подобия
Как рассчитывается самовнимание?
Вычисление собственного внимания: фактически выполняется вычисление подобия и вычисляется сходство между каждым q и каждым k.
формула:
Что такое Q, K, V?
Запрос: запросить, спросить;
Ключ: ключевое значение, ключевое слово;
Значение: значение, числовое значение.
Почему скалярное произведение может измерять сходство q и k?
Формула: q1·k1= |q1|x |k1|x cos
q1·k2= |q1| x |k2| x cos
Расчет внимания
Предполагаемый вход — это последовательность x1-x4, и каждый вход (вектор) сначала умножается на матрицу W, чтобы получить вложение, то есть вектор a1-a4. Затем это вложение попадает в слой само-внимания, и каждый вектор а1-а4 умножается на 3 разные матрицы преобразования Wq, Wk, Wv соответственно.Взяв вектор a1 в качестве примера, получается 3 разных вектора q1, k1, v1 соответственно; Затем используйте каждый запрос q, чтобы обратить внимание на каждый ключ k. Внимание состоит в том, чтобы сделать скалярное произведение, сопоставить, насколько близки два вектора, а затем разделить на квадратный корень из размеров q и k.
MultiHead Attention
Структура ViT
Вдохновленные успехом расширений Transformer в НЛП, мы пытаемся применить стандартный Transformer непосредственно к изображениям с минимальными изменениями. Для этого мы сегментируем изображение на патчи и используем последовательность линейных вложений этих патчей как один вход в преобразователь. Патчи изображений обрабатываются так же, как токены (слова) в приложениях НЛП. Мы обучаем модель классификации изображений контролируемым образом.
1. Преобразование сегментации изображения в сериализованные данные: исходное изображение размерности HxWxC преобразуется в N D-мерные векторы (или двумерную матрицу NxD);
2. Встраивание позиции: используйте встраивание позиции (фиолетовая рамка) + встраивание патча (розовая рамка) для объединения информации о позиции;
3. Обучаемое встраивание: Xclass (розовый прямоугольник со звездочкой) — это обучаемый вектор, этот токен не имеет семантической информации (то есть он не имеет ничего общего ни с одним словом в предложении и не имеет ничего общего с каким-либо патчем на изображении). ), он не имеет ничего общего с меткой изображения. Связанный, результат, полученный кодировщиком, делает общее представление смещенным в сторону информации указанного встраивания;
4. Кодер трансформатора: Z0, полученный ранее, используется в качестве начального входа преобразователя.Кодер преобразователя состоит из нескольких блоков MSA и MLP попеременно, и нормализация LN выполняется перед MSA и MLP каждый раз.
Позиционное кодирование
Зачем кодировать положение?
После сегментации и преобразования изображения (из двумерного в одномерное) информация о положении/пространстве теряется, а внутренняя работа Transformer не зависит от пространственной информации, поэтому необходимо повторно передать информацию о положении в сеть. ;
ViT использует обучаемый вектор (Xclass) для кодирования, а вектор кодирования и вектор исправления добавляются непосредственно для формирования входных данных;
Зачем добавлять напрямую вместо concat?
Поскольку сложение является частным случаем concat
Аддитивная форма: W(I+P)=WI+WP
конкатная форма:
Когда W1=W2, две формулы имеют одинаковую коннотацию.
Разница между БН и ЛН
Зачем использовать ЛН?
LN фактически вычисляет среднее значение и дисперсию для каждой выборки и преобразует входные данные в данные со средним значением 0 и дисперсией 1. BN не используется, потому что объект обработки пакетной нормализации предназначен для нормализации одних и тех же размерных признаков пакета образцов, а объект обработки слоя нормализации — это один образец, который представляет собой все размерные признаки этого одного образца. здесь введены последовательности N+1, длина каждой последовательности может быть разной.
3 Анализ экспериментальных результатов
Сначала выполните предварительную подготовку на большом наборе данных, а затем выполните точную настройку на небольшом наборе данных.
После миграции необходимо заменить исходную MLP Head на слой FC, соответствующий количеству категорий.При обработке входов разного размера необходимо интерполировать результаты Positional Encoding
Модели-трансформеры не работают так же хорошо, как ResNet, на наборах данных среднего размера (например, ImageNet);
А когда масштаб набора данных расширяется, эффект модели трансформатора приближается или превосходит некоторые из текущих.SOTA(современные) результаты.
BiT: большая модель ResNet для обучения с учителем и переносом.
Шумный студент: EfficientNet-L2 для полуконтролируемого обучения
ViT-H/14: модель ViT-Huge, входная последовательность 14x14
Связь между расстоянием внимания и количеством сетевых слоев. Расстояние Внимания может быть эквивалентно размеру рецептивного поля в Обращении. Чем глубже количество слоев, тем дальше простирается Внимание, но внизу некоторые головы могут покрывать большое расстояние. Это показывает, что Transformer может интегрировать глобальную информацию.