Трансформер механизм: Купить механизмы для трансформации кровати с доставкой по России

Содержание

Механизм дивана клик-кляк трансформер. Цена 5600 руб. Размер спального места 130*200. Доставка по Москве, московской области и в регионы. Бесплатная доставка до ТК. Более подробная информация о товаре, условиях и способах доставки на сайте компании.

Диван — ключевой элемент в гостиной и зоне отдыха, в домашнем кабинете. Классические диваны для гостиной, представляют собой стандартные конфигурации мебели: широкая спинка, подлокотники и спокойная обивка. Модерн четкие линии, прямые формы и ровные изгибы без резких форм. Именно диван задает стиль и характер гостиной комнаты. Он прекрасно дополнит ваш интерьер, а также будет радовать ваших гостей, атмосферой комфорта и уюта. Для данного механизма подходит матрас для дивана «книжка».

Технические характеристики:


Размеры спального места в разложенном состоянии: 1300Х1950 мм.

Габаритные размеры (ШХДХВ): 1100Х1950Х1000 мм.

Механизм выполнен из маталлического профиля сечением: 20Х30 мм,

Толщина стенок профилей: 1,5 мм.

Ширина ламелей: 53 мм.

Расстояние между ламелями: 80 мм.

Максимальная нагрузка на 1 спальное место: 150 кг.

 

Бельевой ящик с ортопедическим основанием, подъемным механизмом и газовыми амортизаторами, разнообразные модели кроватей, как с бельевым ящиком, так и с ортопедическим основанием, комплекты мебели и отдельные предметы мебели для спальни и детской комнаты,винные шкафы и тумбы,шкафы-купе, диваны, отгрузка мебели во все регионы, выбор клиентом транспортной компании, низкие цены на мебель, матрасы, наматрасники и комплектующие для мебели, поможем создать  дизайн интерьера, подобрать матрас с ортопедическими свойствами, мягкий, жёсткий или средней жёсткости матрас, стороны матраса с разной степенью жёсткости, ортопедическая решетка для кровати с опорами и без них, шкаф в кровать, подставка под матрас с ограничителями, бельевой ящик для дивана, купить мебель с доставкой по Москве, Московской области и в регионы.

описание, характеристики, цена на официальном сайте Много Мебели

Настоящим я даю свое согласие ООО «Много Мебели», зарегистрированному по адресу: Российская Федерация, Саратовская область, Саратовский район, с. Клещевка, Литер Г2 на обработку моих персональных данных (далее – «ПДн»), которые указаны в настоящей форме, а также иных персональных данных, которые стали известны ООО «Много Мебели».

Целями предоставления ООО «Много Мебели» ПДн являются:
  • обработка и исполнение оформленных мною заказов;
  • осуществление клиентской поддержки;
  • обработка сообщений от клиента, которые направлены через форму обратной связи;
  • продвижение представленных к продаже товаров, работ, услуг;
  • проведение клиентских маркетинговых исследований;
  • обеспечение сервиса дистанционной торговли;
  • проведение рекламных акций и акций повышения лояльности клиентов, оповещение клиентов (СМС, WhatsApp, иное), управление доступом в личном кабинете клиента;
  • иные цели, допустимые действующим законодательством Российской Федерации.

Настоящее согласие дается на осуществление следующих действий в отношении моих ПДн: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (предоставление, доступ), блокирование, удаление, уничтожение персональных данных, способом как автоматизированной, так и неавтоматизированной обработки ПДн.

Порядок и условия обработки ПДн регулируются Политикой ООО «Много Мебели» в отношении обработки персональных данных, с дополнительной информацией по вопросам обработки ПДн можно ознакомиться в Правилах работы сайта.

Настоящее согласие может быть отозвано путем направления мной письменного заявления об отзыве согласия на обработку моих ПДн, но при условии установления моей личности.

описание, характеристики, цена на официальном сайте Много Мебели

Настоящим я даю свое согласие ООО «Много Мебели», зарегистрированному по адресу: Российская Федерация, Саратовская область, Саратовский район, с. Клещевка, Литер Г2 на обработку моих персональных данных (далее – «ПДн»), которые указаны в настоящей форме, а также иных персональных данных, которые стали известны ООО «Много Мебели».

Целями предоставления ООО «Много Мебели» ПДн являются:
  • обработка и исполнение оформленных мною заказов;
  • осуществление клиентской поддержки;
  • обработка сообщений от клиента, которые направлены через форму обратной связи;
  • продвижение представленных к продаже товаров, работ, услуг;
  • проведение клиентских маркетинговых исследований;
  • обеспечение сервиса дистанционной торговли;
  • проведение рекламных акций и акций повышения лояльности клиентов, оповещение клиентов (СМС, WhatsApp, иное), управление доступом в личном кабинете клиента;
  • иные цели, допустимые действующим законодательством Российской Федерации.

Настоящее согласие дается на осуществление следующих действий в отношении моих ПДн: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (предоставление, доступ), блокирование, удаление, уничтожение персональных данных, способом как автоматизированной, так и неавтоматизированной обработки ПДн.

Порядок и условия обработки ПДн регулируются Политикой ООО «Много Мебели» в отношении обработки персональных данных, с дополнительной информацией по вопросам обработки ПДн можно ознакомиться в Правилах работы сайта.

Настоящее согласие может быть отозвано путем направления мной письменного заявления об отзыве согласия на обработку моих ПДн, но при условии установления моей личности.

Диван Румер за 13 990 ₽ в Санкт-Петербурге еврокнижка в цвете Серый Music форест/темно-серый

Серый диван-еврокнижка с принтом без подлокотников

«Румер» — яркая, современная модель дивана-кровати. Модель в такой обивке подойдет для подростковой спальни или гостиной в стильном исполнении.

Каркас

Каркас дивана «Румер» состоит из ЛДСП и фанеры.

Обивка и расцветка

Диван «Румер» обит велюром. Для данной модели используется однотонный серый материал и велюр с фотопечатью.

Наполнение

В основании еврокнижки «Румер» блок зависимых пружин. Диван отлично подходит как для отдыха, так и для сна.

Механизм

Диван «Румер» имеет простой механизм трансформации «еврокнижка». Чтобы разобрать диван, необходимо выдвинуть сиденье вперёд, затем в свободную зону опустить спинку.

Размеры

Ширина: 190 см
Глубина: 93 см
Высота: 81 см
Размер спального места: 140 × 190 см

Особенности модели

— Диван не имеет боковин, поэтому достаточно компактный. Их отсутствие компенсируют 2 съемных подушки-подлокотника.
— «Румер» можно поставить как вплотную к стене, так и в центре комнаты. Спинка с лицевой и задней стороны обита одной тканью.
— Диван имеет ящик для хранения постельных принадлежностей, объемом 268 л.

Чтобы подробнее узнать о диване Румер серый или купить его, закажите обратный звонок. Менеджер перезвонит и ответит на все вопросы.

Товар продается в Санкт-Петербурге за 13 990 ₽, доставим со склада в течение 1-2 рабочих дней. Если нужной мебели нет в наличии, то закажем на фабрике. Изготовление в среднем занимает 10-15 рабочих дней. Информацию о наличии, оплате, сроках, доставке, подъёме и возможности сборки уточняйте у менеджера.

The Illustrated Transformer — Джей Аламмар — Визуализация машинного обучения по одной концепции за раз.

Обсуждения: Hacker News (65 баллов, 4 комментария), Reddit r / MachineLearning (29 баллов, 3 комментария)

Переводы: Испанский, Китайский (упрощенный), Корейский, Русский, Вьетнамский, Французский, Японский
Смотреть: лекция MIT по теме «Глубокое обучение» со ссылкой на эту публикацию

В предыдущем посте мы рассмотрели «Внимание» — повсеместный метод в современных моделях глубокого обучения.Внимание — это концепция, которая помогла повысить производительность приложений нейронного машинного перевода. В этом посте мы рассмотрим The Transformer — модель, которая привлекает внимание для повышения скорости обучения этих моделей. Трансформеры превосходят модель нейронного машинного перевода Google в определенных задачах. Однако наибольшее преимущество заключается в том, что The Transformer позволяет распараллеливать. Фактически, Google Cloud рекомендует использовать The Transformer в качестве эталонной модели для использования своего предложения Cloud TPU.Итак, давайте попробуем разбить модель на части и посмотрим, как она работает.

Трансформатор был предложен в статье «Внимание — это все, что вам нужно». Его реализация в TensorFlow доступна как часть пакета Tensor2Tensor. Группа НЛП из Гарварда создала руководство с аннотациями к статье с использованием PyTorch. В этом посте мы попытаемся немного упростить вещи и представить концепции одну за другой, чтобы, надеюсь, облегчить понимание людям без глубоких знаний предмета.

2020 Обновление : Я создал видео «Рассказанный трансформер», в котором более мягкий подход к теме:

Взгляд высокого уровня

Давайте начнем с рассмотрения модели как единого черного ящика. В приложении машинного перевода оно берет предложение на одном языке и выводит его перевод на другом.

Раскрывая эту доброту Оптимуса Прайма, мы видим компонент кодирования, компонент декодирования и связи между ними.

Компонент кодирования представляет собой стек кодировщиков (на бумаге шесть из них складываются друг на друга — в числе шесть нет ничего волшебного, можно определенно поэкспериментировать с другими компоновками). Компонент декодирования представляет собой стек декодеров с одинаковым числом.

Все кодировщики идентичны по структуре (но у них нет общих весов). Каждый из них разбит на два подслоя:

Входные данные кодировщика сначала проходят через слой самовнимания — слой, который помогает кодировщику смотреть на другие слова во входном предложении, когда он кодирует определенное слово.Позже мы подробнее рассмотрим самовнимание.

Выходные данные слоя самовнимания передаются в нейронную сеть с прямой связью. Точно такая же сеть прямого распространения независимо применяется к каждой позиции.

В декодере есть оба этих уровня, но между ними есть уровень внимания, который помогает декодеру сосредоточиться на соответствующих частях входного предложения (аналогично тому, что делает внимание в моделях seq2seq).

Тензоры в картине

Теперь, когда мы рассмотрели основные компоненты модели, давайте приступим к рассмотрению различных векторов / тензоров и того, как они перемещаются между этими компонентами, чтобы превратить входные данные обученной модели в выходные данные.

Как и в случае с приложениями НЛП в целом, мы начинаем с превращения каждого входного слова в вектор с помощью алгоритма встраивания.


Каждое слово вложено в вектор размером 512. Мы представим эти векторы этими простыми прямоугольниками.

Встраивание происходит только в самый нижний кодировщик. Абстракция, которая является общей для всех кодировщиков, заключается в том, что они получают список векторов, каждый из которых имеет размер 512. В нижнем кодировщике это будет слово embeddings, но в других кодировщиках это будет выход кодировщика, который находится непосредственно под .Размер этого списка является гиперпараметром, который мы можем установить — в основном это будет длина самого длинного предложения в нашем наборе обучающих данных.

После встраивания слов в нашу входную последовательность каждое из них проходит через каждый из двух уровней кодировщика.


Здесь мы начинаем видеть одно ключевое свойство преобразователя, а именно то, что слово в каждой позиции проходит свой собственный путь в кодировщике. Между этими путями на уровне самовнимания есть зависимости.Однако уровень прямой связи не имеет этих зависимостей, и, таким образом, различные пути могут выполняться параллельно при прохождении через слой прямой связи.

Затем мы заменим пример более коротким предложением и посмотрим, что происходит на каждом подуровне кодировщика.

Теперь мы кодируем!

Как мы уже упоминали, кодировщик получает на вход список векторов. Он обрабатывает этот список, передавая эти векторы в слой «самовнимания», затем в нейронную сеть с прямой связью, а затем отправляет выходные данные вверх следующему кодировщику.


Слово в каждой позиции проходит через процесс самовнимания. Затем каждый из них проходит через нейронную сеть с прямой связью — точно такую ​​же сеть, и каждый вектор проходит через нее отдельно.

Самовнимание на высоком уровне

Не обманывайтесь, когда я использую слово «самовнимание», как будто это понятие должно быть знакомо каждому. Я лично никогда не сталкивался с этой концепцией, пока не прочитал статью «Все, что вам нужно». Давайте разберемся, как это работает.

Скажем, следующее предложение является вводным предложением, которое мы хотим перевести:

Животное не переходило улицу, потому что оно слишком устало

Что означает «оно» в этом предложении? Имеется в виду улица или животное? Это простой вопрос для человека, но не такой простой для алгоритма.

Когда модель обрабатывает слово «оно», самовнимание позволяет ей ассоциировать «это» с «животным».

По мере того, как модель обрабатывает каждое слово (каждую позицию во входной последовательности), самовнимание позволяет ей смотреть на другие позиции во входной последовательности в поисках подсказок, которые могут помочь улучшить кодирование этого слова.

Если вы знакомы с RNN, подумайте о том, как поддержание скрытого состояния позволяет RNN включать свое представление предыдущих слов / векторов, которые она обработала, с текущим, обрабатываемым ею. Самовнимание — это метод, который Трансформер использует для «запекания» других релевантных слов в словах, которые мы обрабатываем в данный момент.


Поскольку мы кодируем слово «оно» в кодировщике №5 (верхний кодировщик в стеке), часть механизма внимания фокусировалась на «Животном» и запекла часть его представления в кодировке «оно».

Обязательно ознакомьтесь с записной книжкой Tensor2Tensor, где вы можете загрузить модель Transformer и изучить ее с помощью этой интерактивной визуализации.

Самостоятельное внимание в деталях

Давайте сначала посмотрим, как вычислить самовнимание с помощью векторов, а затем перейдем к тому, как это на самом деле реализовано — с помощью матриц.

Первый шаг при вычислении самовнимания — создать три вектора из каждого входного вектора кодировщика (в данном случае — вложение каждого слова).Итак, для каждого слова мы создаем вектор запроса, вектор ключа и вектор значения. Эти векторы создаются путем умножения вложения на три матрицы, которые мы обучили в процессе обучения.

Обратите внимание, что эти новые векторы меньше по размерности, чем вектор внедрения. Их размерность составляет 64, в то время как векторы ввода / вывода встраивания и кодировщика имеют размерность 512. Они НЕ ДОЛЖНЫ быть меньше, это выбор архитектуры, позволяющий сделать вычисление многогранного внимания (в основном) постоянным.


Умножение x1 на весовую матрицу WQ дает q1, вектор «запроса», связанный с этим словом. В итоге мы создаем проекцию «запроса», «ключа» и «значения» для каждого слова во входном предложении.

Что такое векторы «запроса», «ключа» и «значения»?

Это абстракции, которые полезны для вычисления внимания и размышления о нем. После того, как вы перейдете к чтению того, как рассчитывается внимание ниже, вы будете знать почти все, что вам нужно знать о роли каждого из этих векторов.

Второй шаг в вычислении самовнимания — это подсчет баллов. Предположим, мы рассчитываем самовнимание для первого слова в этом примере — «Мышление». Нам нужно сопоставить каждое слово входного предложения с этим словом. Оценка определяет, сколько внимания следует уделять другим частям входного предложения, когда мы кодируем слово в определенной позиции.

Оценка рассчитывается как скалярное произведение вектора запроса на ключевой вектор соответствующего слова, которое мы оцениваем.Итак, если мы обрабатываем самовнимание для слова в позиции №1, первая оценка будет скалярным произведением q1 и k1. Вторая оценка будет скалярным произведением q1 и k2.


Третий и четвертый этапы заключаются в разделении оценок на 8 (квадратный корень из размерности ключевых векторов, используемых в статье — 64. Это приводит к получению более стабильных градиентов. Здесь могут быть другие возможные значения, но это значение по умолчанию), затем передайте результат через операцию softmax.Softmax нормализует оценки, чтобы все они были положительными и в сумме составляли 1.

.

Эта оценка softmax определяет, насколько каждое слово будет выражено в этой позиции. Очевидно, что слово в этой позиции будет иметь самый высокий балл softmax, но иногда полезно обратить внимание на другое слово, имеющее отношение к текущему слову.

Пятый шаг — это умножение каждого вектора значений на оценку softmax (при подготовке к их суммированию). Интуиция здесь заключается в том, чтобы сохранить неизменными значения слов, на которых мы хотим сосредоточиться, и заглушить не относящиеся к делу слова (умножив их на крошечные числа, такие как 0. 001, например).

Шестой этап заключается в суммировании векторов взвешенных значений. Это производит вывод слоя самовнимания в этой позиции (для первого слова).


На этом расчет самовнимания завершен. Результирующий вектор — это тот, который мы можем отправить в нейронную сеть с прямой связью. Однако в реальной реализации этот расчет выполняется в матричной форме для более быстрой обработки. Итак, давайте посмотрим на это теперь, когда мы увидели интуитивное вычисление на уровне слов.

Матрица расчета самовнимания

Первым шагом является вычисление матриц запроса, ключа и значения. Мы делаем это, упаковывая наши вложения в матрицу X и умножая ее на матрицы весов, которые мы обучили (WQ, WK, WV).


Каждая строка в матрице X соответствует слову во входном предложении. Мы снова видим разницу в размере вектора встраивания (512 или 4 прямоугольника на рисунке) и векторов q / k / v (64 или 3 прямоугольника на рисунке).

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


Расчет самовнимания в матричной форме

Многоголовый зверь

В статье дополнительно усовершенствован слой самовнимания, добавлен механизм, называемый «многоголовым» вниманием. Это улучшает производительность слоя внимания двумя способами:

  1. Расширяет способность модели фокусироваться на разных позициях. Да, в приведенном выше примере z1 содержит немного любой другой кодировки, но в ней может преобладать само слово.Было бы полезно, если бы мы переводили предложение вроде «Животное не переходило улицу, потому что оно слишком устало», мы хотели бы знать, к какому слову «оно» относится.

  2. Он дает слою внимания несколько «подпространств представления». Как мы увидим далее, с многоголовым вниманием у нас есть не только один, но и несколько наборов весовых матриц запроса / ключа / значения (преобразователь использует восемь головок внимания, поэтому мы получаем восемь наборов для каждого кодировщика / декодера). . Каждый из этих наборов инициализируется случайным образом.Затем, после обучения, каждый набор используется для проецирования входных вложений (или векторов из нижних кодировщиков / декодеров) в другое подпространство представления.


С многоголовым вниманием мы поддерживаем отдельные весовые матрицы Q / K / V для каждой головы, в результате чего получаются разные матрицы Q / K / V. Как и раньше, мы умножаем X на матрицы WQ / WK / WV, чтобы получить матрицы Q / K / V.


Если мы проделаем тот же расчет самовнимания, который мы описали выше, всего восемь раз с разными весовыми матрицами, мы получим восемь разных Z-матриц


Это оставляет нам небольшую проблему.Слой прямой связи не ожидает восьми матриц — он ожидает единственную матрицу (вектор для каждого слова). Итак, нам нужен способ сжать эти восемь элементов в единую матрицу.

Как мы это делаем? Мы объединяем матрицы, а затем умножаем их на дополнительную матрицу весов WO.


Вот и все, что нужно для многоглавого самовнимания. Я понимаю, что это довольно много матриц. Позвольте мне попытаться объединить их все в один визуальный ряд, чтобы мы могли рассматривать их в одном месте


Теперь, когда мы коснулись головок внимания, давайте вернемся к нашему предыдущему примеру, чтобы увидеть, на чем фокусируются различные головы внимания, когда мы кодируем слово «оно» в нашем примере предложения:


Когда мы кодируем слово «оно», одна голова внимания больше всего сосредотачивается на «животном», в то время как другая фокусируется на «усталом» — в некотором смысле, представление модели слова «оно» вписывается в некоторые из представлений. как «животное», так и «уставшее».

Однако, если мы добавим к изображению все внимание, интерпретировать вещи будет сложнее:


Представление порядка последовательности с использованием позиционного кодирования

В модели, которую мы описали до сих пор, отсутствует одна вещь, так это способ учесть порядок слов во входной последовательности.

Чтобы решить эту проблему, преобразователь добавляет вектор к каждому встраиванию входа. Эти векторы следуют определенному шаблону, который модель изучает, что помогает ей определять положение каждого слова или расстояние между разными словами в последовательности.Интуиция здесь заключается в том, что добавление этих значений к вложениям обеспечивает значимые расстояния между векторами встраивания, когда они проецируются в векторы Q / K / V и во время внимания скалярного произведения.


Чтобы дать модели ощущение порядка слов, мы добавляем векторы позиционного кодирования, значения которых следуют определенному шаблону.

Если мы предположим, что вложение имеет размерность 4, фактическое позиционное кодирование будет выглядеть так:


Реальный пример позиционного кодирования с размером вложения игрушки 4

Как мог бы выглядеть этот узор?

На следующем рисунке каждая строка соответствует позиционному кодированию вектора.Таким образом, первая строка будет вектором, который мы добавим к встраиванию первого слова во входной последовательности. Каждая строка содержит 512 значений — каждое от 1 до -1. Мы присвоили им цветовую кодировку, чтобы узор был виден.


Реальный пример позиционного кодирования для 20 слов (строк) с размером встраивания 512 (столбцов). Вы можете видеть, что он разделен пополам по центру. Это потому, что значения левой половины генерируются одной функцией (которая использует синус), а правая половина генерируется другой функцией (которая использует косинус).Затем они объединяются, чтобы сформировать каждый из векторов позиционного кодирования.

Формула позиционного кодирования описана в статье (раздел 3.5). Вы можете увидеть код для генерации позиционных кодировок в get_timing_signal_1d () . Это не единственный возможный метод позиционного кодирования. Однако это дает преимущество возможности масштабирования до невидимой длины последовательностей (например, если нашу обученную модель просят перевести предложение длиннее, чем любое из предложений в нашем обучающем наборе).

Июль 2020 Обновление: Позиционное кодирование, показанное выше, взято из реализации Transformer2Transformer. Метод, показанный в статье, немного отличается тем, что он не соединяет напрямую, а переплетает два сигнала. На следующем рисунке показано, как это выглядит. Вот код для его создания:


Остатки

Одна деталь в архитектуре кодера, которую мы должны упомянуть, прежде чем двигаться дальше, заключается в том, что каждый подуровень (самовнимание, ffnn) в каждом кодере имеет остаточное соединение вокруг себя, за которым следует этап нормализации уровня. .


Если мы визуализируем векторы и операцию уровня-нормы, связанную с самовниманием, это будет выглядеть так:


Это также относится к подуровням декодера. Если мы представим себе преобразователь из двух стековых кодировщиков и декодеров, он будет выглядеть примерно так:


Сторона декодера

Теперь, когда мы рассмотрели большинство концепций кодировщика, мы в основном знаем, как работают компоненты декодеров.Но давайте посмотрим, как они работают вместе.

Кодер запускает обработку входной последовательности. Затем выходной сигнал верхнего кодера преобразуется в набор векторов внимания K и V. Они должны использоваться каждым декодером на его уровне «внимание кодер-декодер», который помогает декодеру сосредоточиться на соответствующих местах во входной последовательности:


После завершения этапа кодирования мы начинаем этап декодирования. Каждый шаг в фазе декодирования выводит элемент из выходной последовательности (в данном случае предложение английского перевода).

Следующие шаги повторяют процесс до тех пор, пока не будет достигнут специальный символ, указывающий, что декодер трансформатора завершил свой вывод. Выходные данные каждого шага поступают в нижний декодер на следующем временном шаге, и декодеры выводят свои результаты декодирования так же, как это сделали кодеры. И так же, как мы поступили с входами кодировщика, мы встраиваем и добавляем позиционное кодирование к этим входам декодера, чтобы указать положение каждого слова.


Слои самовнимания в декодере работают немного иначе, чем в кодировщике:

В декодере слой самовнимания может обращать внимание только на более ранние позиции в выходной последовательности.Это делается путем маскировки будущих позиций (установка для них значений -inf ) перед шагом softmax в расчете самовнимания.

Слой «Внимание кодировщика-декодера» работает так же, как многоголовое самовнимание, за исключением того, что он создает свою матрицу запросов из нижележащего уровня и берет матрицу ключей и значений из выходных данных стека кодировщика.

Последний линейный слой и слой Softmax

Стек декодера выводит вектор чисел с плавающей запятой. Как превратить это в слово? Это работа последнего слоя Linear, за которым следует слой Softmax.

Линейный слой — это простая полносвязная нейронная сеть, которая проецирует вектор, созданный стеком декодеров, в гораздо более крупный вектор, называемый вектором логитов.

Предположим, что наша модель знает 10 000 уникальных английских слов («выходной словарь» нашей модели), которые она выучила из набора обучающих данных. Это сделало бы вектор логитов шириной 10 000 ячеек — каждая ячейка соответствует количеству уникального слова. Вот как мы интерпретируем вывод модели, за которой следует линейный слой.

Затем слой softmax превращает эти оценки в вероятности (все положительные, все в сумме дают 1,0). Выбирается ячейка с наибольшей вероятностью, и слово, связанное с ней, создается в качестве выходных данных для этого временного шага.


Этот рисунок начинается снизу с вектора, полученного на выходе стека декодера. Затем оно превращается в выходное слово.

Итоги обучения

Теперь, когда мы рассмотрели весь процесс прямого прохода через обученный преобразователь, было бы полезно взглянуть на интуицию обучения модели.

Во время обучения неподготовленная модель должна пройти точно такой же прямой проход. Но поскольку мы обучаем его на помеченном наборе обучающих данных, мы можем сравнить его выходные данные с фактическими правильными выходными данными.

Для наглядности предположим, что наш выходной словарь содержит только шесть слов («а», «я», «я», «спасибо», «ученик» и «» (сокращение от «конец предложения») ).


Выходной словарь нашей модели создается на этапе предварительной обработки еще до того, как мы начинаем обучение.

Как только мы определим наш выходной словарь, мы можем использовать вектор той же ширины для обозначения каждого слова в нашем словаре. Это также называется горячим кодированием. Так, например, мы можем обозначить слово «am» с помощью следующего вектора:


Пример: быстрое кодирование нашего выходного словаря

После этого резюме, давайте обсудим функцию потерь модели — метрику, которую мы оптимизируем на этапе обучения, чтобы привести к обученной и, надеюсь, удивительно точной модели.

Функция потерь

Допустим, мы обучаем нашу модель. Допустим, это наш первый шаг на этапе обучения, и мы обучаем его на простом примере — переводе слова «мерси» в «спасибо».

Это означает, что мы хотим, чтобы на выходе было распределение вероятностей с указанием слова «спасибо». Но поскольку эта модель еще не обучена, это вряд ли произойдет.


Поскольку все параметры модели (веса) инициализируются случайным образом, (необученная) модель создает распределение вероятностей с произвольными значениями для каждой ячейки / слова.Мы можем сравнить его с фактическим результатом, а затем настроить все веса модели с помощью обратного распространения ошибки, чтобы приблизить результат к желаемому.

Как сравнить два распределения вероятностей? Мы просто вычитаем одно из другого. Для получения дополнительных сведений см. Кросс-энтропию и расхождение Кульбака – Лейблера.

Но учтите, что это упрощенный пример. Более реалистично, мы будем использовать предложение длиннее одного слова. Например — ввод: «je suis étudiant» и ожидаемый результат: «я студент».На самом деле это означает, что мы хотим, чтобы наша модель последовательно выводила распределения вероятностей, где:

  • Каждое распределение вероятностей представлено вектором ширины vocab_size (6 в нашем игрушечном примере, но более реалистично число вроде 30 000 или 50 000)
  • Первое распределение вероятностей имеет наивысшую вероятность в ячейке, связанной со словом «i»
  • Второе распределение вероятностей имеет самую высокую вероятность в ячейке, связанной со словом «am»
  • И так далее, пока пятое выходное распределение не укажет символ « <конец предложения> », с которым также связана ячейка из словаря из 10 000 элементов.

Целевые распределения вероятностей, с которыми мы будем обучать нашу модель в обучающем примере для одного предложения-образца.

После обучения модели в течение достаточного времени на достаточно большом наборе данных мы надеемся, что полученные распределения вероятностей будут выглядеть так:


Надеемся, что после обучения модель выдаст правильный перевод, который мы ожидаем. Конечно, это не настоящее указание на то, была ли эта фраза частью обучающего набора данных (см .: перекрестная проверка).Обратите внимание, что каждая позиция имеет небольшую вероятность, даже если она вряд ли будет результатом этого временного шага — это очень полезное свойство softmax, которое помогает процессу обучения.

Теперь, поскольку модель производит выходные данные по одному, мы можем предположить, что модель выбирает слово с наибольшей вероятностью из этого распределения вероятностей и отбрасывает остальные. Это один из способов (называемый жадным декодированием). Другой способ сделать это — удержаться, скажем, за два верхних слова (скажем, «I» и «a», например), а затем на следующем шаге дважды запустить модель: однажды предполагая, что первая выходная позиция была слово «I», и в другой раз, предполагая, что первой выходной позицией было слово «а», и какая бы версия ни вызвала меньше ошибок, учитывая обе позиции №1 и №2, сохраняется.Мы повторяем это для позиций №2 и №3… и т. Д. Этот метод называется «поиск луча», где в нашем примере для beam_size было два (это означает, что всегда две частичные гипотезы (незавершенные переводы) сохраняются в памяти), а top_beams также равно двум (что означает, что мы вернем два перевода. ). Это оба гиперпараметра, с которыми вы можете поэкспериментировать.

Двигайтесь вперед и трансформируйте

Надеюсь, вы нашли это полезным местом, чтобы начать ломать голову над основными концепциями Трансформера.Если вы хотите углубиться, я бы посоветовал следующие шаги:

Доработки:

Благодарности

Благодарим Илью Полосухина, Якоба Ушкорейта, Ллиона Джонса, Лукаша Кайзера, Ники Пармар и Ноама Шазира за отзывы о более ранних версиях этого поста.

Пожалуйста, напишите мне в Твиттер, чтобы я получил любые исправления или отзывы.

Что такое трансформатор ?. Введение в трансформаторы и… | Максим | Машинное обучение изнутри

