В чем разница между поездом, валидацией и набором тестов в нейронных сетях?

Я использую эту библиотеку для реализации учебного агента.

Я создал тренировочные примеры, но я точно не знаю, что такое проверки и тесты.
Учитель говорит:

70% должны быть поезда, 10% – тестовые, а остальные 20% должны быть валидационными.

редактировать

У меня есть этот код для обучения, но я понятия не имею, когда прекращать обучение.

def train(self, train, validation, N=0.3, M=0.1): # N: learning rate # M: momentum factor accuracy = list() while(True): error = 0.0 for p in train: input, target = p self.update(input) error = error + self.backPropagate(target, N, M) print "validation" total = 0 for p in validation: input, target = p output = self.update(input) total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output accuracy.append(total) print min(accuracy) print sum(accuracy[-5:])/5 #if i % 100 == 0: print 'error %-14f' % error if ? < ?: break 

редактировать

Я могу получить среднюю ошибку 0,2 с данными валидации, после 20 тренировочных итераций, которые должны составлять 80%?

средняя ошибка = сумма абсолютной разницы между целевым показателем и выходом валидации, учитывая ввод данных валидации / размер данных валидации.

 1 avg error 0.520395 validation 0.246937882684 2 avg error 0.272367 validation 0.228832420879 3 avg error 0.249578 validation 0.216253590304 ... 22 avg error 0.227753 validation 0.200239244714 23 avg error 0.227905 validation 0.199875013416 

Наборы обучения и проверки используются во время обучения.

 for each epoch for each training data instance propagate error through the network adjust the weights calculate the accuracy over training data for each validation data instance calculate the accuracy over the validation data if the threshold validation accuracy is met exit training else continue training 

Как только вы закончите обучение, вы бежите против своего набора тестов и убедитесь, что точность достаточна.

Training Set : этот dataset используется для настройки веса в нейронной сети.

Набор проверки : этот dataset используется для сведения к минимуму переобучения. Вы не корректируете веса сети с этим набором данных, вы просто проверяете, что любое увеличение точности над набором данных обучения фактически дает повышение точности по сравнению с набором данных, который не был показан в сети раньше, или, по крайней мере, сеть не обучила его (т. е. dataset проверки). Если точность над набором учебных данных возрастает, но точность, превышающая dataset проверки, остается неизменной или уменьшается, тогда вы перерабатываете свою нейронную сеть, и вы должны прекратить обучение.

Набор тестов : этот dataset используется только для проверки окончательного решения, чтобы подтвердить фактическую интеллектуальную мощность сети.

Учебный набор : набор примеров, используемых для обучения, то есть для соответствия параметрам [т. Е. Весам] classификатора.

Набор проверки : набор примеров, используемых для настройки параметров [т. Е. Архитектуры, а не весов] classификатора, например, для выбора количества скрытых единиц в нейронной сети.

Набор тестов : набор примеров, используемых только для оценки производительности [обобщения] полностью указанного classификатора.

Из раздела ftp://ftp.sas.com/pub/neural/FAQ1.txt « Что такое совокупность, выборка, набор учебных материалов, набор дизайна, валидация »

Поверхность ошибки будет отличаться для разных наборов данных из вашего набора данных (пакетное обучение). Поэтому, если вы найдете очень хорошие локальные минимумы для ваших данных тестового набора, это может быть не очень хорошая точка и может быть очень плохой точкой на поверхности, созданной каким-то другим набором данных для той же проблемы. Поэтому вам нужно вычислить такую ​​модель, которая не только найдет хорошую конфигурацию веса для учебного набора, но также должна иметь возможность outlookировать новые данные (которые не входят в набор для обучения) с хорошей ошибкой. Другими словами, сеть должна иметь возможность обобщать примеры, чтобы они изучали данные и не просто запоминали или загружали набор тренировок, перегружая данные обучения.

Набор данных проверки представляет собой dataset для функции, которую вы хотите изучить, которую вы не используете непосредственно для обучения сети. Вы обучаете сеть с набором данных, которые вы называете набором данных обучения. Если вы используете алгоритм, основанный на gradleиенте, для обучения сети, то поверхность ошибки и gradleиент в какой-то момент полностью зависят от набора данных тренировки, поэтому dataset тренировки непосредственно используется для настройки веса. Чтобы убедиться, что вы не переназначаете сеть, вам необходимо ввести dataset проверки в сеть и проверить, не является ли ошибка в пределах определенного диапазона. Поскольку набор валидации не используется напрямую для настройки весов сети netowork, поэтому хорошая ошибка для проверки, а также набор тестов указывает на то, что сеть хорошо предсказывает примеры наборов поездов, также ожидается, что она будет хорошо работать, когда новые например, представлены в сеть, которая не использовалась в процессе обучения.

Ранняя остановка – это способ остановить обучение. Существуют различные варианты, основная схема которых заключается в проверке ошибок поезда и проверки, ошибка поезда уменьшается на каждой итерации (backprop и brothers), и сначала ошибка проверки уменьшается. Обучение прекращается в тот момент, когда ошибка проверки начинает расти. Конфигурация веса в этой точке указывает на модель, которая хорошо предсказывает учебные данные, а также данные, которые не видны сетью . Но поскольку данные проверки фактически влияют на конфигурацию веса косвенно, чтобы выбрать конфигурацию веса. Это место, где входит тестовый набор. Этот dataset никогда не используется в процессе обучения. Когда модель выбрана на основе набора валидации, данные тестового набора применяются к сетевой модели, и найдена ошибка для этого набора. Эта ошибка представляет собой ошибку, которую мы можем ожидать от абсолютно новых данных для одной и той же проблемы.

РЕДАКТИРОВАТЬ:

Кроме того, в случае, если у вас недостаточно данных для набора проверки, вы можете использовать crossvalidation для настройки параметров, а также для оценки тестовой ошибки.

Набор перекрестной проверки используется для выбора модели, например, выберите полиномиальную модель с наименьшим количеством ошибок для заданного набора параметров. Затем тестовый набор используется для сообщения об ошибке обобщения для выбранной модели. Отсюда: https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-validation-test-sets

Простыми словами определите набор тренировок, набор тестов, набор проверки

Учебный комплект: используется для поиска ближайших соседей. Набор проверки: предназначен для нахождения разных k, которые применяются к набору поездов. Набор тестов: используется для поиска максимальной точности и невидимых данных в будущем.

Давайте будем гением компьютера.