Я обнаружил во многих доступных нейронных сетевых кодах, реализованных с использованием TensorFlow, что условия регуляризации часто реализуются вручную, добавив дополнительный термин к значению потерь.
Мои вопросы:
-
Есть ли более элегантный или рекомендуемый способ регуляризации, чем делать это вручную?
-
Я также обнаружил, что
get_variable
имеет аргументregularizer
. Как его использовать? Согласно моему наблюдению, если мы передадим ему регуляризатор (например,tf.contrib.layers.l2_regularizer
, тензор, представляющий упорядоченный член, будет вычислен и добавлен в коллекцию графа с именемtf.GraphKeys.REGULARIZATOIN_LOSSES
. Будет ли эта коллекция автоматически использоваться TensorFlow (например, используется оптимизаторы при обучении)? Или ожидается, что я должен сам использовать эту коллекцию?