Новые модели глубокого обучения внедряются все чаще, и иногда бывает сложно уследить за всеми новинками.Тем не менее, одна конкретная модель нейронной сети оказалась особенно эффективной для общих задач обработки естественного языка. Модель называется Transformer, и в ней используются несколько методов и механизмов, которые я здесь расскажу. Статьи, на которые я ссылаюсь в посте, предлагают более подробное и количественное описание.

В документе «Внимание — это все, что вам нужно» описываются трансформаторы и так называемая архитектура «последовательность-последовательность». Sequence-to-Sequence (или Seq2Seq) — это нейронная сеть, которая преобразует заданную последовательность элементов, например последовательность слов в предложении, в другую последовательность.(Что ж, это может не удивить вас, учитывая название.)

Модели Seq2Seq особенно хороши при переводе, когда последовательность слов одного языка преобразуется в последовательность разных слов другого языка. Популярным выбором для этого типа моделей являются модели на основе Long-Short-Term-Memory (LSTM). С данными, зависящими от последовательности, модули LSTM могут придавать значение последовательности, запоминая (или забывая) те части, которые он считает важными (или неважными). Например, предложения зависят от последовательности, поскольку порядок слов имеет решающее значение для понимания предложения.LSTM — естественный выбор для этого типа данных.

Модели Seq2Seq состоят из кодировщика и декодера. Кодировщик берет входную последовательность и отображает ее в пространство более высокой размерности (n-мерный вектор). Этот абстрактный вектор подается в декодер, который превращает его в выходную последовательность. Последовательность вывода может быть на другом языке, символах, копии ввода и т. Д.

Представьте себе кодировщик и декодер как переводчиков, говорящих только на двух языках. Их первый язык — их родной язык, который у них обоих разный (e.грамм. Немецкий и французский) и их второй общий язык — воображаемый. Для перевода немецкого на французский Encoder преобразует немецкое предложение на другой язык, который он знает, а именно на воображаемый язык. Поскольку декодер может читать этот воображаемый язык, теперь он может переводить с этого языка на французский. Вместе модель (состоящая из кодировщика и декодера) может переводить с немецкого на французский!

Предположим, что изначально ни кодировщик, ни декодер плохо владеют воображаемым языком.Чтобы научиться этому, мы обучаем их (модель) на множестве примеров.

Самый простой выбор для кодировщика и декодера модели Seq2Seq — это один LSTM для каждого из них.

Вам интересно, когда же Трансформер наконец войдет в игру, не так ли?

Нам нужна еще одна техническая деталь, чтобы сделать трансформаторы более понятными: Внимание . Механизм внимания смотрит на входную последовательность и на каждом этапе решает, какие другие части последовательности важны.Это звучит абстрактно, но позвольте мне уточнить простой пример: читая этот текст, вы всегда сосредотачиваетесь на прочитанном слове, но в то же время ваш разум по-прежнему удерживает в памяти важные ключевые слова текста, чтобы обеспечить контекст.

Механизм внимания работает аналогично для данной последовательности. Для нашего примера с человеческим кодировщиком и декодером представьте, что вместо того, чтобы записывать только перевод предложения на воображаемом языке, кодировщик также записывает ключевые слова, которые важны для семантики предложения, и передает их декодеру в дополнение к обычному переводу.Эти новые ключевые слова значительно упрощают перевод для декодера, поскольку он знает, какие части предложения важны и какие ключевые термины задают контекст предложения.

Другими словами, для каждого входа, который считывает LSTM (кодировщик), механизм внимания одновременно учитывает несколько других входов и решает, какие из них важны, присваивая этим входам разные веса. Затем декодер примет на вход закодированное предложение и веса, предоставленные механизмом внимания.Чтобы узнать больше о внимании, прочтите эту статью. А для более научного подхода, чем предложенный, прочтите о различных подходах, основанных на внимании к моделям «последовательность-последовательность», в этой замечательной статье под названием «Эффективные подходы к нейронному машинному переводу на основе внимания».

В статье «Внимание — это все, что вам нужно» представлена ​​новая архитектура под названием Transformer. Как видно из названия, он использует механизм внимания, который мы видели ранее. Как и LSTM, Transformer — это архитектура для преобразования одной последовательности в другую с помощью двух частей (кодировщика и декодера), но она отличается от ранее описанных / существующих моделей последовательностей, поскольку не подразумевает никаких рекуррентных сетей ( ГРУ, LSTM и др.).

Рекуррентные сети до сих пор были одним из лучших способов фиксировать своевременные зависимости в последовательностях. Однако команда, представившая документ, доказала, что архитектура только с механизмами внимания без каких-либо RNN (рекуррентных нейронных сетей) может улучшить результаты в задаче перевода и других задачах! Одно улучшение в задачах естественного языка представлено командой, представляющей BERT: BERT: предварительное обучение глубоких двунаправленных преобразователей для понимания языка.

Итак, что такое трансформатор?

Изображение стоит тысячи слов, поэтому начнем с него!

Рис. 1. Из статьи Vaswani et al.

Кодировщик находится слева, а декодер — справа. И кодировщик, и декодер состоят из модулей, которые можно устанавливать друг на друга несколько раз, что описано на рисунке Nx . Мы видим, что модули состоят в основном из слоев Multi-Head Attention и Feed Forward. Входы и выходы (целевые предложения) сначала встраиваются в n-мерное пространство, поскольку мы не можем использовать строки напрямую.

Одна небольшая, но важная часть модели — позиционное кодирование различных слов.Поскольку у нас нет повторяющихся сетей, которые могут запомнить, как последовательности вводятся в модель, нам нужно каким-то образом присвоить каждому слову / части в нашей последовательности относительное положение, поскольку последовательность зависит от порядка ее элементов. Эти позиции добавляются к встроенному представлению (n-мерному вектору) каждого слова.

Давайте внимательнее рассмотрим эти блоки Multi-Head Attention в модели:

Рисунок 2. Из «Attention Is All You Need» Vaswani et al.

Начнем с описания механизма внимания слева.Это не очень сложно и может быть описано следующим уравнением:

Q — матрица, содержащая запрос (векторное представление одного слова в последовательности), K — все ключи (векторные представления всех слов в последовательности) и V — значения, которые снова являются векторными представлениями всех слов в последовательности. Для кодировщика и декодера, модулей внимания с несколькими головами, V состоит из той же последовательности слов, что и Q. Однако для модуля внимания, который принимает во внимание последовательности кодера и декодера, V отличается от последовательности, представленной Q.

Чтобы немного упростить это, мы могли бы сказать, что значения в V умножаются и суммируются с некоторыми весами внимания a, , где наши веса определяются как:

Это означает, что веса a определяются как как на каждое слово последовательности (представленной Q) влияют все другие слова в последовательности (представленные K). Кроме того, функция SoftMax применяется к весам и , чтобы иметь распределение между 0 и 1. Эти веса затем применяются ко всем словам в последовательности, которые вводятся в V (те же векторы, что и Q для кодера и декодера, но разные для модуля, имеющего входы кодировщика и декодера).

На рисунке справа показано, как этот механизм внимания можно распараллелить на несколько механизмов, которые можно использовать бок о бок. Механизм внимания повторяется несколько раз с линейными проекциями Q, K и V. Это позволяет системе учиться на различных представлениях Q, K и V, что полезно для модели. Эти линейные представления выполняются путем умножения Q, K и V на весовые матрицы W, которые изучаются во время обучения.

Эти матрицы Q, K и V различны для каждой позиции модулей внимания в структуре в зависимости от того, находятся ли они в кодере, декодере или промежуточном кодере и декодере.Причина в том, что мы хотим обработать либо всю входную последовательность кодера, либо часть входной последовательности декодера. Модуль внимания с несколькими головами, который соединяет кодер и декодер, будет следить за тем, чтобы входная последовательность кодера учитывалась вместе с входной последовательностью декодера до заданной позиции.

После головок с множественным вниманием в кодировщике и декодере у нас есть точечный слой прямой связи. Эта небольшая сеть прямой связи имеет идентичные параметры для каждой позиции, которые можно описать как отдельное идентичное линейное преобразование каждого элемента из данной последовательности.

Обучение

Как дрессировать такого «зверя»? Обучение и вывод на основе моделей Seq2Seq немного отличается от обычной задачи классификации. То же самое и с Трансформерами.

Мы знаем, что для обучения модели задачам перевода нам нужны два предложения на разных языках, которые являются переводами друг друга. Когда у нас будет много пар предложений, мы можем приступить к обучению нашей модели. Допустим, мы хотим перевести с французского на немецкий. Наш закодированный ввод будет предложением на французском языке, а ввод для декодера будет предложением на немецком языке.Однако вход декодера будет смещен вправо на одну позицию. .. Подождите, а почему?

Одна из причин заключается в том, что мы не хотим, чтобы наша модель училась копировать входные данные декодера во время обучения, но мы хотим узнать, что с учетом последовательности кодера и конкретной последовательности декодера, которая уже была замечена моделью, мы прогнозируем следующее слово / символ.

Если мы не сдвинем последовательность декодера, модель научится просто «копировать» вход декодера, поскольку целевым словом / символом для позиции i будет слово / символ i на входе декодера.Таким образом, сдвигая ввод декодера на одну позицию, наша модель должна предсказать целевое слово / символ для позиции i , увидев только слово / символы 1,…, i-1 в последовательности декодера. Это мешает нашей модели изучить задачу копирования / вставки. Мы заполняем первую позицию ввода декодера токеном начала предложения, поскольку в противном случае это место было бы пустым из-за сдвига вправо. Точно так же мы добавляем маркер конца предложения во входную последовательность декодера, чтобы отметить конец этой последовательности, и он также добавляется к целевому выходному предложению.Через мгновение мы увидим, насколько это полезно для вывода результатов.

Это верно для моделей Seq2Seq и трансформатора. В дополнение к сдвигу вправо, Трансформатор применяет маску к входу в первом модуле внимания с несколькими головами, чтобы не видеть потенциальных «будущих» элементов последовательности. Это характерно для архитектуры Transformer, потому что у нас нет RNN, в которые мы можем вводить нашу последовательность последовательно. Здесь мы вводим все вместе, и если бы не было маски, внимание с несколькими головками рассматривало бы всю входную последовательность декодера в каждой позиции.

Процесс подачи правильного сдвинутого ввода в декодер также называется принудительной подачей учителя, как описано в этом блоге.

Целевая последовательность, которую мы хотим для наших расчетов потерь, — это просто вход декодера (немецкое предложение) без его сдвига и с маркером конца последовательности в конце.

Вывод

Вывод с помощью этих моделей отличается от обучения, что имеет смысл, потому что в конце концов мы хотим перевести французское предложение, не имея немецкого предложения.Уловка здесь заключается в том, чтобы повторно загружать нашу модель для каждой позиции выходной последовательности, пока мы не встретим токен конца предложения.

Более пошаговый метод:

  • Введите полную последовательность кодировщика (французское предложение), и в качестве входных данных декодера мы берем пустую последовательность только с лексемой начала предложения на первой позиции. Это выведет последовательность, в которой мы возьмем только первый элемент.
  • Этот элемент будет заполнен во второй позиции нашей входной последовательности декодера, которая теперь имеет маркер начала предложения и первое слово / символ в нем.
  • Введите в модель как последовательность кодировщика, так и новую последовательность декодера. Возьмите второй элемент вывода и поместите его во входную последовательность декодера.
  • Повторяйте это, пока не найдете маркер конца предложения, который отмечает конец перевода.

Мы видим, что нам нужно несколько прогонов нашей модели, чтобы перевести наше предложение.

Я надеюсь, что эти описания сделали архитектуру Transformer немного понятнее для всех, кто начинает с Seq2Seq и структур кодер-декодер.

Мы видели архитектуру Transformer и знаем из литературы и авторов «Attention is All you Need», что модель очень хорошо справляется с языковыми задачами. Давайте теперь протестируем Transformer на примере использования.

Вместо задачи перевода давайте реализуем прогноз временных рядов для почасового потока электроэнергии в Техасе, предоставленный Советом по надежности электроснабжения Техаса (ERCOT). Здесь вы можете найти почасовые данные.

Прекрасное подробное объяснение трансформатора и его реализации предоставлено harvardnlp.Если вы хотите глубже изучить архитектуру, я рекомендую пройти через эту реализацию.

Поскольку мы можем использовать последовательные модели на основе LSTM для составления многошаговых прогнозов, давайте взглянем на Трансформатор и его возможности для таких прогнозов. Однако сначала нам нужно внести несколько изменений в архитектуру, поскольку мы работаем не с последовательностями слов, а со значениями. Кроме того, мы делаем авторегрессию, а не классификацию слов / символов.

Данные

Имеющиеся данные дают нам почасовую нагрузку для всей области управления ERCOT. Я использовал данные с 2003 по 2015 год в качестве обучающей выборки и 2016 года в качестве тестовой. Имея только значение нагрузки и метку времени загрузки, я расширил метку времени на другие функции. Из метки времени я извлек день недели, которому он соответствует, и закодировал его в горячем режиме. Кроме того, я использовал год (2003, 2004,…, 2015) и соответствующий час (1, 2, 3,…, 24) как само значение.Это дает мне в общей сложности 11 функций на каждый час дня. В целях сходимости я также нормализовал нагрузку ERCOT, разделив ее на 1000.

Чтобы предсказать заданную последовательность, нам нужна последовательность из прошлого. Размер этих окон может варьироваться от варианта к варианту использования, но здесь, в нашем примере, я использовал почасовые данные за предыдущие 24 часа, чтобы спрогнозировать следующие 12 часов. Помогает то, что мы можем регулировать размер этих окон в зависимости от наших потребностей. Например, мы можем изменить это на ежедневные данные вместо почасовых данных.

Изменения в модели из бумаги

В качестве первого шага нам нужно удалить вложения, так как у нас уже есть числовые значения во входных данных. Вложение обычно отображает данное целое число в n-мерное пространство. Здесь вместо использования встраивания я просто использовал линейное преобразование для преобразования 11-мерных данных в n-мерное пространство. Это похоже на вложение со словами.

Нам также необходимо удалить слой SoftMax из выходных данных Transformer, потому что наши выходные узлы являются не вероятностями, а реальными значениями.

После этих незначительных изменений можно начинать обучение!

Как уже упоминалось, я использовал принуждение учителя для обучения. Это означает, что кодер получает окно из 24 точек данных в качестве входных данных, а входные данные декодера представляют собой окно из 12 точек данных, где первая представляет собой значение «начала последовательности», а следующие точки данных представляют собой просто целевую последовательность. Введя значение «начало последовательности» в начале, я сдвинул ввод декодера на одну позицию относительно целевой последовательности.

Я использовал 11-мерный вектор только с -1 в качестве значений «начала последовательности». Конечно, это можно изменить, и, возможно, было бы полезно использовать другие значения в зависимости от варианта использования, но для этого примера это работает, поскольку у нас никогда не бывает отрицательных значений ни в одном из измерений последовательностей ввода / вывода.

Функция потерь для этого примера — это просто среднеквадратичная ошибка.

Результаты

