Заметки об изучении рекуррентных нейронных сетей

искусственный интеллект Нейронные сети NLP Архитектура

Предисловие: эта бумага объединяет CMU CS 11-747 (Neural Networks for NLP) Повторяющийся в курсе Объясняется содержание главы «Сети для моделирования предложений или языка». Эта статья в основном включает объяснение следующего содержания.Первая часть представляет собой введение основных концепций и вариантов архитектуры, связанных с рекуррентной нейронной сетью.Вторая часть объединяется с рекуррентной нейронной сетью в исследованиях, связанных с обработкой естественного языка. несколько связанных вопросов и ответов.

инструкция:Рекуррентная нейронная сеть(RNN), дваИскусственные нейронные сетиОбщий термин для , одинРекуррентная нейронная сеть во времени(рекуррентная нейронная сеть), другойСтруктурные рекуррентные нейронные сети(рекурсивная нейронная сеть).Рекуррентная нейронная сеть во времени, также известная как рекуррентная нейронная сеть, RNN, упомянутая далее в этой статье, относится к рекуррентной нейронной сети..

автор этой статьи:Хе Гаоле, Бакалавриат в 2014 году, текущее направление исследований представляет собой обучение сетевому представлению, глубокое обучение, из Пекинской ключевой лаборатории методов управления и анализа больших данных Китайского университета Жэньминь.

Примечание. Эта статья была впервые опубликована в Zhihu [Станция интеллектуальной разведки RUC], при необходимости перепечатки просьба сообщить об этом автору и указать адрес данной рубрики

1. Основные понятия и две важные архитектуры, связанные с рекуррентной нейронной сетью (RNN).

1. Основные понятия и простая RNN

Моделирование последовательности повсеместно используется в задачах обработки естественного языка: характеристика слов на уровне символов, предложений, документов и т. д. на уровне слов. В последовательности более очевидны явления зависимости, такие как зависимость от подлежащего и глагола, а также зависимость существительных и глаголов в единственном и множественном числе. В краткосрочной перспективе такие зависимости могут быть зафиксированы традиционными языковыми моделями (такими как n-граммы, нейронные языковые модели), но долгосрочные зависимости трудно уловить традиционными языковыми моделями. Зависимости на больших расстояниях — одна из важных характеристик моделирования последовательностей.Посмотрите на зависимости на больших расстояниях в следующих примерах:

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

задана упорядоченная последовательность признаков произвольной длиныx_{1:n} = x_1,x_2,...,x_n(x_i \in R^{d_{in}}), RNN вернет вектор признаков фиксированной длиныy_{n} \in R^{out} x_{i}Может быть горячим представлением или плотными низкоразмерными функциями). RNN принимает рекурсивное определение: специфичное для процесса характеристики информации о последовательности до характеристикиiRNN вводят скрытые состояния, когда частичная последовательность элементовs_iкак предыдущее скрытое состояниеs_{i-1}и текущий элементx_{i}выход, то естьs_{i} = R(s_{i-1},x_i); Окончательный вывод в вектор признаков фиксированной длины отображается с помощьюO(·)конечное состояниеs_{n}сопоставить сy_{n}. (Промежуточное состояниеs_iможет быть нанесен на картуO(·)выводy_i)

\begin{split} RNN(x_{1:n};s_{0}) &= y_{1:n}\\ y_i &= O(s_{i})\\ s_{i}&=R(s_{i-1},x_i) \end{split} \\

Такая модель иллюстрируется следующим образом:

Основываясь на приведенном выше определении, модель Continuous Bag of Words (CBOW) может быть выражена следующим образом:

\begin{split} s_i &= R_{CBOW}(x_i, s_{i-1}) = s_{i - 1} + x_i\\ y_i &= O_{CBOW}(s_i) = s_i \end{split} \\ s_i,y_i \in R^{d_s}, x_i \in R^{d_s}

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

В 1990 году Элман предложил модель Simple-RNN, сокращенно S-RNN, которую можно выразить следующим образом:

\begin{split} s_i &= R_{SRNN}(s_{i - 1},x_{i}) = g([s_{i-1};x_i]W + b)\\ y_i &= O_{SRNN}(s_i) = s_i \end{split} \\ s_i,y_i \in R^{d_s},x_i \in R^{d_x}, W \in R^{(d_x +d_s)×d_s}, b \in R^{d_s}

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

2. Недостатки и решения S-RNN

так какГрадиент исчезаетПроблема заключается в том, что S-RNN трудно фиксировать долгосрочные зависимые функции и эффективно обучаться. Для решения этой проблемы используется гейтовый механизм (gating механизм) предлагается вариант архитектуры RNN. Самые известные из нихLSTM(Длинная кратковременная память) иGRU(закрытая рекуррентная единица).

2.1 LSTM

Как показано на рисунке выше, LSTM преобразует скрытое состояние RNNs_iРазделенные на две части ячейки памятиc_tи рабочая памятьh_t. Клетки памяти отвечают за сохранение признаков последовательности, контролируемых воротами забывания.f(соответствует u на рисунке выше) управляет памятью предыдущей последовательностиc_{t-1}сохранится; рабочая памятьh_tзатем как выход, выходными воротамиoконтролировать текущую памятьc_tта часть, которая была написана. Входной вентиль i отвечает за управление информацией о предыдущем состоянии.h_{t-1}и текущий входx_tЧасть, которая будет записана в ячейку памяти. Стоит отметить, что ни один из трех вышеперечисленных вентилей не является статическим в LSTM, и они получены из информации о предыдущем состоянии.h_{t-1}и текущий входx_{t}Совместное определение, полученное нелинейной активацией после линейной комбинации. Архитектуру LSTM можно определить следующим образом:

\begin{split} s_j &= R_{LSTM}(s_{j-1},x_j)=[c_j;h_j]\\ c_j &= f \odot c_{j-1} + i \odot z\\ h_j &= o \odot tanh(c_j)\\ i&= \sigma(x_jW^{xi} + h_{j -1}W^{hi})\\ f &= \sigma(x_jW^{xf} + h_{j -1}W^{hf})\\ o &= \sigma(x_jW^{xo} + h_{j -1}W^{ho})\\ z &= \sigma(x_jW^{xz} + h_{j-1}W^{hz})\\ y_j &= O_{LSTM}(s_j) = h_j\\ s_j \in R^{2d_h},&x_i \in R^{d_x}, c_j,h_j,i,f,o,z \in R^{d_h} \end{split} \\

2.2 ГРУ

Как показано на рисунке выше, GRU содержит два шлюза — шлюз сброса r и шлюз обновления z. Обновить ворота z определяет предыдущую информацию о состоянииs_{t-1}(соответствует рисункуh) и функция активации члена текущего состояния\widetilde{s}_{j}(соответствует рисунку\widetilde{h}) будет записана информация о текущем состоянииs_t. Логический элемент сброса r определяет влияние информации о предыдущем состоянии на текущий вход (при формировании функции активации элемента). В соответствии с LSTM два вентиля GRU также совместно определяются информацией о предыдущем состоянии и текущим вводом и получаются путем нелинейной активации после линейной комбинации. Архитектуру ГРУ можно определить следующим образом:

\begin{split} s_j &= R_{GRU}(s_{j-1},x_j)=(1-z) \odot s_{j-1} + z \odot \widetilde{s}_{j}\\ z &= \sigma(x_jW^{xz} + s_{j -1}W^{sz})\\ r &= \sigma(x_jW^{xr} + s_{j -1}W^{sr})\\ \widetilde{s}_{j} &= \sigma(x_jW^{xs} + (r \odot s_{j-1})W^{sg})\\ y_j &= O_{GRU}(s_j) = s_j\\ s_j,&\widetilde{s}_{j} \in R^{d_s},x_i \in R^{d_x}, z,r \in R^{d_s}\end{split}\\

3. Сравнение сходств и различий между двумя архитектурами

