Существует несколько типов нейронных сетей (NN). Рекуррентные нейронные сети (RNN) могут «запоминать» данные и использовать прошлую информацию для выводов. В этой статье рекуррентные нейронные сети сравниваются с сетями прямого распространения (FFNN), которые не могут помнить, затем углубимся в концепцию обратного распространения во времени (BPTT) и завершим рассмотрением RNN с долговременной краткосрочной памятью (LSTM).

RNN и FFNN обрабатывают информацию по-разному. В FFNN информация перемещается напрямую из входного слоя в скрытые слои и в выходной слой. В результате FFNN не имеют памяти о предыдущих входах и бесполезны для прогнозирования будущего. Единственное использование прошлой информации в FFNN – это обучение. После обучения сети прошлая информация не учитывается. FFNN используются для задач классификации и распознавания.
В RNN информация движется по циклу. RNN учитывают как текущие входные данные, так и то, что было изучено из предыдущих входных данных. Фиксированный весовой параметр проходит через слои FFNN. В RNN глубокое обучение происходит, поскольку весовые параметры зависят от результатов более ранних вычислений. В RNN скрытый слой действует как «память». RNN используются для приложений глубокого обучения, таких как обработка естественного языка, прогнозирование пути из движущихся объектов, финансовые прогнозы и прогнозы погоды.
В RNN используются три типа весов. Они включают входные веса и веса скрытого-выходного, которые похожи на веса в FFNN. Однако RNN добавляет третий тип: веса, используемые для рекуррентных соединений скрытого-скрытого, которые возвращаются к входу.

Обратное распространение (BP) – это основополагающий алгоритм в машинном обучении (ML). В NN прямое распространение используется для передачи информации от входа к выходу и последующей проверки на наличие ошибок. Обратное распространение используется во время обучения для нахождения градиента функции ошибок относительно весов сети. Алгоритм обратного распространения проходит по слоям назад, чтобы найти частную производную ошибок относительно весов. Затем эти производные используются алгоритмом, называемым градиентным спуском, который итеративно минимизирует ошибки. Обучение NN основано на процессе корректировки весов вверх или вниз с использованием комбинации обратного распространения и градиентного спуска, которая изменяет веса по мере необходимости для уменьшения ошибки.
RNN можно рассматривать как последовательность нейронных сетей, которые обучаются последовательно с использованием обратного распространения. В полностью рекуррентной нейронной сети FRNN выходы всех нейронов соединены со входами всех нейронов. FRNN является наиболее обобщенной RNN, и различные другие типы RNN могут быть получены путем установки некоторых весов связей на ноль, чтобы указать на отсутствие связи между соответствующими нейронами.
Следующий рисунок иллюстрирует реализацию обратного распространения в RNN. Левая ячейка показывает базовые входные, скрытые и выходные веса U, V и W соответственно. Справа она «развернута», чтобы показать временную прогрессию изменений веса, которые происходят с использованием обратного распространения и градиентного спуска.

LSTM – это тип RNN, который обеспечивает кратковременную память, которая может храниться тысячи временных шагов. Ячейка LSTM-RRN может обрабатывать данные последовательно и обновлять веса своего скрытого состояния с течением времени. Теоретически, обычные RNN могут отслеживать долгосрочные зависимости во входной последовательности в течение произвольного периода времени. Однако на практике при обучении обычной RNN с использованием обратного распространения долгосрочные градиенты, как правило, равны нулю, что останавливает любое обучение. Блоки LSTM-RRN предназначены для решения проблемы исчезающего градиента, позволяя градиентам течь с минимальным затуханием. Однако, если они не спроектированы должным образом, LSTM может испытывать взрывные градиенты и увеличение ошибок. В LSTM-RRN добавлен дополнительный алгоритм обучения, который учится, когда следует помнить, а когда следует забывать определенные типы информации. Помимо обучения тому, как выполнять определенную функцию, например обработку естественного языка, LSTM-RRN учится, какую информацию следует помнить, чтобы улучшить свою долгосрочную производительность.
RRN включают третий вес, который отсутствует в FFNN для рекуррентных соединений скрытого-скрытого слоя, которые возвращаются к входу. Эти веса скрытого-скрытого позволяют RRN учиться на своих ошибках и изменять веса во время обучения. Методы, используемые во время обучения, называются алгоритмами обратного распространения и градиентного спуска. В практических реализациях обратное распространение может привести к исчезающему градиенту и прекращению обучения. LSTM-RRN были разработаны для решения проблемы исчезающего градиента и обеспечения непрерывного обучения.
© digitrode.ru