Два графика ниже показывают результаты. Я взял среднее значение почасовых значений за день и сравнил его с правильными значениями.Первый график показывает 12-часовые прогнозы, сделанные за 24 предыдущих часа. Для второго графика мы предсказали один час с учетом предыдущих 24 часов. Мы видим, что модель очень хорошо улавливает некоторые колебания. Среднеквадратичная ошибка для обучающего набора составляет 859, а для набора проверки — 4 106 для 12-часовых прогнозов и 2583 для 1-часовых прогнозов. Это соответствует средней абсолютной процентной ошибке прогноза модели 8,4% для первого графика и 5,1% для второго.

Рисунок 3: 12-часовой прогноз с учетом предыдущих 24 часов за один год Рисунок 4: 1-часовой прогноз с учетом предыдущих 24 часов за один год

Результаты показывают, что можно было бы использовать архитектуру Transformer для прогнозирования временных рядов. Однако во время оценки это показывает, что чем больше шагов мы хотим спрогнозировать, тем выше будет ошибка. Первый график (рис. 3) выше был получен с использованием 24 часов для прогнозирования следующих 12 часов. Если мы спрогнозируем только один час, результаты будут намного лучше, как мы видим на втором графике (рисунок 4).

Есть много места, где можно поиграть с параметрами преобразователя, такими как количество слоев декодера и кодировщика и т. Д. Это не было задумано как идеальная модель, и при лучшей настройке и обучении результаты, вероятно, улучшатся.

Это может быть большим подспорьем для ускорения обучения с использованием графических процессоров. Я использовал локальную платформу Watson Studio для обучения моей модели с помощью графических процессоров, и я позволил ей работать там, а не на моем локальном компьютере. Вы также можете ускорить обучение с помощью графических процессоров Watson Machine Learning, которые бесплатны до определенного времени! Прочтите мой предыдущий блог, чтобы узнать, как это можно легко интегрировать в ваш код.

Большое спасибо за то, что прочитали это, и я надеюсь, что смог прояснить несколько понятий людям, которые только начинают изучать глубокое обучение!

Иллюстрированное руководство по трансформаторам — пошаговое объяснение | Майкл Фи

Трансформаторы захватывают мир обработки естественного языка штурмом. Эти невероятные модели бьют множество рекордов НЛП и продвигают новейшие разработки. Они используются во многих приложениях, таких как машинный перевод, разговорные чат-боты и даже для улучшения поисковых систем.Трансформаторы сейчас в моде в области глубокого обучения, но как они работают? Почему они превзошли предыдущего короля проблем последовательности, такого как рекуррентные нейронные сети, GRU и LSTM? Вы, наверное, слышали о различных известных моделях трансформеров, таких как BERT, GPT и GPT2. В этом посте мы сосредоточимся на одной статье, с которой все началось: «Внимание — это все, что вам нужно».

Перейдите по ссылке ниже, если вы хотите вместо этого посмотреть видеоверсию.

Чтобы понять трансформаторов, мы сначала должны понять механизм внимания.Механизм внимания позволяет трансформаторам иметь чрезвычайно долгую память. Модель-трансформер может «присутствовать» или «фокусироваться» на всех ранее сгенерированных токенах.

Давайте рассмотрим пример. Допустим, мы хотим написать небольшой научно-фантастический роман с генеративным преобразователем. Мы можем сделать это с помощью приложения Write With Transformer от Hugging Face. Мы заполним модель нашими входными данными, а модель сгенерирует все остальное.

Наш ввод: «Когда пришельцы вошли на нашу планету».

Выход трансформатора: «и начала колонизацию Земли, определенная группа инопланетян начала манипулировать нашим обществом через свое влияние определенного числа элиты, чтобы удерживать и жестко контролировать население».

Хорошо, история немного мрачная, но что интересно, так это то, как модель ее сгенерировала. По мере того как модель генерирует текст слово за словом, она может «следить» или «фокусироваться» на словах, которые имеют отношение к сгенерированному слову. Способность знать, какие слова следует посещать, тоже приобретается во время обучения посредством обратного распространения ошибки.

Механизм внимания, фокусирующийся на разных токенах при генерации слов 1 на 1

Рекуррентные нейронные сети (RNN) также могут просматривать предыдущие входные данные. Но сила механизма внимания в том, что он не страдает от кратковременной памяти. У RNN более короткое окно для ссылки, поэтому, когда история становится длиннее, RNN не может получить доступ к словам, сгенерированным ранее в последовательности. Это по-прежнему верно для сетей Gated Recurrent Units (GRU) и Long-Short Term Memory (LSTM), хотя они обладают большей емкостью для достижения более долгосрочной памяти, следовательно, имеют более длительное окно для ссылки.Механизм внимания теоретически и при наличии достаточных вычислительных ресурсов имеет бесконечное окно, из которого можно ссылаться, поэтому он может использовать весь контекст истории при генерации текста.

Гипотетическое справочное окно внимания, RNN, ГРУ и LSTM

Сила механизма внимания была продемонстрирована в статье «Внимание — это все, что вам нужно», где авторы представили новую новую нейронную сеть под названием Трансформеры, которая является кодировщиком на основе внимания. архитектура типа декодера.

Модель преобразователя

На высоком уровне кодировщик преобразует входную последовательность в абстрактное непрерывное представление, которое содержит всю изученную информацию этого входа. Затем декодер принимает это непрерывное представление и шаг за шагом генерирует один вывод, одновременно получая предыдущий вывод.

Давайте рассмотрим пример. В статье модель Transformer применялась к задаче нейронного машинного перевода. В этом посте мы продемонстрируем, как это работает для разговорного чат-бота.

Наш ввод: «Привет, как дела»

Выход трансформатора: «Я в порядке»

Первым шагом является подача ввода в слой встраивания слов. Слой встраивания слов можно рассматривать как таблицу поиска, чтобы получить изученное векторное представление каждого слова. Нейронные сети обучаются с помощью чисел, поэтому каждое слово отображается в вектор с непрерывными значениями для представления этого слова.

преобразование слов во входные вложения

Следующим шагом является введение позиционной информации во вложения.Поскольку кодировщик-преобразователь не имеет повторения, как рекуррентные нейронные сети, мы должны добавить некоторую информацию о позициях во входные вложения. Это делается с помощью позиционного кодирования. Авторы придумали хитрый трюк, используя функции sin и косинус.

Мы не будем вдаваться в математические подробности позиционного кодирования, но вот основы. Для каждого нечетного индекса входного вектора создайте вектор с помощью функции cos. Для каждого четного индекса создайте вектор с помощью функции sin.Затем добавьте эти векторы к их соответствующим входным вложениям. Это успешно дает сети информацию о положении каждого вектора. Функции sin и косинус были выбраны в тандеме, потому что они обладают линейными свойствами, которым модель может легко научиться уделять внимание.

Теперь у нас есть слой кодировщика. Задача слоев Encoders состоит в том, чтобы отобразить все входные последовательности в абстрактное непрерывное представление, которое содержит изученную информацию для всей этой последовательности. Он содержит 2 субмодуля, многоголовое внимание, за которым следует полностью подключенная сеть.Также существуют остаточные связи вокруг каждого из двух подслоев, за которыми следует нормализация уровня.

Субмодули уровня кодировщика

Чтобы разобраться в этом, давайте сначала рассмотрим модуль многоголового внимания.

Многоголовое внимание в кодировщике применяет особый механизм внимания, называемый самовниманием. Самовнимание позволяет моделям связывать каждое слово во входных данных с другими словами. Итак, в нашем примере наша модель может научиться ассоциировать слово «вы» с «как» и «есть».Также возможно, что модель узнает, что слова, структурированные по этому шаблону, обычно являются вопросом, поэтому отвечайте соответствующим образом.

Encoder Self-Attention Operations. Ссылка на это при просмотре иллюстраций ниже.

Векторы запроса, ключа и значения

Чтобы добиться самовнимания, мы передаем входные данные в 3 отдельных полностью связанных слоя для создания векторов запроса, ключа и значения.

Что это за векторы? Я нашел хорошее объяснение по обмену стеками, в котором говорится….

«Концепция ключа и значения запроса исходит из поисковых систем. Например, когда вы вводите запрос для поиска некоторого видео на Youtube, поисковая система сопоставляет ваш запрос с набором ключей (название видео, описание и т. Д.), Связанных с видео кандидатов в базе данных, а затем представит вам наиболее подходящие видео ( значения ).

Точечное произведение запроса и ключа

После подачи вектора запроса, ключа и значения через линейный слой запросы и ключи подвергаются умножению матрицы скалярного произведения для создания матрицы оценок.

Умножение скалярного произведения запроса и ключа

Матрица оценок определяет, насколько большое внимание следует уделять слову другие слова. Таким образом, каждое слово будет иметь оценку, соответствующую другим словам на временном шаге. Чем выше оценка, тем больше внимания. Вот как запросы сопоставляются с ключами.

Оценка внимания от скалярного произведения.

Уменьшение оценок внимания

Затем оценки уменьшаются путем деления на квадратный корень из измерения запроса и ключа.Это сделано для обеспечения более стабильных градиентов, так как умножение значений может иметь взрывной эффект.

Уменьшение оценок внимания

Softmax масштабированных оценок

Затем вы берете softmax масштабированной оценки, чтобы получить веса внимания, что дает вам значения вероятности от 0 до 1. Выполняя softmax, повышаются более высокие оценки, и более низкие баллы подавлены. Это позволяет модели быть более уверенной в выборе слов.

Взятие softmax масштабированных оценок для получения значений вероятности

Умножение выходных данных Softmax на вектор значений

Затем вы берете веса внимания и умножаете их на свой вектор значений, чтобы получить вектор выходных данных.Более высокие баллы softmax сохранят ценность слов, которые модель выучила более важными. Более низкие баллы заглушают неуместные слова. Затем вы передаете результат в линейный слой для обработки.

Чтобы сделать это вычисление многоголового внимания, вам необходимо разделить запрос, ключ и значение на N векторов, прежде чем применять самовнимание. Затем расщепленные векторы индивидуально проходят процесс самовнимания. Каждый процесс самовнимания называется головой. Каждая голова создает выходной вектор, который объединяется в один вектор перед прохождением последнего линейного слоя.Теоретически каждая голова будет изучать что-то свое, что дает модели кодировщика больше возможностей представления.

Разделение Q, K, V, N раз перед применением самовнимания

Подводя итог, многоголовое внимание — это модуль в трансформаторной сети, который вычисляет веса внимания для входа и создает выходной вектор с закодированной информацией о том, как каждое слово должно соответствовать всем другим словам в последовательности.

Выходной вектор многоголового внимания добавляется к исходному позиционному встраиванию входных данных.Это называется остаточной связью. Вывод остаточного соединения проходит через нормализацию слоя.

Остаточное соединение позиционного встраивания ввода и вывода многоголового внимания

Нормализованный остаточный вывод проецируется через точечную сеть с прямой связью для дальнейшей обработки. Точечная сеть с прямой связью представляет собой пару линейных слоев с активацией ReLU между ними. Выходные данные затем снова добавляются к входу точечной сети с прямой связью и далее нормализуются.

Остаточное соединение входа и выхода точечного прямого слоя.

Остаточные соединения помогают обучению сети, позволяя градиентам проходить через сети напрямую. Нормализация слоев используется для стабилизации сети, что приводит к существенному сокращению необходимого времени обучения. Слой точечной упреждающей связи используется для проецирования выходных данных внимания, потенциально давая им более богатое представление.

Это завершает слой кодировщика. Все эти операции предназначены для кодирования входных данных в непрерывное представление с информацией о внимании.Это поможет декодеру сосредоточиться на соответствующих словах во вводе во время процесса декодирования. Вы можете складывать кодер N раз для дальнейшего кодирования информации, при этом каждый уровень имеет возможность изучать различные представления внимания, что потенциально увеличивает предсказательную мощность трансформаторной сети.

Задача декодера — генерировать текстовые последовательности. Декодер имеет такой же подуровень, что и кодер. он имеет два многоголовых уровня внимания, слой с точечной прямой связью и остаточные связи, а также нормализацию уровня после каждого подуровня.Эти подуровни ведут себя аналогично уровням в кодировщике, но каждый многоглавый уровень внимания выполняет свою работу. Декодер завершается линейным слоем, который действует как классификатор, и softmax для получения вероятностей слов.

Слой декодера. Ссылка на эту диаграмму при чтении.

Декодер является авторегрессионным, он начинается со стартового токена и принимает список предыдущих выходов в качестве входов, а также выходы кодировщика, которые содержат информацию о внимании из входа.Декодер прекращает декодирование, когда генерирует токен в качестве вывода.

Декодер является авторегрессионным, так как он генерирует токен 1 за раз, подавая его на предыдущие выходы.

Давайте пройдемся по этапам декодирования.

Начало декодера почти такое же, как и у кодировщика. Входные данные проходят через слой внедрения и слой позиционного кодирования, чтобы получить позиционные вложения. Позиционные вложения вводятся в первый слой внимания с несколькими головами, который вычисляет оценки внимания для входных данных декодера.

Этот многоглавый слой внимания работает несколько иначе. Поскольку декодер является авторегрессионным и генерирует последовательность слово за словом, вам необходимо предотвратить его преобразование в будущие токены. Например, при вычислении оценки внимания к слову «я» у вас не должно быть доступа к слову «отлично», потому что это слово является будущим словом, которое было сгенерировано после. Слово «am» должно иметь доступ только к самому себе и к словам перед ним. Это верно для всех других слов, где они могут относиться только к предыдущим словам.

Изображение первого многоголового внимания декодера по шкале оценки внимания. Слово «am» не должно иметь никакого значения для слова «штраф». Это верно для всех остальных слов.

Нам нужен метод, предотвращающий вычисление оценок внимания для будущих слов. Этот метод называется маскированием. Чтобы декодер не смотрел на будущие токены, вы применяете маску просмотра вперед. Маска добавляется перед вычислением softmax и после масштабирования оценок. Давайте посмотрим, как это работает.

Маска упреждения

Маска — это матрица того же размера, что и оценки внимания, заполненная значениями 0 и отрицательной бесконечностью.Когда вы добавляете маску к шкале оценок внимания, вы получаете матрицу оценок, в которой верхний правый треугольник заполнен бесконечностями негатива.

Добавление маски упреждающего просмотра к масштабированным оценкам

Причина использования маски в том, что как только вы берете softmax замаскированных оценок, отрицательные бесконечности обнуляются, оставляя нулевые оценки внимания для будущих токенов. Как вы можете видеть на рисунке ниже, оценка внимания для «am» имеет значения для себя и всех слов перед ним, но равна нулю для слова «хорошо».По сути, это говорит модели не акцентировать внимание на этих словах.

Эта маскировка — единственное отличие в том, как рассчитываются оценки внимания в первом многоглавом слое внимания. Этот слой по-прежнему имеет несколько головок, к которым применяется маска, прежде чем они будут объединены и пропущены через линейный слой для дальнейшей обработки. Результатом первого многоголового внимания является замаскированный выходной вектор с информацией о том, как модель должна присутствовать на входе декодера.

Многоголовое внимание с маскированием

Второй слой многоголового внимания.Для этого уровня выходными данными кодировщика являются запросы и ключи, а выходными данными первого многоголового слоя внимания являются значения. Этот процесс сопоставляет вход кодера со входом декодера, позволяя декодеру решить, на каком входе кодера следует сосредоточить внимание. Результат второго многоголового внимания проходит через точечный слой прямой связи для дальнейшей обработки.

