Для чего используются данные проверки в последовательной модели Keras?

У меня простой вопрос: какие данные проверки передаются в model.fit 9X_python-interpreter в последовательной модели, используемой?

И влияет ли 9X_input-validation это на то, как обучается модель (обычно 9X_pythonic используется набор проверки, например, для 9X_python выбора гиперпараметров в модели, но я думаю, что 9X_input-validation здесь этого не происходит)?

Я говорю о наборе 9X_py проверки, который можно передать следующим 9X_validator образом:

# Create model
model = Sequential()
# Add layers
model.add(...)

# Train model (use 10% of training set as validation set)
history = model.fit(X_train, Y_train, validation_split=0.1)

# Train model (use validation data as validation set)
history = model.fit(X_train, Y_train, validation_data=(X_test, Y_test))

Я немного исследовал и увидел, что 9X_keras keras.models.Sequential.fit вызывает keras.models.training.fit, который создает такие переменные, как 9X_input-validation val_acc и val_loss (к которым можно получить доступ из 9X_validator обратных вызовов). keras.models.training.fit также вызывает keras.models.training._fit_loop, который 9X_keras-2 добавляет данные проверки в callbacks.validation_data, а также вызывает 9X_python-interpreter keras.models.training._test_loop, который циклически зацикливает данные 9X_pythonista проверки в self.test_function модели. Результат этой функции 9X_keras используется для заполнения значений журналов, которые 9X_training-data являются значениями, доступными из обратных 9X_training-data вызовов.

Увидев все это, я чувствую, что 9X_pythonista набор проверки, переданный в model.fit, не используется 9X_validation для проверки чего-либо во время обучения, и 9X_pythonic его единственное использование - получить 9X_pythonista обратную связь о том, как обученная модель 9X_validation будет работать в каждую эпоху для полностью 9X_py независимого установленный. Следовательно, было 9X_input-validation бы нормально использовать один и тот же 9X_pythonista набор для проверки и тестирования, верно?

Может 9X_py ли кто-нибудь подтвердить, имеет ли проверка, установленная 9X_python-interpreter в model.fit, какая-либо другая цель, кроме 9X_python-interpreter чтения из обратных вызовов?

93
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Для чего используются данные проверки в последовательной модели Keras?

Если вы хотите построить прочную модель, вы 9X_python-interpreter должны следовать этому конкретному протоколу 9X_python-interpreter разделения данных на три набора: один для 9X_pythonic обучения, один для проверки и один для итоговая оценка, которая представляет 9X_pythonic собой набор тестов.

Идея состоит в том, что вы тренируетесь 9X_pythonic на своих обучающих данных и настраиваете 9X_pythonista свою модель на результаты показателей (точность, потери 9X_keras-2 и т. д.), которые вы получаете из набора 9X_python-interpreter для проверки.

Ваша модель не «видит» ваш набор для проверки и никоим образом не обучается на нем, но вы, как архитектор и мастер 9X_python гиперпараметров, настраиваете модель в соответствии 9X_python-interpreter с этими данными. Таким образом, это косвенно влияет на вашу модель, потому что это напрямую влияет на ваши проектные решения. Вы подталкиваете свою 9X_form-validation модель к правильной работе с данными проверки, и 9X_pythonic это может вызвать наклон.

Именно по этой 9X_form-validation причине вы оцениваете окончательную оценку 9X_python-shell своей модели только на основе данных, которые 9X_input-validation ни ваша модель, ни вы сами не использовали 9X_validation - и это третий блок данных, ваш набор тестов.

Только 9X_python-shell эта процедура гарантирует, что вы получите 9X_pythonic полное представление о качестве ваших моделей 9X_py и сможете обобщить полученные знания на 9X_pythonic совершенно невидимых данных.

98
3

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

Ответ #2

Ответ на вопрос: Для чего используются данные проверки в последовательной модели Keras?

В этом видео на YouTube объясняется, что 9X_pythonic такое набор проверки, почему он полезен 9X_keras-2 и как реализовать набор проверки в Keras: Create a validation set in Keras

Используя 9X_validator набор для проверки, вы, по сути, берете 9X_python-interpreter часть своих выборок из тренировочного набора 9X_python-interpreter или создаете полностью новый набор вместе 9X_python-shell и удерживаете образцы в этом наборе из тренировочного 9X_pythonic набора.

В течение каждой эпохи модель будет 9X_pythonista обучаться на образцах в обучающем наборе, но 9X_validator НЕ будет обучаться на образцах в проверочном 9X_keras наборе. Вместо этого модель будет проверять только 9X_python-shell для каждого образца в наборе проверки.

