Что такое RNN?

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

Подробнее о нейронных сетях

Подробнее о глубоком обучении

Подробнее о трансформерах в искусственном интеллекте

Подробнее о больших языковых моделях

Как работает рекуррентная нейронная сеть?

На следующем рисунке показана схема RNN.

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

Скрытый слой

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

Для примера давайте рассмотрим последовательность Apple is red. Вы хотите, чтобы RNN предсказывала слово red при получении входной последовательности Apple is. Когда скрытый слой обрабатывает слово Apple, он сохраняет его копию в своей памяти. Затем, увидев слово is, модель извлекает слово Apple из памяти и понимает контекст всей последовательности: Apple is. Это позволяет ей с высокой точностью прогнозировать слово red. Благодаря этому RNN полезны для распознавания речи, машинного перевода и других задач языкового моделирования.

Подробнее о машинном переводе

Обучение

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

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

Подробнее о машинном обучении

Какие существуют типы рекуррентных нейронных сетей?

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

Один ко многим

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

Многие ко многим

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

Многие к одному

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

Какое место занимают рекуррентные нейронные сети в сравнении с другими сетями глубокого обучения?

RNN – одна из основных архитектур нейронных сетей.

Сравнительный анализ рекуррентной нейронной сети (RNN) и нейронной сети с прямой связью

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

Сравнительный анализ рекуррентной нейронной сети (RNN) и сверточных нейронных сетей

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

Каковы ограничения рекуррентных нейронных сетей (RNN)?

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

Подробнее об обработке естественного языка (NLP)

Взрывающийся градиент

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

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

Исчезающий градиент

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

Медленное обучение

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

Какие существуют варианты архитектуры для рекуррентной нейронной сети?

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

Двунаправленные рекуррентные нейронные сети

Двунаправленная рекуррентная нейронная сеть (BRNN) обрабатывает последовательности данных, используя прямые и обратные слои скрытых узлов. Прямой слой работает аналогично обычной RNN, то есть сохраняет предыдущее входное значение в скрытом состоянии и использует его для прогнозирования следующего выходного значения. Обратный слой, в свою очередь, действует в противоположном направлении, то есть использует и текущее входное значение, и будущее скрытое состояние для обновления текущего скрытого состояния. Объединение этих уровней позволяет BRNN повысить точность прогнозирования с учетом контекстов прошлого и будущего значений. Например, вы можете с помощью BRNN успешно предсказать слово trees в предложении Apple trees are tall

Долгая кратковременная память

Долговременная кратковременная память (LSTM) – это вариация RNN, в которой объем памяти для модели увеличивается для размещения данных за более длительный период. Обычная RNN запоминает только самое последнее входное значение. Он не умеет использовать входные данные из нескольких предыдущих последовательности, чтобы улучшить точность прогнозирования. 

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

Рекуррентные блоки с шлюзами

Рекуррентные блоки с шлюзами (GRU) – это вариация RNN, поддерживающая выборочное сохранение памяти. В эту модель добавлены шлюзы обновления и забывания в скрытом слое, что позволяет хранить информацию в памяти и удалять ее. 

Как трансформеры преодолевают ограничения, характерные для рекуррентных нейронных сетей (RNN)?

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

Слежение за собой

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

Параллелизм

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

Как AWS обеспечивает соответствие вашим требованиям к RNN?

Генеративный искусственный интеллект в Amazon Web Services (AWS) предоставляет сервисы, инструменты и ресурсы для создания, администрирования и масштабирования традиционных приложений на основе искусственного интеллекта с использованием передовых технологий на основе трансформеров. Пример

  • Amazon SageMaker – это полностью управляемый сервис, который можно использовать в любом сценарии подготовки данных, создания, обучения и развертывания моделей машинного обучения. Он имеет полностью управляемую инфраструктуру, инструменты и рабочие процессы.
  • Amazon Bedrock упрощает разработку генеративного искусственного интеллекта, обеспечивая безопасную и эффективную настройку и развертывание лучших в отрасли базовых моделей (FM).
  • AWS Trainium – это акселератор машинного обучения, который применяется для обучения и масштабирования моделей глубокого обучения по доступной цене в облаке. 

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

AWS: дальнейшие шаги

Зарегистрировать бесплатный аккаунт

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

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход