Почему фильтр необходимо применять к выходу входного затвора, прежде чем добавлять состояние ячейки?

Вопрос или проблема

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

вставьте описание изображения здесь

Почему добавление двери C_tilde необходимо в модели? Для того чтобы входная дверь могла вычитать из состояния ячейки, мы могли бы изменить функцию активации, которая дает i_t, с sigmoid на tanh и убрать дверь C_tilde.

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

Моя предложенная входная дверь тогда будет i_t = tanh(W_i * [h_t-1, x_t] + b_i) и i_t будет напрямую добавляться к C_t (C_t = f_t * C_t + i_t вместо C_t = f_t * C_t + i_t * C_tilde_t).

Вот моя гипотеза: $i_t$ может добавить объяснимость модели, так как значение функции сигмоиды может дать представление о том, насколько важное слово для изменения состояния ячейки $C$. Это связано с тем, что $i_t$ находится в диапазоне от 0 до 1. Использование одной матрицы $W$ как для фильтрации, так и для преобразования признаков $[h_{t-1},x_t]$ не только увеличивает нагрузку на матрицу (ей нужно выполнять две задачи одновременно), но и больше не имеет фактора объяснимости.

Пример: 2 вектора могут требовать одного и того же преобразования $W*v$, но если не использовать отдельные функции сигмоиды, чтобы дать каждому значение важности, их вклад в состояние ячейки останется одинаковым.

Выход сигмоиды умножается на выход tanh, дверь умножается на фильтр. С помощью только tanh сигнал мог бы быть обнулен только для tanh(0), с дверью сигмоид, сигнал может быть обнулен для всех видов больших отрицательных значений, которые проходят в сигмоид. Матрица весов в сигмоиде необходима для правильной калибровки двери в зависимости от значений h и x.

Ответ или решение

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

Структура LSTM

В LSTM присутствуют четыре основных гейта: входной (input), выходной (output), забывающий (forget) и механизм, который, как вы упомянули, в своем выходе производит элемент-wise умножение с выходом входного гейта, что в итоге добавляется к состоянии ячейки. Обычно этот механизм называет "гейтом состояния" или обозначается как ( C_{\tilde{t}} ).

Зачем нужен фильтр?

  1. Фильтрация информации: Входной гейт ( i_t ), который определяется через сигмоидную функцию, позволяет модели фильтровать входные данные. Сигмоидная функция преобразует входы так, что значения находятся в диапазоне от 0 до 1. Это значит, что некоторые элементы входного сигнала могут быть "заблокированы" (вычисляются как 0), в то время как другие могут быть полностью пропущены (вычисляются как 1). Таким образом, это предоставляет возможности для управления тем, какую информацию следует добавить к состоянию ячейки.

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

  3. Объясняемость: Ваше утверждение о том, что сигмоид может добавить объясняемость модели, является важным аспектом. Значения выходного сигмоида ( i_t ) дают нам понимание, насколько значимый каждый элемент для обновления состояния ячейки. Это значит, что мы можем не просто предсказать выходные данные, но и понять, какое значение имели силы входящих данных.

  4. Избежать дублирования работы: Если сделать так, как вы предложили, и использовать только одну функцию для фильтрации и преобразования, это создаёт нагрузку на веса, так как они должны выполнять две разные задачи. В LSTM отдельные веса отвечают за различные аспекты, что позволяет избежать проблем с переобучением и улучшает обобщающую способность модели.

  5. Адаптивность: К тому же, использование гейта состояния ( C_{\tilde{t}} ) позволяет адаптировать, насколько значимой будет разность между предыдущей и новой информацией. Это дает возможность модели более гибко реагировать на изменения в данных, которые поступают в процессе обучения.

Заключение

Включение ( C_{\tilde{t}} ) и создание фильтрации через сигмоидный гейт считывает важную информацию и контролирует, какая из входных данных является взглядом на актуальные данные в процессе работы сети. Это открывает дополнительную степень свободы и энергоэффективности при работе модели, более точно и безопасно адаптируя информацию.

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

Оцените материал
Добавить комментарий

Капча загружается...