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

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

Что такое RNN ???

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

Вы знаете, как работает функция автозаполнения Google ???

По сути, сбор больших объемов наиболее часто встречающихся последовательных слов подается в ======= ›› сеть RNN ======= ›› Он анализирует данные, находя последовательность часто встречающиеся слова и строит модель для предсказания следующего слова в предложении.

Итак, видите ли вы важность RNN в нашей повседневной жизни. Собственно, это сделало нас ленивыми!

У нас уже так много проблем в жизни, теперь зачем усложнять ее, вводя новую сеть (RNN), когда у нас уже есть нейронная сеть прямого распространения?

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

Проблемы в нейронной сети с прямой связью: -

  1. Не может обрабатывать последовательные данные.
  2. Учитывайте только текущий ввод.
  3. Не могу запомнить предыдущий ввод.

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

Применение RNN: -

  1. Подпись к изображению - используется для подписи к изображению путем анализа присутствующих в нем действий.

2. Прогнозирование временных рядов

3. Обработка естественного языка - интеллектуальный анализ текста и анализ тональности.

4. Машинный перевод. Принимая ввод на одном языке, RNN можно использовать для перевода его на разные языки в качестве вывода.

Типы архитектур RNN: -

  1. Один к одному: - Это также известно как обычная нейронная сеть. Он используется для решения основных задач машинного обучения.
  2. Один ко многим: - Он имеет один вход и много выходов. Применение: используется в подписи к изображениям, как то, что мы видели ранее, когда собака ловит мяч в воздухе.
  3. Многие к одному: - У него много входов и один выход. Это в основном используется при анализе настроений, когда мы даем предложение в качестве ввода и получаем мнение о нем как о выходе.
  4. Многие ко многим: - Требуется последовательность входных данных и генерируется последовательность выходных данных. Применение: Машинный перевод

Проблемы при обучении RNN: -

  1. Проблема исчезающего градиента
  2. Проблема взрывающегося градиента

Проблема возникает во время обучения глубокой нейронной сети, когда градиенты перемещаются в обратном направлении обратно к начальному слою. Поскольку градиенты должны проходить непрерывное матричное умножение из-за правила цепочки. Следовательно, если они имеют малые значения (‹1), они экспоненциально сжимаются до тех пор, пока не исчезнут, и это называется проблемой исчезающего градиента. Это приводит к потере информации со временем. Более того, если градиенты имеют большие значения (›1), они становятся больше и в конечном итоге взрываются и разрушают модель, это называется проблемой взрывающегося градиента.

Проблемы, связанные с этими проблемами:

  1. Длительное время обучения
  2. Низкая производительность
  3. Плохая точность

Давайте разберемся с этим более практично: -

Рассмотрим следующие два примера, чтобы понять, каким должно быть следующее слово в последовательности:

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

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

Теперь давайте попробуем разобраться в вышеупомянутой проблеме более СТАТИСТИЧЕСКИ:

Не бойтесь видеть заголовок. Я постараюсь изо всех сил объяснить все подробные концепции простым способом.

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

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

Теперь возникает вопрос, почему эта проблема градиента не возникает во время прямого прохода ???

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

Давайте попробуем интерпретировать проблему в терминах функции, которую вычисляет RNN:

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

рекурсивно расширяя его, мы получаем -

это итеративная функция (функция, которая повторяется много раз).

Давайте теперь разберемся с вышеуказанной концепцией на примере простой квадратичной функции: -

Если мы повторим его несколько раз, мы получим сложное поведение, как показано на рисунке 2 ниже:

Сделаем это проще на монотонном примере:

Теперь, визуально понимая его повторяющееся поведение

В конце концов, итерации либо уносятся в бесконечность, либо заканчиваются в фиксированной точке, то есть в точке, где x = f (x), где график x пересекает пунктирную линию.

Стационарные точки бывают двух типов: -

  1. Источники: которые отталкивают итерации (0,82 на рис. Выше). Он имеет производную f ’(x)› 1.
  2. Поглотители / Аттракторы: Которые привлекают итераций (0,17 на рис. Выше). Он имеет производную f ’(x)‹ 1.

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

Решения проблем взрыва градиента и исчезающего градиента: -

  1. Отсечение градиента:

Это помогает предотвратить разрушение градиентов путем их повторного масштабирования, так что их норма не превышает определенного значения η, т. Е. Если ‖g‖ ›η, где g - градиент, мы устанавливаем

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

2. Реверс ввода:

Вначале мы узнали, что сети очень сложно изучить зависимости на большом расстоянии. Следовательно, это влияет на обучаемость архитектуры. Это можно исправить, изменив порядок слов во входном предложении, что можно четко понять, проанализировав изображение ниже:

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

3. Инициализация удостоверения:

Помимо функции идентичности f (x) = x, которую вы можете повторять много раз, другие повторяющиеся функции могут иметь сложное и хаотическое поведение. Следовательно, если сеть вычисляет единичную функцию, вычисление градиента будет совершенно стабильным, поскольку якобиан - это просто единичная матрица.

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

4. Долговременная краткосрочная память (LSTM):

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

Давайте проделаем работу с LSTM и разберемся, как она работает: -

По сути, LSTM работает в три этапа:

ШАГ 1. Решите, сколько из прошлого следует запомнить

Пример вышеуказанного шага:

Предыдущий результат h (t-1): Алиса хороша в физике. С другой стороны, Джон хорош в химии.

Текущий ввод x (t): Джон хорошо играет в футбол. Вчера он сказал мне по телефону, что служил капитаном своей футбольной команды.

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

б. Сравнивается с текущим вводимым предложением в x (t).

c. Следующее предложение говорит о Джоне, поэтому информация об Алисе удаляется.

d. Позиция субъекта освобождается и передается Джону.

ШАГ 2. Решите, сколько это устройство должно добавить к текущему состоянию.

Пример вышеуказанного шага:

Текущий ввод x (t): Джон хорошо играет в футбол. Вчера он сказал мне по телефону, что служил капитаном своей футбольной команды.

Входной вентиль анализирует важность приведенного выше предложения как:

[Джон играет в футбол, и он был капитаном своей футбольной команды] (важнее, чем) [Он сказал мне по телефону] (менее важно, и поэтому об этом забывают)

ШАГ 3. Решите, какая часть текущей ячейки попадает на выходные данные.

В этом примере мы попытаемся предсказать следующее слово в предложении:

Джон очень хорошо сыграл против соперника и выиграл свою команду. За свой командный вклад храбрый ____________ был награжден лучшим игроком матча.

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

Итак, на этом шаге система сначала проверит, что такое смелый == ›прилагательное (описывает существительное)

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

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

# машинное обучение # углубленное обучение # нейронная сеть #RNN #LSTM # Повторяющаяся нейронная сеть # Искусственный интеллект