Сегодня я начал первую неделю пятого специализированного курса по глубокому обучению Эндрю Нг. Я узнал об основах моделей последовательностей и рекуррентной нейронной сети.

Рекуррентная нейронная сеть (RNN)

Данные последовательности

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

Обозначение

Допустим, ввод x — это английское предложение (x: Гарри Поттер и Гермиона Грейнджер изобрели новое заклинание). Мы используем круглые скобки 𝑖 для обозначения 𝑖-го примера, угловые скобки 𝑡 для обозначения 𝑡-го слова и T для обозначения длины данных последовательности.

Как мы представляем слово? У нас будет вектор словаря, в котором каждый индекс представляет слово. Для слова «Гарри» мы устанавливаем индекс «Гарри» равным 1 и 0 для остальных. Этот метод кодирования называется одноразовым, потому что только один элемент в массиве равен 1, а остальные — 0.

Модель

Зачем нам нужна новая модель для данных последовательности? Есть некоторые проблемы, когда мы используем традиционную нейронную сеть для анализа данных последовательности. Во-первых, количество входов и выходов не фиксировано. Ввод данных последовательности может иметь разную длину. Во-вторых, поскольку веса не распределяются, как в CNN, сложно повторно использовать функции, полученные из других позиций ввода.

Модель RNN имеет только 4 параметра — w_aa, w_ax, b_a и b_y. Каждый слой берет x и активацию из предыдущего слоя и выводит активацию и y.

Упростить параметры

На самом деле мы можем уменьшить количество параметров до 3, если объединим столбцы w_aa и w_ax как w_a.

Обратите внимание, что нам также нужно объединить два входа a_prev и x.

Различные типы RNN

До сих пор мы видели модель RNN, в которой Tx=Ty (нижняя левая модель на рисунке). Мы используем разные типы RNN для разных приложений.

Например, нам нужно использовать модель «один ко многим» для приложения для создания музыки.

Это все на сегодня. RNN довольно сложно понять, поэтому я буду медленнее.