Connect with us

ИИ 101

Что такое RNN и LSTM в глубоком обучении?

mm

Многие из наиболее впечатляющих достижений в области обработки естественного языка и чат-ботов искусственного интеллекта обусловлены рекуррентными нейронными сетями (RNN) и сетями с долгой короткоживущей памятью (LSTM). RNN и LSTM – это специальные архитектуры нейронных сетей, которые могут обрабатывать последовательные данные, где хронологический порядок имеет значение. LSTM по сути являются улучшенными версиями RNN, способными интерпретировать более длинные последовательности данных. Давайте рассмотрим, как устроены RNN и LSTM и как они ermögняют создание сложных систем обработки естественного языка.

Что такое прямые нейронные сети?

Итак, прежде чем мы поговорим о том, как работают долгая короткоживущая память (LSTM) и свёрточные нейронные сети (CNN), мы должны обсудить формат нейронной сети в целом.

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

Входной слой – это то, что принимает данные в нейронную сеть, а скрытые слои – это то, что учит закономерности в данных. Скрытые слои в наборе данных связаны с входными и выходными слоями через “веса” и “смещения”, которые являются просто предположениями о том, как данные точки связаны друг с другом. Эти веса корректируются во время обучения. По мере обучения сети сравниваются предположения модели о обучающих данных (выходные значения) с фактическими обучающими метками. В процессе обучения сеть должна (надеюсь) стать более точной в предсказании отношений между данными точками, чтобы точно классифицировать новые данные точки. Глубокие нейронные сети – это сети, имеющие больше слоев в середине/больше скрытых слоев. Чем больше скрытых слоев и узлов модель имеет, тем лучше модель может распознавать закономерности в данных.

Обычные, прямые нейронные сети, как те, которые я описал выше, часто называются “плотными нейронными сетями”. Эти плотные нейронные сети объединяются с различными архитектурами сетей, которые специализируются на интерпретации различных видов данных.

Что такое RNN (рекуррентные нейронные сети)?

Рекуррентные нейронные сети принимают общий принцип прямых нейронных сетей и ermögляют им обрабатывать последовательные данные, давая модели внутреннюю память. “Рекуррентная” часть названия RNN происходит от того факта, что входные и выходные данные образуют цикл. Как только выход сети произведен, выход копируется и возвращается в сеть как вход. При принятии решения анализируются не только текущий вход и выход, но также предыдущий вход. Другими словами, если первоначальный вход для сети – X, а выход – H, то и H, и X1 (следующий вход в последовательности данных) подаются в сеть для следующего раунда обучения. Таким образом, контекст данных (предыдущие входы) сохраняется при обучении сети.

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

Длина последовательностей, которые может интерпретировать RNN, довольно ограничена, особенно по сравнению с LSTM.

Что такое LSTM (сети с долгой короткоживущей памятью)?

Сети с долгой короткоживущей памятью можно считать расширением RNN, которое ещё раз применяет концепцию сохранения контекста входных данных. Однако LSTM были изменены несколькими важными способами, которые ermögляют им интерпретировать прошлые данные более совершенными методами. Изменения, внесенные в LSTM, связаны с проблемой исчезающего градиента и ermögляют LSTM учитывать более длинные входные последовательности.

Модели LSTM состоят из трёх разных компонентов, или ворот. Есть входные ворота, выходные ворота и ворота забывания. Как и RNN, LSTM учитывают входные данные из предыдущего временного шага при изменении памяти модели и весов входных данных. Входные ворота принимают решения о том, какие значения важны и должны быть пропущены через модель. Сигмоидная функция используется в входных воротах, которая принимает решения о том, какие значения пропустить через рекуррентную сеть. Ноль сбрасывает значение, а 1 сохраняет его. Тангенциальная функция также используется здесь, которая решает, насколько важны входные значения для модели, варьируясь от -1 до 1.

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

Сеть LSTM состоит из специальных слоев LSTM, которые могут интерпретировать последовательные данные слов, и плотно связанных слоев, как описано выше. Как только данные проходят через слои LSTM, они переходят в плотно связанные слои.

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.