Презентация

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

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

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

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

Эта цепная природа обнаруживает, что повторяющиеся нейронные системы лично идентифицируются с группировками и записями. Это обычная инженерия нейронных систем для использования такой информации. Более того, они, безусловно, используются! За последние пару лет были достигнуты потрясающие успехи в применении РНН к целому ряду вопросов: распознавание дискурса, отображение языка, интерпретация, субтитры к картинкам… Список продолжается.

Несмотря на то, что он пока не является обязательным, пользователю было бы полезно понять, что такое WordVector. Вот мой предыдущий блог на Word2Vec, процедура создания Word Vector.
Что такое Повторяющиеся Нейронные Системы

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

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

Пара моделей может сделать это все более конкретным:

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

Ванильный способ работы без RNN, от вклада фиксированного размера до доходности фиксированного размера (например, группировка картинок).

Сгруппировать доходность (например, субтитрование картинки делает снимок и дает предложение слов).

Группировка входных данных (например, исследование мнения, в котором делегировано данное предложение, передающее положительное или отрицательное предположение).

Информация о правопреемстве и выход из положения (например, машинный перевод: RNN рассматривает предложение на английском языке, а затем дает предложение на французском языке).

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

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

И как они это делают?

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

rnn = RNN()

y = rnn.step(x) # x – информационный вектор, y – вектор доходности RNN

В классе RNN есть некий интерьер, выражающийся в том, что он получает возможность обновлять каждый раз при вызове шага. В наименее сложном случае это состояние включает в себя одиночный зачехленный вектор h. Здесь происходит выполнение прогрессирующей работы в ванильном RNN: Закрытое состояние “Я.h.” вводится с нулевым вектором. Работа np.tanh (гиперболическая отступление) актуализирует нелинейность, которая сжимает инициации к диапазону [-1, 1].
класс RNN:

шаг def(self, x):

обновление скрытого состояния

self.h = np.tanh(np.dot(self.W_hh, self.h) + np.dot(self.W_xh, x))

вычислите выходной вектор

y = np.dot(self.W_hy, self.h)

возвращать y
Вышеуказанное указывает на передний проход ванили RNN. Эти параметры RNN – три матрицы –
W_hh: Матрица, основанная на Предыдущем Скрытом Состоянии
W_xh : Матрица на основе текущего входа
W_hy : Матрица, основанная между скрытым состоянием и выходом
Итак, как он функционирует

Внутри танца есть два термина: один зависит от окутанного прошлым состояния, а другой – от текущей информации. В числовой точке np.dot – расширение сети. Два посредника взаимодействуют с расширением, а затем раздавливаются тангом в вектор нового состояния.
Математическая нотация для обновления скрытого состояния –

где загар применяется по элементам.
Мы вводим сети RNN с нерегулярными номерами, и большая часть работы во время подготовки идет на поиск сетей, которые предлагают восхождение к притягательному поведению, как оценивается с некоторыми неудачными работами, которые сообщают ваше стремление к тому, какие урожаи вы хотели бы найти в свете ваших инфо последовательностей x
Мы найдем, что RNN присоединяются к информационному вектору со своим вектором состояния с фиксированной (еще не изученной) способностью доставлять другой вектор состояния.
Теперь углубляемся –
y1 = rnn1.step(x)
y = rnn2.step(y1)
В конце концов, у нас есть два отдельных RNN: Одна РНН принимает информационные векторы, а вторая получает в качестве информации доходность первой РНН. Но ни одна из этих RNN не знает и не заботится о ней – это все, только входящие и выходящие векторы, и несколько углов, проходящих через каждый модуль во время обратного распространения.

Хотелось бы быстро упомянуть большую часть из нас, которые используют несколько неожиданный план по сравнению с тем, что я показал выше, называемый организацией длинной сиюминутной памяти (LSTM). LSTM – это особый вид прерывистой системы, которая работает немного лучше, что вытекает из ее более доминирующих условий обновления и некоторых привлекательных элементов обратного размножения. Я не буду вдаваться в тонкости, но все, что я говорил о RNN остается точно эквивалентным, за исключением научной структуры для обработки обновления (строка self.h = … ) становится несколько более запутанной. Отсюда я буду использовать выражения “RNN/LSTM” наоборот, но все экзамены в этой заметке используют LSTM.