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

Но что именно все это означает?

Допустим, у нас есть неподвижное изображение летающей летающей тарелки.

А что, если бы мы хотели предсказать направление летающей тарелки?

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

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

Как и в примере с фрисби, RNN работает с последовательными данными.

Примеры последовательных данных RNN:

  • Аудио
  • Текст
  • Видео
  • Изображений

Итак, мы знаем, что RNN хороши в использовании последовательных данных для прогнозов, но как?

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

Ладно, попробуй произнести свое полное имя в уме.

A S H L E Y C Z U M A K

Для большинства из вас эта задача, вероятно, была легкой, не так ли?

Хорошо, а теперь попробуйте написать свое полное имя в обратном порядке.

K A M U C Z - подождите, нет, это не так

K A M U Z C Y L E H - Ага ближе, но не совсем.

K A M U Z C Y E L H S A - Ну наконец-то, но потребовалось несколько попыток.

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

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

Итак, мы знаем, что RNN имеют последовательную память, но как они реализуют эту концепцию?

Нам нужно посмотреть на нейронную сеть с прямой связью.

Как видите, нейронная сеть с прямой связью имеет входной, скрытый и выходной уровни.

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

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

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

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

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

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

Приложения

Генерация текста

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

Распознавание речи

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

Шаги:

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

Обнаружение изображения

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

Вот как будет выглядеть фреймворк:

Сверточная нейронная сеть будет обрабатывать изображение и распознавать особенности изображения.

RNN использует известные функции для понимания изображения и составляет правильное описание входного изображения.

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

Свяжитесь со мной по любым вопросам 🚀

Если вам понравилась эта статья, подумайте о прочтении моей статьи о CNN :)

Привет, я Эшли, 16-летний ботаник-программист и искусственный интеллект. энтузиаст!

Надеюсь, вам понравилось читать мою статью, и если да, не стесняйтесь проверить некоторые из моих других статей на Medium :)

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

💫Электронная почта: [email protected]

💫 Linkedin