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

В этом предложении есть два важных слова —

  1. Ориентированный граф
  2. Временная последовательность

Вскоре мы вернемся к этим двум словам. Допустим, у нас есть предложение в качестве входных данных —

X = Гарри Поттер и Гермиона Грейнджер изобрели новое заклинание

Теперь мы можем применять RNN для идентификации имен людей из таких предложений.

Пример вывода для этого предложения:

Y = 1 1 0 0 1 1 0 0где каждая 1 означает присутствие имени человека в предложении

Теперь давайте пометим этот тип ввода, используя обозначение, показанное на снимке экрана ниже:

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

Мы можем пометить каждый вход и выход в соответствии с приведенными ниже обозначениями -

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

Мы можем создать такие векторы для всех входных данных i в данных и теперь можем преобразовать эту проблему в задачу обучения с учителем.

Архитектура RNN

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

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

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

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

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

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

  1. Он сказал: «Тедди Рузвельт был президентом США».
  2. Он сказал: «Мишки Тедди были его любимой мягкой игрушкой в ​​детстве».

Оба приведенных выше предложения содержат слово Teddy, и в предложении 1 «Teddy Roosevelt» — это имя человека, а в предложении 2 «Teddy Bears» — это не имя человека. Их можно ошибочно отнести к однонаправленным RNN, но они подходят для двунаправленных RNN.