Какой вид регуляризации использует регуляризацию L2 или отсев в multiRNNCell?

Я работал над проектом, связанным с последовательным и автоматическим кодировщиком последовательностей для прогнозирования временных рядов. Итак, я использовал tf.contrib.rnn.MultiRNNCell в кодере и декодере. Я запутался в том, какая стратегия используется для того, чтобы упорядочить мою модель seq2seq. Должен ли я использовать регуляризацию L2 в потере или с помощью DropOutWrapper (tf.contrib.rnn.DropoutWrapper) в мультисети? Или я могу использовать обе стратегии... L2 для весов и смещений (проекционный слой) и DropOutWrapper между ячейками в multiRNNCell? Заранее спасибо:)

1 ответ

Решение

Вы можете использовать выпадение и регуляризацию L2 одновременно, как это обычно делается. Это совершенно разные виды регуляризации. Тем не менее, я хотел бы отметить, что в недавней литературе высказано предположение, что нормализация партии заменила необходимость отсева, как отмечалось в оригинальном документе о нормализации партии:

https://arxiv.org/abs/1502.03167

Из аннотации: "Он также действует как регуляризатор, в некоторых случаях устраняя необходимость в Dropout".

Регуляризация L2 обычно применяется, когда используется batchnorm. Ничто не мешает вам применять все 3 формы регуляризации. Вышеприведенное утверждение только указывает на то, что вы можете не увидеть улучшения, применяя выпадение, когда batchnorm уже используется.

Как правило, существуют оптимальные значения количества применяемой регуляризации L2 и вероятности отсева. Это гиперпараметры, которые вы настраиваете методом проб и ошибок или алгоритм поиска гиперпараметров.

Другие вопросы по тегам