Примечания к рекуррентной нейронной сети (RNN)

Нейронные сети

Базовые концепты

Идея: ввод в будущем должен использовать предыдущую информацию. W3 эквивалентен резервированию промежуточной информации.

X и U объединены в карту объектов, а A представляет собой ячейку памяти.

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

Найдите градиент, и каждый шаг будет обновлять все предыдущие.

Проблемы с рекуррентными нейронными сетями

Проблема RNN: если входное предложение очень длинное, например: 200 слов, оно запомнит все слова. Так далеко, его информационная ценность не так высока! Будет ли какое-то влияние. В случае слишком длинного также будет проблема исчезновения градиента. Если градиент шага около 0, то все предыдущие шаги, связанные с ним, будут около 0.

LSTM (длинная короткая нейронная сеть)

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

Количество скрытых единиц в единице LSTM — hidden_size. На приведенном выше рисунке в ячейке есть четыре желтых поля. Ввод каждого поля — h (t−1) и x (t), и объедините их вместе (прямо говоря Это нужно для того, чтобы написать два вместе, например, x — 28-битный вектор, h(t-1) — 128-битный, тогда написание — 156-битный вектор), а размерность — (hidden_size+wordvec_size ), поэтому каждый в LSTM Размеры матрицы параметров желтых прямоугольников:

[hidden_size+wordvec_size,hidden_size]

Следует отметить, что все LSTM в num_steps раз имеют набор параметров.Говорят, что существует num_steps LSTM-юнитов, но на самом деле есть только один, но этот модуль выполняется num_steps раз. (На картинке три больших зеленых прямоугольника, представляющих три ячейки, справа, но на самом деле это просто представляет состояние ячейки в разных временных рядах, все данные будут проходить только через одну ячейку, а затем постоянно обновлять ее вес) .

Итак, сколько параметров имеет слой LSTM? Количество параметров определяется количеством ячеек, здесь ячейка всего одна, поэтому количество параметров — это количество параметров, используемых в этой ячейке. Предполагая, что num_units(hidden_size) равно 128, а входные данные 28 бит, тогда параметры четырех маленьких желтых прямоугольников имеют в сумме (128 + 28) * (128 * 4), что составляет 156 * 512. Вы можете посмотреть на самый простой из TensorFlow.В случае LSTM параметры среднего слоя те же, но еще добавляются параметры функции активации в момент вывода.Если классов 10 то это 128*10 Вт параметров и 10 параметров смещения.

Состояние верхней строки ячейки C(t) представляет долговременную память, а нижняя h(t) — рабочую память или кратковременную память.

Ссылаться на

Количество нейронов LSTM:blog.CSDN.net/no 0_37870649…

Структура LSTM и параметры в ячейке:blog.CSDN.net/Wujiaochang 11825113…