Рекуррентные нейронные сети

Урок 17 из 25 курса «Основы ИИ для начинающих»: официальный курс Microsoft AI for Beginners (Майкрософт) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

В предыдущих разделах мы использовали богатые семантические представления текста и простой линейный классификатор поверх эмбеддингов. Такая архитектура позволяет уловить агрегированное значение слов в предложении, но не учитывает порядок слов, поскольку операция агрегации поверх эмбеддингов удаляет эту информацию из исходного текста. Из-за неспособности моделировать порядок слов такие модели не могут решать более сложные или неоднозначные задачи, например, генерацию текста или ответы на вопросы. Чтобы уловить смысл текстовой последовательности, необходимо использовать другую архитектуру нейронной сети, которая называется рекуррентной нейронной сетью, или RNN. В RNN мы пропускаем предложение через сеть по одному символу за раз, и сеть производит некоторое состояние, которое затем передаётся в сеть снова вместе со следующим символом. Изображение автора Для входной последовательности токенов X0,...,Xn RNN создаёт последовательность блоков нейронной сети и обучает эту последовательность сквозным методом с использованием обратного распространения ошибки. Каждый блок сети принимает пару (Xi,Si) в качестве входных данных и производит Si+1 в качестве результата. Конечное состояние Sn или (выход Yn) поступает в линейный классификатор для получения результата. Все блоки сети имеют одинаковые веса и обучаются сквозным методом за один проход обратного распространения. Благодаря тому, что векторы состояния S0,...,Sn передаются через сеть, она способна изучать последовательные зависимости между словами. Например, когда слово not появляется где-либо в последовательности, сеть может научиться отрицать определённые элементы внутри вектора состояния, что приводит к отрицанию. ✅ Поскольку веса всех блоков RNN на изображении выше являются общими, ту же схему можно представить как один блок (справа) с рекуррентной обратной связью, которая передаёт выходное состояние сети обратно на вход. Давайте рассмотрим, как устроена простая ячейка RNN. Она принимает предыдущее состояние Si-1 и текущий символ Xi в качестве входных данных и должна произвести выходное состояние Si (а иногда нас также интересует некоторый другой выход Yi, как в случае с генеративными сетями).

План урока

  1. Тест перед лекцией
  2. Анатомия ячейки RNN
  3. Долгая краткосрочная память (LSTM)
  4. Двунаправленные и многослойные RNN
  5. ✍️ Упражнения: Эмбеддинги
  6. Заключение
  7. 🚀 Задание
  8. Тест после лекции

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды