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

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

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

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

Почему алфавиты расположены последовательно? «Практика расположения букв в установленном порядке имеет смысл: так легче учить и учиться».

Как люди, мы изучаем последовательности с детства, например, алфавит. В этом нет никакой логики, это не упорядочено по гласным и согласным, похожим звукам или тому, как часто используются буквы. Обычно мы используем песни или другие средства, чтобы запомнить его. Если нас попросят назвать кому-нибудь три буквы после 'F'; большинство людей начинают с нескольких букв до или даже с начала, чтобы обеспечить соблюдение правильной последовательности.

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

RNN хорошо обрабатывают последовательные данные для прогнозов. Как?

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

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

Что такое вес? Важно отметить, что мы говорим о термине «состояние» при обращении к RNN, эти веса помогают обрабатывать ввод для вывода.

«Состояние» — это кратковременная память, которая сбрасывается после завершения последовательности.

Когда ячейка RNN получает информацию, она:

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

Держите 👀 для части 2… скоро.

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