Это 9X_pythonic делается для того, чтобы вы могли оценить, насколько 9X_pythonic хорошо ваша модель может быть обобщена. Это 9X_input-validation означает, насколько хорошо ваша модель может 9X_py предсказывать данные, которые она не видит 9X_validate во время обучения.

Наличие набора для проверки 9X_keras также дает хорошее представление о том, переоснащается 9X_validation ли ваша модель. Это можно интерпретировать, сравнивая 9X_validate acc и loss из ваших обучающих образцов с val_acc и val_loss из 9X_python-interpreter ваших проверочных образцов. Например, если 9X_py ваш acc высокий, но ваш val_acc сильно отстает, это 9X_keras-2 хороший признак того, что ваша модель переоснащается.

31
0

Ответ #3

Ответ на вопрос: Для чего используются данные проверки в последовательной модели Keras?

Я думаю, что общее обсуждение набора поездов, набора 9X_pythonic проверки и набора тестов поможет:

  • Train-Set: набор данных, на котором обучается модель. Это единственный набор данных, для которого веса обновляются во время обратного распространения.
  • Validation-Set (Development Set): набор данных, на котором мы хотим, чтобы наша модель работала хорошо. Во время процесса обучения мы настраиваем гиперпараметры таким образом, чтобы модель хорошо работала на dev-set (но не использовать dev-set для обучения, он используется только для просмотра производительности, чтобы мы могли решить, как изменить гипер -параметры и после изменения гиперпараметров продолжаем обучение на тренировочном наборе). Dev-set используется только для настройки гиперпараметров, чтобы модель могла хорошо работать с неизвестными данными (здесь dev-set рассматривается как представитель неизвестного набора данных, поскольку он не используется напрямую для обучения и дополнительно говорит о гипер -параметры похожи на ручки настройки для изменения способа обучения), и на dev-set не происходит обратного распространения и, следовательно, нет прямого обучения на нем.
  • Тестовый набор: мы просто используем его для объективной оценки. Как и dev-set, на тестовом наборе не происходит обучения. Единственное отличие от набора проверки (dev-set) состоит в том, что мы не даже настраиваем здесь гиперпараметры и просто смотрим, насколько хорошо наша модель научилась обобщать. Хотя, как и test-set, dev-set не используется напрямую для обучения, но поскольку мы неоднократно настраиваем гиперпараметры, нацеленные на dev-set, наша модель косвенно изучает шаблоны из dev-set, и dev-set больше не становится неизвестным к модели. Следовательно, нам нужна еще одна свежая копия dev-set, которая даже не используется для настройки гиперпараметров, и мы называем эту новую копию dev-set тестовым набором. Поскольку по определению тест-набор должен быть «неизвестен» модели. Но если мы не можем управлять новым и невидимым тестовым набором, подобным этому, то иногда мы называем набор разработчика как набор тестов.

Подведение 9X_pythonista итогов:

  • Train-Set: используется для обучения.
  • Validation-Set / Dev-Set: используется для настройки гиперпараметров.
  • Test-Set: используется для объективной оценки.

Здесь снова несколько практических 9X_input-validation вопросов:

  • Для обучения вы можете собирать данные откуда угодно. Это нормально, если все ваши собранные данные относятся к разным доменам, в которых будет использоваться модель. Например, если реальным доменом являются фотографии, сделанные камерой смартфона, нет необходимости создавать набор данных только с фотографиями смартфона. Вы можете включать данные из Интернета, высококачественных или недорогих камер или откуда угодно.
  • Для dev-set и test-set необходимо отразить реальные данные предметной области, где модель будет практически использоваться. Также он должен содержать все возможные случаи для лучшей оценки.
  • Наборы для разработки и тестирования не должны быть такими большими. Просто убедитесь, что он почти охватывает все случаи или ситуации, которые могут возникнуть в реальных данных. После проверки постарайтесь предоставить как можно больше данных для построения набора поездов.

13
3

  • @VansFannel, гиперпараметры - это переменные, которые мы используем для управления процессом обучения. Если бы это про ...

Ответ #4

Ответ на вопрос: Для чего используются данные проверки в последовательной модели Keras?

Итак, в основном в наборе проверки модель 9X_validate будет пытаться предсказать, но не будет 9X_pythonista обновлять свои веса (что означает, что она 9X_python-shell не будет учиться на них), поэтому вы получите 9X_python-interpreter четкое представление о том, насколько хорошо 9X_validator ваша модель может найти шаблоны в обучающих 9X_pythonista данных и применить их к новым данным.

5
0