Выходные данные последнего поточечного слоя с прямой связью проходят через последний линейный слой, который действует как классификатор.Классификатор такой же большой, как и количество имеющихся у вас классов. Например, если у вас есть 10 000 классов для 10 000 слов, вывод этого классификатора будет иметь размер 10 000. Выходные данные классификатора затем передаются в слой softmax, который дает оценки вероятности от 0 до 1. Мы берем индекс наивысшей оценки вероятности, который равен нашему предсказанному слову.

Линейный классификатор с Softmax для получения вероятностей вывода

Затем декодер берет вывод, добавляет его в список входов декодера и снова продолжает декодирование, пока не будет предсказан токен.В нашем случае предсказание с наивысшей вероятностью — это последний класс, который назначается конечному токену.

Декодер также может быть наложен на N уровней, каждый из которых принимает входные данные от кодера и предшествующих ему слоев. Сложив слои, модель может научиться извлекать и сосредотачиваться на различных комбинациях внимания из своих головок внимания, потенциально повышая ее способность к прогнозированию.

Кодировщик и декодер с накоплением

И все! Такова механика трансформаторов.Трансформаторы используют силу механизма внимания, чтобы делать более точные прогнозы. Рекуррентные нейронные сети пытаются добиться аналогичных результатов, но потому, что они страдают от кратковременной памяти. Трансформаторы могут быть лучше, особенно если вы хотите кодировать или генерировать длинные последовательности. Благодаря архитектуре преобразователя индустрия обработки естественного языка может достичь беспрецедентных результатов.

Посетите michaelphi.com, чтобы найти больше подобного контента.

Интуитивная математика и код, лежащие в основе механизма самовнимания трансформаторов | автор: Ашис Кумар Панда

В этом сообщении блога будут рассмотрены мельчайшие детали механизма внимания и его создание с нуля с использованием python

. Фото Роберта Кацки на Unsplash

. сообщение в блоге об обзоре трансформаторов.Чтобы получить максимальную отдачу от этого блога, прочтите мою предыдущую запись в следующем порядке.

  1. Трансформаторы — Вам просто нужно внимание.
  2. Интуитивная математика и код, лежащие в основе механизма самовнимания трансформаторов.
  3. Основные понятия о позиционном кодировании, о которых вы, возможно, не знали.

В этом сообщении блога будут рассмотрены мельчайшие детали механизма внимания и создание механизма внимания с нуля с использованием Python.Коды и интуитивно понятное математическое объяснение идут рука об руку.

Деталь энкодера трансформатора

Чему мы собираемся научиться?

  1. Концепция механизма внимания
  2. Шаги, задействованные в механизме самовнимания (интуитивная математическая теория и код)
  • Предварительная обработка входных данных
  • Роль матрицы запросов, ключей и значений
  • Концепция масштабируемых оценок внимания

3. Механизм внимания с несколькими головками

Итак, без дальнейших промедлений, приступим к делу.

Как обсуждалось в предыдущем посте, что происходит, когда предложение проходит через механизм внимания. Например, скажем, у нас есть предложение « Он взял шляпу и внимательно ее изучил », механизм внимания создает представление (встраивание) каждого слова, учитывая, как каждое слово связано с другими словами в предложении. В предложении выше механизм внимания понимает предложение настолько хорошо, что он может связать слово « it» с « hat» , а не с « He» .

A

1. Получите ввод в правильном формате: —

К настоящему времени мы все знаем, что ввод текста не подходит для интерпретации Transformer / компьютерами. Следовательно, мы представляем каждое слово в тексте вектором чисел. Давайте создадим вложение для предложения, например :- «Это книга» , и предположим, что размер вложения равен 5. Итак, для каждого слова у нас есть вектор длины 5, как показано ниже.

Вход трансформатора
 print (f ”Форма: - {np.random.randn (3,5) .shape} ”) 
X = np.random.randn (3,5)
X

Вывод: —

Вывод ( Изображение автора)

Из входной матрицы выше мы создадим пару новых матриц, а именно матрицу ключей, запросов и значений. Матрица играет жизненно важную роль в механизме внимания. Посмотрим как?

2. Получение матрицы запросов, ключей и значений

Во-первых, нам нужна матрица весов запросов, ключей и значений. На данный момент мы инициировали его случайным образом, но на самом деле, как и любые другие веса в нейронной сети, это параметры, которые изучаются в процессе обучения.Наконец, используются оптимальные веса. Предположим, что эти веса являются оптимальными, как показано в коде. То, что мы будем делать в разделе кода, резюмируется на диаграмме ниже: —

Общая операция, задействованная на этом шаге, которой необходимо следовать в следующих фрагментах кода ( Изображение автора)

Оптимизированные веса для матрицы запросов

 weight_of_query = np.random.randn (5,3) 
weight_of_query

Вывод: —

Вывод ( Изображение автора)

Оптимизированные веса для ключевой матрицы

 weight_of_key = np.random.randn (5,3) 
weight_of_key

Вывод: —

Вывод ( Изображение автора)

Оптимизированные веса для матрицы значений

 weight_of_values ​​= np.random.randn (5,3) 
weight_of_values ​​

Вывод: —

Output ( Image by Author)

Затем эти веса будут умножены на нашу входную матрицу (X), что даст нам окончательный ключ, запрос и матрицу значений

Расчет ключевой матрицы

 Key = np. matmul (X, weight_of_key) 
Key
Output ( Image by Author)

Расчет матрицы запросов

 Query = np.matmul (X, weight_of_query) 
Query
Output ( Image by Author)

Calculation of Value Matrix

 Values ​​= np.matmul (X, weight_of_values) 
Values ​​
Output ( Image by Author)

Первая строка в матрица запроса, ключа и значения обозначает векторы запроса, ключа и значения слова « Это » и так далее для других слов. До сих пор матрица запроса, ключа и значения могла не иметь особого смысла. Давайте посмотрим, как механизм самовнимания создает представление (встраивание) каждого слова, выясняя, как каждое слово связано с другими словами в предложении, используя векторы запроса , ключа и значения .

3. Масштабируемые баллы внимания

Формулы для масштабируемых баллов внимания: —

формул масштабированного внимания
 измерение = 5 
баллов = np.matmul (запрос, Key.T) /np.sqrt (измерение)
баллов
выход ( Изображение автора)

То, что происходит в QK (транспонирование), является скалярным произведением между запросом и ключевой матрицей, а скалярное произведение определяет сходство, как показано на изображении ниже.

Примечание: — Все числа на изображении ниже составлены для пояснения и не складываются.

Как мы вычисляем оценку внимания математически? ( Изображение автора)

Итак, существует скалярное произведение между вектором запроса q1 (This) и всеми ключевыми векторами k1 (This), k2 (is), k3 (book) . Это вычисление сообщает нам, как вектор запроса q1 (This) связан / подобен каждому вектору в ключевой матрице k1 (This), k2 (is), k3 (book). Также, если мы сосредоточимся на итоговой выходной матрице, мы увидим, что каждое слово связано с самим собой больше, чем любые другие слова в предложении, как показано диагональной матрицей.Это потому, что значения скалярного произведения выше. Во-вторых, слово «Это» больше связано с «книга» , как выделено красным на изображении выше. Как видно из последней части кода, мы делим Q.K (транспонировать) на sqrt (размерность) . Это своего рода шаг нормализации, который делается здесь, чтобы сделать градиенты стабильными.

Softmax в приведенном ниже коде помогает привести его в диапазон от 0 до 1 и присвоить значения вероятности.

 из scipy.special import softmax 
Softmax_attention_scores = np.array ([softmax (x) for x in Scores])
Softmax_attention_scores
Output ( Image by Author)

Вышеупомянутая матрица представляет собой промежуточную матрицу оценки внимания со шкалой softmax, где каждая строка соответствует промежуточная оценка внимания / оценка вероятности для каждого слова в последовательности. Он показывает, как каждое слово связано с другими словами с точки зрения вероятности. Чтобы получить окончательный вектор внимания, мы умножим полученную оценку на матрицу значений и просуммируем ее.Суммируются три вектора внимания, соответствующие слову «Это».

В приведенном ниже фрагменте кода softmax_attention_scores [0] [0] — это вес этого конкретного слова, а values ​​[0] — это вектор значений, соответствующий слову « This » и так далее.

 Softmax_attention_scores [0] [0] * Значения [0] + \ 
Softmax_attention_scores [0] [1] * Значения [1] + \
Softmax_attention_scores [0] [2] * Значения [2]
Вывод ( Изображение автор)

Аналогичным образом мы можем вычислить внимание для других слов, таких как is и book.Это механизм самовнимания. Далее мы рассмотрим механизм многоголового внимания, в основе которого лежит принцип самовнимания.

Проще говоря, механизм многоголового внимания — это не что иное, как несколько сцепленных вместе нескольких механизмов самовнимания. Если мы обозначим каждый поток / процесс самовнимания как одну голову , то мы получим механизм внимания с несколькими головами, объединив все механизмы самовнимания вместе.

Когда мы будем практиковаться в следующем сообщении в блоге, мы увидим, что выходной сигнал каждого кодировщика имеет размерность 512.А всего 8 голов. Итак, что происходит: каждый модуль самовнимания сделан так, что выдает результат в матрицу измерений (no_of_words_in_sentence, 64). Когда все эти измерения будут объединены, мы увидим, что окончательная матрица будет иметь размерность (no_of_words_in_sentence, (64 * 8) = 512). Последний шаг — умножить сцепленные головы на матрицу весов (при условии, что матрица весов была обучена в процессе), и это будет выход нашего Multi-head Attention.

В нашем следующем посте блога мы обсудим реализацию трансформаторов Hugging face, до свидания.Если вы найдете это полезным, не стесняйтесь проверить мои другие сообщения в блоге о трансформаторах: —

  1. Трансформаторы — вам просто нужно внимание.
  2. Интуитивная математика и код, лежащие в основе механизма самовнимания трансформаторов.
  3. Основные понятия о позиционном кодировании, о которых вы, возможно, не знали.

Прогнозирование запасов с архитектурой трансформатора и механизмом внимания — Neuravest

Эрез Кац, генеральный директор и соучредитель Lucena Research

Чтобы понять, где подходит архитектура трансформатора с механизмом внимания, я хочу провести вас через наше путешествие расширение нашей способности классифицировать многомерные временные ряды финансовых и альтернативных характеристик данных.

Первоначально мы стремились провести прогнозирование временных рядов с использованием полностью связанных сетей, с помощью которых мы передавали на входной уровень одномерную последовательность значений. Мы быстро поняли, что из-за шумной природы рынка нам нужен способ извлекать значимые подмножества данных, то есть извлекать сущность из шума. Нашей целью наследования было выявление значимых закономерностей в зашумленной конструкции данных временных рядов.

Мы столкнулись с двумя вариантами:

  • RNN с LSTM — рекуррентная нейронная сеть с долговременной / краткосрочной памятью
  • CNN с CapsNet — сверточные нейронные сети с новейшей технологией Hinton CapsNet.

Мы попробовали оба и попали на CNN и CapsNet, исключительно на основании эмпирических данных. Мы просто не могли заставить работать RNN / LSTM.

Почему применение RNN с LSTM для обнаружения шаблонов временных рядов не сработало

Оглядываясь назад, я связываю отсутствие совместимости RNN / LSTM с нашим конкретным вариантом использования следующим образом:

1. Проблема, которую мы пытались решить, заключалась в том, чтобы определить, как несколько наложенных друг на друга последовательностей ортогональных временных рядов могут прогнозировать ожидаемый результат (например, ценовое движение, надвигающееся на акции).Наша гипотеза заключалась в том, что совместный анализ нескольких временных рядов будет более информативным, чем каждый из них по отдельности. RNN / LSTM в основном предназначен для обработки одного потока информации (такого как перевод текста, NLP и музыкальная последовательность) и поэтому не подходит для ввода нескольких временных рядов.

  1. 2. Мы обнаружили, что RNN очень сложно обучать даже после того, как мы добавили LSTM (длинная / короткая память). Я считаю, что основной причиной нашей проблемы была неспособность модели решить, какую информацию сохранить или отбросить при увеличении входного потока.
  2. 3. RNN нельзя было распараллелить, поэтому обучение занимало значительно больше времени по сравнению с CNN, которая основана на агрегировании оценок независимых траекторий обучения и, таким образом, может быть легко распараллелена.

Изображение 1: Иллюстрация RNN — рекурсивный цикл, разворачивающийся в последовательность идентичных моделей. Источник: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Использование классификации изображений с CNN

Итак, мы решили применить компьютерное зрение для классификации изображений, состоящих из нескольких временных рядов. графики, как показано ниже.

Изображение 2: Сопоставление ценового действия (значения метки Y) с несколькими последовательностями временных рядов. Каждый график временных рядов представляет собой последовательность характеристик (таких как настроения в социальных сетях, волатильность, коэффициент PE и т. Д.) За один и тот же период времени.

Идея заключалась в том, чтобы наложить несколько графиков временных рядов друг на друга, чтобы создать составное изображение, которое затем используется в качестве обучающих данных для модели для классификации одного из следующих действий: покупка, продажа, бездействие.

Наши первоначальные результаты были на самом деле обнадеживающими, и, поскольку мы знали, что находимся на правильном пути, мы расширили представление изображений, включив более богатое отображение данных временных рядов.

Сначала мы упорно работали над проектированием функций, поскольку мы стремились равномерно распределить данные о различных функциях в едином формате в течение 63 дней. Кроме того, мы перенесли наши одномерные 63 точки данных в более богатое двухмерное изображение размером 63 * 63, как описано ниже.

Изображение 3: Преобразование одномерных временных рядов в более богатое представление изображения на основе RP (повторяющейся точки) или GADF (грамианского поля угловой разности).

Изображение 4: более богатое представление изображения на основе RP (повторяющейся точки) для создания более расширенного многоканального входа в модель CNN.

Затем мы приступили к добавлению набора функций, как показано на изображении 4 выше, и наша точность классификации улучшилась!

Улучшение нашей многоканальной классификации изображений с помощью капсульной сети Хинтона

Мы были искренне воодушевлены результатами нашей усовершенствованной модели CNN, пока не наткнулись на статью, опубликованную Джеффом Хинтоном, в которой указывается на несколько недостатков традиционных CNN.

Самая большая проблема традиционных CNN проистекает из использования Max Pooling. Max Pooling — это неотъемлемая часть многослойного формата CNN, в котором пространственные характеристики упрощаются за счет перехода только на следующий уровень, наиболее доминирующий нейрон в кластере. Этот метод отлично работает за счет аппроксимации функций и уменьшения размера большого изображения, но потеря информации и неспособность сети восстановить исходное изображение серьезно ухудшили способность сети обнаруживать объекты и контекстуализировать их в изображении.

Max Pooling отлично работает за счет аппроксимации и уменьшения размеров карт функций изображения. Однако важная информация об изображении теряется в процессе свертки и максимального объединения.