3.1, тот же пункт

В частности, для преодоления исчезающих градиентов все их скрытые состояния имеют прямое суммирование (управляемое вентилями) из предыдущих состояний. Преимущества этого: (1) нейронам удобно сохранять определенные признаки в более длинной последовательности (2) компонент суммирования удобен для вычисления обратного распространения. Во-вторых, и LSTM, и GRU используют информацию о предыдущем состоянии (c_{j-1}иs_{j - 1}) в сочетании с функциями-членами (zи\widetilde{s}_{j}) записывает текущее состояние (c_jиs_j) и динамически генерировать вентили на основе информации о предыдущем состоянии и текущих входных данных для управления передачей информации.

3.2 Отличия

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

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

1. Основная классификация

Рекуррентные нейронные сети можно разделить на две категории в зависимости от их использования в обработке естественного языка: первая предназначена для моделирования всей последовательности, а вторая — для моделирования контекста в последовательности.

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

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

2. Примеры применения

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

Во-первых, уточните цель характеристики машинного перевода: охарактеризовать любое целевое предложение с помощью модели.fв данном исходном предложенииeусловная возможностьP(f|e). Основная идея этой статьи состоит в том, чтобы извлечь представления функций фиксированной длины из предложений с боковой длиной через кодировщик, а затем использовать декодер для генерирования соответствующих корректных переводов. RNN используется в качестве декодера для генерации последовательностей переменной длины в соответствии с вектором, сгенерированным кодировщиком, в качестве результата трансляции.Кодер в этой статье использует модели RNN на основе GRU и grConv (Gated Recursive Convolutional Neural Network) соответственно. RNN на основе GRU можно определить со ссылкой на раздел 2.2 предыдущей главы Здесь мы представим специальную модель свертки grConv в сочетании с механизмом вентиля RNN.

Как показано на рисунке (b) выше, модель grConv использует механизм ворот, аналогичный нейронам RNN, для свертки соседних узлов в последовательности и использует свернутый узел как новую последовательность для продолжения той же операции до тех пор, пока не будет получен уникальный узел ( в этом процессе все узлы являются векторами фиксированной длины). Эта модель довольно новаторская, сочетающая в себе характеристики сверточных нейронных сетей и рекуррентных нейронных сетей, и может кодировать последовательности переменной длины в векторы признаков фиксированной длины (см. Рисунок (а) выше).

3. Резюме/Вопросы и ответы

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

Кроме того, я поделюсь с вами несколькими проблемами в процессе обучения.

1. Какие преимущества имеет Bi-RNN по сравнению с однонаправленной RNN при моделировании контекста позиции в последовательности?

(1) Содержит более богатую информацию (не только из предыдущей последовательности, но и из последующих последовательностей)

(2) Возможность характеризовать более сложные зависимости (например, Bi-RNN учитывает информацию о префиксах и суффиксах при прогнозировании слов при моделировании последовательности на уровне символов)

2. Почему S-RNN имеет исчезающий градиент при моделировании последовательности?

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

3. Для конкретной задачи моделирования последовательности зачем предварительно обучать или передавать обучающую RNN?

Некоторые сложные задачи моделирования последовательности имеют небольшой объем данных и их трудно обучать.В настоящее время параметры, полученные путем предварительного обучения относительно простых задач (большой объем данных и простота обучения), могут эффективно ускорить и стабилизировать параметр процесс обучения сложным задачам. Такие как предварительно обученные языковые модели, а затем используемые для изучения классификатора предложений (sentence classifier) ​​или анализа настроений (sentiment analysis).

4. Ссылки:

Neural Networks for NLP

Semi-supervised Sequence Learning(предварительная подготовка/трансфер РНН)

LSTM(Долговременная кратковременная память)

GRU(Закрытая рекуррентная единица)

On the difficulty of training Recurrent Neural Networks(Градиент исчезает)

О свойствах нейронного машинного перевода: подходы кодировщик-декодер

Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling

Рекуррентная нейронная сеть - Wikiwand