Что делает нормализация партии, если размер партии равен единице?

В настоящее время я читаю статью Иоффе и Сегеди о нормализации пакета, и мне интересно, что произойдет, если размер пакета будет установлен на единицу. Вычисление среднего значения мини-пакета (которое в основном является значением самой активации) и дисперсии (должно быть ноль плюс постоянный эпсилон) приведет к нормализованному измерению нуля.

Тем не менее, этот небольшой пример в tensorflow показывает, что происходит нечто иное:

test_img = np.array([[[[50],[100]],
                   [[150],[200]]]], np.float32)
gt_img = np.array([[[[60],[130]],
                [[180],[225]]]], np.float32)
test_img_op = tf.convert_to_tensor(test_img, tf.float32)
norm_op = tf.layers.batch_normalization(test_img_op)

loss_op = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = gt_img,
                                                             logits = norm_op))

update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
    optimizer_obj = tf.train.AdamOptimizer(0.01).minimize(loss_op)
with tf.Session() as sess:
    sess.run(tf.group(tf.global_variables_initializer(), 
                      tf.local_variables_initializer()))
    print(test_img)
    while True:
        new_img, op, lossy, trainable = sess.run([norm_op, optimizer_obj, loss_op, tf.trainable_variables()])
        print(trainable)
        print(new_img)

Так что же делает TensorFlow по-другому (скользящее среднее ?!)?

Спасибо!


person Frederik Elischberger    schedule 09.02.2018    source источник
comment
Выполняется нормализация экземпляра   -  person Patwie    schedule 09.02.2018
comment
Не могли бы вы подробнее рассказать об этой статье? И откуда вы узнали, что он делает что-то вроде нормализации экземпляра?   -  person Frederik Elischberger    schedule 11.02.2018


Ответы (1)


Из-за бета-версии, обучаемого параметра для перевода, который включен по умолчанию, нормализованный вывод не обязательно будет равен нулю.

Скользящие средние для входного среднего и дисперсии будут вычисляться во время обучения и могут использоваться при тестировании (если вы установите is_training соответственно).

person Namhoon Lee    schedule 30.04.2018