2017-01-27 6 views
3

В учебнике для MNIST показано, что набор данных разделяются на три различные наборы: (1) data_sets.train, (2) data_sets.validation и (3) data_sets.test. Однако в тренировочном цикле используется только data_sets.train.Tensorflow: Как набор валидации улучшает кривое обучение

# Start the training loop. 
for step in xrange(FLAGS.max_steps): 
    start_time = time.time() 

    # Fill a feed dictionary with the actual set of images and labels 
    # for this particular training step. 
    feed_dict = fill_feed_dict(data_sets.train, 
          images_placeholder, 
          labels_placeholder) 

И каждый (step + 1) % 1000 == 0 or (step + 1) == FLAGS.max_steps модель оценивается так три различных оценок получили: (1) Подготовка данных Eval (2) Проверка данных Eval и (3) Тестовые данные Eval.

Обычно, в Machine Learning, набор проверки используется для точной настройки параметров модели и улучшает кривую обучения.

Каким образом набор валидации применяется в Tensorflow, так что улучшается кривая обучения?

ответ

2

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

Набор для проверки в основном используется, чтобы следить за переобучением в наборе данных поездов во время обучения. Затем модель/гиперпараметр настраивается в соответствии с набором валидаций. Насколько мне известно, это делается вручную.

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

Edit:

Есть некоторые методы, которые используют проверку набор как EarlyStopping (https://keras.io/callbacks/#earlystopping) или снижение скорости обучения, когда ошибка проверки не убывающая для й эпох (https://keras.io/callbacks/#reducelronplateau).

+0

Большое спасибо за объяснение. Я также заметил, что в CAFFE происходит нечто подобное. Я просто не был уверен, есть ли способ настроить параметры в соответствии с набором валидаций. Если это руководство, как вы сказали, тогда необходимо использовать python, чтобы мы могли обновлять гиперпараметры во время обучения. – basuam

+0

Редактирование: расширено при настройке гиперпараметров во время тренировки. –

Смежные вопросы