Для чего используются данные проверки в последовательной модели 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 чтения из обратных вызовов?
Ответ #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 совершенно невидимых данных.
- Хорошо, я уже понял это, но все именно так, как вы говорите. По сути, поскольку мы можем использовать точность проверки и потери, чтобы узнать что-то о модели, нам нужен другой набор тестов для проверки того, что мы ...
Ответ #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 хороший признак того, что ваша модель переоснащается.
Ответ #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 необходимо отразить реальные данные предметной области, где модель будет практически использоваться. Также он должен содержать все возможные случаи для лучшей оценки.
- Наборы для разработки и тестирования не должны быть такими большими. Просто убедитесь, что он почти охватывает все случаи или ситуации, которые могут возникнуть в реальных данных. После проверки постарайтесь предоставить как можно больше данных для построения набора поездов.
- @VansFannel, гиперпараметры - это переменные, которые мы используем для управления процессом обучения. Если бы это про ...
Ответ #4
Ответ на вопрос: Для чего используются данные проверки в последовательной модели Keras?
Итак, в основном в наборе проверки модель 9X_validate будет пытаться предсказать, но не будет 9X_pythonista обновлять свои веса (что означает, что она 9X_python-shell не будет учиться на них), поэтому вы получите 9X_python-interpreter четкое представление о том, насколько хорошо 9X_validator ваша модель может найти шаблоны в обучающих 9X_pythonista данных и применить их к новым данным.
-
1
-
3
-
4
-
4
-
6
-
2
-
1
-
4
-
2
-
6
-
3
-
2
-
2
-
4
-
1
-
1
-
6
-
4
-
6
-
3
-
5
-
1
-
4
-
4
-
3
-
1
-
9
-
2
-
8
-
6
-
5
-
7
-
3
-
6
-
2
-
10
-
15
-
16
-
3
-
5
-
3
-
5
-
7
-
2
-
6
-
4
-
7
-
2
-
3
-
3