Оказывается, такое уменьшение размера изображения в некоторой степени пагубно сказалось на типе обнаружения паттернов, который мы стремимся достичь в нашем анализе временных рядов.

Пример: Возьмем для примера изображения ниже:

Изображение 5: Из-за извлечения признаков с помощью Max Pooling.CNN не может распознать взаимосвязь между частичными изображениями, обнаруженными в главном изображении.

Традиционная сеть CNN, скорее всего, классифицирует два расположенных рядом изображения как «лицо». Причина в том, что сверточные скрытые слои и максимальное объединение идентифицируют форму обнаруживаемых объектов путем аппроксимации и без какого-либо отношения к размещению, позе, текстуре или любым другим атрибутам, которые определяют изображение.

Если подумать, сеть делает довольно дикое предположение, что если на изображении есть объект, похожий на глаз, другой на рот и еще один на нос — это довольно безопасно. Предположим, что это изображение лица.Что еще более серьезно, сеть не может восстановить исходное изображение из-за потери информации и может быть легко обманута и использована враждебными нейронами. Состязательные нейроны — это нейроны, которые были вставлены в представление изображения с намерением помешать машине его классифицировать, в то время как эти изображения выглядят прекрасно невооруженным глазом.

Хинтон выступал за новое поколение моделей глубокого обучения для обнаружения изображений, включая обнаружение фрагментов изображений и объектов, которые называются капсульными сетями (CapNets).CapsNets устраняет все вышеперечисленные недостатки, описывая объекты в изображении с помощью набора векторов, которые сохраняют местоположение, позу и некоторые другие атрибуты свертываемого пространственного поля (Capsule). Кроме того, капсульные сети представили концепцию маршрутизации по соглашению, предельных затрат и восстановления потерянных изображений в качестве методов обучения сети обнаружению изображений с гораздо большей точностью и скоростью.

Изображение 6: Капсульная сеть, используемая для определения цены акции, которая ведет себя аналогично формированию синусоидальной волны.Lucena проверила способность капсульной сети прогнозировать следующую последовательность во временном ряду с различными уровнями шума. Наша цель — эмпирически проверить чувствительность сети к рыночному шуму в реальной жизни.

Обледенение на торте: Архитектура трансформатора с механизмом внимания

Итак, теперь, когда мы можем обнаруживать объекты (или узоры) в общем изображении, нам все еще не хватает одной важной информации.

Что привело к текущему состоянию или что произошло до обнаружения шаблона?

Нам нужно было рассмотреть «поведение» временного ряда, которое привело к проверке текущего состояния.Возьмем, к примеру, изображение ниже. Все отмеченные паттерны (1, 2 и 3) являются формами возврата к среднему. Однако очевидно, что последовательности, которые приводят к соответствующим паттернам возврата к среднему, сильно различаются. Естественно, этот шаблон «до» был бы полезен машине в ее попытке классифицировать то, что будет дальше.

Изображение 7: Средние паттерны реверсии на графике временных рядов, которые изолированно выглядят одинаково, но как только они вводятся в контексте их предыдущих последовательностей, выглядят совершенно иначе.

Более того, близость, с которой предыдущая последовательность появляется по отношению к текущим шаблонам, не всегда информативна. Следовательно, сеть должна научиться игнорировать бессмысленные последовательности и обращать «внимание» только на то, что важно.

Архитектура трансформатора с механизмом внимания

В последние несколько месяцев архитектура трансформатора с механизмом внимания набирает популярность. Эта концепция была создана OpenAI в их моделях языкового перевода, а также DeepMind для игрока AlphaStar с машинным обучением, который должен победить лучших профессиональных игроков в Starcraft.Чтобы понять, как они могут помочь нам в анализе временных рядов, я хочу сначала проиллюстрировать, как он используется в контексте преобразования текста в речь или языкового перевода.

Архитектура трансформатора предназначена для решения задач преобразования последовательности. Другими словами, перед моделью ставится задача преобразовать любую входную последовательность в выходную последовательность в три этапа: кодирование, машинный перевод и декодирование.

Изображение 7: Последовательное преобразование. Источник: https: // jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/

При просмотре такого предложения, как: «Король жил во Франции. Разговорный язык за обеденным столом короля был… »

Для нас, читателей, очевидно, что следующее слово в приведенном выше предложении, скорее всего, будет« французским ». Это потому, что мы помним из предыдущего предложения контекст locale как Франция. Архитектура преобразователя с вниманием действует аналогично, поскольку учится определять, какие предыдущие слова важно запомнить.Он делает это лучше, чем RNN / LSTM, по следующим причинам:

  • — Трансформаторы с механизмом внимания могут быть распараллелены, в то время как последовательные вычисления RNN / STM запрещают распараллеливание.
  • — RNN / LSTM не имеет явного моделирования зависимостей дальнего и ближнего действия.
  • — В RNN / LSTM «расстояние» между позициями линейно.

Проще говоря, при переводе последовательности слов система проверяет одно слово за раз, и нет понятия зависимости между близкими или удаленными словами, которые могут иметь отношение к текущему проверяемому слову.Не говоря уже о том, что процесс линейный и не может быть распараллелен по скорости.

Как архитектура трансформатора с механизмом внимания помогает нашему прогнозированию временных рядов

Для того, чтобы эффективно установить прогнозирующий паттерн, модель пытается вывести последовательность приливов и отливов, которые исторически были доказаны как прогнозирующие. Это относится к любым моделям временных рядов любого значения, которое колеблется во времени. (Например, измерение альтернативных данных в виде отношения к акциям в социальных сетях с течением времени.)

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

Это, в свою очередь, помогает моделям быстрее учиться и лучше обобщать функции.

Пример: Взгляните, например, на следующее изображение:

Представьте, что это представление временного ряда некоторого фактора во времени, и что пять более высоких максимумов, обозначенных красными кружками, указывают на надвигающееся плато, которое должно быть с последующим падением.

Изображение 8: Пример временного ряда прогнозируемого потока последовательности.

На практике сеть внимания создает скрытое состояние для каждого отмеченного пика, в котором она запоминает пики и отбрасывает как менее важный «шум» между ними. Другими словами, сеть способна извлечь из последовательности то, что важно. Подобно предложению из пяти слов, для которого сеть измеряет важность каждого слова в сочетании с другими, наша сеть оценивает каждый пик в сочетании с другими пиками.

Чтобы собрать все это вместе, мы используем CNN и CapsNet для обнаружения определенных фрагментов формирования паттернов, таких как внезапный всплеск или падение значения признака. Затем мы упорядочиваем идентифицированные паттерны через преобразователь, чтобы измерить, как последовательность этих паттернов может быть использована для надежного прогнозирования результата.

Заключение:

Важно отметить, что понятие классификации изображений временного ряда не предназначено для использования исключительно для прогнозирования цен на активы.Существует довольно много интересных задач машинного обучения, которые выходят далеко за рамки прогнозирования цен на акции, таких как измерение риска, волатильности, KPI и т. Д.

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

Я буду держать вас в курсе, поскольку наша команда интегрирует эту концепцию в существующую структуру CapsNet и в ближайшее время сообщит о наших результатах.

Вопросы? Напишите их ниже или свяжитесь с нами.

Глубокое обучение: следующий шаг: трансформеры и механизм внимания

Прит Ганди.

От Alexa до Google Translate, одна из самых эффективных ветвей глубокого обучения — обработка естественного языка. Языковой перевод стал важной необходимостью в этом глобализирующемся мире. Достижения в области НЛП привели к появлению многих методов нейронного машинного перевода, таких как модели от последовательности к последовательности (Seq2Seq), которые могут быть дополнительно улучшены с помощью преобразователей и механизмов внимания.

Модели Seq2Seq

Seq2Seq — это широкий класс моделей, которые переводят одну последовательность в другую. Модели кодировщиков-декодеров являются широко используемым его подклассом. Кодировщик принимает входную последовательность (исходный язык) и сопоставляет ее с промежуточным скрытым вектором (пространство более высокой размерности), который кодирует всю информацию источника. Это, в свою очередь, принимается декодером и преобразуется в выходную последовательность (целевой язык). Модель может обрабатывать ввод переменной длины.Кодеры и декодеры являются RNN. Как правило, используется LSTM (Long Short Term Memory), поскольку данные зависят от последовательности (важен порядок слов). Следовательно, важно придать смысл последовательности, запоминая / забывая части, которые являются важными / неважными, используя входной вентиль / выходной вентиль для захвата зависимостей на большом расстоянии в последовательности. Выходные данные — это последовательность, которая математически отражает наивысшее значение P (Выходная последовательность | Входная последовательность). Однако у этого подхода есть проблема, поскольку он сжимает всю информацию входного исходного предложения в вектор фиксированной длины (выход последнего скрытого состояния), который затем принимается декодером.Было показано, что это приводит к снижению производительности при работе с длинными предложениями.

Рисунок 1: Кодер и декодер.

Внимание Механизм

Подход к решению проблемы потери релевантной информации в длинных предложениях заключается в использовании механизма внимания. Первое слово исходного предложения, вероятно, сильно коррелирует с первым словом целевого предложения. Каждый раз, когда модель предсказывает выходное слово, она использует только части входных данных, в которых сосредоточена наиболее релевантная информация, а не все предложение.Кодировщик работает как обычно, но скрытое состояние декодера вычисляется с помощью вектора контекста, предыдущего вывода и предыдущего скрытого состояния. Векторы контекста вычисляются как взвешенная сумма аннотаций, генерируемых кодировщиком. У нас есть отдельный вектор контекста для каждого целевого слова. В случае двунаправленного LSTM эти аннотации представляют собой конкатенацию скрытых состояний в прямом и обратном направлениях. Вес каждой аннотации вычисляется с помощью модели согласования (то есть сети прямого распространения), которая оценивает, насколько хорошо совпадают входные и выходные данные.Оценки внимания (альфа), веса скрытых состояний при вычислении вектора контекста, показывают, насколько важна данная аннотация при выборе следующего состояния и генерации выходного слова.

Рисунок 2: Механизм внимания в RNN.

Типы внимания:

1) Глобальное внимание : Использует все скрытые состояния от кодировщика для вычисления вектора контекста. Это требует больших вычислительных затрат, поскольку все слова из источника рассматриваются для каждого целевого слова.

2) Местное внимание : выбирает позицию в исходном предложении для определения окна слов для рассмотрения

3) Двустороннее внимание : одна и та же модель касается гипотезы и предпосылки, и оба представления связаны. Однако эта модель не может отличить, что выравнивание между стоп-словами менее важно, чем выравнивание между словами содержания.

4) Самовнимание : механизм, связывающий различные позиции одной последовательности для вычисления ее внутреннего представления.

5) Ключевое значение внимания : Выходные векторы разделяются на ключи для вычисления внимания и значения для кодирования распределения следующего слова и представления контекста.

6) Иерархически вложенное внимание : два уровня внимания — первый на уровне слова и второй на уровне предложения. Это подчеркивает высокоинформативные компоненты документа.

Мы можем интерпретировать и визуализировать то, что делает модель. Визуализируя матрицу весов внимания, мы можем понять, как трансформируется модель:

Рисунок 3: Визуализация механизма внимания.

Внимание требует больших затрат, поскольку нам нужно вычислять значение для каждой комбинации входного и выходного слова. Для вычислений на уровне персонажа с последовательностями, состоящими из сотен токенов, механизмы становятся дорогими. Мы видим, что благодаря механизму внимания декодер захватывает глобальную информацию, а не полагается исключительно на одно скрытое состояние. Узнаются зависимости между входами и выходами. Но в архитектуре Transformer эта идея расширена для изучения зависимостей внутри ввода и вывода.

Трансформаторы

Преобразователь — это новая архитектура кодера-декодера, которая использует только механизм внимания вместо RNN для кодирования каждой позиции, чтобы связать два удаленных слова как входов, так и выходов с.r.t. сам, который затем можно распараллелить, тем самым ускоряя обучение. Поскольку RNN является последовательным, требуется 10 шагов вычисления, если два слова разделены на десять слов, но при самовнимании это всего лишь один слой. Он имеет несколько уровней самовнимания, где все ключи (векторные представления всех слов в последовательности), значения и запросы (векторное представление одного слова в последовательности) исходят из самого входного предложения.Веса определяются тем, как на каждое слово последовательности влияют все другие слова в последовательности. Подсчет веса может производиться параллельно и называется многоголовым вниманием. Поскольку мы не используем RNN, мы добавили позиционные кодировщики во встроенное представление слов для поддержания порядка.

Рисунок 4: Многоголовое внимание.

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

Компоненты кодирования и декодирования представляют собой стек из одинакового количества кодеров и декодеров соответственно. Каждый элемент стека имеет идентичную структуру, но не имеет одинаковых весов.

У каждого кодировщика есть уровень самовнимания, а затем уровень прямой связи. На уровне самовнимания кодер собирает информацию из всех других слов, генерируя новое представление для каждого слова, проинформированное всеми контекстами.Одна и та же сеть прямой связи независимо применяется к каждой позиции. В каждой последующей позиции во входном предложении самовнимание смотрит на другие позиции в поисках подсказок, которые помогают лучше кодировать слово. Слово в каждой позиции проходит свой путь в кодировщике с зависимостями между этими путями в слое самовнимания. Уровень прямой связи не имеет этих зависимостей, допускающих параллельное выполнение. После каждого подуровня кодера выполняется этап нормализации. Позиционный вектор добавляется к каждому встраиванию входных данных, который следует определенному шаблону, который усваивается моделью, чтобы помочь узнать расстояние между разными словами или положение каждого из них.Модуль внимания с несколькими головами, который соединяет кодер и декодер, будет следить за тем, чтобы входная последовательность кодера учитывалась вместе с входной последовательностью декодера до заданной позиции.

Вначале декодер имеет собственное внимание, а затем внимание кодера-декодера и прямую связь. Вход декодера будет смещен вправо на одну позицию и будет использовать маркер начала слова в качестве первого символа, поскольку мы не хотим, чтобы наша модель училась копировать входные данные декодера во время обучения, поскольку целевое слово / символ для позиции i будет слово / символ i на входе декодера.Однако мы хотим узнать, что, учитывая последовательность кодировщика и конкретную последовательность декодера, которая уже была замечена моделью, мы предсказываем следующее слово / символ. Таким образом, сдвигая ввод декодера на одну позицию, наша модель должна предсказать целевое слово / символ для позиции i , увидев только слово / символы 1,…, i-1 в последовательности декодера. Мы добавляем маркер конца предложения во входную последовательность декодера, чтобы отметить конец этой последовательности, и он также добавляется к целевому выходному предложению.Трансформатор применяет маску к входу в первом модуле внимания с несколькими головами, чтобы не видеть потенциальных «будущих» элементов последовательности. Если бы не было маски, внимание с несколькими головами рассматривало бы всю входную последовательность декодера в каждой позиции. Выходной сигнал одного декодера подается на другой на каждом временном шаге. Векторы положения также добавляются на каждом шаге. Выход декодера поступает на линейный слой (полностью подключенный NN), который выводит вектор логитов (гораздо больший вектор). Наконец, softmax выдает вероятности, когда соответствующее слово, связанное с наивысшей вероятностью, выбирается в качестве выхода этого временного шага.

