RNN с L2 Regularization перестает учиться

10

Я использую Двунаправленный RNN, чтобы обнаружить случай несбалансированного события. Положительный класс в 100 раз реже, чем отрицательный. Пока не используется регуляризация, я могу получить 100% точность в наборе поездов и 30% в наборе проверки. Я включаю регуляризацию l2, и в результате получается набор только для 30% точности набора поездов вместо более длительного обучения и 100% точности для набора проверки.

Я думал, что, возможно, мои данные слишком малы, поэтому просто для эксперимента я объединил поезд с тестовым набором, который раньше не использовал. Ситуация была такая же, как я бы использовал регуляризацию l2, чего я не делал сейчас. Я получаю 30% точности на тренировке + тестирование и проверка.

Используется 128 скрытых юнитов и 80 временных шагов в упомянутых экспериментах. Когда я увеличил количество скрытых юнитов до 256, я снова могу наложить на поезд + тестовый набор, чтобы получить 100% точность, но все еще только 30% на проверочном наборе.

Я пробовал так много вариантов гиперпараметров и почти безрезультатно. Возможно, весовая перекрестная энтропия является причиной проблемы, в данных экспериментах вес на положительном классе равен 5. При попытке увеличить вес, результаты часто хуже примерно на 20% точности.

Я пробовал клетки LSTM и GRU, без разницы.

Лучшие результаты, которые я получил. Я попробовал 2 скрытых слоя с 256 скрытыми блоками, это заняло около 3 дней вычислений и 8 ГБ памяти GPU. Я получил около 40-50% точности, прежде чем он снова начал переоснащаться, когда регуляризация l2 была включена, но не так сильно.

Я использую оптимизаторы Адама, другие не так хорошо работали. У меня достаточно возможностей, потому что при использовании конечного автомата я могу получить точность 90%. В этом автомате основной функцией является суммирование и определение пороговых значений на основе других свойств объекта, а его переменная длина иногда составляет 10, иногда 20 временных отметок, что говорит о функции.

Есть ли какое-то общее руководство, что делать в этой ситуации? Я не смог ничего найти.

Андрей Фогельтон
источник

Ответы:

11

Статья Bengio et al. « О сложности обучения повторяющихся нейронных сетей » дает подсказку о том, почему регуляризация L2 может убить производительность RNN. По существу, L1 / L2, регуляризирующий ячейки RNN, также ставит под угрозу способность ячеек изучать и сохранять информацию во времени.

Использование штрафа L1 или L2 на повторяющихся весах может помочь при взрыве градиентов. Предполагая, что веса инициализируются небольшими значениями, наибольшее сингулярное значение в , вероятно, меньше, чем 1. Член L1 / L2 может гарантировать, что во время обучения останется меньше 1, и в этом режиме градиенты не могут взорваться , Этот подход ограничивает модель одним точечным аттрактором в начале координат, где любая информация, вставленная в модель, быстро исчезает в геометрической прогрессии. Это мешает модели изучать генераторные сети и не может демонстрировать долговременные следы памяти.λ1Wrecλ1

Sycorax говорит восстановить Монику
источник