С незапамятных времен люди использовали множество способов решения проблемы предсказания временных рядов.
Люди использовали несколько способов, включая статистику, потому что мы думали, что использование этой силы может открыть бесконечные возможности. Сегодня многие алгоритмы используются для решения большого количества таких проблем, например, на фондовых рынках, для прогнозирования цен на акции, распознавания речи и т. Д.
С началом бума глубокого обучения люди подумали, почему бы не использовать эти алгоритмы машинного обучения и нейронные сети для решения этой проблемы.
ВОЙДИТЕ В РЕАЛЬНЫЕ НЕЙРОННЫЕ СЕТИ!
Рекуррентные нейронные сети были разработаны в 1980-х годах. Рекуррентная нейронная сеть (RNN) - это класс искусственных нейронных сетей а, в которых соединения между узлами образуют d, направленную вдоль последовательности. Это позволяет ему демонстрировать временное динамическое поведение для временной последовательности. В отличие от нейронных сетей прямого распространения, RNN могут использовать свое внутреннее состояние (память) для обработки последовательностей входных данных. Это позволяет им идеально вписаться в идеальный алгоритм или тип нейронной сети. Этот алгоритм существует во многих архитектурах, например, Полностью повторяющийся
Полностью рекуррентная архитектура
Базовые RNN представляют собой сеть из n евронов или узлов, организованных в последовательные уровни, каждый узел на данном уровне связан с любым другим узлом на следующем последующем уровне односторонним соединением (это означает, что это полностью подключен) .Каждый узел (нейрон) имеет изменяющуюся во времени действительную активацию. Каждое соединение (синапс) имеет изменяемый вес (который определяется при обучении модели). Узлы являются либо входными узлами (получающими данные извне), либо выходными узлами (выдающими результаты), либо скрытыми узлами (которые изменяют данные и направляют данные от входа к выходу).
Выходные данные из предыдущего слоя и скрытого слоя предыдущего слоя подаются в слой, поэтому он имеет данные предыдущего скрытого состояния в качестве одного из входов, чтобы он знал, что произошло на предыдущем уровне или состоянии.
Проблема
У всего есть проблема, и у этой нейронной сети тоже. Из-за особенностей RNN, которые были упомянуты выше, эта же функция имеет некоторые недостатки, и самый главный из них заключается в том, что по мере того, как скрытый слой и выходные данные предыдущего слоя загружаются, после дискретных шагов (слоев), память предыдущие шаги или слои начинают исчезать! Это называется исчезающим градиентом.
Было много других архитектур, созданных под RNN, но наиболее популярной для решения такой проблемы (прогнозирование временных рядов) была… ..LSTM
LSTM
LSTM (Long Short Term Memory) - это усовершенствованная, даже лучшая архитектура / подкатегория / разделение RNN, которая достигается простым добавлением ячеек LSTM. Иногда ее также называют сетью LSTM (в этом посте мы будем называть ее просто LSTM).
Это позволяет избежать проблемы исчезающего градиента (то же самое было упомянуто выше, более профессиональный термин). LSTM обычно дополняется повторяющимися воротами, называемыми воротами забыть. LSTM предотвращает исчезновение или распространение ошибок с обратным распространением. Вместо этого ошибки могут течь в обратном направлении через неограниченное количество виртуальных слоев, развернутых в пространстве. То есть LSTM может изучать задачи, требующие воспоминаний о событиях, произошедших на тысячи или даже миллионы дискретных временных шагов раньше.
Заключение
Вывод прост: нам еще предстоит пройти долгий путь в развитии этой категории алгоритмов в будущем, чтобы, возможно, удовлетворить больше задач и помочь сделать мир действительно лучше.