Преобразователи

подходят для преобразования последовательности (языковой перевод), классической задачи анализа языка синтаксического синтаксического анализа и различных модальностей входов и выходов, таких как изображения и видео, а также разрешение совмещенных ссылок. Потенциал этого алгоритма огромен, поскольку он может применяться к изображениям и видео. Эффективность этого алгоритма является активной областью исследований, которую можно улучшить, попробовав различные методы схем позиционного кодирования (добавление вместо конкатенации с вложениями слов, изученное и заданное позиционное кодирование и т. Д.)

Каталожные номера:

  1. http://jalammar.github.io/illustrated-transformer/
  2. https://medium.com/inside-machine-learning/what-is-a-transformer-d07dd1fbec04
  3. https://medium.com/@joealato/attention-in-nlp-734c6fa9d983

Биография: Прит Ганди был студентом по науке о данных в CDS Нью-Йоркского университета и страстным энтузиастом искусственного интеллекта.

Связанный:

Исследование механизма вибрации сердечника трансформатора и генерации шума, вызванного магнитострикцией зернистого кремниевого стального листа

Проблема вибрации и шума в железном сердечнике силовых трансформаторов остается весьма актуальной.Поскольку в современном производстве железных сердечников и переплетов используются метод ламинирования и клейкая лента без утка, соответственно, вибрация сердечника трансформатора в основном связана с магнитострикцией листа кремнистой стали (SSS). В данной работе на основе магнитострикции зернисто-ориентированного НДС был проведен углубленный анализ механизма генерации вибрации в сердечнике трансформатора. Наблюдалась микроструктура НДС, были протестированы его магнитострикционные свойства при различных плотностях магнитного потока, и была построена модель четырехугольного железного сердечника, имитирующая сердечник, для анализа характеристик вибрации.Модальные испытания, испытания на вибрацию и шум были выполнены на реальном сердечнике трансформатора 110 кВ в условиях холостого хода. Результаты показывают, что вибрация сердечника связана с механизмом деформации НДС. Величина вибрации в разных частях сердечника различается из-за анизотропии магнитострикции. Вибрация в вертикальном направлении к плоскости сердечника является наибольшей, а ее величина в центре сердечника ниже, чем в швах в той же плоскости. Вибрация сердечника и шум демонстрируют значительную корреляцию, в то время как модальные характеристики сильно влияют на вибрацию сердечника и интенсивность шума.

1. Введение

Силовые трансформаторы являются критически важными неотъемлемыми частями энергосистемы, и их безопасная работа является обязательной для надежности всей системы. Вибрация трансформаторов влияет на нормальную работу, срок службы и надежность силового оборудования, а вибрация и шум также отрицательно сказываются на здоровье и комфорте человека [1–3]. Вибрация трансформатора состоит из двух основных составляющих: (i) вибрация обмотки, вызванная электромагнитной силой, создаваемой взаимодействием тока в обмотке с потоком рассеяния, и (ii) вибрация сердечника, вызванная силами магнитострикции в листе кремнистой стали ( SSS).В условиях холостого хода в обмотке отсутствует ток, а вибрация трансформатора в основном создается сердечником. Сигнал вибрации, измеренный в это время, является сигналом вибрации сердечника, который индуцируется магнитострикцией SSS.

До сих пор большинство исследований вибрации сердечника трансформаторов в основном сосредоточено на магнитострикционных свойствах материалов [4–6], вибрации сердечника, испытании шума, характеристиках передачи вибрации [7–17], а также теоретическом или численном моделировании [18–18]. 26].Есть также некоторые исследования, посвященные сбору сигналов для анализа вибрации и распознавания особенностей [27–32]. Cheng et al. [4] исследовали магнитные и магнитострикционные свойства различных марок НДС и предложили выбор зернисто-ориентированного НДС в материалах сердечника. Wang et al. [6] исследовали характеристики магнитострикционного динамического гистерезиса электротехнической стали с ориентированной зеренной структурой при различных эллиптических локусах намагничивания на основе прибора для измерения вращательных магнитных свойств. Моисей и др.[7] провели экспериментальные испытания поверхностной вибрации и шума сердечников трансформатора с помощью лазерного виброметра. Okabe et al. В [8] изучались вибрационные характеристики и формы колебаний сердечника трехфазного трансформатора при различных возбуждениях и анализировались причины различия частотного спектра и шумового спектра магнитострикционной вибрации при парциальном частотном возбуждении. Ma et al. [15] провели испытания на вибрацию и шум внутри и снаружи типичного бака распределительного трансформатора 10 кВ и получили акустико-вибрационную характеристику и закон распространения распределительного трансформатора 10 кВ.Zhang et al. [16] использовали магнитострикционный ортогональный метод расчета для моделирования вибрации железных сердечников моделей трансформатора и шунтирующего реактора. Результаты расчетов и испытаний показали, что напряжение Максвелла было основной причиной вибрации активной зоны реактора, а магнитострикция — основной причиной сердечника трансформатора. Лю и др. [18] предложили модель передачи вибрации трансформатора, основанную на передаче движения. Путем экспериментов и теоретических расчетов была проверена точность метода передачи вибрации, который можно использовать для анализа взаимосвязи вибрации между сердечником трансформатора и корпусом.Яворски и др. [20] на основе экспериментов установил метод расчета магнитострикционной силы и проанализировал магнитострикцию многослойных сердечников в разных направлениях. Ghalamestani et al. [22] рассчитали деформации сердечника трехфазного трансформатора при чисто синусоидальном намагничивании с частотой 50 Гц и намагничивании с пятой гармонической составляющей с помощью метода двумерных (2D) конечных элементов. Hu et al. [23] рассчитал уровень звукового давления излучаемого шума вокруг трансформатора на основе установленной модели конечных элементов, сочетающей анализ переходного электромагнитного поля, анализ механического поля и акустический анализ.Сравнение результатов расчетов и данных измерений подтвердило, что комбинированная модель расчета шума применима для прогнозирования шума трансформатора. Zhang et al. [24] исследовали быстрый и точный метод расчета вибрации сердечника сверхвысоковольтного генераторного трансформатора типа DFP-270000/500. На основе расчета виброакустической связи был получен коэффициент демпфирования колебаний сердечника трансформатора, а анализ магнитной структурной связи был использован для вибрации сердечника трансформатора.Лю и др. [25] установили полную цепочку моделирования такого трансформатора с полной связью, от инжекции трехфазного магнитного потока до 2D-деформации и оценки акустической мощности сердечника трансформатора, с учетом связи фазного тока, возбуждения магнитного потока (возбуждения напряжением). , анизотропия материала, магнитострикционные напряжения и многослойная гомогенизация. Однако большинство перечисленных выше работ являются одноэтапными исследованиями, без учета переноса между каждым этапом. Таким образом, механизм генерации колебаний сердечника до сих пор подробно не описан.

В этой статье, в соответствии с процессом эволюции от материала к продукту, тестируются микроструктура и магнитострикционные свойства зернисто-ориентированного НДС, а также строится четырехугольная модель сердечника для имитации вибрации первого порядка ядро. Затем выполняются модальные, вибрационные и шумовые испытания основного продукта трансформатора 110 кВ. Углубленный анализ механизма генерации вибрации сердечника может предоставить конструктивные идеи и поддержку данных для изготовления сердечников с низким уровнем шума.

2. Механизм вибрации железного сердечника

Вибрация сердечника в основном вызывается магнитострикционным явлением НДС и электромагнитной силой Максвелла. В связи с постоянным совершенствованием метода ламинирования, используемого для изготовления железного сердечника, и применения клейкой ленты без утка при его связывании, вибрация сердечника трансформатора в основном контролируется магнитострикцией SSS. Когда НДС подвергается воздействию внешнего магнитного поля, его размеры претерпевают сжатие и / или удлинение и возвращаются к исходным значениям после снятия внешнего магнитного поля.Это явление называется магнитострикционным эффектом.

Коэффициент магнитострикции обычно используется для отражения магнитострикции, которая может быть выражена следующим образом: где — коэффициент осевой магнитострикции SSS, — максимальное осевое расширение или сжатие SSS и — исходный осевой размер SSS.

Предполагая, что напряжение питания согласно принципу электромагнитной индукции, интенсивность магнитной индукции в сердечнике равна, где — магнитный поток сердечника, S — площадь поперечного сечения сердечника и — величина интенсивности магнитной индукции.

Когда железный сердечник работает в ненасыщенном состоянии, плотность магнитного потока и напряженность магнитного поля имеют линейную зависимость. Напряженность магнитного поля в железном сердечнике составляет где B s — магнитная индукция насыщения сердечника, а H c — коэрцитивная сила.

Под действием внешнего магнитного поля мелкомасштабная деформация НДС, вызванная магнитострикцией, удовлетворяет следующему соотношению: где — коэффициент магнитострикции насыщения НДС.

Основываясь на приведенном выше соотношении, можно получить максимальное осевое удлинение сердечника, вызванное магнитострикцией НДС, следующим образом:

Следовательно, когда трансформатор разгружен, вибрационное ускорение сердечника, вызванное магнитострикцией НДС, равно

Из уравнения Из (6) можно сделать вывод, что виброускорение пропорционально квадрату напряжения, если материал сердечника и рабочая температура остаются неизменными:

Период изменения магнитострикции в два раза меньше, чем у переменного электромагнитного поля, в то время как основной частота колебаний сердечника, вызванная магнитострикцией, вдвое превышает частоту изменения электромагнитного поля.

Однако на практике форма волны плотности магнитного потока сердечника не является стандартной синусоидальной волной. Кроме того, распределение магнитного потока и траектории внешней и внутренней рам сердечника различаются, что приводит к тому, что сигнал вибрации сердечника содержит большое количество высших гармонических составляющих, помимо составляющей основной частоты.


3. Материалы и методы
(1) Материалы: в качестве материала листа кремнистой стали с ориентированной зеренной структурой (SSS), использованного в испытании, был готовый холоднокатаный готовый продукт B30P105, произведенный Baoshan Iron & Steel Co., Ltd., Китай. (2) Измерение микроструктуры зернисто-ориентированной НДС: анализ микроструктуры и текстуры были основными методами оценки зернисто-ориентированной НДС. SSS с ориентированной зернистостью размывали горячим раствором соляной кислоты, а затем фотографировали. Текстуру измеряли с помощью дифрактометра обратного рассеяния электронов (EBSD), присоединенного к полевому эмиссионному сканирующему электронному микроскопу Zeiss Ultra 55. (3) Измерение магнитострикции SSS с ориентированной зернистостью: система измерения магнитострикции MST500 использовалась для проверки коэффициента магнитострикции и скорости A-взвешенной скорости (AWV). ) шум зернисто-ориентированного SSS согласно IEC / TR 62581–2010.Размеры образца 100 мм × 600 мм. В процессе измерения один конец образца фиксируется зажимной частью устройства, а другой конец образца находится в свободном состоянии. Разрешение лазера 10 нм / м. Фотография прибора для измерения коэффициента магнитострикции показана на рисунке 1. (4) Испытательная модель сердечника с четырьмя углами: модель стального сердечника с четырьмя углами была создана для имитации вибрации первого порядка сердечника трансформатора. В модели с четырехугольным железным сердечником применен трехступенчатый метод ступенчатого перекрытия; две части были сложены друг на друга и соединены диагональным соединением под углом 45 °.Обмотка была равномерно намотана на два плеча и использовалась последовательно. Всего было 220 витков, длиной 800 мм, шириной 100 мм и толщиной стопки 30 мм. Система анализа акустической вибрации компании B&K, Дания, использовалась для сбора сигналов вибрации в пяти точках измерения в центральной области и в области стыка параллельной и вертикальной плоскостей сердечника, как показано на рисунке 2. (5 ) Измерение сердечника трансформатора: в фактическом продукте использовался трехфазный двухобмоточный сердечник трансформатора 50 МВА 110 кВ для проверки его вибрационных и шумовых характеристик и собственных режимов.Измеритель уровня звука и система анализа акустической вибрации компании B&K, Дания, использовались для измерения и анализа звуковой вибрации в условиях холостого хода, а модальные испытания железного сердечника были выполнены с помощью силового ударного молотка и акселерометра. . Точки измерения шума и вибрации показаны на рисунке 3.
4. Результаты и обсуждение
4.1. Микроструктура и магнитострикционные свойства зернистой SSS

На рисунках 4 и 5 показаны микроструктура и текстура различных областей SSS, соответственно.Можно видеть, что микроструктуры центральной и краевой областей шва обеих представляющих интерес областей представляют собой кремнистую сталь с высокой зернистостью, которая была обработана холодной прокаткой и отжигом. Характеристики текстуры текстуры соответствуют. Полная вторичная рекристаллизация произошла в обеих областях, что привело к образованию зерен размером сантиметр с неправильной морфологией и разными размерами. Распределение ориентации кристаллов в обеих областях однородно. Согласно результатам наблюдения полюсной фигуры, обе области представляют собой резкие текстуры Госса.Угол отклонения ориентации по Госсу невелик, и нет зерен с ориентированными зернами, которые ухудшают магнитные свойства, такие как и.


На рисунке 6 показана кривая магнитострикции SSS в направлении качения под действием магнитного поля возбуждения с синусоидальным периодом 50 Гц. Видно, что кривая бабочки имеет симметрию влево-вправо. Его «крыло» отверстие обращено вниз, а магнитострикция имеет как растягивающие, так и сжимающие деформации, причем последняя преобладает над первыми.Такое преобладание может быть связано с динамическим движением доменной стенки или реорганизацией магнитной доменной структуры. Магнитострикционная усадка вызывается поворотом магнитного момента магнитного домена на 90 °. С увеличением плотности магнитного потока объем магнитного домена под углом 90 ° непрерывно уменьшается. Когда максимальная плотность магнитного потока достигает 1,7 Тл, магнитострикция больше не будет монотонно увеличиваться и начнет падать. Кривые крылья бабочки сужались, а магнитострикция имела тенденцию к насыщению.


Магнитострикционные однозначные кривые для различных значений магнитной плотности показаны на рисунке 7. Можно видеть, что с увеличением напряженности приложенного магнитного поля величина размаха магнитострикции, которая определяется как разница между и значениями при переменном намагничивании постепенно увеличивается. Когда магнитные свойства материала имеют тенденцию к насыщению, магнитострикция также кажется насыщенной. С микроскопической точки зрения магнитные домены, составляющие материал, постепенно располагаются параллельно направлению внешнего поля под действием этого поля, и процесс намагничивания также изменяется с размером магнитного домена.Когда все магнитные домены образуют однодоменный образец, достигается насыщение намагниченности, и деформация магнитных доменов также имеет тенденцию к насыщению. При дальнейшем увеличении напряженности магнитного поля намагниченность будет медленно увеличиваться, и поведение изменения больше не будет соответствовать образцу до насыщения.


На рисунке 8 показана кривая изменения магнитострикции НДС во временной области при различных магнитных плотностях за один период. При магнитной плотности 1.7 T кривая перестает быть гладкой и искажается. Результаты анализа спектра Фурье показаны на рисунке 9. Когда плотность магнитного потока меньше 1,7 Тл, максимальные магнитострикционные длины в основном сосредоточены при 0 и 100 Гц. После 1,7 Тл магнитострикционные длины на частотах 200 и 300 Гц значительно увеличились.



На рисунке 10 изображена кривая типа «бабочка» ГБО с ориентированными зернами в разных направлениях при магнитной плотности 1.3 Тл в синусоидальном периодическом магнитном поле возбуждения частотой 50 Гц. Видно, что кривые «бабочка» в разных направлениях имеют лево-правую симметрию, а направления магнитострикции не совпадают, демонстрируя высокие характеристики магнитострикционной анизотропии. Вдоль направления прокатки величина магнитострикции наименьшая. В направлении 45 ° величина магнитострикции увеличивается и показывает усадку. В вертикальном направлении величина магнитострикции является наибольшей и показывает относительное удлинение.Максимальное значение магнитострикции в вертикальном направлении превышает таковое в направлении прокатки в 35 раз. Кривые бабочки, вертикальные к направлению прокатки при различной магнитной плотности, для краткости опущены. Их характер изменения и магнитострикционные характеристики такие же, как и в направлении прокатки: они оба увеличивают магнитострикцию по мере увеличения плотности магнитного потока до насыщения. Однако при той же плотности магнитного потока магнитострикция SSS с ориентированными зернами в вертикальном направлении значительно больше, чем в параллельном (прокатном) направлении.


На рисунке 11 показаны кривые шума AWV для зернисто-ориентированного НДС в разных направлениях с различной плотностью магнитного потока при возбуждении синусоидальным периодическим магнитным полем частотой 50 Гц. Ограниченная мощностью оборудования, максимальная напряженность поля в вертикальном и 45 ° направлениях составляет 1,6 Тл. Видно, что уровень шума AWV зернисто-ориентированного SSS варьируется в разных направлениях. При одинаковой магнитной плотности шум AWV наименьший в направлении качения, немного увеличивается в направлении 45 ° и является наибольшим в вертикальном направлении.У последнего AWV шум почти вдвое выше, чем в направлении качения. Скорость увеличения значения шума AWV для зернисто-ориентированного SSS не зависит от насыщения образца. До и после насыщения образца рост значения шума AWV согласуется с увеличением плотности магнитного потока. Хотя скорость увеличения значения размаха магнитострикции становится меньше после насыщения, она не увеличивается или даже немного уменьшается после того, как образец становится насыщенным.Однако с появлением явления насыщения содержание гармоник, содержащихся в магнитострикционной форме волны, увеличивается, и вклад в значение шума AWV относительно велик, поэтому значение шума AWV увеличивается.


4.2. Вибрационные характеристики модели с четырехугольным железным сердечником

На рисунке 12 показаны временная область и спектр колебаний модели SSS с четырехугольным железным сердечником при магнитной плотности 1,3 Тл. Можно видеть, что сигнал вибрации во временной области представляет собой не стандартную синусоидальную форму волны, а искаженную форму волны, на которую накладываются различные частотные сигналы.Однако по-прежнему можно определить сигнал вибрации сердечника как периодический сигнал с частотой 100 Гц.


Основные места возникновения пиков частоты вибрации в каждой точке измерения и общее эффективное значение виброускорения показаны в таблице 1. Частоты основных пиков вибрации в разных направлениях, очевидно, различаются. Помимо основной частоты, есть также хорошо выраженные высокочастотные составляющие, что согласуется с результатами теоретического анализа.Кроме того, в области шва (точки 3 и 4) также появились гармоники нечетного порядка 450 и 650 Гц, что может быть вызвано комбинированным эффектом циклического возбуждения в общей области и электромагнитной силы между зазорами. Эффективные значения виброускорения по вертикали относительно плоскости сердечника ( a 1 и a 3 ) выше, чем значения, параллельные плоскости сердечника ( a 2 , a 4 , и a 5 ).


Точка измерения Пиковая частота основной вибрации (Гц) Эффективное значение виброускорения (м / с 2 )
100 и 200 0,072
2 100, 200, 400 и 700 0,042
3 100 0,166
4 100 и 01275.041
5 100 0,038

На рисунке 13 показаны вибрационные характеристики точек измерения 2, 3 и 5 при различной магнитной плотности. Видно, что с увеличением магнитной плотности пиковая интенсивность основной частоты колебаний продолжает увеличиваться, появляются пики колебаний новой частоты и форма колебательного сигнала усложняется. Амплитуда виброускорения основной частоты имеет линейную зависимость от квадрата магнитной плотности, как показано на рисунке 14.То есть виброускорение основной частоты имеет линейную зависимость от возведенного в квадрат напряжения, что согласуется с вышеизложенным наблюдением о том, что вибрация сердечника пропорциональна возведенному в квадрат рабочему напряжению.


На рисунке 15 показано значение ускорения для каждой точки измерения при различной магнитной плотности. По мере увеличения магнитной плотности значение ускорения каждой точки измерения соответственно увеличивается. Это показывает, что вибрация, вертикальная к плоскости сердечника, всегда выше, чем вибрация, параллельная ей.В том же направлении вибрация в центральной области SSS значительно меньше, чем в области шва кромки ( a 1 < a 3 и a 2 < a 4 ). В плоскости, параллельной железному сердечнику, фаза колебаний в направлении прокатки ( a 5 ) аналогична фазе колебаний в центральной области ( a 2 ) по вертикали (прокатка) направление при мелкомасштабной магнитной плотности.Но по мере увеличения магнитной плотности вибрация, вертикальная к направлению прокатки, постепенно больше, чем вибрация, ориентированная вдоль этого направления.


Как упоминалось ранее, микроструктура и текстура различных областей НДС существенно не отличаются, в отличие от магнитострикции НДС в разных направлениях. Следовательно, основной причиной очевидного различия между областями является магнитострикция НДС.

В центральной области НДС распределение магнитного поля непрерывное и однородное, а направление магнитного поля определенное и постоянное.Напротив, распределение магнитного поля в области краевого шва прерывистое, а наличие вращающегося магнитного потока вызывает рассеяние направления магнитного поля в этой области во многих направлениях. В то же время в процессе деформации микроструктуры области шва зерна деформируются и вращаются более свободно, поскольку они меньше сдерживаются и сдерживаются окружающими зернами. Кроме того, из-за взаимного сжатия между НДС в общей зоне может возникнуть деформация, отличная от магнитострикции.Эти факторы приводят к тому, что область шва имеет совершенно отличные от центральной области магнитострикционные характеристики, что неизбежно приведет к низким и высоким параметрам вибрации центральной и шовной областей соответственно, а также к различиям в характеристиках их спектра колебаний. При этом возникает микродеформация, вертикальная к плоскости сердечника.

Под действием магнитного поля магнитострикционное направление SSS сердечника в основном совпадает с направлением прокатки SSS и направлением магнитного поля.Однако оба конца SSS ограничены шестью степенями свободы. Следовательно, магнитное поле вызывает магнитострикцию НДС в своем направлении, но деформация материала не может происходить с обоих концов. Это вызывает микроизгиб и крутильную деформацию в средней части НДС, и составляющая этой деформации в направлении, вертикальном к плоскости НДС, будет вызывать периодическую деформацию между слоями. Эта периодическая микродеформация вызывает колебания в направлении, вертикальном к плоскости НДС.Видно, что вибрация сердечника в направлении, вертикальном к плоскости сердечника, является результатом совместной деформации области краевого шва НДС сердечника в этом направлении и микродеформации между пластинами в центральной области. Колебание, параллельное плоскости сердечника, является результатом деформации НДС в направлении магнитного поля.

4.3. Модальные, шумовые и вибрационные характеристики реального сердечника трансформатора

На рисунке 16 представлена ​​фотография модального испытания сердечника трансформатора 110 кВ.Результаты модальных испытаний показаны в Таблице 2. Видно, что вблизи собственной частоты сердечника трансформатора легко вызвать резонанс оборудования и увеличить его общие уровни вибрации и шума.


70 8,41
70 8,41
70 8,41
49

Заказ Экспериментальное значение (Гц)

1 65.71
4 100,86
5 175,43
6 203,6
7 299,3112 299,3112
970
10 493,95
11 570,34
12 592,06
13 705,97 75
15 802.52

На рисунке 17 показаны первые шесть характеристик режима собственной частоты сердечника трансформатора. Видно, что мода первого порядка сердечника трансформатора в основном характеризуется вибрационной деформацией всей конструкции и локальным кручением как вспомогательным. Мода второго порядка в основном характеризуется деформацией изгиба и кручения, а также деформацией кручения конструкции.Мода третьего порядка в основном характеризуется крутильной деформацией конструкции. Мода четвертого порядка в основном характеризуется деформацией конструкции изгибом и кручением. Режимы колебаний выше пятого порядка демонстрируют совокупные характеристики воздействия крутильной деформации и изгибной деформации. По мере того, как структурный порядок сердечника повышается, его модальные характеристики постепенно изменяются от деформации изгиба к многопорядковому изгибу и деформации кручения, демонстрируя более сложные характеристики деформации.

Экспериментальные полевые диаграммы вибрационных и шумовых испытаний компонентов сердечника трансформатора 110 кВ в условиях холостого хода и характеристики частотного спектра некоторых точек измерения показаны на рисунках 18 и 19. Частота пика виброускорения по вертикали к плоскости сердечника в основном проявляется на частотах 100, 200, 300 и 500 Гц. Также есть определенные пики на частотах 50, 150, 250, 350, 400, 600, 700, 800 и 900 Гц. Частота пика виброускорения, параллельного плоскости сердечника, в основном проявляется в районе 300 и 500 Гц.Также есть определенные пики на частотах 100, 200, 400, 600, 700, 800 и 900 Гц. Характеристики спектра колебаний в разных положениях и направлениях различаются. Общее эффективное значение виброускорения в каждой точке показано на рисунке 20. Амплитуда вибрации в направлении, параллельном плоскости сердечника, обычно ниже, чем в вертикальном направлении. В том же направлении наблюдается постепенно убывающая тенденция от обоих концов к центру. Из-за различий в производственном процессе, производительности и тестировании модели с четырехугольным сердечником и фактических основных продуктов, основной спектр вибрации в каждой области немного отличается, но в основном они основаны на основной частоте 100 Гц и выше. гармонические частоты.Однако поведение при вибрации полностью соответствует поведению при вибрации в различных областях вышеупомянутой модели четырехугольного сердечника.




Характеристики спектра шума (вертикальные и параллельные направлению плоскости сердцевины) показаны на рисунках 21 (a) и 21 (b), соответственно. Пиковые частоты с наибольшим шумом по вертикали относительно плоскости сердечника в основном появляются около 100, 200 и 500 Гц. Также есть явные пики шума на таких частотах, как 50, 80, 300, 400 и 600 Гц.Для спектров шума, параллельных плоскости железного сердечника, наиболее высокие частоты пиков шума в основном появляются около 300 и 500 Гц. Также есть очевидные пики шума вблизи таких частот, как 50, 80, 100, 200, 400 и 600 Гц.

Видно, что спектры вибрации сердечника и шума в одном и том же направлении имеют существенные характеристики корреляции акустической вибрации. В направлении, вертикальном к плоскости сердечника, частоты экстремальных амплитуд вибрации и шума в основном проявляются около 100, 200 и 500 Гц.Также есть определенные пики около таких частот, как 50, 300 и 400 Гц. В направлении, параллельном плоскости сердечника, частоты экстремальных амплитуд вибрации и шума в основном проявляются около 300 и 500 Гц. Пики также появлялись вблизи таких частот, как 100, 200 и 400 Гц. Шум на соответствующей частоте в основном связан с вибрацией сердечника.

На рисунке 22 показана взаимосвязь между модами сердечника, вибрацией и шумом. Вибрация первого порядка сердечника по своей природе включает частоты около 50, 100 и 200 Гц, а его характеристиками режима в основном являются изгиб и крутильная деформация в направлении, вертикальном к плоскости сердечника.Анализ спектра колебаний по двум направлениям показывает, что только первое направление колебаний имеет максимальный пик вблизи частот 100 и 200 Гц. Спектр шума также имеет пики максимального шума около 100 и 200 Гц, что указывает на то, что основные модальные характеристики сильно влияют на его характеристики вибрации и шума, что может вызвать структурный резонанс на этих частотах. Видно, что основные модальные характеристики, вибрация и шум также имеют тесную корреляцию.


На основании приведенного выше анализа приведены три проектных точки с низким уровнем шума. Первый заключается в выборе листа кремнистой стали с низкой магнитострикцией, который соответствует силе сжатия сердечника, чтобы уменьшить амплитуду колебаний во всех направлениях сердечника. Второй — изменить режим притирки или шаг зоны шва сердечника, чтобы уменьшить амплитуду вибрации в зонах шва. В-третьих, использовать шумоподавляющие демпфирующие материалы или улучшить структуру, чтобы изменить модальные характеристики сердечника, чтобы удерживать его вдали от основной рабочей полосы частот в состоянии под напряжением.Избегайте возникновения резонанса оборудования в рабочем состоянии при включении питания и уменьшайте возможность повреждения оборудования резонансом, тем самым обеспечивая безопасную работу оборудования и повышая уровень защиты оборудования от окружающей среды.

5. Выводы

В данной работе были протестированы магнитострикционные характеристики листов текстурированной кремнистой стали (SSS). Платформа модели керна с четырьмя углами была сконструирована для имитации вибрации первого уровня керна.Наконец, на фактическом основном продукте 110 кВ были проведены испытания на шум, вибрацию и режимы. В этой работе был проведен подробный анализ механизма вибрации сердечника от материала к изделию. Основные выводы заключаются в следующем: (1) Характеристики текстурной структуры и распределение ориентации кристаллов в центральных и краевых областях ориентированного НДС согласованы. По мере увеличения плотности магнитного потока SSS с ориентированными зернами магнитострикция в каждом направлении растет до насыщения, а значение шума AWV продолжает увеличиваться, не подвергаясь влиянию насыщения.При одинаковой плотности магнитного потока магнитострикция в вертикальном направлении по отношению к направлению прокатки значительно больше, чем в направлении прокатки, что свидетельствует о значительной анизотропии. (2) Существуют значительные различия в вибрации различных участков модели четырехугольного сердечника. Колебания, перпендикулярные плоскости сердечника, превышают параллельные ей. Вибрация в центральной области в той же плоскости значительно ниже, чем в области краевого шва. Это различие вызвано разной микроскопической деформацией, вносимой различными областями с совершенно разными магнитострикционными характеристиками.(3) Показано, что характеристики вибрации фактического изделия с железным сердечником на 110 кВ такие же, как у модели с четырехугольным железным сердечником. В том же направлении наблюдается постепенно уменьшающаяся тенденция от обоих швов к центру, а спектры вибрации и шума имеют существенные характеристики корреляции акустической вибрации. Его модальные значения также имеют тесную корреляцию с его характеристиками вибрации и шума.

В будущем амплитуду вибрации сердечника можно будет уменьшить, выбрав лист кремнистой стали с низким магнитострикционным действием, который соответствует силе сжатия сердечника, изменив режим притирки или расстояние в зоне шва сердечника, увеличив использование шумоподавляющих материалов, или улучшение конструкции.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *